youtube metadata powered by InnerTube (youtubei)
当前为
// ==UserScript== // @name TubeInsights // @namespace https://github.com/exyezed/tube-insights/ // @version 1.0.0-beta.1 // @author exyezed // @description youtube metadata powered by InnerTube (youtubei) // @license MIT // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNmZjYyN2QiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xOCAzYTUgNSAwIDAgMSA1IDV2OGE1IDUgMCAwIDEgLTUgNWgtMTJhNSA1IDAgMCAxIC01IC01di04YTUgNSAwIDAgMSA1IC01em0tOSA2djZhMSAxIDAgMCAwIDEuNTE0IC44NTdsNSAtM2ExIDEgMCAwIDAgMCAtMS43MTRsLTUgLTNhMSAxIDAgMCAwIC0xLjUxNCAuODU3eiIgLz48L3N2Zz4= // @supportURL https://github.com/exyezed/tube-insights/issues // @match https://www.youtube.com/* // @require https://cdn.jsdelivr.net/npm/@preact/[email protected]/dist/signals-core.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/preact.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/hooks/dist/hooks.umd.js // @require https://cdn.jsdelivr.net/npm/@preact/[email protected]/dist/signals.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/dayjs.min.js // @connect api.livecounts.io // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // ==/UserScript== (function (preact, signals, hooks, dayjs) { 'use strict'; const scriptRel = (function detectScriptRel() { const relList = typeof document !== "undefined" && document.createElement("link").relList; return relList && relList.supports && relList.supports("modulepreload") ? "modulepreload" : "preload"; })(); const assetsURL = function(dep) { return "/" + dep; }; const seen = {}; const __vitePreload = function preload(baseModule, deps, importerUrl) { let promise = Promise.resolve(); if (deps && deps.length > 0) { let allSettled = function(promises$2) { return Promise.all(promises$2.map((p) => Promise.resolve(p).then((value$1) => ({ status: "fulfilled", value: value$1 }), (reason) => ({ status: "rejected", reason })))); }; document.getElementsByTagName("link"); const cspNonceMeta = document.querySelector("meta[property=csp-nonce]"); const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute("nonce"); promise = allSettled(deps.map((dep) => { dep = assetsURL(dep); if (dep in seen) return; seen[dep] = true; const isCss = dep.endsWith(".css"); const cssSelector = isCss ? '[rel="stylesheet"]' : ""; if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) return; const link = document.createElement("link"); link.rel = isCss ? "stylesheet" : scriptRel; if (!isCss) link.as = "script"; link.crossOrigin = ""; link.href = dep; if (cspNonce) link.setAttribute("nonce", cspNonce); document.head.appendChild(link); if (isCss) return new Promise((res, rej) => { link.addEventListener("load", res); link.addEventListener("error", () => rej( new Error(`Unable to preload CSS for ${dep}`))); }); })); } function handlePreloadError(err$2) { const e$1 = new Event("vite:preloadError", { cancelable: true }); e$1.payload = err$2; window.dispatchEvent(e$1); if (!e$1.defaultPrevented) throw err$2; } return promise.then((res) => { for (const item of res || []) { if (item.status !== "rejected") continue; handlePreloadError(item.reason); } return baseModule().catch(handlePreloadError); }); }; var f = 0; function u(e, t, n, o, i, u2) { t || (t = {}); var a, c, p = t; if ("ref" in p) for (c in p = {}, t) "ref" == c ? a = t[c] : p[c] = t[c]; var l = { type: e, props: p, key: n, ref: a, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --f, __i: -1, __u: 0, __source: i, __self: u2 }; if ("function" == typeof e && (a = e.defaultProps)) for (c in a) void 0 === p[c] && (p[c] = a[c]); return preact.options.vnode && preact.options.vnode(l), l; } const storage = { async get(key, defaultValue) { return new Promise((resolve) => { if (typeof GM_getValue !== "undefined") { const value = GM_getValue(key, defaultValue || ""); resolve(value); } else { const value = localStorage.getItem(key); resolve(value || defaultValue || ""); } }); }, async set(key, value) { return new Promise((resolve) => { if (typeof GM_setValue !== "undefined") { GM_setValue(key, value); } else { localStorage.setItem(key, value); } resolve(); }); } }; const isPanelVisible = signals.signal(true); const activeTab = signals.signal("insights"); const currentTheme = signals.signal("light"); const panelWidth = signals.signal(350); const saveChannelDialogData = signals.signal(null); const deleteChannelDialogData = signals.signal(null); const clearAllDialogOpen = signals.signal(false); const detailChannelDialogData = signals.signal(null); function togglePanel() { isPanelVisible.value = !isPanelVisible.value; storage.set("tubeinsights-panelVisible", isPanelVisible.value.toString()); } function setActiveTab(tab) { activeTab.value = tab; storage.set("tubeinsights-activeTab", tab); } async function loadSettings() { const panelVisible = await storage.get("tubeinsights-panelVisible", "true"); isPanelVisible.value = panelVisible === "true"; const theme = await storage.get("tubeinsights-theme", "light"); currentTheme.value = theme; const width = await storage.get("tubeinsights-panelWidth", "350"); panelWidth.value = parseInt(width); const savedTab = await storage.get("tubeinsights-activeTab", "insights"); if (savedTab === "insights" || savedTab === "livecount" || savedTab === "bookmark" || savedTab === "settings") { activeTab.value = savedTab; } } function openSaveChannelDialog(data) { saveChannelDialogData.value = { ...data, isOpen: true }; } function closeSaveChannelDialog() { saveChannelDialogData.value = null; } function openDeleteChannelDialog(channelId) { deleteChannelDialogData.value = { channelId, isOpen: true }; } function closeDeleteChannelDialog() { deleteChannelDialogData.value = null; } function openClearAllDialog() { clearAllDialogOpen.value = true; } function closeClearAllDialog() { clearAllDialogOpen.value = false; } function openDetailChannelDialog(channel) { detailChannelDialogData.value = { channel, isOpen: true }; } function closeDetailChannelDialog() { detailChannelDialogData.value = null; } const index = Object.freeze( Object.defineProperty({ __proto__: null, activeTab, clearAllDialogOpen, closeClearAllDialog, closeDeleteChannelDialog, closeDetailChannelDialog, closeSaveChannelDialog, currentTheme, deleteChannelDialogData, detailChannelDialogData, isPanelVisible, loadSettings, openClearAllDialog, openDeleteChannelDialog, openDetailChannelDialog, openSaveChannelDialog, panelWidth, saveChannelDialogData, setActiveTab, togglePanel }, Symbol.toStringTag, { value: "Module" })); var defaultAttributes = { outline: { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }, filled: { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "currentColor", stroke: "none" } }; const createPreactComponent = (type, iconName, iconNamePascal, iconNode) => { const Component2 = ({ color = "currentColor", size = 24, stroke = 2, title, children, className = "", class: classes = "", style, ...rest }) => preact.h( "svg", { ...defaultAttributes[type], width: String(size), height: String(size), class: [`tabler-icon`, `tabler-icon-${iconName}`, classes, className].join(" "), ...type === "filled" ? { fill: color } : { "stroke-width": stroke, stroke: color }, style, ...rest }, [ title && preact.h("title", {}, title), ...iconNode.map(([tag, attrs]) => preact.h(tag, attrs)), ...preact.toChildArray(children) ] ); Component2.displayName = `${iconNamePascal}`; return Component2; }; var IconAccessPoint = createPreactComponent("outline", "access-point", "AccessPoint", [["path", { "d": "M12 12l0 .01", "key": "svg-0" }], ["path", { "d": "M14.828 9.172a4 4 0 0 1 0 5.656", "key": "svg-1" }], ["path", { "d": "M17.657 6.343a8 8 0 0 1 0 11.314", "key": "svg-2" }], ["path", { "d": "M9.168 14.828a4 4 0 0 1 0 -5.656", "key": "svg-3" }], ["path", { "d": "M6.337 17.657a8 8 0 0 1 0 -11.314", "key": "svg-4" }]]); var IconBabyCarriage = createPreactComponent("outline", "baby-carriage", "BabyCarriage", [["path", { "d": "M8 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", "key": "svg-0" }], ["path", { "d": "M18 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", "key": "svg-1" }], ["path", { "d": "M2 5h2.5l1.632 4.897a6 6 0 0 0 5.693 4.103h2.675a5.5 5.5 0 0 0 0 -11h-.5v6", "key": "svg-2" }], ["path", { "d": "M6 9h14", "key": "svg-3" }], ["path", { "d": "M9 17l1 -3", "key": "svg-4" }], ["path", { "d": "M16 14l1 3", "key": "svg-5" }]]); var IconBookmark = createPreactComponent("outline", "bookmark", "Bookmark", [["path", { "d": "M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4z", "key": "svg-0" }]]); var IconBrandGithub = createPreactComponent("outline", "brand-github", "BrandGithub", [["path", { "d": "M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5", "key": "svg-0" }]]); var IconBuildingBank = createPreactComponent("outline", "building-bank", "BuildingBank", [["path", { "d": "M3 21l18 0", "key": "svg-0" }], ["path", { "d": "M3 10l18 0", "key": "svg-1" }], ["path", { "d": "M5 6l7 -3l7 3", "key": "svg-2" }], ["path", { "d": "M4 10l0 11", "key": "svg-3" }], ["path", { "d": "M20 10l0 11", "key": "svg-4" }], ["path", { "d": "M8 14l0 3", "key": "svg-5" }], ["path", { "d": "M12 14l0 3", "key": "svg-6" }], ["path", { "d": "M16 14l0 3", "key": "svg-7" }]]); var IconCategory = createPreactComponent("outline", "category", "Category", [["path", { "d": "M4 4h6v6h-6z", "key": "svg-0" }], ["path", { "d": "M14 4h6v6h-6z", "key": "svg-1" }], ["path", { "d": "M4 14h6v6h-6z", "key": "svg-2" }], ["path", { "d": "M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "key": "svg-3" }]]); var IconChevronLeft = createPreactComponent("outline", "chevron-left", "ChevronLeft", [["path", { "d": "M15 6l-6 6l6 6", "key": "svg-0" }]]); var IconChevronRight = createPreactComponent("outline", "chevron-right", "ChevronRight", [["path", { "d": "M9 6l6 6l-6 6", "key": "svg-0" }]]); var IconCircleCheck = createPreactComponent("outline", "circle-check", "CircleCheck", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M9 12l2 2l4 -4", "key": "svg-1" }]]); var IconCircleX = createPreactComponent("outline", "circle-x", "CircleX", [["path", { "d": "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0", "key": "svg-0" }], ["path", { "d": "M10 10l4 4m0 -4l-4 4", "key": "svg-1" }]]); var IconClock = createPreactComponent("outline", "clock", "Clock", [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 7v5l3 3", "key": "svg-1" }]]); var IconCopy = createPreactComponent("outline", "copy", "Copy", [["path", { "d": "M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z", "key": "svg-0" }], ["path", { "d": "M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1", "key": "svg-1" }]]); var IconCurrencyDollar = createPreactComponent("outline", "currency-dollar", "CurrencyDollar", [["path", { "d": "M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2", "key": "svg-0" }], ["path", { "d": "M12 3v3m0 12v3", "key": "svg-1" }]]); var IconDatabaseOff = createPreactComponent("outline", "database-off", "DatabaseOff", [["path", { "d": "M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74", "key": "svg-0" }], ["path", { "d": "M4 6v6c0 1.657 3.582 3 8 3c.986 0 1.93 -.067 2.802 -.19m3.187 -.82c1.251 -.53 2.011 -1.228 2.011 -1.99v-6", "key": "svg-1" }], ["path", { "d": "M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4", "key": "svg-2" }], ["path", { "d": "M3 3l18 18", "key": "svg-3" }]]); var IconDeviceFloppy = createPreactComponent("outline", "device-floppy", "DeviceFloppy", [["path", { "d": "M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2", "key": "svg-0" }], ["path", { "d": "M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", "key": "svg-1" }], ["path", { "d": "M14 4l0 4l-6 0l0 -4", "key": "svg-2" }]]); var IconDeviceMobile = createPreactComponent("outline", "device-mobile", "DeviceMobile", [["path", { "d": "M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14z", "key": "svg-0" }], ["path", { "d": "M11 4h2", "key": "svg-1" }], ["path", { "d": "M12 17v.01", "key": "svg-2" }]]); var IconEye = createPreactComponent("outline", "eye", "Eye", [["path", { "d": "M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0", "key": "svg-0" }], ["path", { "d": "M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6", "key": "svg-1" }]]); var IconFileExport = createPreactComponent("outline", "file-export", "FileExport", [["path", { "d": "M14 3v4a1 1 0 0 0 1 1h4", "key": "svg-0" }], ["path", { "d": "M11.5 21h-4.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v5m-5 6h7m-3 -3l3 3l-3 3", "key": "svg-1" }]]); var IconFileImport = createPreactComponent("outline", "file-import", "FileImport", [["path", { "d": "M14 3v4a1 1 0 0 0 1 1h4", "key": "svg-0" }], ["path", { "d": "M5 13v-8a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-5.5m-9.5 -2h7m-3 -3l3 3l-3 3", "key": "svg-1" }]]); var IconInfoCircle = createPreactComponent("outline", "info-circle", "InfoCircle", [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M12 9h.01", "key": "svg-1" }], ["path", { "d": "M11 12h1v4h1", "key": "svg-2" }]]); var IconMessage = createPreactComponent("outline", "message", "Message", [["path", { "d": "M8 9h8", "key": "svg-0" }], ["path", { "d": "M8 13h6", "key": "svg-1" }], ["path", { "d": "M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z", "key": "svg-2" }]]); var IconMovie = createPreactComponent("outline", "movie", "Movie", [["path", { "d": "M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z", "key": "svg-0" }], ["path", { "d": "M8 4l0 16", "key": "svg-1" }], ["path", { "d": "M16 4l0 16", "key": "svg-2" }], ["path", { "d": "M4 8l4 0", "key": "svg-3" }], ["path", { "d": "M4 16l4 0", "key": "svg-4" }], ["path", { "d": "M4 12l16 0", "key": "svg-5" }], ["path", { "d": "M16 8l4 0", "key": "svg-6" }], ["path", { "d": "M16 16l4 0", "key": "svg-7" }]]); var IconSettings = createPreactComponent("outline", "settings", "Settings", [["path", { "d": "M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z", "key": "svg-0" }], ["path", { "d": "M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", "key": "svg-1" }]]); var IconThumbDown = createPreactComponent("outline", "thumb-down", "ThumbDown", [["path", { "d": "M7 13v-8a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v7a1 1 0 0 0 1 1h3a4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2 -2l-1 -5a2 3 0 0 0 -2 -2h-7a3 3 0 0 0 -3 3", "key": "svg-0" }]]); var IconThumbUp = createPreactComponent("outline", "thumb-up", "ThumbUp", [["path", { "d": "M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3", "key": "svg-0" }]]); var IconTrash = createPreactComponent("outline", "trash", "Trash", [["path", { "d": "M4 7l16 0", "key": "svg-0" }], ["path", { "d": "M10 11l0 6", "key": "svg-1" }], ["path", { "d": "M14 11l0 6", "key": "svg-2" }], ["path", { "d": "M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12", "key": "svg-3" }], ["path", { "d": "M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3", "key": "svg-4" }]]); var IconTrendingDown = createPreactComponent("outline", "trending-down", "TrendingDown", [["path", { "d": "M3 7l6 6l4 -4l8 8", "key": "svg-0" }], ["path", { "d": "M21 10l0 7l-7 0", "key": "svg-1" }]]); var IconTrendingUp = createPreactComponent("outline", "trending-up", "TrendingUp", [["path", { "d": "M3 17l6 -6l4 4l8 -8", "key": "svg-0" }], ["path", { "d": "M14 7l7 0l0 7", "key": "svg-1" }]]); var IconUsers = createPreactComponent("outline", "users", "Users", [["path", { "d": "M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", "key": "svg-0" }], ["path", { "d": "M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2", "key": "svg-1" }], ["path", { "d": "M16 3.13a4 4 0 0 1 0 7.75", "key": "svg-2" }], ["path", { "d": "M21 21v-2a4 4 0 0 0 -3 -3.85", "key": "svg-3" }]]); var IconVideo = createPreactComponent("outline", "video", "Video", [["path", { "d": "M15 10l4.553 -2.276a1 1 0 0 1 1.447 .894v6.764a1 1 0 0 1 -1.447 .894l-4.553 -2.276v-4z", "key": "svg-0" }], ["path", { "d": "M3 6m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z", "key": "svg-1" }]]); var IconWorld = createPreactComponent("outline", "world", "World", [["path", { "d": "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0", "key": "svg-0" }], ["path", { "d": "M3.6 9h16.8", "key": "svg-1" }], ["path", { "d": "M3.6 15h16.8", "key": "svg-2" }], ["path", { "d": "M11.5 3a17 17 0 0 0 0 18", "key": "svg-3" }], ["path", { "d": "M12.5 3a17 17 0 0 1 0 18", "key": "svg-4" }]]); var IconBrandYoutubeFilled = createPreactComponent("filled", "brand-youtube-filled", "BrandYoutubeFilled", [["path", { "d": "M18 3a5 5 0 0 1 5 5v8a5 5 0 0 1 -5 5h-12a5 5 0 0 1 -5 -5v-8a5 5 0 0 1 5 -5zm-9 6v6a1 1 0 0 0 1.514 .857l5 -3a1 1 0 0 0 0 -1.714l-5 -3a1 1 0 0 0 -1.514 .857z", "key": "svg-0" }]]); function FloatingButton() { return u( "button", { onClick: togglePanel, className: "btn btn-lg btn-square btn-secondary rounded-l-full rounded-r-none", style: { position: "absolute", top: "50%", left: "-30px", transform: "translateY(-50%)", zIndex: 10 }, children: isPanelVisible.value ? u(IconChevronRight, { size: 20 }) : u(IconChevronLeft, { size: 20 }) } ); } const INNERTUBE_API_KEY = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8"; const INNERTUBE_CLIENT_NAME = "WEB"; const INNERTUBE_CLIENT_VERSION = "2.20201209.01.00"; const BASE_URL = "https://www.youtube.com"; const I_END_POINT = "/youtubei/v1"; const TAB_TYPE_PARAMS = { videos: "EgZ2aWRlb3PyBgQKAjoA", shorts: "EgZzaG9ydHPyBgUKA5oBAA%3D%3D", live: "EgdzdHJlYW1z8gYECgJ6AA%3D%3D" }; class YouTubeService { channelId = null; channelHandle = null; isVideoPage() { const path = window.location.pathname; return path.startsWith("/watch") || path.startsWith("/shorts/"); } getVideoIdFromURL() { const path = window.location.pathname; const search = window.location.search; if (path.startsWith("/watch")) { const params = new URLSearchParams(search); const videoId = params.get("v"); return videoId !== null ? videoId : null; } if (path.startsWith("/shorts/")) { const match = path.match(/\/shorts\/([^\/\?]+)/); return match && match[1] ? match[1] : null; } return null; } async getChannelId() { if (this.channelId) return this.channelId; try { const channelIdMatch = window.location.pathname.match( /\/channel\/(UC[^\/]+)/ ); if (channelIdMatch && channelIdMatch[1]) { this.channelId = channelIdMatch[1]; await this.scrapeChannelHandle(); return this.channelId; } const handle = this.getChannelHandleFromURL(); if (!handle) return null; this.channelHandle = handle; const youtubeUrl = `https://www.youtube.com/@${handle}`; const response = await fetch(youtubeUrl); if (!response.ok) return null; const html = await response.text(); let match = html.match( /<meta\s+itemprop="identifier"\s+content="(UC[^"]+)"/ ); if (match && match[1]) { this.channelId = match[1]; return this.channelId; } match = html.match( /<link\s+rel="canonical"\s+href="https:\/\/www\.youtube\.com\/channel\/(UC[^"]+)"/ ); if (match && match[1]) { this.channelId = match[1]; return this.channelId; } match = html.match( /https:\/\/www\.youtube\.com\/feeds\/videos\.xml\?channel_id=(UC[^"&]+)/ ); if (match && match[1]) { this.channelId = match[1]; return this.channelId; } match = html.match(/["']browseId["']\s*:\s*["'](UC[^"']+)["']/); if (match && match[1]) { this.channelId = match[1]; return this.channelId; } } catch (error) { console.error("[TubeInsights] Error getting channel ID:", error); } return null; } async scrapeChannelHandle() { try { const html = document.documentElement.innerHTML; let match = html.match( /["']vanityChannelUrl["']\s*:\s*["']http[s]?:\/\/www\.youtube\.com\/@([^"']+)["']/ ); if (match && match[1]) { this.channelHandle = match[1]; return; } match = html.match( /<link\s+rel="canonical"\s+href="https:\/\/www\.youtube\.com\/@([^"\/]+)"/ ); if (match && match[1]) { this.channelHandle = match[1]; return; } this.channelHandle = this.channelId; } catch (error) { console.error("[TubeInsights] Error scraping handle:", error); this.channelHandle = this.channelId; } } getChannelHandleFromURL() { const handleMatch = window.location.pathname.match(/^\/@([^\/]+)/); if (handleMatch && handleMatch[1]) { return handleMatch[1]; } return null; } getChannelHandle() { return this.channelHandle; } clearCache() { this.channelId = null; this.channelHandle = null; } async fetchTabCount(tabType, onProgress) { const channelId = await this.getChannelId(); if (!channelId) return 0; let totalCount = 0; let continuation = void 0; let pageCount = 0; const maxPages = 100; try { do { const params = TAB_TYPE_PARAMS[tabType]; const response = await this.innerTubeRequest("/browse", { browseId: channelId, params, continuation }); const items = this.parseTabData(tabType, response); const videoIds = this.parseVideoIds(items, tabType); totalCount += videoIds.length; continuation = this.getContinuation(response, tabType); pageCount++; if (onProgress) { onProgress(totalCount, !!continuation); } if (!continuation || pageCount >= maxPages) break; await new Promise((resolve) => setTimeout(resolve, 100)); } while (continuation); return totalCount; } catch (error) { console.error("[TubeInsights] Error fetching tab count:", error); return totalCount > 0 ? totalCount : 0; } } async innerTubeRequest(endpoint, data) { const url = `${BASE_URL}${I_END_POINT}${endpoint}?key=${INNERTUBE_API_KEY}&prettyPrint=false`; const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", "X-YouTube-Client-Name": "1", "X-YouTube-Client-Version": INNERTUBE_CLIENT_VERSION }, body: JSON.stringify({ context: { client: { clientName: INNERTUBE_CLIENT_NAME, clientVersion: INNERTUBE_CLIENT_VERSION, hl: "en", gl: "US" } }, ...data }) }); return await response.json(); } getContinuation(data, tabType) { if (tabType === "shorts") { const tab2 = data.contents?.twoColumnBrowseResultsRenderer?.tabs?.find( (t) => { return t.tabRenderer?.endpoint?.browseEndpoint?.params === TAB_TYPE_PARAMS[tabType]; } ); const contents = tab2?.tabRenderer?.content?.richGridRenderer?.contents || []; const continuationItem = contents.find( (c) => c.continuationItemRenderer ); if (continuationItem) { return continuationItem.continuationItemRenderer?.continuationEndpoint?.continuationCommand?.token; } const continuationItems = data.onResponseReceivedActions?.[0]?.appendContinuationItemsAction?.continuationItems || data.onResponseReceivedEndpoints?.[0]?.appendContinuationItemsAction?.continuationItems || []; const contItem = continuationItems.find( (c) => c.continuationItemRenderer ); if (contItem) { return contItem.continuationItemRenderer?.continuationEndpoint?.continuationCommand?.token; } return void 0; } const tab = data.contents?.twoColumnBrowseResultsRenderer?.tabs?.find( (t) => { return t.tabRenderer?.endpoint?.browseEndpoint?.params === TAB_TYPE_PARAMS[tabType]; } ); const items = tab?.tabRenderer?.content?.richGridRenderer?.contents || data.onResponseReceivedActions?.[0]?.appendContinuationItemsAction?.continuationItems || data.onResponseReceivedEndpoints?.[0]?.appendContinuationItemsAction?.continuationItems || []; const continuation = items[items.length - 1]; const renderer = continuation?.continuationItemRenderer; if (!renderer) return void 0; return renderer?.continuationEndpoint?.continuationCommand?.token; } parseTabData(tabType, data) { const tab = data.contents?.twoColumnBrowseResultsRenderer?.tabs?.find( (t) => { return t.tabRenderer?.endpoint?.browseEndpoint?.params === TAB_TYPE_PARAMS[tabType]; } ); if (tabType === "shorts" && tab?.tabRenderer?.content?.richGridRenderer) { const contents = tab.tabRenderer.content.richGridRenderer.contents || []; return contents.map((c) => c.richItemRenderer?.content || c).filter((c) => c.shortsLockupViewModel || c.reelItemRenderer); } if (tabType === "shorts" && (data.onResponseReceivedActions || data.onResponseReceivedEndpoints)) { const continuationItems = data.onResponseReceivedActions?.[0]?.appendContinuationItemsAction?.continuationItems || data.onResponseReceivedEndpoints?.[0]?.appendContinuationItemsAction?.continuationItems || []; return continuationItems.map((c) => c.richItemRenderer?.content || c).filter((c) => c.shortsLockupViewModel || c.reelItemRenderer); } return tab?.tabRenderer?.content?.richGridRenderer?.contents?.map( (c) => c.richItemRenderer?.content || c ) || data.onResponseReceivedActions?.[0]?.appendContinuationItemsAction?.continuationItems?.map( (c) => c.richItemRenderer?.content || c ) || data.onResponseReceivedEndpoints?.[0]?.appendContinuationItemsAction?.continuationItems || []; } parseVideoIds(items, tabType) { if (tabType === "shorts") { return items.filter((item) => item.shortsLockupViewModel || item.reelItemRenderer).map((item) => { const lockup = item.shortsLockupViewModel; if (lockup) { return lockup.onTap?.innertubeCommand?.reelWatchEndpoint?.videoId; } const renderer = item.reelItemRenderer; return renderer.videoId; }).filter((id) => id); } return items.filter((item) => item.videoRenderer).map((item) => item.videoRenderer.videoId).filter((id) => id); } } function CountryFlag({ countryCode, size = "md" }) { const sizeMap = { sm: 24, md: 32, lg: 40, xl: 48 }; const flagSize = sizeMap[size]; const flagUrl = `https://cdn.jsdelivr.net/gh/lipis/[email protected]/flags/4x3/${countryCode.toLowerCase()}.svg`; return u( "img", { src: flagUrl, alt: `${countryCode} flag`, width: flagSize, height: flagSize * 0.75, style: { display: "inline-block", verticalAlign: "middle" } } ); } const countryNames = { AF: "Afghanistan", AL: "Albania", DZ: "Algeria", AS: "American Samoa", AD: "Andorra", AO: "Angola", AI: "Anguilla", AQ: "Antarctica", AG: "Antigua and Barbuda", AR: "Argentina", AM: "Armenia", AW: "Aruba", AU: "Australia", AT: "Austria", AZ: "Azerbaijan", BS: "Bahamas", BH: "Bahrain", BD: "Bangladesh", BB: "Barbados", BY: "Belarus", BE: "Belgium", BZ: "Belize", BJ: "Benin", BM: "Bermuda", BT: "Bhutan", BO: "Bolivia", BQ: "Bonaire, Sint Eustatius and Saba", BA: "Bosnia and Herzegovina", BW: "Botswana", BV: "Bouvet Island", BR: "Brazil", IO: "British Indian Ocean Territory", BN: "Brunei Darussalam", BG: "Bulgaria", BF: "Burkina Faso", BI: "Burundi", CV: "Cabo Verde", KH: "Cambodia", CM: "Cameroon", CA: "Canada", KY: "Cayman Islands", CF: "Central African Republic", TD: "Chad", CL: "Chile", CN: "China", CX: "Christmas Island", CC: "Cocos Islands", CO: "Colombia", KM: "Comoros", CG: "Congo", CD: "Congo, Democratic Republic of the", CK: "Cook Islands", CR: "Costa Rica", HR: "Croatia", CU: "Cuba", CW: "Curaçao", CY: "Cyprus", CZ: "Czechia", DK: "Denmark", DJ: "Djibouti", DM: "Dominica", DO: "Dominican Republic", EC: "Ecuador", EG: "Egypt", SV: "El Salvador", GQ: "Equatorial Guinea", ER: "Eritrea", EE: "Estonia", SZ: "Eswatini", ET: "Ethiopia", FK: "Falkland Islands", FO: "Faroe Islands", FJ: "Fiji", FI: "Finland", FR: "France", GF: "French Guiana", PF: "French Polynesia", TF: "French Southern Territories", GA: "Gabon", GM: "Gambia", GE: "Georgia", DE: "Germany", GH: "Ghana", GI: "Gibraltar", GR: "Greece", GL: "Greenland", GD: "Grenada", GP: "Guadeloupe", GU: "Guam", GT: "Guatemala", GG: "Guernsey", GN: "Guinea", GW: "Guinea-Bissau", GY: "Guyana", HT: "Haiti", HM: "Heard Island and McDonald Islands", VA: "Holy See", HN: "Honduras", HK: "Hong Kong", HU: "Hungary", IS: "Iceland", IN: "India", ID: "Indonesia", IR: "Iran", IQ: "Iraq", IE: "Ireland", IM: "Isle of Man", IL: "Israel", IT: "Italy", JM: "Jamaica", JP: "Japan", JE: "Jersey", JO: "Jordan", KZ: "Kazakhstan", KE: "Kenya", KI: "Kiribati", KP: "North Korea", KR: "South Korea", KW: "Kuwait", KG: "Kyrgyzstan", LA: "Lao People's Democratic Republic", LV: "Latvia", LB: "Lebanon", LS: "Lesotho", LR: "Liberia", LY: "Libya", LI: "Liechtenstein", LT: "Lithuania", LU: "Luxembourg", MO: "Macao", MG: "Madagascar", MW: "Malawi", MY: "Malaysia", MV: "Maldives", ML: "Mali", MT: "Malta", MH: "Marshall Islands", MQ: "Martinique", MR: "Mauritania", MU: "Mauritius", YT: "Mayotte", MX: "Mexico", FM: "Micronesia", MD: "Moldova", MC: "Monaco", MN: "Mongolia", ME: "Montenegro", MS: "Montserrat", MA: "Morocco", MZ: "Mozambique", MM: "Myanmar", NA: "Namibia", NR: "Nauru", NP: "Nepal", NL: "Netherlands", NC: "New Caledonia", NZ: "New Zealand", NI: "Nicaragua", NE: "Niger", NG: "Nigeria", NU: "Niue", NF: "Norfolk Island", MK: "North Macedonia", MP: "Northern Mariana Islands", NO: "Norway", OM: "Oman", PK: "Pakistan", PW: "Palau", PS: "Palestine, State of", PA: "Panama", PG: "Papua New Guinea", PY: "Paraguay", PE: "Peru", PH: "Philippines", PN: "Pitcairn", PL: "Poland", PT: "Portugal", PR: "Puerto Rico", QA: "Qatar", RO: "Romania", RU: "Russian Federation", RW: "Rwanda", RE: "Réunion", BL: "Saint Barthélemy", SH: "Saint Helena, Ascension and Tristan da Cunha", KN: "Saint Kitts and Nevis", LC: "Saint Lucia", MF: "Saint Martin", PM: "Saint Pierre and Miquelon", VC: "Saint Vincent and the Grenadines", WS: "Samoa", SM: "San Marino", ST: "Sao Tome and Principe", SA: "Saudi Arabia", SN: "Senegal", RS: "Serbia", SC: "Seychelles", SL: "Sierra Leone", SG: "Singapore", SX: "Sint Maarten", SK: "Slovakia", SI: "Slovenia", SB: "Solomon Islands", SO: "Somalia", ZA: "South Africa", GS: "South Georgia and the South Sandwich Islands", SS: "South Sudan", ES: "Spain", LK: "Sri Lanka", SD: "Sudan", SR: "Suriname", SJ: "Svalbard and Jan Mayen", SE: "Sweden", CH: "Switzerland", SY: "Syrian Arab Republic", TW: "Taiwan", TJ: "Tajikistan", TZ: "Tanzania", TH: "Thailand", TL: "Timor-Leste", TG: "Togo", TK: "Tokelau", TO: "Tonga", TT: "Trinidad and Tobago", TN: "Tunisia", TR: "Turkey", TM: "Turkmenistan", TC: "Turks and Caicos Islands", TV: "Tuvalu", UG: "Uganda", UA: "Ukraine", AE: "United Arab Emirates", GB: "United Kingdom", US: "United States", UM: "United States Minor Outlying Islands", UY: "Uruguay", UZ: "Uzbekistan", VU: "Vanuatu", VE: "Venezuela", VN: "Viet Nam", VG: "Virgin Islands", VI: "Virgin Islands", WF: "Wallis and Futuna", EH: "Western Sahara", YE: "Yemen", ZM: "Zambia", ZW: "Zimbabwe" }; const formatNumber = (num) => { if (num >= 1e9) return `${(num / 1e9).toFixed(2)}B`; if (num >= 1e6) return `${(num / 1e6).toFixed(2)}M`; if (num >= 1e3) return `${(num / 1e3).toFixed(2)}K`; return num.toString(); }; let audioContext = null; const getAudioContext = () => { if (!audioContext) { audioContext = new (window.AudioContext || window.webkitAudioContext)(); } return audioContext; }; const playMonetizedSound = () => { try { const ctx = getAudioContext(); const osc1 = ctx.createOscillator(); const gain1 = ctx.createGain(); osc1.connect(gain1); gain1.connect(ctx.destination); osc1.frequency.setValueAtTime(523, ctx.currentTime); gain1.gain.setValueAtTime(0.2, ctx.currentTime); gain1.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.15); osc1.start(ctx.currentTime); osc1.stop(ctx.currentTime + 0.15); const osc2 = ctx.createOscillator(); const gain2 = ctx.createGain(); osc2.connect(gain2); gain2.connect(ctx.destination); osc2.frequency.setValueAtTime(659, ctx.currentTime + 0.1); gain2.gain.setValueAtTime(0.2, ctx.currentTime + 0.1); gain2.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.25); osc2.start(ctx.currentTime + 0.1); osc2.stop(ctx.currentTime + 0.25); const osc3 = ctx.createOscillator(); const gain3 = ctx.createGain(); osc3.connect(gain3); gain3.connect(ctx.destination); osc3.frequency.setValueAtTime(784, ctx.currentTime + 0.2); gain3.gain.setValueAtTime(0.25, ctx.currentTime + 0.2); gain3.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.4); osc3.start(ctx.currentTime + 0.2); osc3.stop(ctx.currentTime + 0.4); } catch (error) { console.error("Error playing monetized sound:", error); } }; const playNotMonetizedSound = () => { try { const ctx = getAudioContext(); const oscillator = ctx.createOscillator(); const gainNode = ctx.createGain(); oscillator.connect(gainNode); gainNode.connect(ctx.destination); oscillator.frequency.setValueAtTime(600, ctx.currentTime); oscillator.frequency.exponentialRampToValueAtTime( 300, ctx.currentTime + 0.3 ); gainNode.gain.setValueAtTime(0.25, ctx.currentTime); gainNode.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.3); oscillator.start(ctx.currentTime); oscillator.stop(ctx.currentTime + 0.3); } catch (error) { console.error("Error playing not monetized sound:", error); } }; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } var relativeTime$2 = { exports: {} }; var relativeTime$1 = relativeTime$2.exports; var hasRequiredRelativeTime; function requireRelativeTime() { if (hasRequiredRelativeTime) return relativeTime$2.exports; hasRequiredRelativeTime = 1; (function(module, exports) { !(function(r, e) { module.exports = e(); })(relativeTime$1, (function() { return function(r, e, t) { r = r || {}; var n = e.prototype, o = { future: "in %s", past: "%s ago", s: "a few seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }; function i(r2, e2, t2, o2) { return n.fromToBase(r2, e2, t2, o2); } t.en.relativeTime = o, n.fromToBase = function(e2, n2, i2, d2, u2) { for (var f2, a, s, l = i2.$locale().relativeTime || o, h2 = r.thresholds || [{ l: "s", r: 44, d: "second" }, { l: "m", r: 89 }, { l: "mm", r: 44, d: "minute" }, { l: "h", r: 89 }, { l: "hh", r: 21, d: "hour" }, { l: "d", r: 35 }, { l: "dd", r: 25, d: "day" }, { l: "M", r: 45 }, { l: "MM", r: 10, d: "month" }, { l: "y", r: 17 }, { l: "yy", d: "year" }], m = h2.length, c = 0; c < m; c += 1) { var y = h2[c]; y.d && (f2 = d2 ? t(e2).diff(i2, y.d, true) : i2.diff(e2, y.d, true)); var p = (r.rounding || Math.round)(Math.abs(f2)); if (s = f2 > 0, p <= y.r || !y.r) { p <= 1 && c > 0 && (y = h2[c - 1]); var v = l[y.l]; u2 && (p = u2("" + p)), a = "string" == typeof v ? v.replace("%d", p) : v(p, n2, y.l, s); break; } } if (n2) return a; var M = s ? l.future : l.past; return "function" == typeof M ? M(a) : M.replace("%s", a); }, n.to = function(r2, e2) { return i(r2, e2, this, true); }, n.from = function(r2, e2) { return i(r2, e2, this); }; var d = function(r2) { return r2.$u ? t.utc() : t(); }; n.toNow = function(r2) { return this.to(d(this), r2); }, n.fromNow = function(r2) { return this.from(d(this), r2); }; }; })); })(relativeTime$2); return relativeTime$2.exports; } var relativeTimeExports = requireRelativeTime(); const relativeTime = getDefaultExportFromCjs(relativeTimeExports); dayjs.extend(relativeTime); const CATEGORY_MAP = { "1": "Film & Animation", "2": "Autos & Vehicles", "10": "Music", "15": "Pets & Animals", "17": "Sports", "18": "Short Movies", "19": "Travel & Events", "20": "Gaming", "21": "Videoblogging", "22": "People & Blogs", "23": "Comedy", "24": "Entertainment", "25": "News & Politics", "26": "Howto & Style", "27": "Education", "28": "Science & Technology", "29": "Nonprofits & Activism", "30": "Movies", "31": "Anime/Animation", "32": "Action/Adventure", "33": "Classics", "34": "Comedy", "35": "Documentary", "36": "Drama", "37": "Family", "38": "Foreign", "39": "Horror", "40": "Sci-Fi/Fantasy", "41": "Thriller", "42": "Shorts", "43": "Shows", "44": "Trailers" }; function InsightsTab() { const [channelId, setChannelId] = hooks.useState(null); const [channelHandle, setChannelHandle] = hooks.useState(null); const [channelInfo, setChannelInfo] = hooks.useState(null); const [videoId, setVideoId] = hooks.useState(null); const [videoInfo, setVideoInfo] = hooks.useState(null); const [dislikes, setDislikes] = hooks.useState(0); const [monetization, setMonetization] = hooks.useState(null); const [loading, setLoading] = hooks.useState(false); const [tabs, setTabs] = hooks.useState([ { type: "videos", label: "Videos", count: 0, isLoading: false }, { type: "shorts", label: "Shorts", count: 0, isLoading: false }, { type: "live", label: "Live", count: 0, isLoading: false } ]); const [youtubeService] = hooks.useState(() => new YouTubeService()); const lastMonetizationCheckRef = hooks.useRef(null); const [copiedKeywords, setCopiedKeywords] = hooks.useState(false); const [copiedTopics, setCopiedTopics] = hooks.useState(false); const [copiedDescription, setCopiedDescription] = hooks.useState(false); const isChannelPage = () => { const path = window.location.pathname; return path.startsWith("/@") || path.startsWith("/channel/"); }; const isVideoPage = () => { return youtubeService.isVideoPage(); }; const calculateAge = (publishedAt) => { const now = dayjs(); const published = dayjs(publishedAt); const years = now.diff(published, "year"); const months = now.diff(published, "month") % 12; const days = now.diff(published, "day") % 30; const parts = []; if (years > 0) parts.push(`${years} yr`); if (months > 0) parts.push(`${months} mo`); if (days > 0 && years === 0) parts.push(`${days} d`); return parts.join(" ") || "0 d"; }; const formatDuration = (duration) => { if (duration === "P0D" || duration === "PT0S") { return "0:00"; } const match = duration.match(/PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?/); if (!match) return duration; const hours = match[1] ? parseInt(match[1]) : 0; const minutes = match[2] ? parseInt(match[2]) : 0; const seconds = match[3] ? parseInt(match[3]) : 0; if (hours === 0 && minutes === 0 && seconds === 0) { return "0:00"; } const parts = []; if (hours > 0) parts.push(`${hours}:${minutes.toString().padStart(2, "0")}`); else parts.push(minutes.toString()); parts.push(seconds.toString().padStart(2, "0")); return parts.join(":"); }; const linkifyText = hooks.useMemo(() => { const urlRegex = /(https?:\/\/[^\s]+)/g; return (text) => { const parts = text.split(urlRegex); return parts.map((part, index2) => { if (part.match(urlRegex)) { return u( "a", { href: part, target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline break-all", children: part }, index2 ); } return part; }); }; }, []); const checkMonetizationAsync = async (urlOrId) => { if (lastMonetizationCheckRef.current === urlOrId) { return; } lastMonetizationCheckRef.current = urlOrId; try { const url = urlOrId.startsWith("http") ? urlOrId : `https://www.youtube.com/channel/${urlOrId}`; const monetizationResponse = await fetch( `https://tubeinsights.exyezed.cc/api/monetization?url=${encodeURIComponent( url )}` ); if (monetizationResponse.ok) { const monetizationData = await monetizationResponse.json(); const isMonetized = monetizationData.monetization || false; setMonetization(isMonetized); if (isMonetized) { playMonetizedSound(); } else { playNotMonetizedSound(); } } else { setMonetization(null); } } catch (err) { console.error("Failed to check monetization:", err); setMonetization(null); lastMonetizationCheckRef.current = null; } }; const fetchChannelData = async (id) => { setLoading(true); setMonetization(null); try { const response = await fetch( `https://tubeinsights.exyezed.cc/api/channels/${id}` ); if (!response.ok) throw new Error("Failed to fetch channel info"); const data = await response.json(); if (data && data.items && data.items.length > 0) { const item = data.items[0]; const snippet = item.snippet; const brandingSettings = item.brandingSettings; const statistics = item.statistics; const bannerUrl = brandingSettings?.image?.bannerExternalUrl; const info = { channelId: item.id, title: snippet.title, description: snippet.description, publishedAt: snippet.publishedAt, thumbnails: snippet.thumbnails, customUrl: snippet.customUrl, country: snippet.country, keywords: brandingSettings?.channel?.keywords?.split(" ") || [], bannerExternalUrl: bannerUrl ? `${bannerUrl}=s1600` : void 0, viewCount: statistics.viewCount, subscriberCount: statistics.subscriberCount, videoCount: statistics.videoCount, topicDetails: item.topicDetails }; setChannelInfo(info); setLoading(false); checkMonetizationAsync(item.id); } } catch (err) { console.error("Failed to fetch channel info:", err); setLoading(false); } }; const fetchVideoData = async (id) => { setLoading(true); setMonetization(null); setDislikes(0); try { const response = await fetch( `https://tubeinsights.exyezed.cc/api/videos/${id}` ); if (!response.ok) throw new Error("Failed to fetch video info"); const data = await response.json(); if (data && data.items && data.items.length > 0) { const item = data.items[0]; const snippet = item.snippet; const contentDetails = item.contentDetails; const statistics = item.statistics; const status = item.status; let channelCountry; try { const channelResponse = await fetch( `https://tubeinsights.exyezed.cc/api/channels/${snippet.channelId}` ); if (channelResponse.ok) { const channelData = await channelResponse.json(); if (channelData && channelData.items && channelData.items.length > 0) { channelCountry = channelData.items[0].snippet.country; } } } catch { } const info = { videoId: item.id, title: snippet.title, description: snippet.description, publishedAt: snippet.publishedAt, thumbnails: snippet.thumbnails, channelTitle: snippet.channelTitle, channelId: snippet.channelId, categoryId: snippet.categoryId, duration: contentDetails.duration, viewCount: statistics.viewCount || "0", likeCount: statistics.likeCount || "0", commentCount: statistics.commentCount || "0", madeForKids: status.madeForKids || false, tags: snippet.tags || [], isLive: snippet.liveBroadcastContent === "live", channelCountry }; setVideoInfo(info); setLoading(false); try { const dislikeResponse = await fetch( `https://returnyoutubedislikeapi.com/votes?videoId=${id}` ); if (dislikeResponse.ok) { const dislikeData = await dislikeResponse.json(); setDislikes(dislikeData.dislikes || 0); } } catch { setDislikes(0); } const videoUrl = `https://www.youtube.com/watch?v=${item.id}`; checkMonetizationAsync(videoUrl); } } catch (err) { console.error("Failed to fetch video info:", err); setLoading(false); } }; const loadChannelInfo = async () => { if (activeTab.value !== "insights" || !isPanelVisible.value) { return; } if (isVideoPage()) { const vId = youtubeService.getVideoIdFromURL(); if (vId !== videoId) { setVideoId(vId); setChannelId(null); setChannelHandle(null); setChannelInfo(null); setVideoInfo(null); setMonetization(null); lastMonetizationCheckRef.current = null; if (vId) { await fetchVideoData(vId); } } return; } if (!isChannelPage()) { setChannelId(null); setChannelHandle(null); setChannelInfo(null); setVideoId(null); setVideoInfo(null); setMonetization(null); lastMonetizationCheckRef.current = null; return; } const id = await youtubeService.getChannelId(); const handle = youtubeService.getChannelHandle(); if (id !== channelId) { setChannelId(id); setChannelHandle(handle); setVideoId(null); setVideoInfo(null); setMonetization(null); lastMonetizationCheckRef.current = null; setTabs([ { type: "videos", label: "Videos", count: 0, isLoading: false }, { type: "shorts", label: "Shorts", count: 0, isLoading: false }, { type: "live", label: "Live", count: 0, isLoading: false } ]); if (id) { await fetchChannelData(id); } } }; const loadTabCounts = async () => { if (!channelId) return; setTabs((prev) => prev.map((t) => ({ ...t, isLoading: true }))); await Promise.all( tabs.map(async (tab) => { const count = await youtubeService.fetchTabCount( tab.type, (currentCount, hasMore) => { setTabs( (prev) => prev.map( (t) => t.type === tab.type ? { ...t, count: currentCount, isLoading: hasMore } : t ) ); } ); setTabs( (prev) => prev.map( (t) => t.type === tab.type ? { ...t, count, isLoading: false } : t ) ); }) ); }; hooks.useEffect(() => { if (activeTab.value !== "insights") { return; } loadChannelInfo(); const checkUrlChange = () => { const currentHandle = youtubeService.getChannelHandleFromURL(); const currentVideoId = youtubeService.getVideoIdFromURL(); if (currentHandle !== channelHandle || currentVideoId !== videoId) { youtubeService.clearCache(); loadChannelInfo(); } }; const intervalId = setInterval(checkUrlChange, 1e3); return () => clearInterval(intervalId); }, [channelHandle, videoId, activeTab.value]); hooks.useEffect(() => { if (channelId && activeTab.value === "insights") { const hasLoadedCounts = tabs.some((tab) => tab.count > 0); if (!hasLoadedCounts) { loadTabCounts(); } } }, [channelId, activeTab.value]); if (!isChannelPage() && !isVideoPage()) { return u("div", { className: "text-center py-8", children: u("p", { className: "text-xl opacity-60", children: "Navigate to a YouTube channel or video page to see insights" }) }); } if (loading && !channelInfo && !videoInfo) { return u("div", { className: "text-center py-8", children: u("span", { className: "loading loading-spinner loading-lg" }) }); } return u("div", { className: "space-y-4", children: [ videoInfo && u(preact.Fragment, { children: [ youtubeService.isVideoPage() && window.location.pathname.startsWith("/shorts/") ? u("div", { className: "grid grid-cols-2 gap-2", children: ["oardefault", "oar1", "oar2", "oar3"].map((quality) => u( "a", { href: `https://i.ytimg.com/vi/${videoInfo.videoId}/${quality}.jpg`, target: "_blank", rel: "noopener noreferrer", className: "rounded-lg overflow-hidden hover:opacity-80 transition-opacity", style: { aspectRatio: "9/16" }, children: u( "img", { src: `https://i.ytimg.com/vi/${videoInfo.videoId}/${quality}.jpg`, alt: `${videoInfo.title} - ${quality}`, className: "w-full h-full object-cover" } ) }, quality )) }) : u( "a", { href: `https://i.ytimg.com/vi/${videoInfo.videoId}/maxresdefault.jpg`, target: "_blank", rel: "noopener noreferrer", className: "block aspect-video rounded-lg overflow-hidden hover:opacity-80 transition-opacity cursor-pointer", children: u( "img", { src: videoInfo.thumbnails?.high?.url || videoInfo.thumbnails?.medium?.url, alt: videoInfo.title, className: "w-full h-full object-cover" } ) } ), u("div", { children: [ u("h2", { className: "text-xl font-semibold mb-2", children: videoInfo.title }), u("div", { className: "text-xl opacity-60", children: [ "Title Length: ", videoInfo.title.length, " characters" ] }) ] }), u("div", { children: [ u("div", { className: "flex items-center justify-between gap-2", children: [ u( "a", { href: `https://www.youtube.com/channel/${videoInfo.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "text-primary text-xl hover:underline font-semibold", children: videoInfo.channelTitle } ), u( "a", { href: `https://tubeinsights.exyezed.cc/info/direct/${window.location.pathname.startsWith("/shorts/") ? "shorts" : "video"}/${videoInfo.videoId}`, target: "_blank", rel: "noopener noreferrer", className: "btn btn-secondary btn-square", children: u(IconInfoCircle, { className: "size-[1.8em]" }) } ) ] }), u( "a", { href: `https://www.youtube.com/watch?v=${videoInfo.videoId}`, target: "_blank", rel: "noopener noreferrer", className: "text-xl text-secondary font-mono hover:underline block", children: videoInfo.videoId } ) ] }), videoInfo.channelCountry && u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Country" }), u("div", { className: "flex items-center gap-3", children: [ u(CountryFlag, { countryCode: videoInfo.channelCountry, size: "md" }), u("span", { className: "text-xl", children: countryNames[videoInfo.channelCountry] || videoInfo.channelCountry }) ] }) ] }), u("div", { className: "space-y-4", children: [ u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconEye, { className: "w-8 h-8 text-primary" }), u("div", { className: "text-xl opacity-60", children: "Views" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-primary", children: formatNumber(parseInt(videoInfo.viewCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(videoInfo.viewCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconThumbUp, { className: "w-8 h-8 text-success" }), u("div", { className: "text-xl opacity-60", children: "Likes" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-success", children: formatNumber(parseInt(videoInfo.likeCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(videoInfo.likeCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconThumbDown, { className: "w-8 h-8 text-error" }), u("div", { className: "text-xl opacity-60", children: "Dislikes" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-error", children: formatNumber(dislikes) }), u("div", { className: "text-xl opacity-60", children: dislikes.toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconMessage, { className: "w-8 h-8 text-info" }), u("div", { className: "text-xl opacity-60", children: "Comments" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-info", children: formatNumber(parseInt(videoInfo.commentCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(videoInfo.commentCount).toLocaleString() }) ] }) ] }) }) ] }), u("div", { className: "space-y-4", children: [ u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "flex items-center gap-3 mb-2", children: [ u(IconClock, { className: "w-8 h-8 text-secondary" }), u("div", { className: "text-xl opacity-60", children: "Duration" }) ] }), u("div", { className: "text-2xl font-semibold text-secondary mb-2", children: formatDuration(videoInfo.duration) }), u("div", { className: "text-xl opacity-60", children: [ "Uploaded", " ", dayjs(videoInfo.publishedAt).format("MMM D, YYYY • HH:mm:ss") ] }), u("div", { className: "text-xl text-secondary", children: [ calculateAge(videoInfo.publishedAt), " ago" ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "flex items-center gap-3 mb-2", children: [ u(IconCategory, { className: "w-8 h-8 text-accent" }), u("div", { className: "text-xl opacity-60", children: "Category" }) ] }), u("div", { className: "text-2xl text-accent", children: CATEGORY_MAP[videoInfo.categoryId] || "Unknown" }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( IconBabyCarriage, { className: `w-8 h-8 ${videoInfo.madeForKids ? "text-success" : "text-error"}` } ), u("div", { className: "text-xl opacity-60", children: "Made for Kids" }) ] }), u("div", { className: "text-right", children: videoInfo.madeForKids ? u("div", { className: "flex items-center gap-2", children: [ u(IconCircleCheck, { className: "w-6 h-6 text-success" }), u("span", { className: "text-success font-semibold text-xl", children: "Yes" }) ] }) : u("div", { className: "flex items-center gap-2", children: [ u(IconCircleX, { className: "w-6 h-6 text-error" }), u("span", { className: "text-error font-semibold text-xl", children: "No" }) ] }) }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( IconCurrencyDollar, { className: `w-8 h-8 ${monetization === null ? "text-base-content opacity-60" : monetization ? "text-success" : "text-error"}` } ), u("div", { className: "text-xl opacity-60", children: "Monetization" }) ] }), u("div", { className: "text-right", children: monetization === null ? u("span", { className: "loading loading-spinner loading-sm" }) : monetization ? u("div", { className: "flex items-center gap-2", children: [ u(IconCircleCheck, { className: "w-6 h-6 text-success" }), u("span", { className: "text-success font-semibold text-xl", children: "Enabled" }) ] }) : u("div", { className: "flex items-center gap-2", children: [ u(IconCircleX, { className: "w-6 h-6 text-error" }), u("span", { className: "text-error font-semibold text-xl", children: "Disabled" }) ] }) }) ] }) }) ] }), videoInfo.tags && videoInfo.tags.length > 0 && u("div", { className: "collapse collapse-arrow bg-base-200", children: [ u("input", { type: "checkbox" }), u("div", { className: "collapse-title text-xl", children: "Keywords" }), u("div", { className: "collapse-content", children: u("div", { className: "flex items-start justify-between mb-3", children: [ u("div", { className: "flex flex-wrap gap-2 flex-1", children: videoInfo.tags.map((tag, idx) => u( "span", { className: "badge badge-primary badge-soft badge-xl", children: tag }, idx )) }), u( "button", { onClick: () => { navigator.clipboard.writeText(videoInfo.tags.join(", ")); setCopiedKeywords(true); setTimeout(() => setCopiedKeywords(false), 500); }, className: "btn btn-square ml-3 shrink-0", children: copiedKeywords ? u(IconCircleCheck, { className: "size-[1.8em] text-success" }) : u(IconCopy, { className: "size-[1.8em]" }) } ) ] }) }) ] }), videoInfo.description && u("div", { className: "collapse collapse-arrow bg-base-200", children: [ u("input", { type: "checkbox" }), u("div", { className: "collapse-title text-xl", children: "Description" }), u("div", { className: "collapse-content", children: u("div", { className: "flex items-start justify-between gap-3 mb-3", children: [ u("p", { className: "text-xl whitespace-pre-wrap opacity-80 flex-1", children: linkifyText(videoInfo.description) }), u( "button", { onClick: () => { navigator.clipboard.writeText(videoInfo.description); setCopiedDescription(true); setTimeout(() => setCopiedDescription(false), 500); }, className: "btn btn-square shrink-0", children: copiedDescription ? u(IconCircleCheck, { className: "size-[1.8em] text-success" }) : u(IconCopy, { className: "size-[1.8em]" }) } ) ] }) }) ] }) ] }), channelInfo && u(preact.Fragment, { children: [ channelInfo.bannerExternalUrl && u( "a", { href: channelInfo.bannerExternalUrl.replace(/=s\d+$/, "=s0"), target: "_blank", rel: "noopener noreferrer", className: "block h-32 overflow-hidden rounded-lg hover:opacity-80 transition-opacity cursor-pointer", children: u( "img", { src: channelInfo.bannerExternalUrl, alt: "Channel Banner", className: "w-full h-full object-cover" } ) } ), u("div", { className: "flex items-center gap-4", children: [ channelInfo.thumbnails?.high?.url && u( "a", { href: channelInfo.thumbnails.high.url.replace(/=s\d+/, "=s0"), target: "_blank", rel: "noopener noreferrer", className: "avatar hover:opacity-80 transition-opacity cursor-pointer", children: u("div", { className: "w-16 rounded-full", children: u( "img", { src: channelInfo.thumbnails.high.url, alt: channelInfo.title } ) }) } ), u("div", { className: "flex-1", children: [ u("div", { className: "flex items-center justify-between gap-2", children: [ u("h2", { className: "text-xl font-semibold", children: channelInfo.title }), u("div", { className: "flex gap-2 shrink-0", children: [ u( "button", { className: "btn btn-accent btn-square", onClick: () => { openSaveChannelDialog({ channelId: channelInfo.channelId, title: channelInfo.title, customUrl: channelInfo.customUrl, thumbnailUrl: channelInfo.thumbnails?.high?.url || "", country: channelInfo.country, subscriberCount: channelInfo.subscriberCount, videoCount: channelInfo.videoCount, viewCount: channelInfo.viewCount }); }, children: u(IconDeviceFloppy, { className: "size-[1.8em]" }) } ), u( "a", { href: `https://tubeinsights.exyezed.cc/info/direct/channel/${channelInfo.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "btn btn-secondary btn-square", children: u(IconInfoCircle, { className: "size-[1.8em]" }) } ) ] }) ] }), channelInfo.customUrl && u( "a", { href: `https://www.youtube.com/${channelInfo.customUrl}`, target: "_blank", rel: "noopener noreferrer", className: "text-primary text-xl hover:underline", children: channelInfo.customUrl } ), u( "a", { href: `https://www.youtube.com/channel/${channelInfo.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "text-xl text-secondary font-mono hover:underline block", children: channelInfo.channelId } ) ] }) ] }), u("div", { className: "space-y-4", children: [ u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Country" }), u("div", { className: "flex items-center gap-3", children: [ channelInfo.country && u(CountryFlag, { countryCode: channelInfo.country, size: "md" }), u("span", { className: "text-xl", children: channelInfo.country ? countryNames[channelInfo.country] || channelInfo.country : "-" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Created" }), u("div", { className: "text-xl", children: [ u("span", { className: "text-primary", children: dayjs(channelInfo.publishedAt).format( "MMM D, YYYY • HH:mm:ss" ) }), u("span", { className: "text-secondary ml-2", children: [ "(", calculateAge(channelInfo.publishedAt), " ago)" ] }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( IconCurrencyDollar, { className: `w-8 h-8 ${monetization === null ? "text-base-content opacity-60" : monetization ? "text-success" : "text-error"}` } ), u("div", { className: "text-xl opacity-60", children: "Monetization" }) ] }), u("div", { className: "text-right", children: monetization === null ? u("span", { className: "loading loading-spinner loading-sm" }) : monetization ? u("div", { className: "flex items-center gap-2", children: [ u(IconCircleCheck, { className: "w-6 h-6 text-success" }), u("span", { className: "text-success font-semibold text-xl", children: "Enabled" }) ] }) : u("div", { className: "flex items-center gap-2", children: [ u(IconCircleX, { className: "w-6 h-6 text-error" }), u("span", { className: "text-error font-semibold text-xl", children: "Disabled" }) ] }) }) ] }) }) ] }), u("div", { className: "space-y-4", children: [ u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconUsers, { className: "w-8 h-8 text-primary" }), u("div", { className: "text-xl opacity-60", children: "Subscribers" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-primary", children: formatNumber(parseInt(channelInfo.subscriberCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(channelInfo.subscriberCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconVideo, { className: "w-8 h-8 text-secondary" }), u("div", { className: "text-xl opacity-60", children: "Total Videos" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-secondary", children: formatNumber(parseInt(channelInfo.videoCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(channelInfo.videoCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconEye, { className: "w-8 h-8 text-accent" }), u("div", { className: "text-xl opacity-60", children: "Total Views" }) ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-accent", children: formatNumber(parseInt(channelInfo.viewCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(channelInfo.viewCount).toLocaleString() }) ] }) ] }) }) ] }), channelInfo.keywords && channelInfo.keywords.length > 0 && u("div", { className: "collapse collapse-arrow bg-base-200", children: [ u("input", { type: "checkbox" }), u("div", { className: "collapse-title text-xl", children: "Keywords" }), u("div", { className: "collapse-content", children: u("div", { className: "flex items-start justify-between mb-3", children: [ u("div", { className: "flex flex-wrap gap-2 flex-1", children: channelInfo.keywords.map((keyword, idx) => u( "span", { className: "badge badge-primary badge-soft badge-xl", children: keyword }, idx )) }), u( "button", { onClick: () => { navigator.clipboard.writeText( channelInfo.keywords.join(", ") ); setCopiedKeywords(true); setTimeout(() => setCopiedKeywords(false), 500); }, className: "btn btn-square ml-3 shrink-0", children: copiedKeywords ? u(IconCircleCheck, { className: "size-[1.8em] text-success" }) : u(IconCopy, { className: "size-[1.8em]" }) } ) ] }) }) ] }), channelInfo.topicDetails?.topicCategories && channelInfo.topicDetails.topicCategories.length > 0 && u("div", { className: "collapse collapse-arrow bg-base-200", children: [ u("input", { type: "checkbox" }), u("div", { className: "collapse-title text-xl", children: "Topics" }), u("div", { className: "collapse-content", children: u("div", { className: "flex items-start justify-between mb-3", children: [ u("div", { className: "flex flex-wrap gap-2 flex-1", children: channelInfo.topicDetails.topicCategories.map( (topic, idx) => u( "span", { className: "badge badge-secondary badge-soft badge-xl", children: topic.replace( "https://en.wikipedia.org/wiki/", "" ) }, idx ) ) }), u( "button", { onClick: () => { navigator.clipboard.writeText( channelInfo.topicDetails.topicCategories.map( (t) => t.replace("https://en.wikipedia.org/wiki/", "") ).join(", ") ); setCopiedTopics(true); setTimeout(() => setCopiedTopics(false), 500); }, className: "btn btn-square ml-3 shrink-0", children: copiedTopics ? u(IconCircleCheck, { className: "size-[1.8em] text-success" }) : u(IconCopy, { className: "size-[1.8em]" }) } ) ] }) }) ] }), channelInfo.description && u("div", { className: "collapse collapse-arrow bg-base-200", children: [ u("input", { type: "checkbox" }), u("div", { className: "collapse-title text-xl", children: "Description" }), u("div", { className: "collapse-content", children: u("div", { className: "flex items-start justify-between gap-3 mb-3", children: [ u("p", { className: "text-xl whitespace-pre-wrap opacity-80 flex-1", children: linkifyText(channelInfo.description) }), u( "button", { onClick: () => { navigator.clipboard.writeText(channelInfo.description); setCopiedDescription(true); setTimeout(() => setCopiedDescription(false), 500); }, className: "btn btn-square shrink-0", children: copiedDescription ? u(IconCircleCheck, { className: "size-[1.8em] text-success" }) : u(IconCopy, { className: "size-[1.8em]" }) } ) ] }) }) ] }) ] }), channelInfo && !videoInfo && u(preact.Fragment, { children: [ u("div", { className: "space-y-3", children: [ u("h3", { className: "text-xl font-semibold", children: "Video Counts" }), tabs.map((tab) => { const getIcon = () => { switch (tab.type) { case "videos": return IconMovie; case "shorts": return IconDeviceMobile; case "live": return IconAccessPoint; default: return IconVideo; } }; const Icon = getIcon(); return u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( "a", { href: `https://tubeinsights.exyezed.cc/direct/${tab.type}/${channelId}`, target: "_blank", rel: "noopener noreferrer", className: "btn btn-primary btn-square", children: u(Icon, { className: "size-[1.8em]" }) } ), u("span", { className: "text-xl", children: tab.label }) ] }), u("div", { className: "text-right", children: u("span", { className: "text-xl font-semibold", children: tab.count.toLocaleString() }) }) ] }), tab.isLoading && u("div", { className: "mt-2", children: u("progress", { className: "progress progress-primary w-full h-1" }) }) ] }, tab.type); }) ] }), u("div", { className: "bg-primary text-primary-content rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("span", { className: "text-xl", children: "Total Videos" }), u("span", { className: "text-xl font-semibold", children: tabs.reduce((sum, tab) => sum + tab.count, 0).toLocaleString() }) ] }) }) ] }) ] }); } const LIVECOUNTS_API_URL = "https://api.livecounts.io/youtube-live-subscriber-counter/stats/"; const LIVECOUNTS_VIDEO_API_URL = "https://api.livecounts.io/youtube-live-view-counter/stats/"; const BACKEND_API_URL = "https://tubeinsights.exyezed.cc/api/channels/"; const BACKEND_VIDEO_API_URL = "https://tubeinsights.exyezed.cc/api/videos/"; const DISLIKE_API_URL = "https://returnyoutubedislikeapi.com/votes"; async function fetchDislikes(videoId) { try { const response = await fetch(`${DISLIKE_API_URL}?videoId=${videoId}`); if (!response.ok) { return 0; } const data = await response.json(); return data.dislikes || 0; } catch { return 0; } } async function fetchInitialStats(channelId) { try { const response = await fetch(`${BACKEND_API_URL}${channelId}/live-stats`); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); if (!data || !data.status) { return null; } return { liveSubscriber: data.liveSubscriber, liveViews: data.liveViews, liveVideos: data.liveVideos }; } catch (error) { console.error("Failed to fetch initial stats:", error); return null; } } async function fetchRealtimeStats(channelId) { return new Promise((resolve) => { GM_xmlhttpRequest({ method: "GET", url: `${LIVECOUNTS_API_URL}${channelId}`, headers: { Origin: "https://livecounts.io", Referer: "https://livecounts.io/" }, onload: function(response) { if (response.status === 200) { try { const data = JSON.parse(response.responseText); if (!data || typeof data.followerCount === "undefined" || !data.bottomOdos) { resolve(null); return; } resolve({ liveSubscriber: data.followerCount, liveViews: data.bottomOdos[0], liveVideos: data.bottomOdos[1] }); } catch (error) { resolve(null); } } else { resolve(null); } }, onerror: function() { resolve(null); } }); }); } async function fetchInitialVideoStats(videoId) { try { const response = await fetch( `${BACKEND_VIDEO_API_URL}${videoId}/live-stats` ); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); if (!data || !data.status) { return null; } const dislikeCount = await fetchDislikes(videoId); return { liveViews: data.liveViews, liveLikes: data.liveLikes, liveComments: data.liveComments, liveViewer: data.liveViewer || 0, dislikes: dislikeCount }; } catch (error) { console.error("[TubeInsights] Failed to fetch initial video stats:", error); return null; } } async function fetchRealtimeVideoStats(videoId) { return new Promise((resolve) => { GM_xmlhttpRequest({ method: "GET", url: `${LIVECOUNTS_VIDEO_API_URL}${videoId}`, headers: { Origin: "https://livecounts.io", Referer: "https://livecounts.io/" }, onload: async function(response) { if (response.status === 200) { try { const data = JSON.parse( response.responseText ); if (!data || !data.success || typeof data.followerCount === "undefined") { resolve(null); return; } const dislikeCount = await fetchDislikes(videoId); resolve({ liveViews: data.followerCount, liveLikes: data.bottomOdos && data.bottomOdos[0] || 0, liveComments: data.bottomOdos && data.bottomOdos[2] || 0, liveViewer: data.viewerCount || 0, dislikes: dislikeCount }); } catch (error) { console.error( "[TubeInsights] Video LiveCounts parse error:", error ); resolve(null); } } else { resolve(null); } }, onerror: function() { resolve(null); } }); }); } dayjs.extend(relativeTime); function LiveCountTab() { const [channelId, setChannelId] = hooks.useState(null); const [channelInfo, setChannelInfo] = hooks.useState(null); const [liveStats, setLiveStats] = hooks.useState(null); const [videoId, setVideoId] = hooks.useState(null); const [videoInfo, setVideoInfo] = hooks.useState(null); const [videoLiveStats, setVideoLiveStats] = hooks.useState( null ); const [monetization, setMonetization] = hooks.useState(null); const [loading, setLoading] = hooks.useState(false); const [diffs, setDiffs] = hooks.useState({}); const [videoDiffs, setVideoDiffs] = hooks.useState({}); const [realtimeStatus, setRealtimeStatus] = hooks.useState("loading"); const [, setChartData] = hooks.useState({ subscribers: [], views: [], videos: [], timestamps: [] }); const [, setVideoChartData] = hooks.useState({ views: [], likes: [], dislikes: [], comments: [], viewers: [], timestamps: [] }); const intervalRef = hooks.useRef(null); const prevStatsRef = hooks.useRef(null); const prevVideoStatsRef = hooks.useRef(null); const lastMonetizationCheckRef = hooks.useRef(null); const errorCountRef = hooks.useRef(0); const isFetchingRef = hooks.useRef(false); const calculateAge = (publishedAt) => { const now = dayjs(); const published = dayjs(publishedAt); const years = now.diff(published, "year"); const months = now.diff(published, "month") % 12; const days = now.diff(published, "day") % 30; const parts = []; if (years > 0) parts.push(`${years} yr`); if (months > 0) parts.push(`${months} mo`); if (days > 0 && years === 0) parts.push(`${days} d`); return parts.join(" ") || "0 d"; }; const isVideoPage = () => { const path = window.location.pathname; return path.startsWith("/watch") || path.startsWith("/shorts/"); }; const getVideoIdFromURL = () => { const path = window.location.pathname; const search = window.location.search; if (path.startsWith("/watch")) { const params = new URLSearchParams(search); const videoId2 = params.get("v"); return videoId2 !== null ? videoId2 : null; } if (path.startsWith("/shorts/")) { const match = path.match(/\/shorts\/([^\/\?]+)/); return match && match[1] ? match[1] : null; } return null; }; const checkMonetizationAsync = async (urlOrId) => { if (lastMonetizationCheckRef.current === urlOrId) { return; } lastMonetizationCheckRef.current = urlOrId; try { const url = urlOrId.startsWith("http") ? urlOrId : `https://www.youtube.com/channel/${urlOrId}`; const monetizationResponse = await fetch( `https://tubeinsights.exyezed.cc/api/monetization?url=${encodeURIComponent( url )}` ); if (monetizationResponse.ok) { const monetizationData = await monetizationResponse.json(); const isMonetized = monetizationData.monetization || false; setMonetization(isMonetized); if (isMonetized) { playMonetizedSound(); } else { playNotMonetizedSound(); } } else { setMonetization(null); } } catch (err) { console.error("Failed to check monetization:", err); setMonetization(null); lastMonetizationCheckRef.current = null; } }; const fetchLiveStats = async (id, isInitial = false) => { try { let newStats = null; if (isInitial) { setRealtimeStatus("loading"); errorCountRef.current = 0; newStats = await fetchInitialStats(id); } else { newStats = await fetchRealtimeStats(id); } if (newStats) { const timestamp = dayjs().format("HH:mm:ss"); setLiveStats(newStats); setRealtimeStatus("success"); errorCountRef.current = 0; if (prevStatsRef.current) { const newDiffs = { liveSubscriber: newStats.liveSubscriber - prevStatsRef.current.liveSubscriber, liveViews: newStats.liveViews - prevStatsRef.current.liveViews, liveVideos: newStats.liveVideos - prevStatsRef.current.liveVideos }; setDiffs(newDiffs); } prevStatsRef.current = newStats; setChartData((prev) => ({ subscribers: [...prev.subscribers, newStats.liveSubscriber].slice( -30 ), views: [...prev.views, newStats.liveViews].slice(-30), videos: [...prev.videos, newStats.liveVideos].slice(-30), timestamps: [...prev.timestamps, timestamp].slice(-30) })); } else { if (!isInitial) { errorCountRef.current++; setRealtimeStatus("error"); if (errorCountRef.current >= 5 && intervalRef.current) { console.warn("Too many errors, stopping realtime updates"); clearInterval(intervalRef.current); intervalRef.current = null; } } } } catch (err) { console.error("Failed to fetch live stats:", err); if (!isInitial) { errorCountRef.current++; setRealtimeStatus("error"); if (errorCountRef.current >= 5 && intervalRef.current) { console.warn("Too many errors, stopping realtime updates"); clearInterval(intervalRef.current); intervalRef.current = null; } } } }; const fetchVideoLiveStats = async (id, isInitial = false) => { try { let newStats = null; if (isInitial) { setRealtimeStatus("loading"); errorCountRef.current = 0; newStats = await fetchInitialVideoStats(id); } else { newStats = await fetchRealtimeVideoStats(id); } if (newStats) { const timestamp = dayjs().format("HH:mm:ss"); setVideoLiveStats(newStats); setRealtimeStatus("success"); errorCountRef.current = 0; if (prevVideoStatsRef.current) { const newDiffs = { liveViews: newStats.liveViews - prevVideoStatsRef.current.liveViews, liveLikes: newStats.liveLikes - prevVideoStatsRef.current.liveLikes, liveComments: newStats.liveComments - prevVideoStatsRef.current.liveComments, liveViewer: newStats.liveViewer - prevVideoStatsRef.current.liveViewer, dislikes: newStats.dislikes - prevVideoStatsRef.current.dislikes }; setVideoDiffs(newDiffs); } prevVideoStatsRef.current = newStats; setVideoChartData((prev) => ({ views: [...prev.views, newStats.liveViews].slice(-30), likes: [...prev.likes, newStats.liveLikes].slice(-30), dislikes: [...prev.dislikes, newStats.dislikes].slice(-30), comments: [...prev.comments, newStats.liveComments].slice(-30), viewers: [...prev.viewers, newStats.liveViewer].slice(-30), timestamps: [...prev.timestamps, timestamp].slice(-30) })); } else { if (!isInitial) { errorCountRef.current++; setRealtimeStatus("error"); if (errorCountRef.current >= 5 && intervalRef.current) { console.warn("Too many errors, stopping realtime updates"); clearInterval(intervalRef.current); intervalRef.current = null; } } } } catch (err) { console.error("Failed to fetch video live stats:", err); if (!isInitial) { errorCountRef.current++; setRealtimeStatus("error"); if (errorCountRef.current >= 5 && intervalRef.current) { console.warn("Too many errors, stopping realtime updates"); clearInterval(intervalRef.current); intervalRef.current = null; } } } }; const fetchVideoData = async (id) => { setLoading(true); setMonetization(null); setVideoLiveStats(null); setVideoInfo(null); setVideoDiffs({}); setVideoChartData({ views: [], likes: [], dislikes: [], comments: [], viewers: [], timestamps: [] }); prevVideoStatsRef.current = null; if (intervalRef.current) { clearInterval(intervalRef.current); } try { const response = await fetch( `https://tubeinsights.exyezed.cc/api/videos/${id}` ); if (!response.ok) throw new Error("Failed to fetch video info"); const data = await response.json(); if (data && data.items && data.items.length > 0) { const item = data.items[0]; let channelCountry; try { const channelResponse = await fetch( `https://tubeinsights.exyezed.cc/api/channels/${item.snippet.channelId}` ); if (channelResponse.ok) { const channelData = await channelResponse.json(); if (channelData && channelData.items && channelData.items.length > 0) { channelCountry = channelData.items[0].snippet.country; } } } catch { } const info = { videoId: item.id, title: item.snippet.title, thumbnails: item.snippet.thumbnails, channelTitle: item.snippet.channelTitle, channelId: item.snippet.channelId, duration: item.contentDetails?.duration, categoryId: item.snippet.categoryId, madeForKids: item.status?.madeForKids || false, publishedAt: item.snippet.publishedAt, isLive: item.snippet.liveBroadcastContent === "live", channelCountry }; setVideoInfo(info); setLoading(false); await fetchVideoLiveStats(item.id, true); startVideoPolling(item.id); const videoUrl = `https://www.youtube.com/watch?v=${item.id}`; checkMonetizationAsync(videoUrl); } } catch (err) { console.error("Failed to fetch video data:", err); setLoading(false); } }; const fetchChannelData = async (id) => { setLoading(true); setMonetization(null); setLiveStats(null); setChannelInfo(null); setDiffs({}); setChartData({ subscribers: [], views: [], videos: [], timestamps: [] }); prevStatsRef.current = null; if (intervalRef.current) { clearInterval(intervalRef.current); } try { const response = await fetch( `https://tubeinsights.exyezed.cc/api/channels/${id}` ); if (!response.ok) throw new Error("Failed to fetch channel info"); const data = await response.json(); if (data && data.items && data.items.length > 0) { const item = data.items[0]; const snippet = item.snippet; const brandingSettings = item.brandingSettings; const bannerUrl = brandingSettings?.image?.bannerExternalUrl; const info = { channelId: item.id, title: snippet.title, description: snippet.description, publishedAt: snippet.publishedAt, thumbnails: snippet.thumbnails, customUrl: snippet.customUrl, country: snippet.country, bannerExternalUrl: bannerUrl ? `${bannerUrl}=s1600` : void 0 }; setChannelInfo(info); setLoading(false); await fetchLiveStats(item.id, true); startPolling(item.id); checkMonetizationAsync(item.id); } } catch (err) { console.error("Failed to fetch channel data:", err); setLoading(false); } }; const isChannelPage = () => { const path = window.location.pathname; return path.startsWith("/@") || path.startsWith("/channel/"); }; const getChannelIdFromURL = async () => { const path = window.location.pathname; if (path.startsWith("/channel/")) { return path.split("/")[2] || null; } if (path.startsWith("/@")) { try { const response = await fetch(`https://www.youtube.com${path}`); const html = await response.text(); const match = html.match(/"channelId":"(UC[\w-]+)"/); if (match && match[1]) return match[1]; } catch (err) { console.error("Failed to get channel ID from handle:", err); } } return null; }; const startPolling = (id) => { if (intervalRef.current) { clearInterval(intervalRef.current); } intervalRef.current = window.setInterval(() => { fetchLiveStats(id); }, 2e3); }; const startVideoPolling = (id) => { if (intervalRef.current) { clearInterval(intervalRef.current); } intervalRef.current = window.setInterval(() => { fetchVideoLiveStats(id); }, 2e3); }; const loadChannelData = async () => { if (activeTab.value !== "livecount" || !isPanelVisible.value) { if (intervalRef.current) { clearInterval(intervalRef.current); intervalRef.current = null; } return; } if (isFetchingRef.current) { return; } if (isVideoPage()) { const vId = getVideoIdFromURL(); if (vId !== videoId) { isFetchingRef.current = true; setVideoId(vId); setChannelId(null); setChannelInfo(null); setLiveStats(null); setVideoInfo(null); setVideoLiveStats(null); setMonetization(null); lastMonetizationCheckRef.current = null; if (vId) { await fetchVideoData(vId); } isFetchingRef.current = false; } else if (vId && !intervalRef.current && videoInfo) { startVideoPolling(vId); } return; } if (!isChannelPage()) { setChannelId(null); setChannelInfo(null); setLiveStats(null); setVideoId(null); setVideoInfo(null); setVideoLiveStats(null); setMonetization(null); lastMonetizationCheckRef.current = null; if (intervalRef.current) { clearInterval(intervalRef.current); } return; } const id = await getChannelIdFromURL(); if (id !== channelId) { isFetchingRef.current = true; setChannelId(id); setVideoId(null); setVideoInfo(null); setVideoLiveStats(null); lastMonetizationCheckRef.current = null; if (id) { await fetchChannelData(id); } isFetchingRef.current = false; } else if (id && !intervalRef.current && channelInfo) { startPolling(id); } }; hooks.useEffect(() => { if (activeTab.value !== "livecount" || !isPanelVisible.value) { if (intervalRef.current) { clearInterval(intervalRef.current); intervalRef.current = null; } return; } loadChannelData(); const checkUrlChange = () => { loadChannelData(); }; const intervalId = setInterval(checkUrlChange, 1e3); return () => { clearInterval(intervalId); if (intervalRef.current) { clearInterval(intervalRef.current); } }; }, [channelId, videoId, activeTab.value, isPanelVisible.value]); const renderDiff = (key) => { const diff = diffs[key]; if (!diff || diff === 0) return null; const isPositive = diff > 0; return u( "div", { className: `flex items-center gap-1 text-xl font-semibold ${isPositive ? "text-success" : "text-error"}`, children: [ isPositive ? u(IconTrendingUp, { className: "w-6 h-6" }) : u(IconTrendingDown, { className: "w-6 h-6" }), isPositive ? "+" : "", formatNumber(Math.abs(diff)) ] } ); }; const renderVideoDiff = (key) => { const diff = videoDiffs[key]; if (!diff || diff === 0) return null; const isPositive = diff > 0; return u( "div", { className: `flex items-center gap-1 text-xl font-semibold ${isPositive ? "text-success" : "text-error"}`, children: [ isPositive ? u(IconTrendingUp, { className: "w-6 h-6" }) : u(IconTrendingDown, { className: "w-6 h-6" }), isPositive ? "+" : "", formatNumber(Math.abs(diff)) ] } ); }; if (!isChannelPage() && !isVideoPage()) { return u("div", { className: "text-center py-8", children: u("p", { className: "text-xl opacity-60", children: "Navigate to a YouTube channel or video page to see live count" }) }); } if (loading && !channelInfo && !videoInfo) { return u("div", { className: "text-center py-8", children: u("span", { className: "loading loading-spinner loading-lg" }) }); } return u("div", { className: "space-y-4", children: [ videoInfo && videoLiveStats && u(preact.Fragment, { children: [ window.location.pathname.startsWith("/shorts/") ? u("div", { className: "grid grid-cols-2 gap-2", children: ["oardefault", "oar1", "oar2", "oar3"].map((quality) => u( "a", { href: `https://i.ytimg.com/vi/${videoInfo.videoId}/${quality}.jpg`, target: "_blank", rel: "noopener noreferrer", className: "rounded-lg overflow-hidden hover:opacity-80 transition-opacity", style: { aspectRatio: "9/16" }, children: u( "img", { src: `https://i.ytimg.com/vi/${videoInfo.videoId}/${quality}.jpg`, alt: `${videoInfo.title} - ${quality}`, className: "w-full h-full object-cover" } ) }, quality )) }) : u( "a", { href: `https://i.ytimg.com/vi/${videoInfo.videoId}/maxresdefault.jpg`, target: "_blank", rel: "noopener noreferrer", className: "block aspect-video rounded-lg overflow-hidden hover:opacity-80 transition-opacity cursor-pointer", children: u( "img", { src: videoInfo.thumbnails?.high?.url || videoInfo.thumbnails?.medium?.url, alt: videoInfo.title, className: "w-full h-full object-cover" } ) } ), u("div", { children: [ u("h2", { className: "text-xl font-semibold mb-2", children: videoInfo.title }), u("div", { className: "text-xl opacity-60", children: [ "Title Length: ", videoInfo.title.length, " characters" ] }) ] }), u("div", { children: [ u("div", { className: "flex items-center gap-2", children: u( "a", { href: `https://www.youtube.com/channel/${videoInfo.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "text-primary text-xl hover:underline font-semibold", children: videoInfo.channelTitle } ) }), u( "a", { href: `https://www.youtube.com/watch?v=${videoInfo.videoId}`, target: "_blank", rel: "noopener noreferrer", className: "text-xl text-secondary font-mono hover:underline block", children: videoInfo.videoId } ) ] }), videoInfo.channelCountry && u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Country" }), u("div", { className: "flex items-center gap-3", children: [ u(CountryFlag, { countryCode: videoInfo.channelCountry, size: "md" }), u("span", { className: "text-xl", children: countryNames[videoInfo.channelCountry] || videoInfo.channelCountry }) ] }) ] }), u("div", { className: "space-y-4", children: u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( IconCurrencyDollar, { className: `w-8 h-8 ${monetization === null ? "text-base-content opacity-60" : monetization ? "text-success" : "text-error"}` } ), u("div", { className: "text-xl opacity-60", children: "Monetization" }) ] }), u("div", { className: "text-right", children: monetization === null ? u("span", { className: "loading loading-spinner loading-sm" }) : monetization ? u("div", { className: "flex items-center gap-2", children: [ u(IconCircleCheck, { className: "w-6 h-6 text-success" }), u("span", { className: "text-success font-semibold text-xl", children: "Enabled" }) ] }) : u("div", { className: "flex items-center gap-2", children: [ u(IconCircleX, { className: "w-6 h-6 text-error" }), u("span", { className: "text-error font-semibold text-xl", children: "Disabled" }) ] }) }) ] }) }) }), u("div", { className: "space-y-4", children: [ u("h3", { className: "text-xl font-semibold", children: "Live Statistics" }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconEye, { className: "w-8 h-8 text-primary absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderVideoDiff("liveViews") }), u("div", { className: "text-5xl font-semibold text-primary", children: formatNumber(videoLiveStats.liveViews) }), u("div", { className: "text-xl opacity-60", children: videoLiveStats.liveViews.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Views" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconUsers, { className: "w-8 h-8 text-secondary absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderVideoDiff("liveViewer") }), u("div", { className: "text-5xl font-semibold text-secondary", children: formatNumber(videoLiveStats.liveViewer) }), u("div", { className: "text-xl opacity-60", children: videoLiveStats.liveViewer.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Viewers" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconThumbUp, { className: "w-8 h-8 text-success absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderVideoDiff("liveLikes") }), u("div", { className: "text-5xl font-semibold text-success", children: formatNumber(videoLiveStats.liveLikes) }), u("div", { className: "text-xl opacity-60", children: videoLiveStats.liveLikes.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Likes" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconThumbDown, { className: "w-8 h-8 text-error absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderVideoDiff("dislikes") }), u("div", { className: "text-5xl font-semibold text-error", children: formatNumber(videoLiveStats.dislikes) }), u("div", { className: "text-xl opacity-60", children: videoLiveStats.dislikes.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Dislikes" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconMessage, { className: "w-8 h-8 text-info absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderVideoDiff("liveComments") }), u("div", { className: "text-5xl font-semibold text-info", children: formatNumber(videoLiveStats.liveComments) }), u("div", { className: "text-xl opacity-60", children: videoLiveStats.liveComments.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Comments" }) ] }) ] }) ] }) ] }), channelInfo && liveStats && u(preact.Fragment, { children: [ channelInfo.bannerExternalUrl && u( "a", { href: channelInfo.bannerExternalUrl.replace(/=s\d+$/, "=s0"), target: "_blank", rel: "noopener noreferrer", className: "block h-32 overflow-hidden rounded-lg hover:opacity-80 transition-opacity cursor-pointer", children: u( "img", { src: channelInfo.bannerExternalUrl, alt: "Channel Banner", className: "w-full h-full object-cover" } ) } ), u("div", { className: "flex items-center gap-4", children: [ channelInfo.thumbnails?.high?.url && u( "a", { href: channelInfo.thumbnails.high.url.replace(/=s\d+/, "=s0"), target: "_blank", rel: "noopener noreferrer", className: "avatar hover:opacity-80 transition-opacity cursor-pointer", children: u("div", { className: "w-16 rounded-full", children: u( "img", { src: channelInfo.thumbnails.high.url, alt: channelInfo.title } ) }) } ), u("div", { className: "flex-1", children: [ u("h2", { className: "text-xl font-semibold", children: channelInfo.title }), channelInfo.customUrl && u( "a", { href: `https://www.youtube.com/${channelInfo.customUrl}`, target: "_blank", rel: "noopener noreferrer", className: "text-primary text-xl hover:underline", children: channelInfo.customUrl } ), u( "a", { href: `https://www.youtube.com/channel/${channelInfo.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "text-xl text-secondary font-mono hover:underline block", children: channelInfo.channelId } ) ] }) ] }), u("div", { className: "space-y-4", children: [ u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Country" }), u("div", { className: "flex items-center gap-3", children: [ channelInfo.country && u(CountryFlag, { countryCode: channelInfo.country, size: "md" }), u("span", { className: "text-xl", children: channelInfo.country ? countryNames[channelInfo.country] || channelInfo.country : "-" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Created" }), u("div", { className: "text-xl", children: [ u("span", { className: "text-primary", children: dayjs(channelInfo.publishedAt).format( "MMM D, YYYY • HH:mm:ss" ) }), u("span", { className: "text-secondary ml-2", children: [ "(", calculateAge(channelInfo.publishedAt), " ago)" ] }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-3", children: [ u( IconCurrencyDollar, { className: `w-8 h-8 ${monetization === null ? "text-base-content opacity-60" : monetization ? "text-success" : "text-error"}` } ), u("div", { className: "text-xl opacity-60", children: "Monetization" }) ] }), u("div", { className: "text-right", children: monetization === null ? u("span", { className: "loading loading-spinner loading-sm" }) : monetization ? u("div", { className: "flex items-center gap-2", children: [ u(IconCircleCheck, { className: "w-6 h-6 text-success" }), u("span", { className: "text-success font-semibold text-xl", children: "Enabled" }) ] }) : u("div", { className: "flex items-center gap-2", children: [ u(IconCircleX, { className: "w-6 h-6 text-error" }), u("span", { className: "text-error font-semibold text-xl", children: "Disabled" }) ] }) }) ] }) }) ] }), u("div", { className: "space-y-4", children: [ u("h3", { className: "text-xl font-semibold", children: "Live Statistics" }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconUsers, { className: "w-8 h-8 text-primary absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderDiff("liveSubscriber") }), u("div", { className: "text-5xl font-semibold text-primary", children: formatNumber(liveStats.liveSubscriber) }), u("div", { className: "text-xl opacity-60", children: liveStats.liveSubscriber.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Subscribers" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconEye, { className: "w-8 h-8 text-secondary absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderDiff("liveViews") }), u("div", { className: "text-5xl font-semibold text-secondary", children: formatNumber(liveStats.liveViews) }), u("div", { className: "text-xl opacity-60", children: liveStats.liveViews.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Views" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-6 relative", children: [ u(IconVideo, { className: "w-8 h-8 text-accent absolute top-4 left-4" }), u("div", { className: "inline-grid *:[grid-area:1/1] absolute top-4 right-4", children: [ u( "div", { className: `status ${realtimeStatus === "success" ? "status-success animate-ping" : realtimeStatus === "error" ? "status-error animate-ping" : "status-warning animate-ping"}` } ), u( "div", { className: `status ${realtimeStatus === "success" ? "status-success" : realtimeStatus === "error" ? "status-error" : "status-warning"}` } ) ] }), u("div", { className: "flex flex-col items-center text-center gap-3", children: [ u("div", { className: "h-6 text-xl", children: renderDiff("liveVideos") }), u("div", { className: "text-5xl font-semibold text-accent", children: formatNumber(liveStats.liveVideos) }), u("div", { className: "text-xl opacity-60", children: liveStats.liveVideos.toLocaleString() }), u("div", { className: "text-xl opacity-60", children: "Live Videos" }) ] }) ] }) ] }) ] }) ] }); } const DB_NAME = "TubeInsightsBookmarks"; const DB_VERSION = 1; const STORE_NAME = "channels"; class BookmarkDB { db = null; async init() { return new Promise((resolve, reject) => { const request = indexedDB.open(DB_NAME, DB_VERSION); request.onerror = () => reject(request.error); request.onsuccess = () => { this.db = request.result; resolve(); }; request.onupgradeneeded = (event) => { const db = event.target.result; if (!db.objectStoreNames.contains(STORE_NAME)) { const store = db.createObjectStore(STORE_NAME, { keyPath: "channelId" }); store.createIndex("category", "category", { unique: false }); store.createIndex("bookmarkedAt", "bookmarkedAt", { unique: false }); } }; }); } async addChannel(channel) { if (!this.db) await this.init(); return new Promise((resolve, reject) => { const transaction = this.db.transaction([STORE_NAME], "readwrite"); const store = transaction.objectStore(STORE_NAME); const request = store.put(channel); request.onsuccess = () => resolve(); request.onerror = () => reject(request.error); }); } async getChannel(channelId) { if (!this.db) await this.init(); return new Promise((resolve, reject) => { const transaction = this.db.transaction([STORE_NAME], "readonly"); const store = transaction.objectStore(STORE_NAME); const request = store.get(channelId); request.onsuccess = () => resolve(request.result || null); request.onerror = () => reject(request.error); }); } async getAllChannels() { if (!this.db) await this.init(); return new Promise((resolve, reject) => { const transaction = this.db.transaction([STORE_NAME], "readonly"); const store = transaction.objectStore(STORE_NAME); const request = store.getAll(); request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); }); } async deleteChannel(channelId) { if (!this.db) await this.init(); return new Promise((resolve, reject) => { const transaction = this.db.transaction([STORE_NAME], "readwrite"); const store = transaction.objectStore(STORE_NAME); const request = store.delete(channelId); request.onsuccess = () => resolve(); request.onerror = () => reject(request.error); }); } async clearAll() { if (!this.db) await this.init(); return new Promise((resolve, reject) => { const transaction = this.db.transaction([STORE_NAME], "readwrite"); const store = transaction.objectStore(STORE_NAME); const request = store.clear(); request.onsuccess = () => resolve(); request.onerror = () => reject(request.error); }); } async getCategories() { const channels = await this.getAllChannels(); const categoryMap = new Map(); channels.forEach((channel) => { const count = categoryMap.get(channel.category) || 0; categoryMap.set(channel.category, count + 1); }); return Array.from(categoryMap.entries()).map(([category, count]) => ({ category, count })).sort((a, b) => a.category.localeCompare(b.category)); } async exportData() { const channels = await this.getAllChannels(); return JSON.stringify(channels, null, 2); } async importData(jsonData) { const channels = JSON.parse(jsonData); for (const channel of channels) { await this.addChannel(channel); } } } const bookmarkDB = new BookmarkDB(); function BookmarkTab() { const [channels, setChannels] = hooks.useState([]); const [filteredChannels, setFilteredChannels] = hooks.useState( [] ); const [categories, setCategories] = hooks.useState([]); const [selectedCategory, setSelectedCategory] = hooks.useState(() => { return localStorage.getItem("bookmark-selected-category") || "all"; }); const [currentPage, setCurrentPage] = hooks.useState(1); const channelsPerPage = 10; const [errorMessage, setErrorMessage] = hooks.useState(""); hooks.useEffect(() => { loadData(); const handleBookmarkUpdate = () => { loadData(); }; window.addEventListener("bookmark-updated", handleBookmarkUpdate); return () => { window.removeEventListener("bookmark-updated", handleBookmarkUpdate); }; }, []); hooks.useEffect(() => { localStorage.setItem("bookmark-selected-category", selectedCategory); }, [selectedCategory]); hooks.useEffect(() => { filterChannels(); }, [channels, selectedCategory]); const loadData = async () => { const allChannels = await bookmarkDB.getAllChannels(); allChannels.sort((a, b) => b.bookmarkedAt - a.bookmarkedAt); setChannels(allChannels); const cats = await bookmarkDB.getCategories(); setCategories(cats); }; const filterChannels = () => { if (selectedCategory === "all") { setFilteredChannels(channels); } else { setFilteredChannels( channels.filter((ch) => ch.category === selectedCategory) ); } setCurrentPage(1); }; const handleExport = async () => { const jsonData = await bookmarkDB.exportData(); const blob = new Blob([jsonData], { type: "application/json" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = `tubeinsights-bookmarks-${Date.now()}.json`; a.click(); URL.revokeObjectURL(url); }; const handleImport = () => { const input = document.createElement("input"); input.type = "file"; input.accept = "application/json"; input.onchange = async (e) => { const file = e.target.files?.[0]; if (!file) return; const reader = new FileReader(); reader.onload = async (event) => { try { const jsonData = event.target?.result; await bookmarkDB.importData(jsonData); loadData(); } catch (err) { setErrorMessage("Import failed: " + err); setTimeout(() => setErrorMessage(""), 1e3); } }; reader.readAsText(file); }; input.click(); }; const totalPages = Math.ceil(filteredChannels.length / channelsPerPage); const startIndex = (currentPage - 1) * channelsPerPage; const endIndex = startIndex + channelsPerPage; const currentChannels = filteredChannels.slice(startIndex, endIndex); return u("div", { className: "space-y-4", children: [ u("div", { className: "flex gap-2 flex-wrap", children: [ u("div", { className: "tooltip tooltip-right", "data-tip": "Import bookmarks", children: u("button", { className: "btn btn-square btn-primary", onClick: handleImport, children: u(IconFileImport, { className: "size-[1.8em]" }) }) }), u("div", { className: "tooltip tooltip-right", "data-tip": "Export bookmarks", children: u( "button", { className: "btn btn-square btn-secondary", onClick: handleExport, children: u(IconFileExport, { className: "size-[1.8em]" }) } ) }), u("div", { className: "tooltip tooltip-right", "data-tip": "Clear all bookmarks", children: u( "button", { className: "btn btn-square btn-error", onClick: openClearAllDialog, children: u(IconDatabaseOff, { className: "size-[1.8em]" }) } ) }), u("div", { className: "dropdown dropdown-end ml-auto", children: [ u("button", { tabIndex: 0, className: "btn", children: selectedCategory === "all" ? `All Categories (${channels.length})` : `${selectedCategory} (${categories.find((c) => c.category === selectedCategory)?.count || 0})` }), u( "ul", { tabIndex: 0, className: "dropdown-content menu bg-base-200 rounded-box z-10 w-64 p-2 shadow-lg mt-1 text-lg", children: [ u("li", { children: u( "button", { onClick: () => setSelectedCategory("all"), className: "flex justify-between", children: [ u("span", { children: "All Categories" }), u("span", { className: "badge badge-soft badge-lg", children: channels.length }) ] } ) }), categories.map((cat) => u("li", { children: u( "button", { onClick: () => setSelectedCategory(cat.category), className: "flex justify-between", children: [ u("span", { children: cat.category }), u("span", { className: "badge badge-soft badge-lg", children: cat.count }) ] } ) }, cat.category)) ] } ) ] }) ] }), errorMessage && u("div", { role: "alert", className: "alert alert-error alert-soft", children: [ u(IconCircleX, { className: "size-6 shrink-0" }), u("span", { className: "text-xl", children: errorMessage }) ] }), currentChannels.length === 0 ? u("div", { className: "text-center py-8", children: u("p", { className: "text-xl opacity-60", children: "No bookmarked channels" }) }) : u(preact.Fragment, { children: [ u("div", { className: "space-y-3", children: currentChannels.map((channel) => u( "div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center gap-3", children: [ u( "a", { href: `https://www.youtube.com/channel/${channel.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "avatar hover:opacity-80 transition-opacity cursor-pointer shrink-0", children: u("div", { className: "w-16 rounded-full", children: u("img", { src: channel.thumbnailUrl, alt: channel.title }) }) } ), u("div", { className: "flex-1 min-w-0", children: [ u("div", { className: "flex items-center gap-2 mb-1", children: u("h3", { className: "font-semibold text-lg truncate", children: channel.title }) }), u("div", { className: "flex gap-4 text-lg mb-2", children: [ u("span", { className: "flex items-center gap-1 text-primary", children: [ u(IconUsers, { className: "size-[1.2em]" }), formatNumber(parseInt(channel.subscriberCount)) ] }), u("span", { className: "flex items-center gap-1 text-secondary", children: [ u(IconVideo, { className: "size-[1.2em]" }), formatNumber(parseInt(channel.videoCount)) ] }), u("span", { className: "flex items-center gap-1 text-accent", children: [ u(IconEye, { className: "size-[1.2em]" }), formatNumber(parseInt(channel.viewCount)) ] }) ] }), u("div", { className: "badge badge-info badge-soft badge-lg", children: channel.category }) ] }), u("div", { className: "flex gap-2 shrink-0", children: [ u( "button", { className: "btn btn-square", onClick: () => openDetailChannelDialog(channel), children: u(IconInfoCircle, { className: "size-[1.8em]" }) } ), u( "button", { className: "btn btn-square btn-error", onClick: () => openDeleteChannelDialog(channel.channelId), children: u(IconTrash, { className: "size-[1.8em]" }) } ) ] }) ] }) }, channel.channelId )) }), totalPages > 1 && u("div", { className: "flex justify-center", children: u("div", { className: "join", children: [ u( "button", { className: "join-item btn btn-lg", disabled: currentPage === 1, onClick: () => setCurrentPage(currentPage - 1), children: "«" } ), u("button", { className: "join-item btn btn-lg", children: [ currentPage, "/", totalPages ] }), u( "button", { className: "join-item btn btn-lg", disabled: currentPage === totalPages, onClick: () => setCurrentPage(currentPage + 1), children: "»" } ) ] }) }) ] }) ] }); } const THEMES = [ "light", "dark", "cupcake", "bumblebee", "emerald", "corporate", "synthwave", "retro", "cyberpunk", "valentine", "halloween", "garden", "forest", "aqua", "lofi", "pastel", "fantasy", "wireframe", "black", "luxury", "dracula", "cmyk", "autumn", "business", "acid", "lemonade", "night", "coffee", "winter", "dim", "nord", "sunset", "abyss", "caramellatte", "silk" ]; function ThemeSelector() { const dropdownRef = hooks.useRef(null); return u("div", { className: "form-control", ref: dropdownRef, children: [ u("label", { className: "label", children: u("span", { className: "label-text text-xl font-medium", children: "Theme" }) }), u("div", { className: "dropdown dropdown-end block w-full", children: [ u( "div", { tabIndex: 0, role: "button", className: "btn btn-sm gap-2 w-full justify-start text-xl h-auto min-h-12 py-2", children: [ u("div", { className: "bg-base-100 border-base-content/10 grid shrink-0 grid-cols-2 gap-0.5 rounded-md border p-1", children: [ u("div", { className: "bg-base-content size-1.5 rounded-full" }), u("div", { className: "bg-primary size-1.5 rounded-full" }), u("div", { className: "bg-secondary size-1.5 rounded-full" }), u("div", { className: "bg-accent size-1.5 rounded-full" }) ] }), u("div", { className: "flex-1 truncate text-left capitalize text-xl", children: currentTheme.value }), u( "svg", { width: "20px", height: "20px", className: "size-5 fill-current opacity-60", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 2048 2048", children: u("path", { d: "M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z" }) } ) ] } ), u( "div", { tabIndex: 0, className: "dropdown-content bg-base-200 text-base-content rounded-box mt-2 w-full max-h-96 overflow-y-auto border border-white/5 shadow-2xl outline outline-black/5", children: u("ul", { className: "menu w-full text-xl", children: [ u("li", { className: "menu-title text-xl", children: "Change Theme" }), THEMES.map((theme) => u("li", { children: u( "button", { className: `gap-2 px-2 py-1.5 text-xl ${theme === currentTheme.value ? "[&_svg]:visible" : ""}`, onClick: () => { currentTheme.value = theme; storage.set("tubeinsights-theme", theme); const activeElement = document.activeElement; if (activeElement) { activeElement.blur(); } window.dispatchEvent(new CustomEvent("themeChanged")); }, children: [ u( "div", { "data-theme": theme, className: "bg-base-100 grid shrink-0 grid-cols-2 gap-0.5 rounded-md p-1 shadow-sm", children: [ u("div", { className: "bg-base-content size-1.5 rounded-full" }), u("div", { className: "bg-primary size-1.5 rounded-full" }), u("div", { className: "bg-secondary size-1.5 rounded-full" }), u("div", { className: "bg-accent size-1.5 rounded-full" }) ] } ), u("span", { className: "flex-1 truncate capitalize text-left text-xl", children: theme }), u( "svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", className: "invisible h-5 w-5 shrink-0", children: u("path", { d: "M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" }) } ) ] } ) }, theme)) ] }) } ) ] }) ] }); } function SettingsTab() { return u("div", { className: "space-y-6", children: [ u("div", { children: [ u("h3", { className: "text-xl font-semibold mb-4", children: "Appearance" }), u("div", { className: "space-y-4", children: u(ThemeSelector, {}) }) ] }), u("div", { children: [ u("h3", { className: "text-xl font-semibold mb-4", children: "About" }), u("div", { className: "bg-base-200 rounded-lg p-4 space-y-3 text-xl", children: [ u("p", { className: "opacity-60", children: "youtube metadata powered by InnerTube (youtubei)" }), u("div", { className: "flex gap-4 pt-2", children: [ u( "a", { href: "https://exyezed.cc", target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-2 opacity-70 hover:opacity-100 transition-opacity", children: [ u(IconWorld, { size: 18 }), u("span", { children: "Home" }) ] } ), u( "a", { href: "https://github.com/exyezed/tube-insights", target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-2 opacity-70 hover:opacity-100 transition-opacity", children: [ u(IconBrandGithub, { size: 18 }), u("span", { children: "GitHub" }) ] } ) ] }) ] }) ] }) ] }); } const version = "1.0.0-beta.1"; const pkg = { version }; function SidePanel() { return u(preact.Fragment, { children: u( "div", { className: `bg-base-100 shadow-xl ${isPanelVisible.value ? "" : "hidden"}`, style: { width: `${panelWidth.value}px`, position: "fixed", top: 0, right: 0, height: "100vh", zIndex: 9999, transition: "transform 0.3s ease-in-out", display: "flex", flexDirection: "column", transform: isPanelVisible.value ? "translateX(0)" : "translateX(100%)" }, children: [ u(FloatingButton, {}), u("div", { className: "px-6 py-4 border-b border-base-300", children: u("div", { className: "flex items-center justify-between gap-3", children: [ u("div", { className: "flex items-center gap-3", children: [ u(IconBrandYoutubeFilled, { size: 32, className: "text-error" }), u("h1", { className: "text-2xl font-semibold", children: "TubeInsights" }), u("span", { className: "badge badge-warning badge-lg", children: [ "v", pkg.version ] }) ] }), u( "button", { className: "opacity-60 hover:opacity-100 hover:text-primary transition-all cursor-pointer", onClick: () => setActiveTab("settings"), children: u(IconSettings, { size: 20 }) } ) ] }) }), u( "div", { role: "tablist", className: "tabs tabs-border bg-base-200 text-xl h-14", children: [ u( "button", { role: "tab", className: `tab text-xl h-14 ${activeTab.value === "insights" ? "tab-active" : ""}`, onClick: () => setActiveTab("insights"), children: "Insights" } ), u( "button", { role: "tab", className: `tab text-xl h-14 ${activeTab.value === "livecount" ? "tab-active" : ""}`, onClick: () => setActiveTab("livecount"), children: "Live Count" } ), u( "button", { role: "tab", className: `tab text-xl h-14 ${activeTab.value === "bookmark" ? "tab-active" : ""}`, onClick: () => setActiveTab("bookmark"), children: "Bookmark" } ) ] } ), u( "div", { className: "flex-1 overflow-y-auto pt-4 pb-6", style: { position: "relative" }, children: [ u( "div", { className: "px-6", style: { display: activeTab.value === "insights" ? "block" : "none" }, children: u(InsightsTab, {}) } ), u( "div", { className: "px-6", style: { display: activeTab.value === "livecount" ? "block" : "none" }, children: u(LiveCountTab, {}) } ), u( "div", { className: "px-6", style: { display: activeTab.value === "bookmark" ? "block" : "none" }, children: u(BookmarkTab, {}) } ), u( "div", { className: "px-6", style: { display: activeTab.value === "settings" ? "block" : "none" }, children: u(SettingsTab, {}) } ) ] } ) ] } ) }); } function g(n, t) { for (var e in t) n[e] = t[e]; return n; } function E(n, t) { for (var e in n) if ("__source" !== e && !(e in t)) return true; for (var r in t) if ("__source" !== r && n[r] !== t[r]) return true; return false; } function N(n, t) { this.props = n, this.context = t; } (N.prototype = new preact.Component()).isPureReactComponent = true, N.prototype.shouldComponentUpdate = function(n, t) { return E(this.props, n) || E(this.state, t); }; var T = preact.options.__b; preact.options.__b = function(n) { n.type && n.type.__f && n.ref && (n.props.ref = n.ref, n.ref = null), T && T(n); }; var A = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; function D(n) { function t(t2) { var e = g({}, t2); return delete e.ref, n(e, t2.ref || null); } return t.$$typeof = A, t.render = n, t.prototype.isReactComponent = t.__f = true, t.displayName = "ForwardRef(" + (n.displayName || n.name) + ")", t; } var F = preact.options.__e; preact.options.__e = function(n, t, e, r) { if (n.then) { for (var u2, o = t; o = o.__; ) if ((u2 = o.__c) && u2.__c) return null == t.__e && (t.__e = e.__e, t.__k = e.__k), u2.__c(n, t); } F(n, t, e, r); }; var U = preact.options.unmount; function V(n, t, e) { return n && (n.__c && n.__c.__H && (n.__c.__H.__.forEach(function(n2) { "function" == typeof n2.__c && n2.__c(); }), n.__c.__H = null), null != (n = g({}, n)).__c && (n.__c.__P === e && (n.__c.__P = t), n.__c.__e = true, n.__c = null), n.__k = n.__k && n.__k.map(function(n2) { return V(n2, t, e); })), n; } function W(n, t, e) { return n && e && (n.__v = null, n.__k = n.__k && n.__k.map(function(n2) { return W(n2, t, e); }), n.__c && n.__c.__P === t && (n.__e && e.appendChild(n.__e), n.__c.__e = true, n.__c.__P = e)), n; } function P() { this.__u = 0, this.o = null, this.__b = null; } function j(n) { var t = n.__.__c; return t && t.__a && t.__a(n); } function B() { this.i = null, this.l = null; } preact.options.unmount = function(n) { var t = n.__c; t && t.__R && t.__R(), t && 32 & n.__u && (n.type = null), U && U(n); }, (P.prototype = new preact.Component()).__c = function(n, t) { var e = t.__c, r = this; null == r.o && (r.o = []), r.o.push(e); var u2 = j(r.__v), o = false, i = function() { o || (o = true, e.__R = null, u2 ? u2(l) : l()); }; e.__R = i; var l = function() { if (!--r.__u) { if (r.state.__a) { var n2 = r.state.__a; r.__v.__k[0] = W(n2, n2.__c.__P, n2.__c.__O); } var t2; for (r.setState({ __a: r.__b = null }); t2 = r.o.pop(); ) t2.forceUpdate(); } }; r.__u++ || 32 & t.__u || r.setState({ __a: r.__b = r.__v.__k[0] }), n.then(i, i); }, P.prototype.componentWillUnmount = function() { this.o = []; }, P.prototype.render = function(n, e) { if (this.__b) { if (this.__v.__k) { var r = document.createElement("div"), o = this.__v.__k[0].__c; this.__v.__k[0] = V(this.__b, r, o.__O = o.__P); } this.__b = null; } var i = e.__a && preact.createElement(preact.Fragment, null, n.fallback); return i && (i.__u &= -33), [preact.createElement(preact.Fragment, null, e.__a ? null : n.children), i]; }; var H = function(n, t, e) { if (++e[1] === e[0] && n.l.delete(t), n.props.revealOrder && ("t" !== n.props.revealOrder[0] || !n.l.size)) for (e = n.i; e; ) { for (; e.length > 3; ) e.pop()(); if (e[1] < e[0]) break; n.i = e = e[2]; } }; (B.prototype = new preact.Component()).__a = function(n) { var t = this, e = j(t.__v), r = t.l.get(n); return r[0]++, function(u2) { var o = function() { t.props.revealOrder ? (r.push(u2), H(t, n, r)) : u2(); }; e ? e(o) : o(); }; }, B.prototype.render = function(n) { this.i = null, this.l = new Map(); var t = preact.toChildArray(n.children); n.revealOrder && "b" === n.revealOrder[0] && t.reverse(); for (var e = t.length; e--; ) this.l.set(t[e], this.i = [1, 0, this.i]); return n.children; }, B.prototype.componentDidUpdate = B.prototype.componentDidMount = function() { var n = this; this.l.forEach(function(t, e) { H(n, e, t); }); }; var q = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, G = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, J = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, K = /[A-Z0-9]/g, Q = "undefined" != typeof document, X = function(n) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n); }; preact.Component.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(t) { Object.defineProperty(preact.Component.prototype, t, { configurable: true, get: function() { return this["UNSAFE_" + t]; }, set: function(n) { Object.defineProperty(this, t, { configurable: true, writable: true, value: n }); } }); }); var en = preact.options.event; function rn() { } function un() { return this.cancelBubble; } function on() { return this.defaultPrevented; } preact.options.event = function(n) { return en && (n = en(n)), n.persist = rn, n.isPropagationStopped = un, n.isDefaultPrevented = on, n.nativeEvent = n; }; var cn = { enumerable: false, configurable: true, get: function() { return this.class; } }, fn = preact.options.vnode; preact.options.vnode = function(n) { "string" == typeof n.type && (function(n2) { var t = n2.props, e = n2.type, u2 = {}, o = -1 === e.indexOf("-"); for (var i in t) { var l = t[i]; if (!("value" === i && "defaultValue" in t && null == l || Q && "children" === i && "noscript" === e || "class" === i || "className" === i)) { var c = i.toLowerCase(); "defaultValue" === i && "value" in t && null == t.value ? i = "value" : "download" === i && true === l ? l = "" : "translate" === c && "no" === l ? l = false : "o" === c[0] && "n" === c[1] ? "ondoubleclick" === c ? i = "ondblclick" : "onchange" !== c || "input" !== e && "textarea" !== e || X(t.type) ? "onfocus" === c ? i = "onfocusin" : "onblur" === c ? i = "onfocusout" : J.test(i) && (i = c) : c = i = "oninput" : o && G.test(i) ? i = i.replace(K, "-$&").toLowerCase() : null === l && (l = void 0), "oninput" === c && u2[i = c] && (i = "oninputCapture"), u2[i] = l; } } "select" == e && u2.multiple && Array.isArray(u2.value) && (u2.value = preact.toChildArray(t.children).forEach(function(n3) { n3.props.selected = -1 != u2.value.indexOf(n3.props.value); })), "select" == e && null != u2.defaultValue && (u2.value = preact.toChildArray(t.children).forEach(function(n3) { n3.props.selected = u2.multiple ? -1 != u2.defaultValue.indexOf(n3.props.value) : u2.defaultValue == n3.props.value; })), t.class && !t.className ? (u2.class = t.class, Object.defineProperty(u2, "className", cn)) : (t.className && !t.class || t.class && t.className) && (u2.class = u2.className = t.className), n2.props = u2; })(n), n.$$typeof = q, fn && fn(n); }; var an = preact.options.__r; preact.options.__r = function(n) { an && an(n), n.__c; }; var sn = preact.options.diffed; preact.options.diffed = function(n) { sn && sn(n); var t = n.props, e = n.__e; null != e && "textarea" === n.type && "value" in t && t.value !== e.value && (e.value = null == t.value ? "" : t.value); }; const SaveChannelDialog = D( ({ channelId, title, customUrl, thumbnailUrl, country, subscriberCount, videoCount, viewCount, onSaved }, ref) => { const [category, setCategory] = hooks.useState(""); const [existingCategories, setExistingCategories] = hooks.useState([]); const [showSavedFeedback, setShowSavedFeedback] = hooks.useState(false); const [errorMessage, setErrorMessage] = hooks.useState(""); hooks.useEffect(() => { loadCategories(); }, []); const loadCategories = async () => { const categories = await bookmarkDB.getCategories(); setExistingCategories(categories); }; const handleSave = async () => { if (!category.trim()) { setErrorMessage("Please enter a category"); setTimeout(() => setErrorMessage(""), 1e3); return; } await bookmarkDB.addChannel({ channelId, title, customUrl, thumbnailUrl, country, subscriberCount, videoCount, viewCount, category: category.trim(), bookmarkedAt: Date.now() }); setShowSavedFeedback(true); setTimeout(() => { setShowSavedFeedback(false); if (ref && typeof ref !== "function" && ref.current) { ref.current.close(); } setCategory(""); closeSaveChannelDialog(); onSaved?.(); }, 500); }; return u("dialog", { ref, id: "save_channel_dialog", className: "modal", children: [ u("div", { className: "modal-box max-w-xl", children: [ u("h3", { className: "font-semibold text-xl mb-4", children: "Save Channel to Bookmarks" }), errorMessage && u("div", { role: "alert", className: "alert alert-error alert-soft mb-4", children: [ u(IconCircleX, { className: "size-6 shrink-0" }), u("span", { className: "text-xl", children: errorMessage }) ] }), u("div", { className: "space-y-4", children: u("div", { children: [ u("label", { className: "label", children: u("span", { className: "label-text text-xl", children: "Category" }) }), u( "input", { type: "text", placeholder: "Enter category name", className: "input input-lg input-bordered w-full", value: category, onInput: (e) => setCategory(e.target.value) } ), existingCategories.length > 0 && u( "select", { className: "select select-lg select-bordered w-full mt-4", onChange: (e) => setCategory(e.target.value), value: "", children: [ u("option", { value: "", disabled: true, children: "Or select existing category" }), existingCategories.map((cat) => u("option", { value: cat.category, children: [ cat.category, " (", cat.count, ")" ] }, cat.category)) ] } ) ] }) }), u("div", { className: "modal-action", children: [ u("form", { method: "dialog", children: u( "button", { className: "btn btn-lg btn-ghost mr-2", onClick: closeSaveChannelDialog, disabled: showSavedFeedback, children: "Cancel" } ) }), u( "button", { className: "btn btn-lg btn-primary", onClick: handleSave, disabled: showSavedFeedback, children: showSavedFeedback ? "✓ Saved!" : "Save" } ) ] }) ] }), u("form", { method: "dialog", className: "modal-backdrop", children: u("button", { onClick: closeSaveChannelDialog, children: "close" }) }) ] }); } ); function BookmarkDialogs({ onDataChange }) { const deleteDialogRef = hooks.useRef(null); const clearDialogRef = hooks.useRef(null); const detailDialogRef = hooks.useRef(null); hooks.useEffect(() => { if (deleteChannelDialogData.value?.isOpen && deleteDialogRef.current) { deleteDialogRef.current.showModal(); } }, [deleteChannelDialogData.value]); hooks.useEffect(() => { if (clearAllDialogOpen.value && clearDialogRef.current) { clearDialogRef.current.showModal(); } }, [clearAllDialogOpen.value]); hooks.useEffect(() => { if (detailChannelDialogData.value?.isOpen && detailDialogRef.current) { detailDialogRef.current.showModal(); } }, [detailChannelDialogData.value]); const handleDelete = async () => { if (!deleteChannelDialogData.value?.channelId) return; await bookmarkDB.deleteChannel(deleteChannelDialogData.value.channelId); deleteDialogRef.current?.close(); closeDeleteChannelDialog(); onDataChange(); }; const handleClearAll = async () => { await bookmarkDB.clearAll(); clearDialogRef.current?.close(); closeClearAllDialog(); onDataChange(); }; const calculateAge = (timestamp) => { const now = Date.now(); const diff = now - timestamp; const seconds = Math.floor(diff / 1e3); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); const days = Math.floor(hours / 24); const months = Math.floor(days / 30); const years = Math.floor(days / 365); const parts = []; if (years > 0) parts.push(`${years} yr`); if (months % 12 > 0) parts.push(`${months % 12} mo`); if (parts.length === 0 && days > 0) parts.push(`${days} day${days > 1 ? "s" : ""}`); if (parts.length === 0 && hours > 0) parts.push(`${hours} hr${hours > 1 ? "s" : ""}`); if (parts.length === 0 && minutes > 0) parts.push(`${minutes} min${minutes > 1 ? "s" : ""}`); return parts.length > 0 ? `${parts.join(" ")} ago` : "Just now"; }; const formatBookmarkDate = (timestamp) => { const date = new Date(timestamp); const months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; const month = months[date.getMonth()]; const day = date.getDate(); const year = date.getFullYear(); const hours = String(date.getHours()).padStart(2, "0"); const minutes = String(date.getMinutes()).padStart(2, "0"); const seconds = String(date.getSeconds()).padStart(2, "0"); return `${month} ${day}, ${year} • ${hours}:${minutes}:${seconds}`; }; const detailChannel = detailChannelDialogData.value?.channel; return u(preact.Fragment, { children: [ deleteChannelDialogData.value && u("dialog", { ref: deleteDialogRef, className: "modal", children: [ u("div", { className: "modal-box max-w-xl", children: [ u("h3", { className: "font-semibold text-xl", children: "Confirm Delete" }), u("p", { className: "py-4 text-xl", children: "Are you sure you want to delete this channel from bookmarks?" }), u("div", { className: "modal-action", children: [ u("form", { method: "dialog", children: u( "button", { className: "btn btn-lg btn-ghost mr-2", onClick: closeDeleteChannelDialog, children: "Cancel" } ) }), u("button", { className: "btn btn-lg btn-error", onClick: handleDelete, children: "Delete" }) ] }) ] }), u("form", { method: "dialog", className: "modal-backdrop", children: u("button", { onClick: closeDeleteChannelDialog, children: "close" }) }) ] }), clearAllDialogOpen.value && u("dialog", { ref: clearDialogRef, className: "modal", children: [ u("div", { className: "modal-box max-w-xl", children: [ u("h3", { className: "font-semibold text-xl", children: "Confirm Clear All" }), u("p", { className: "py-4 text-xl", children: "Are you sure you want to delete ALL bookmarked channels? This action cannot be undone." }), u("div", { className: "modal-action", children: [ u("form", { method: "dialog", children: u( "button", { className: "btn btn-lg btn-ghost mr-2", onClick: closeClearAllDialog, children: "Cancel" } ) }), u("button", { className: "btn btn-lg btn-error", onClick: handleClearAll, children: "Clear All" }) ] }) ] }), u("form", { method: "dialog", className: "modal-backdrop", children: u("button", { onClick: closeClearAllDialog, children: "close" }) }) ] }), detailChannel && u("dialog", { ref: detailDialogRef, className: "modal", children: [ u("div", { className: "modal-box max-w-2xl", children: [ u("form", { method: "dialog", children: u( "button", { className: "btn btn-circle btn-ghost absolute right-2 top-2 text-xl", onClick: closeDetailChannelDialog, children: "✕" } ) }), u("h3", { className: "font-semibold text-xl mb-4", children: detailChannel.title }), u("div", { className: "space-y-4", children: [ u("div", { className: "flex items-center gap-3", children: [ u("div", { className: "avatar", children: u("div", { className: "w-16 rounded-full", children: u( "img", { src: detailChannel.thumbnailUrl, alt: detailChannel.title } ) }) }), u("div", { className: "flex-1", children: [ u("div", { className: "flex items-center gap-2", children: [ u( "a", { href: `https://www.youtube.com/${detailChannel.customUrl}`, target: "_blank", rel: "noopener noreferrer", className: "text-primary text-xl hover:underline", children: detailChannel.customUrl } ), u( "a", { href: `https://web.archive.org/web/*/https://www.youtube.com/${detailChannel.customUrl}`, target: "_blank", rel: "noopener noreferrer", children: u(IconBuildingBank, { className: "size-5 hover:text-primary" }) } ) ] }), u("div", { className: "flex items-center gap-2", children: [ u( "a", { href: `https://www.youtube.com/channel/${detailChannel.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "text-secondary text-xl font-mono hover:underline block", children: detailChannel.channelId } ), u( "a", { href: `https://web.archive.org/web/*/https://www.youtube.com/channel/${detailChannel.channelId}`, target: "_blank", rel: "noopener noreferrer", children: u(IconBuildingBank, { className: "size-5 hover:text-secondary" }) } ) ] }) ] }), u( "a", { href: `https://tubeinsights.exyezed.cc/info/direct/channel/${detailChannel.channelId}`, target: "_blank", rel: "noopener noreferrer", className: "btn btn-secondary btn-square", children: u(IconInfoCircle, { className: "size-[1.8em]" }) } ) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "text-xl opacity-60 mb-2", children: "Country" }), u("div", { className: "flex items-center gap-3", children: [ detailChannel.country && u( CountryFlag, { countryCode: detailChannel.country, size: "md" } ), u("span", { className: "text-xl", children: detailChannel.country ? countryNames[detailChannel.country] || detailChannel.country : "-" }) ] }) ] }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-2 text-xl opacity-60", children: [ u(IconUsers, { className: "size-[1.2em]" }), "Subscribers" ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-primary", children: formatNumber(parseInt(detailChannel.subscriberCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(detailChannel.subscriberCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-2 text-xl opacity-60", children: [ u(IconVideo, { className: "size-[1.2em]" }), "Total Videos" ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-secondary", children: formatNumber(parseInt(detailChannel.videoCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(detailChannel.videoCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: u("div", { className: "flex items-center justify-between", children: [ u("div", { className: "flex items-center gap-2 text-xl opacity-60", children: [ u(IconEye, { className: "size-[1.2em]" }), "Total Views" ] }), u("div", { className: "text-right", children: [ u("div", { className: "text-2xl font-semibold text-accent", children: formatNumber(parseInt(detailChannel.viewCount)) }), u("div", { className: "text-xl opacity-60", children: parseInt(detailChannel.viewCount).toLocaleString() }) ] }) ] }) }), u("div", { className: "bg-base-200 rounded-lg p-4", children: [ u("div", { className: "flex items-center gap-2 text-xl opacity-60 mb-2", children: [ u(IconBookmark, { className: "size-[1.2em]" }), "Bookmarked At" ] }), u("div", { className: "text-xl", children: [ u("span", { className: "text-primary", children: formatBookmarkDate(detailChannel.bookmarkedAt) }), u("span", { className: "text-secondary ml-2", children: [ "(", calculateAge(detailChannel.bookmarkedAt), ")" ] }) ] }) ] }) ] }) ] }), u("form", { method: "dialog", className: "modal-backdrop", children: u("button", { onClick: closeDetailChannelDialog, children: "close" }) }) ] }) ] }); } function App() { const saveDialogRef = hooks.useRef(null); hooks.useEffect(() => { loadSettings(); }, []); hooks.useEffect(() => { if (saveChannelDialogData.value?.isOpen && saveDialogRef.current) { saveDialogRef.current.showModal(); } }, [saveChannelDialogData.value]); const handleBookmarkDataChange = () => { window.dispatchEvent(new CustomEvent("bookmark-updated")); }; return u("div", { "data-theme": currentTheme.value, children: [ u(SidePanel, {}), saveChannelDialogData.value && u( SaveChannelDialog, { ref: saveDialogRef, channelId: saveChannelDialogData.value.channelId, title: saveChannelDialogData.value.title, customUrl: saveChannelDialogData.value.customUrl, thumbnailUrl: saveChannelDialogData.value.thumbnailUrl, country: saveChannelDialogData.value.country, subscriberCount: saveChannelDialogData.value.subscriberCount, videoCount: saveChannelDialogData.value.videoCount, viewCount: saveChannelDialogData.value.viewCount, onSaved: () => { closeSaveChannelDialog(); handleBookmarkDataChange(); } } ), u(BookmarkDialogs, { onDataChange: handleBookmarkDataChange }) ] }); } const styles = `@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-text-shadow-color:initial;--tw-text-shadow-alpha:100%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-600:oklch(57.7% .245 27.325);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-800:oklch(47% .157 37.304);--color-amber-300:oklch(87.9% .169 91.605);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-lime-400:oklch(84.1% .238 128.85);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-800:oklch(27.4% .006 286.033);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-bounce:bounce 1s infinite;--blur-lg:16px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=cupcake]:checked),[data-theme=cupcake]{color-scheme:light;--color-base-100:oklch(97.788% .004 56.375);--color-base-200:oklch(93.982% .007 61.449);--color-base-300:oklch(91.586% .006 53.44);--color-base-content:oklch(23.574% .066 313.189);--color-primary:oklch(85% .138 181.071);--color-primary-content:oklch(43% .078 188.216);--color-secondary:oklch(89% .061 343.231);--color-secondary-content:oklch(45% .187 3.815);--color-accent:oklch(90% .076 70.697);--color-accent-content:oklch(47% .157 37.304);--color-neutral:oklch(27% .006 286.033);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(68% .169 237.323);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(69% .17 162.48);--color-success-content:oklch(26% .051 172.552);--color-warning:oklch(79% .184 86.047);--color-warning-content:oklch(28% .066 53.813);--color-error:oklch(64% .246 16.439);--color-error-content:oklch(27% .105 12.094);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0}:root:has(input.theme-controller[value=bumblebee]:checked),[data-theme=bumblebee]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(92% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(85% .199 91.936);--color-primary-content:oklch(42% .095 57.708);--color-secondary:oklch(75% .183 55.934);--color-secondary-content:oklch(40% .123 38.172);--color-accent:oklch(0% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(37% .01 67.558);--color-neutral-content:oklch(92% .003 48.717);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(39% .09 240.876);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=emerald]:checked),[data-theme=emerald]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(35.519% .032 262.988);--color-primary:oklch(76.662% .135 153.45);--color-primary-content:oklch(33.387% .04 162.24);--color-secondary:oklch(61.302% .202 261.294);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(72.772% .149 33.2);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(35.519% .032 262.988);--color-neutral-content:oklch(98.462% .001 247.838);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=corporate]:checked),[data-theme=corporate]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(22.389% .031 278.072);--color-primary:oklch(58% .158 241.966);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(55% .046 257.417);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(60% .118 184.704);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(60% .126 221.723);--color-info-content:oklch(100% 0 0);--color-success:oklch(62% .194 149.214);--color-success-content:oklch(100% 0 0);--color-warning:oklch(85% .199 91.936);--color-warning-content:oklch(0% 0 0);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(0% 0 0);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=synthwave]:checked),[data-theme=synthwave]{color-scheme:dark;--color-base-100:oklch(15% .09 281.288);--color-base-200:oklch(20% .09 281.288);--color-base-300:oklch(25% .09 281.288);--color-base-content:oklch(78% .115 274.713);--color-primary:oklch(71% .202 349.761);--color-primary-content:oklch(28% .109 3.907);--color-secondary:oklch(82% .111 230.318);--color-secondary-content:oklch(29% .066 243.157);--color-accent:oklch(75% .183 55.934);--color-accent-content:oklch(26% .079 36.259);--color-neutral:oklch(45% .24 277.023);--color-neutral-content:oklch(87% .065 274.039);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(77% .152 181.912);--color-success-content:oklch(27% .046 192.524);--color-warning:oklch(90% .182 98.111);--color-warning-content:oklch(42% .095 57.708);--color-error:oklch(73.7% .121 32.639);--color-error-content:oklch(23.501% .096 290.329);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=retro]:checked),[data-theme=retro]{color-scheme:light;--color-base-100:oklch(91.637% .034 90.515);--color-base-200:oklch(88.272% .049 91.774);--color-base-300:oklch(84.133% .065 90.856);--color-base-content:oklch(41% .112 45.904);--color-primary:oklch(80% .114 19.571);--color-primary-content:oklch(39% .141 25.723);--color-secondary:oklch(92% .084 155.995);--color-secondary-content:oklch(44% .119 151.328);--color-accent:oklch(68% .162 75.834);--color-accent-content:oklch(41% .112 45.904);--color-neutral:oklch(44% .011 73.639);--color-neutral-content:oklch(86% .005 56.366);--color-info:oklch(58% .158 241.966);--color-info-content:oklch(96% .059 95.617);--color-success:oklch(51% .096 186.391);--color-success-content:oklch(96% .059 95.617);--color-warning:oklch(64% .222 41.116);--color-warning-content:oklch(96% .059 95.617);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(40% .123 38.172);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cyberpunk]:checked),[data-theme=cyberpunk]{color-scheme:light;--color-base-100:oklch(94.51% .179 104.32);--color-base-200:oklch(91.51% .179 104.32);--color-base-300:oklch(85.51% .179 104.32);--color-base-content:oklch(0% 0 0);--color-primary:oklch(74.22% .209 6.35);--color-primary-content:oklch(14.844% .041 6.35);--color-secondary:oklch(83.33% .184 204.72);--color-secondary-content:oklch(16.666% .036 204.72);--color-accent:oklch(71.86% .217 310.43);--color-accent-content:oklch(14.372% .043 310.43);--color-neutral:oklch(23.04% .065 269.31);--color-neutral-content:oklch(94.51% .179 104.32);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=valentine]:checked),[data-theme=valentine]{color-scheme:light;--color-base-100:oklch(97% .014 343.198);--color-base-200:oklch(94% .028 342.258);--color-base-300:oklch(89% .061 343.231);--color-base-content:oklch(52% .223 3.958);--color-primary:oklch(65% .241 354.308);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(62% .265 303.9);--color-secondary-content:oklch(97% .014 308.299);--color-accent:oklch(82% .111 230.318);--color-accent-content:oklch(39% .09 240.876);--color-neutral:oklch(40% .153 2.432);--color-neutral-content:oklch(89% .061 343.231);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(44% .11 240.79);--color-success:oklch(84% .143 164.978);--color-success-content:oklch(43% .095 166.913);--color-warning:oklch(75% .183 55.934);--color-warning-content:oklch(26% .079 36.259);--color-error:oklch(63% .237 25.331);--color-error-content:oklch(97% .013 17.38);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=halloween]:checked),[data-theme=halloween]{color-scheme:dark;--color-base-100:oklch(21% .006 56.043);--color-base-200:oklch(14% .004 49.25);--color-base-300:oklch(0% 0 0);--color-base-content:oklch(84.955% 0 0);--color-primary:oklch(77.48% .204 60.62);--color-primary-content:oklch(19.693% .004 196.779);--color-secondary:oklch(45.98% .248 305.03);--color-secondary-content:oklch(89.196% .049 305.03);--color-accent:oklch(64.8% .223 136.073);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(24.371% .046 65.681);--color-neutral-content:oklch(84.874% .009 65.681);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(13.316% .031 58.318);--color-error:oklch(65.72% .199 27.33);--color-error-content:oklch(13.144% .039 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=garden]:checked),[data-theme=garden]{color-scheme:light;--color-base-100:oklch(92.951% .002 17.197);--color-base-200:oklch(86.445% .002 17.197);--color-base-300:oklch(79.938% .001 17.197);--color-base-content:oklch(16.961% .001 17.32);--color-primary:oklch(62.45% .278 3.836);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(48.495% .11 355.095);--color-secondary-content:oklch(89.699% .022 355.095);--color-accent:oklch(56.273% .054 154.39);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(24.155% .049 89.07);--color-neutral-content:oklch(92.951% .002 17.197);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=forest]:checked),[data-theme=forest]{color-scheme:dark;--color-base-100:oklch(20.84% .008 17.911);--color-base-200:oklch(18.522% .007 17.911);--color-base-300:oklch(16.203% .007 17.911);--color-base-content:oklch(83.768% .001 17.911);--color-primary:oklch(68.628% .185 148.958);--color-primary-content:oklch(0% 0 0);--color-secondary:oklch(69.776% .135 168.327);--color-secondary-content:oklch(13.955% .027 168.327);--color-accent:oklch(70.628% .119 185.713);--color-accent-content:oklch(14.125% .023 185.713);--color-neutral:oklch(30.698% .039 171.364);--color-neutral-content:oklch(86.139% .007 171.364);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=aqua]:checked),[data-theme=aqua]{color-scheme:dark;--color-base-100:oklch(37% .146 265.522);--color-base-200:oklch(28% .091 267.935);--color-base-300:oklch(22% .091 267.935);--color-base-content:oklch(90% .058 230.902);--color-primary:oklch(85.661% .144 198.645);--color-primary-content:oklch(40.124% .068 197.603);--color-secondary:oklch(60.682% .108 309.782);--color-secondary-content:oklch(96% .016 293.756);--color-accent:oklch(93.426% .102 94.555);--color-accent-content:oklch(18.685% .02 94.555);--color-neutral:oklch(27% .146 265.522);--color-neutral-content:oklch(80% .146 265.522);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(27% .077 45.635);--color-error:oklch(73.95% .19 27.33);--color-error-content:oklch(14.79% .038 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lofi]:checked),[data-theme=lofi]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(15.906% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(21.455% .001 17.278);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(26.861% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(79.54% .103 205.9);--color-info-content:oklch(15.908% .02 205.9);--color-success:oklch(90.13% .153 164.14);--color-success-content:oklch(18.026% .03 164.14);--color-warning:oklch(88.37% .135 79.94);--color-warning-content:oklch(17.674% .027 79.94);--color-error:oklch(78.66% .15 28.47);--color-error-content:oklch(15.732% .03 28.47);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=pastel]:checked),[data-theme=pastel]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98.462% .001 247.838);--color-base-300:oklch(92.462% .001 247.838);--color-base-content:oklch(20% 0 0);--color-primary:oklch(90% .063 306.703);--color-primary-content:oklch(49% .265 301.924);--color-secondary:oklch(89% .058 10.001);--color-secondary-content:oklch(51% .222 16.935);--color-accent:oklch(90% .093 164.15);--color-accent-content:oklch(50% .118 165.612);--color-neutral:oklch(55% .046 257.417);--color-neutral-content:oklch(92% .013 255.508);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(52% .105 223.128);--color-success:oklch(87% .15 154.449);--color-success-content:oklch(52% .154 150.069);--color-warning:oklch(83% .128 66.29);--color-warning-content:oklch(55% .195 38.402);--color-error:oklch(80% .114 19.571);--color-error-content:oklch(50% .213 27.518);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:0;--noise:0}:root:has(input.theme-controller[value=fantasy]:checked),[data-theme=fantasy]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(27.807% .029 256.847);--color-primary:oklch(37.45% .189 325.02);--color-primary-content:oklch(87.49% .037 325.02);--color-secondary:oklch(53.92% .162 241.36);--color-secondary-content:oklch(90.784% .032 241.36);--color-accent:oklch(75.98% .204 56.72);--color-accent-content:oklch(15.196% .04 56.72);--color-neutral:oklch(27.807% .029 256.847);--color-neutral-content:oklch(85.561% .005 256.847);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=wireframe]:checked),[data-theme=wireframe]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(87% 0 0);--color-primary-content:oklch(26% 0 0);--color-secondary:oklch(87% 0 0);--color-secondary-content:oklch(26% 0 0);--color-accent:oklch(87% 0 0);--color-accent-content:oklch(26% 0 0);--color-neutral:oklch(87% 0 0);--color-neutral-content:oklch(26% 0 0);--color-info:oklch(44% .11 240.79);--color-info-content:oklch(90% .058 230.902);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .093 164.15);--color-warning:oklch(47% .137 46.201);--color-warning-content:oklch(92% .12 95.746);--color-error:oklch(44% .177 26.899);--color-error-content:oklch(88% .062 18.334);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=black]:checked),[data-theme=black]{color-scheme:dark;--color-base-100:oklch(0% 0 0);--color-base-200:oklch(19% 0 0);--color-base-300:oklch(22% 0 0);--color-base-content:oklch(87.609% 0 0);--color-primary:oklch(35% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(35% 0 0);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(35% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(35% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(45.201% .313 264.052);--color-info-content:oklch(89.04% .062 264.052);--color-success:oklch(51.975% .176 142.495);--color-success-content:oklch(90.395% .035 142.495);--color-warning:oklch(96.798% .211 109.769);--color-warning-content:oklch(19.359% .042 109.769);--color-error:oklch(62.795% .257 29.233);--color-error-content:oklch(12.559% .051 29.233);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=luxury]:checked),[data-theme=luxury]{color-scheme:dark;--color-base-100:oklch(14.076% .004 285.822);--color-base-200:oklch(20.219% .004 308.229);--color-base-300:oklch(23.219% .004 308.229);--color-base-content:oklch(75.687% .123 76.89);--color-primary:oklch(100% 0 0);--color-primary-content:oklch(20% 0 0);--color-secondary:oklch(27.581% .064 261.069);--color-secondary-content:oklch(85.516% .012 261.069);--color-accent:oklch(36.674% .051 338.825);--color-accent-content:oklch(87.334% .01 338.825);--color-neutral:oklch(24.27% .057 59.825);--color-neutral-content:oklch(93.203% .089 90.861);--color-info:oklch(79.061% .121 237.133);--color-info-content:oklch(15.812% .024 237.133);--color-success:oklch(78.119% .192 132.154);--color-success-content:oklch(15.623% .038 132.154);--color-warning:oklch(86.127% .136 102.891);--color-warning-content:oklch(17.225% .027 102.891);--color-error:oklch(71.753% .176 22.568);--color-error-content:oklch(14.35% .035 22.568);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dracula]:checked),[data-theme=dracula]{color-scheme:dark;--color-base-100:oklch(28.822% .022 277.508);--color-base-200:oklch(26.805% .02 277.508);--color-base-300:oklch(24.787% .019 277.508);--color-base-content:oklch(97.747% .007 106.545);--color-primary:oklch(75.461% .183 346.812);--color-primary-content:oklch(15.092% .036 346.812);--color-secondary:oklch(74.202% .148 301.883);--color-secondary-content:oklch(14.84% .029 301.883);--color-accent:oklch(83.392% .124 66.558);--color-accent-content:oklch(16.678% .024 66.558);--color-neutral:oklch(39.445% .032 275.524);--color-neutral-content:oklch(87.889% .006 275.524);--color-info:oklch(88.263% .093 212.846);--color-info-content:oklch(17.652% .018 212.846);--color-success:oklch(87.099% .219 148.024);--color-success-content:oklch(17.419% .043 148.024);--color-warning:oklch(95.533% .134 112.757);--color-warning-content:oklch(19.106% .026 112.757);--color-error:oklch(68.22% .206 24.43);--color-error-content:oklch(13.644% .041 24.43);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cmyk]:checked),[data-theme=cmyk]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(90% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(71.772% .133 239.443);--color-primary-content:oklch(14.354% .026 239.443);--color-secondary:oklch(64.476% .202 359.339);--color-secondary-content:oklch(12.895% .04 359.339);--color-accent:oklch(94.228% .189 105.306);--color-accent-content:oklch(18.845% .037 105.306);--color-neutral:oklch(21.778% 0 0);--color-neutral-content:oklch(84.355% 0 0);--color-info:oklch(68.475% .094 217.284);--color-info-content:oklch(13.695% .018 217.284);--color-success:oklch(46.949% .162 321.406);--color-success-content:oklch(89.389% .032 321.406);--color-warning:oklch(71.236% .159 52.023);--color-warning-content:oklch(14.247% .031 52.023);--color-error:oklch(62.013% .208 28.717);--color-error-content:oklch(12.402% .041 28.717);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=autumn]:checked),[data-theme=autumn]{color-scheme:light;--color-base-100:oklch(95.814% 0 0);--color-base-200:oklch(89.107% 0 0);--color-base-300:oklch(82.4% 0 0);--color-base-content:oklch(19.162% 0 0);--color-primary:oklch(40.723% .161 17.53);--color-primary-content:oklch(88.144% .032 17.53);--color-secondary:oklch(61.676% .169 23.865);--color-secondary-content:oklch(12.335% .033 23.865);--color-accent:oklch(73.425% .094 60.729);--color-accent-content:oklch(14.685% .018 60.729);--color-neutral:oklch(54.367% .037 51.902);--color-neutral-content:oklch(90.873% .007 51.902);--color-info:oklch(69.224% .097 207.284);--color-info-content:oklch(13.844% .019 207.284);--color-success:oklch(60.995% .08 174.616);--color-success-content:oklch(12.199% .016 174.616);--color-warning:oklch(70.081% .164 56.844);--color-warning-content:oklch(14.016% .032 56.844);--color-error:oklch(53.07% .241 24.16);--color-error-content:oklch(90.614% .048 24.16);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=business]:checked),[data-theme=business]{color-scheme:dark;--color-base-100:oklch(24.353% 0 0);--color-base-200:oklch(22.648% 0 0);--color-base-300:oklch(20.944% 0 0);--color-base-content:oklch(84.87% 0 0);--color-primary:oklch(41.703% .099 251.473);--color-primary-content:oklch(88.34% .019 251.473);--color-secondary:oklch(64.092% .027 229.389);--color-secondary-content:oklch(12.818% .005 229.389);--color-accent:oklch(67.271% .167 35.791);--color-accent-content:oklch(13.454% .033 35.791);--color-neutral:oklch(27.441% .013 253.041);--color-neutral-content:oklch(85.488% .002 253.041);--color-info:oklch(62.616% .143 240.033);--color-info-content:oklch(12.523% .028 240.033);--color-success:oklch(70.226% .094 156.596);--color-success-content:oklch(14.045% .018 156.596);--color-warning:oklch(77.482% .115 81.519);--color-warning-content:oklch(15.496% .023 81.519);--color-error:oklch(51.61% .146 29.674);--color-error-content:oklch(90.322% .029 29.674);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=acid]:checked),[data-theme=acid]{color-scheme:light;--color-base-100:oklch(98% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(91% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(71.9% .357 330.759);--color-primary-content:oklch(14.38% .071 330.759);--color-secondary:oklch(73.37% .224 48.25);--color-secondary-content:oklch(14.674% .044 48.25);--color-accent:oklch(92.78% .264 122.962);--color-accent-content:oklch(18.556% .052 122.962);--color-neutral:oklch(21.31% .128 278.68);--color-neutral-content:oklch(84.262% .025 278.68);--color-info:oklch(60.72% .227 252.05);--color-info-content:oklch(12.144% .045 252.05);--color-success:oklch(85.72% .266 158.53);--color-success-content:oklch(17.144% .053 158.53);--color-warning:oklch(91.01% .212 100.5);--color-warning-content:oklch(18.202% .042 100.5);--color-error:oklch(64.84% .293 29.349);--color-error-content:oklch(12.968% .058 29.349);--radius-selector:1rem;--radius-field:1rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lemonade]:checked),[data-theme=lemonade]{color-scheme:light;--color-base-100:oklch(98.71% .02 123.72);--color-base-200:oklch(91.8% .018 123.72);--color-base-300:oklch(84.89% .017 123.72);--color-base-content:oklch(19.742% .004 123.72);--color-primary:oklch(58.92% .199 134.6);--color-primary-content:oklch(11.784% .039 134.6);--color-secondary:oklch(77.75% .196 111.09);--color-secondary-content:oklch(15.55% .039 111.09);--color-accent:oklch(85.39% .201 100.73);--color-accent-content:oklch(17.078% .04 100.73);--color-neutral:oklch(30.98% .075 108.6);--color-neutral-content:oklch(86.196% .015 108.6);--color-info:oklch(86.19% .047 224.14);--color-info-content:oklch(17.238% .009 224.14);--color-success:oklch(86.19% .047 157.85);--color-success-content:oklch(17.238% .009 157.85);--color-warning:oklch(86.19% .047 102.15);--color-warning-content:oklch(17.238% .009 102.15);--color-error:oklch(86.19% .047 25.85);--color-error-content:oklch(17.238% .009 25.85);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=night]:checked),[data-theme=night]{color-scheme:dark;--color-base-100:oklch(20.768% .039 265.754);--color-base-200:oklch(19.314% .037 265.754);--color-base-300:oklch(17.86% .034 265.754);--color-base-content:oklch(84.153% .007 265.754);--color-primary:oklch(75.351% .138 232.661);--color-primary-content:oklch(15.07% .027 232.661);--color-secondary:oklch(68.011% .158 276.934);--color-secondary-content:oklch(13.602% .031 276.934);--color-accent:oklch(72.36% .176 350.048);--color-accent-content:oklch(14.472% .035 350.048);--color-neutral:oklch(27.949% .036 260.03);--color-neutral-content:oklch(85.589% .007 260.03);--color-info:oklch(68.455% .148 237.251);--color-info-content:oklch(0% 0 0);--color-success:oklch(78.452% .132 181.911);--color-success-content:oklch(15.69% .026 181.911);--color-warning:oklch(83.242% .139 82.95);--color-warning-content:oklch(16.648% .027 82.95);--color-error:oklch(71.785% .17 13.118);--color-error-content:oklch(14.357% .034 13.118);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=coffee]:checked),[data-theme=coffee]{color-scheme:dark;--color-base-100:oklch(24% .023 329.708);--color-base-200:oklch(21% .021 329.708);--color-base-300:oklch(16% .019 329.708);--color-base-content:oklch(72.354% .092 79.129);--color-primary:oklch(71.996% .123 62.756);--color-primary-content:oklch(14.399% .024 62.756);--color-secondary:oklch(34.465% .029 199.194);--color-secondary-content:oklch(86.893% .005 199.194);--color-accent:oklch(42.621% .074 224.389);--color-accent-content:oklch(88.524% .014 224.389);--color-neutral:oklch(16.51% .015 326.261);--color-neutral-content:oklch(83.302% .003 326.261);--color-info:oklch(79.49% .063 184.558);--color-info-content:oklch(15.898% .012 184.558);--color-success:oklch(74.722% .072 131.116);--color-success-content:oklch(14.944% .014 131.116);--color-warning:oklch(88.15% .14 87.722);--color-warning-content:oklch(17.63% .028 87.722);--color-error:oklch(77.318% .128 31.871);--color-error-content:oklch(15.463% .025 31.871);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=winter]:checked),[data-theme=winter]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97.466% .011 259.822);--color-base-300:oklch(93.268% .016 262.751);--color-base-content:oklch(41.886% .053 255.824);--color-primary:oklch(56.86% .255 257.57);--color-primary-content:oklch(91.372% .051 257.57);--color-secondary:oklch(42.551% .161 282.339);--color-secondary-content:oklch(88.51% .032 282.339);--color-accent:oklch(59.939% .191 335.171);--color-accent-content:oklch(11.988% .038 335.171);--color-neutral:oklch(19.616% .063 257.651);--color-neutral-content:oklch(83.923% .012 257.651);--color-info:oklch(88.127% .085 214.515);--color-info-content:oklch(17.625% .017 214.515);--color-success:oklch(80.494% .077 197.823);--color-success-content:oklch(16.098% .015 197.823);--color-warning:oklch(89.172% .045 71.47);--color-warning-content:oklch(17.834% .009 71.47);--color-error:oklch(73.092% .11 20.076);--color-error-content:oklch(14.618% .022 20.076);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=dim]:checked),[data-theme=dim]{color-scheme:dark;--color-base-100:oklch(30.857% .023 264.149);--color-base-200:oklch(28.036% .019 264.182);--color-base-300:oklch(26.346% .018 262.177);--color-base-content:oklch(82.901% .031 222.959);--color-primary:oklch(86.133% .141 139.549);--color-primary-content:oklch(17.226% .028 139.549);--color-secondary:oklch(73.375% .165 35.353);--color-secondary-content:oklch(14.675% .033 35.353);--color-accent:oklch(74.229% .133 311.379);--color-accent-content:oklch(14.845% .026 311.379);--color-neutral:oklch(24.731% .02 264.094);--color-neutral-content:oklch(82.901% .031 222.959);--color-info:oklch(86.078% .142 206.182);--color-info-content:oklch(17.215% .028 206.182);--color-success:oklch(86.171% .142 166.534);--color-success-content:oklch(17.234% .028 166.534);--color-warning:oklch(86.163% .142 94.818);--color-warning-content:oklch(17.232% .028 94.818);--color-error:oklch(82.418% .099 33.756);--color-error-content:oklch(16.483% .019 33.756);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=nord]:checked),[data-theme=nord]{color-scheme:light;--color-base-100:oklch(95.127% .007 260.731);--color-base-200:oklch(93.299% .01 261.788);--color-base-300:oklch(89.925% .016 262.749);--color-base-content:oklch(32.437% .022 264.182);--color-primary:oklch(59.435% .077 254.027);--color-primary-content:oklch(11.887% .015 254.027);--color-secondary:oklch(69.651% .059 248.687);--color-secondary-content:oklch(13.93% .011 248.687);--color-accent:oklch(77.464% .062 217.469);--color-accent-content:oklch(15.492% .012 217.469);--color-neutral:oklch(45.229% .035 264.131);--color-neutral-content:oklch(89.925% .016 262.749);--color-info:oklch(69.207% .062 332.664);--color-info-content:oklch(13.841% .012 332.664);--color-success:oklch(76.827% .074 131.063);--color-success-content:oklch(15.365% .014 131.063);--color-warning:oklch(85.486% .089 84.093);--color-warning-content:oklch(17.097% .017 84.093);--color-error:oklch(60.61% .12 15.341);--color-error-content:oklch(12.122% .024 15.341);--radius-selector:1rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=sunset]:checked),[data-theme=sunset]{color-scheme:dark;--color-base-100:oklch(22% .019 237.69);--color-base-200:oklch(20% .019 237.69);--color-base-300:oklch(18% .019 237.69);--color-base-content:oklch(77.383% .043 245.096);--color-primary:oklch(74.703% .158 39.947);--color-primary-content:oklch(14.94% .031 39.947);--color-secondary:oklch(72.537% .177 2.72);--color-secondary-content:oklch(14.507% .035 2.72);--color-accent:oklch(71.294% .166 299.844);--color-accent-content:oklch(14.258% .033 299.844);--color-neutral:oklch(26% .019 237.69);--color-neutral-content:oklch(70% .019 237.69);--color-info:oklch(85.559% .085 206.015);--color-info-content:oklch(17.111% .017 206.015);--color-success:oklch(85.56% .085 144.778);--color-success-content:oklch(17.112% .017 144.778);--color-warning:oklch(85.569% .084 74.427);--color-warning-content:oklch(17.113% .016 74.427);--color-error:oklch(85.511% .078 16.886);--color-error-content:oklch(17.102% .015 16.886);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=caramellatte]:checked),[data-theme=caramellatte]{color-scheme:light;--color-base-100:oklch(98% .016 73.684);--color-base-200:oklch(95% .038 75.164);--color-base-300:oklch(90% .076 70.697);--color-base-content:oklch(40% .123 38.172);--color-primary:oklch(0% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(22.45% .075 37.85);--color-secondary-content:oklch(90% .076 70.697);--color-accent:oklch(46.44% .111 37.85);--color-accent-content:oklch(90% .076 70.697);--color-neutral:oklch(55% .195 38.402);--color-neutral-content:oklch(98% .016 73.684);--color-info:oklch(42% .199 265.638);--color-info-content:oklch(90% .076 70.697);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .076 70.697);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}:root:has(input.theme-controller[value=abyss]:checked),[data-theme=abyss]{color-scheme:dark;--color-base-100:oklch(20% .08 209);--color-base-200:oklch(15% .08 209);--color-base-300:oklch(10% .08 209);--color-base-content:oklch(90% .076 70.697);--color-primary:oklch(92% .2653 125);--color-primary-content:oklch(50% .2653 125);--color-secondary:oklch(83.27% .0764 298.3);--color-secondary-content:oklch(43.27% .0764 298.3);--color-accent:oklch(43% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(30% .08 209);--color-neutral-content:oklch(90% .076 70.697);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(79% .209 151.711);--color-success-content:oklch(26% .065 152.934);--color-warning:oklch(84.8% .1962 84.62);--color-warning-content:oklch(44.8% .1962 84.62);--color-error:oklch(65% .1985 24.22);--color-error-content:oklch(27% .1985 24.22);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=silk]:checked),[data-theme=silk]{color-scheme:light;--color-base-100:oklch(97% .0035 67.78);--color-base-200:oklch(95% .0081 61.42);--color-base-300:oklch(90% .0081 61.42);--color-base-content:oklch(40% .0081 61.42);--color-primary:oklch(23.27% .0249 284.3);--color-primary-content:oklch(94.22% .2505 117.44);--color-secondary:oklch(23.27% .0249 284.3);--color-secondary-content:oklch(73.92% .2135 50.94);--color-accent:oklch(23.27% .0249 284.3);--color-accent-content:oklch(88.92% .2061 189.9);--color-neutral:oklch(20% 0 0);--color-neutral-content:oklch(80% .0081 61.42);--color-info:oklch(80.39% .1148 241.68);--color-info-content:oklch(30.39% .1148 241.68);--color-success:oklch(83.92% .0901 136.87);--color-success-content:oklch(23.92% .0901 136.87);--color-warning:oklch(83.92% .1085 80);--color-warning-content:oklch(43.92% .1085 80);--color-error:oklch(75.1% .1814 22.37);--color-error-content:oklch(35.1% .1814 22.37);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}}@property --radialprogress{syntax: "<percentage>"; inherits: true; initial-value: 0%;}:root:not(span){overflow:var(--page-overflow)}:root{--page-scroll-bg-on:linear-gradient(var(--root-bg),var(--root-bg))var(--root-bg)}@supports (color:color-mix(in lab,red,red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg),var(--root-bg))color-mix(in srgb,var(--root-bg),oklch(0% 0 0) calc(var(--page-has-backdrop,0)*40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset); else: unset)}:root:root{background:var(--page-scroll-bg,var(--root-bg,var(--color-base-100)))}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}}@layer components;@layer utilities{@layer daisyui.component{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-rows:1fr 1.8rem 1fr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:95cqi;max-width:95cqi}.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-1:focus-visible) .diff-resizer{min-width:5cqi;max-width:5cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:95cqi;max-width:95cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}:where(.drawer-side){overflow:hidden}.drawer-side{pointer-events:none;visibility:hidden;z-index:10;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;inset-inline-start:0;background-color:#0000;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0}.drawer-side>.drawer-overlay{cursor:pointer;background-color:#0006;place-self:stretch stretch;position:sticky;top:0}.drawer-side>*{grid-row-start:1;grid-column-start:1}.drawer-side>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out,width .2s ease-out;translate:-100%}[dir=rtl] :is(.drawer-side>:not(.drawer-overlay)){translate:100%}.fab{pointer-events:none;z-index:999;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;inset-inline-end:1rem;flex-direction:column-reverse;align-items:flex-end;gap:.5rem;display:flex;position:fixed;bottom:1rem}.fab>*{pointer-events:auto;align-items:center;gap:.5rem;display:flex}.fab>:hover,.fab>:has(:focus-visible){z-index:1}.fab>[tabindex]:first-child{transition-property:opacity,visibility,rotate;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:grid;position:relative}.fab .fab-close,.fab .fab-main-action{inset-inline-end:0;position:absolute;bottom:0}:is(.fab:focus-within:has(.fab-close),.fab:focus-within:has(.fab-main-action))>[tabindex]{opacity:0;rotate:90deg}.fab:focus-within>[tabindex]:first-child{pointer-events:none}.fab:focus-within>:nth-child(n+2){visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:1}.fab>:nth-child(n+2){visibility:hidden;--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:0;transition-property:opacity,scale,visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fab>:nth-child(n+2).fab-main-action,.fab>:nth-child(n+2).fab-close{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.fab>:nth-child(3){transition-delay:30ms}.fab>:nth-child(4){transition-delay:60ms}.fab>:nth-child(5){transition-delay:90ms}.fab>:nth-child(6){transition-delay:.12s}.drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}@media(prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media(prefers-reduced-motion:no-preference){:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))>.tooltip-content,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible))[data-tip]:before,:is(.tooltip.tooltip-open,.tooltip[data-tip]:not([data-tip=""]):hover,.tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.tooltip:has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media(hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field),var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)),var(--tab-border-color)calc(calc(69% - var(--border)) + .25px),var(--tab-border-color)calc(calc(69% - var(--border)) + var(--border)),var(--tab-bg)calc(calc(69% - var(--border)) + var(--border) + .25px);order:var(--tab-order);height:var(--tab-height);border-color:#0000;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth)*3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.floating-label{display:block;position:relative}.floating-label input{display:block}.floating-label input::placeholder,.floating-label textarea::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}.floating-label>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown))) ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown)))>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}.floating-label:has(:disabled,[disabled])>span{opacity:0}.floating-label:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}.floating-label:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}.floating-label:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}.floating-label:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}.floating-label:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}.diff-item-2{grid-row:1/span 3;grid-column-start:1;position:relative}.diff-item-2:after{pointer-events:none;z-index:2;background-color:var(--color-base-100);border-radius:3.40282e38px;position:absolute;top:50%;bottom:0;right:1px}@supports (color:color-mix(in lab,red,red)){.diff-item-2:after{background-color:color-mix(in oklab,var(--color-base-100)50%,transparent)}}.diff-item-2:after{border:2px solid var(--color-base-100);content:"";outline:1px solid var(--color-base-content);width:1.2rem;height:1.8rem}@supports (color:color-mix(in lab,red,red)){.diff-item-2:after{outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000)}}.diff-item-2:after{outline-offset:-3px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);translate:50% -50%;box-shadow:0 1px 2px #0000001a}.diff-item-2>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff-item-2:after{--tw-content:none;content:var(--tw-content)}}.pika-single:is(div){-webkit-user-select:none;user-select:none;z-index:999;color:var(--color-base-content);background-color:var(--color-base-100);border-radius:var(--radius-box);border:var(--border)solid var(--color-base-200);padding:.5rem;font-size:.75rem;display:inline-block;position:relative}.pika-single:is(div):before,.pika-single:is(div):after{content:"";display:table}.pika-single:is(div):after{clear:both}.pika-single:is(div).is-hidden{display:none}.pika-single:is(div).is-bound{position:absolute}.pika-single:is(div) .pika-lendar{css-float:left}.pika-single:is(div) .pika-title{text-align:center;position:relative}.pika-single:is(div) .pika-title select{cursor:pointer;z-index:999;opacity:0;margin:0;position:absolute;top:5px;left:0}.pika-single:is(div) .pika-label{z-index:999;background-color:var(--color-base-100);margin:0;padding:5px 3px;display:inline-block;position:relative;overflow:hidden}.pika-single:is(div) .pika-prev,.pika-single:is(div) .pika-next{cursor:pointer;color:#0000;border-radius:var(--radius-field);border:0;outline:none;width:2.25rem;height:2.25rem;font-size:1.2em;display:block;position:absolute;top:0}:is(.pika-single:is(div) .pika-prev,.pika-single:is(div) .pika-next):hover{background-color:var(--color-base-200)}:is(.pika-single:is(div) .pika-prev,.pika-single:is(div) .pika-next).is-disabled{cursor:default;opacity:.2}:is(.pika-single:is(div) .pika-prev,.pika-single:is(div) .pika-next):before{width:2.25rem;height:2.25rem;color:var(--color-base-content);line-height:2.25;display:inline-block}.pika-single:is(div) .pika-prev{left:0}.pika-single:is(div) .pika-prev:before{--tw-content:"‹";content:var(--tw-content)}.pika-single:is(div) .pika-next{right:0}.pika-single:is(div) .pika-next:before{--tw-content:"›";content:var(--tw-content)}.pika-single:is(div) .pika-select{display:inline-block}.pika-single:is(div) .pika-table{border-collapse:collapse;border-spacing:0;border:0;width:100%}.pika-single:is(div) .pika-table th,.pika-single:is(div) .pika-table td{padding:0}.pika-single:is(div) .pika-table th{opacity:.6;text-align:center;width:2.25rem;height:2.25rem}.pika-single:is(div) .pika-button{cursor:pointer;text-align:right;text-align:center;border:0;outline:none;width:2.25rem;height:2.25rem;margin:0;padding:5px;display:block}.pika-single:is(div) .pika-week{color:var(--color-base-content)}.pika-single:is(div) .is-today .pika-button{background:var(--color-primary);color:var(--color-primary-content)}:is(.pika-single:is(div) .is-selected,.pika-single:is(div) .has-event) .pika-button,:is(.pika-single:is(div) .is-selected,.pika-single:is(div) .has-event) .pika-button:hover{color:var(--color-base-100);background-color:var(--color-base-content);border-radius:var(--radius-field)}.pika-single:is(div) .has-event .pika-button,:is(.pika-single:is(div) .is-disabled,.pika-single:is(div) .is-inrange) .pika-button{background:var(--color-base-primary)}.pika-single:is(div) .is-startrange .pika-button,.pika-single:is(div) .is-endrange .pika-button{color:var(--color-base-100);background:var(--color-base-content);border-radius:var(--radius-field)}.pika-single:is(div) .is-disabled .pika-button{pointer-events:none;cursor:default;color:var(--color-base-content);opacity:.3}.pika-single:is(div) .is-outside-current-month .pika-button{color:var(--color-base-content);opacity:.3}.pika-single:is(div) .is-selection-disabled{pointer-events:none;cursor:default}.pika-single:is(div) .pika-button:hover,.pika-single:is(div) .pika-row.pick-whole-week:hover .pika-button{color:var(--color-base-content);background-color:var(--color-base-200);border-radius:var(--radius-field)}.pika-single:is(div) .pika-table abbr{font-weight:400;text-decoration:none}.diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row:1/span 3;grid-column-start:1;position:relative;overflow:hidden}.diff-item-1:focus-visible{--tw-outline-style:none;outline-style:none}.diff-item-1>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}.dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid var(--color-base-content);flex-direction:row;justify-content:space-around;align-items:center;width:100%;padding:.5rem;display:flex;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.dock{border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000)}}.dock{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.dock>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative}@media(hover:hover){.dock>:hover{opacity:.8}}:is(.dock>[aria-disabled=true],.dock>[disabled]),:is(.dock>[aria-disabled=true],.dock>[disabled]):hover{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.dock>[aria-disabled=true],.dock>[disabled]),:is(.dock>[aria-disabled=true],.dock>[disabled]):hover{color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}:is(.dock>[aria-disabled=true],.dock>[disabled]),:is(.dock>[aria-disabled=true],.dock>[disabled]):hover{opacity:1}.dock>* .dock-label{font-size:.6875rem}.dock>:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}.dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media(prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:95%}}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown.dropdown-open,.dropdown:not(.dropdown-hover):focus,.dropdown:focus-within) .dropdown-content{opacity:1}.dropdown.dropdown-hover:hover .dropdown-content{opacity:1;scale:100%}.dropdown:is(details) summary::-webkit-details-marker{display:none}:is(.dropdown.dropdown-open,.dropdown:focus,.dropdown:focus-within) .dropdown-content{scale:100%}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}.dropdown[popover]:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg),0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000)}}.btn{--btn-noise:var(--fx-noise)}@media(hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){appearance:none}.btn:is(input[type=checkbox],input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.react-day-picker{-webkit-user-select:none;user-select:none;background-color:var(--color-base-100);border-radius:var(--radius-box);border:var(--border)solid var(--color-base-200);font-size:.75rem;display:inline-block;position:relative;overflow:clip}.react-day-picker[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.react-day-picker *{box-sizing:border-box}.react-day-picker .rdp-day{text-align:center;width:2.25rem;height:2.25rem}.react-day-picker .rdp-day_button{cursor:pointer;font:inherit;color:inherit;border-radius:var(--radius-field);background:0 0;border:2px solid #0000;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin:0;padding:0;display:flex}.react-day-picker .rdp-day_button:disabled{cursor:revert}.react-day-picker .rdp-day_button:hover{background-color:var(--color-base-200)}.react-day-picker .rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}.react-day-picker .rdp-button_next{border-radius:var(--radius-field)}.react-day-picker .rdp-button_next:hover{background-color:var(--color-base-200)}.react-day-picker .rdp-button_previous{border-radius:var(--radius-field)}.react-day-picker .rdp-button_previous:hover{background-color:var(--color-base-200)}.react-day-picker .rdp-button_next,.react-day-picker .rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin:0;padding:0;display:inline-flex;position:relative}:is(.react-day-picker .rdp-button_next,.react-day-picker .rdp-button_previous):disabled,:is(.react-day-picker .rdp-button_next,.react-day-picker .rdp-button_previous)[aria-disabled=true]{cursor:revert;opacity:.5}:is(.react-day-picker .rdp-button_next,.react-day-picker .rdp-button_previous):disabled:hover,:is(.react-day-picker .rdp-button_next,.react-day-picker .rdp-button_previous)[aria-disabled=true]:hover{background-color:#0000}.react-day-picker .rdp-chevron{fill:var(--color-base-content);width:1rem;height:1rem;display:inline-block}.react-day-picker .rdp-dropdowns{align-items:center;gap:.5rem;display:inline-flex;position:relative}.react-day-picker .rdp-dropdown{z-index:2;opacity:0;appearance:none;cursor:inherit;line-height:inherit;border:none;width:100%;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.react-day-picker .rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.react-day-picker .rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.react-day-picker .rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:.5}.react-day-picker .rdp-month_caption{height:2.75rem;font-size:.75rem;font-weight:inherit;place-content:center;display:flex}.react-day-picker .rdp-months{flex-wrap:wrap;gap:2rem;max-width:fit-content;padding:.5rem;display:flex;position:relative}.react-day-picker .rdp-month_grid{border-collapse:collapse}.react-day-picker .rdp-nav{inset-block-start:0;inset-inline-end:0;justify-content:space-between;align-items:center;width:100%;height:2.75rem;padding-inline:.5rem;display:flex;position:absolute;top:.25rem}.react-day-picker .rdp-weekday{opacity:.6;text-align:center;padding:.5rem 0;font-size:smaller;font-weight:500}.react-day-picker .rdp-week_number{opacity:.6;text-align:center;border:none;border-radius:100%;width:2.25rem;height:2.25rem;font-size:small;font-weight:400}.react-day-picker .rdp-today:not(.rdp-outside) .rdp-day_button{background:var(--color-primary);color:var(--color-primary-content)}.react-day-picker .rdp-selected{font-weight:inherit;font-size:.75rem}.react-day-picker .rdp-selected .rdp-day_button{color:var(--color-base-100);background-color:var(--color-base-content);border-radius:var(--radius-field);border:none}.react-day-picker .rdp-selected .rdp-day_button:hover{background-color:var(--color-base-content)}.react-day-picker .rdp-outside{opacity:.75}.react-day-picker .rdp-disabled{opacity:.5}.react-day-picker .rdp-hidden{visibility:hidden;color:var(--color-base-content)}.react-day-picker .rdp-range_start .rdp-day_button{border-radius:var(--radius-field)0 0 var(--radius-field);background-color:var(--color-base-content);color:var(--color-base-100)}.react-day-picker .rdp-range_middle{background-color:var(--color-base-200)}.react-day-picker .rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:inherit}.react-day-picker .rdp-range_end{color:var(--color-base-content)}.react-day-picker .rdp-range_end .rdp-day_button{border-radius:0 var(--radius-field)var(--radius-field)0;background-color:var(--color-base-content);color:var(--color-base-100)}.react-day-picker .rdp-range_start.rdp-range_end{background:revert}.react-day-picker .rdp-focusable{cursor:pointer}.react-day-picker .rdp-footer{border-top:var(--border)solid var(--color-base-200);padding:.5rem}.countdown{display:inline-flex}.countdown>*{visibility:hidden;--value-v: mod(max(0,var(--value)),1000) ;--value-hundreds: round(to-zero,var(--value-v)/100,1) ;--value-tens: round(to-zero,mod(var(--value-v),100)/10,1) ;--value-ones: mod(var(--value-v),100) ;--show-hundreds:clamp(clamp(0,var(--digits,1) - 2,1),var(--value-hundreds),1);--show-tens:clamp(clamp(0,var(--digits,1) - 1,1),var(--value-tens) + var(--show-hundreds),1);--first-digits: round(to-zero,var(--value-v)/10,1) ;height:1em;width:calc(1ch + var(--show-tens)*1ch + var(--show-hundreds)*1ch);direction:ltr;transition:width .4s ease-out .2s;display:inline-block;position:relative;overflow-y:clip}.countdown>:before,.countdown>:after{visibility:visible;--tw-content:"00\\a 01\\a 02\\a 03\\a 04\\a 05\\a 06\\a 07\\a 08\\a 09\\a 10\\a 11\\a 12\\a 13\\a 14\\a 15\\a 16\\a 17\\a 18\\a 19\\a 20\\a 21\\a 22\\a 23\\a 24\\a 25\\a 26\\a 27\\a 28\\a 29\\a 30\\a 31\\a 32\\a 33\\a 34\\a 35\\a 36\\a 37\\a 38\\a 39\\a 40\\a 41\\a 42\\a 43\\a 44\\a 45\\a 46\\a 47\\a 48\\a 49\\a 50\\a 51\\a 52\\a 53\\a 54\\a 55\\a 56\\a 57\\a 58\\a 59\\a 60\\a 61\\a 62\\a 63\\a 64\\a 65\\a 66\\a 67\\a 68\\a 69\\a 70\\a 71\\a 72\\a 73\\a 74\\a 75\\a 76\\a 77\\a 78\\a 79\\a 80\\a 81\\a 82\\a 83\\a 84\\a 85\\a 86\\a 87\\a 88\\a 89\\a 90\\a 91\\a 92\\a 93\\a 94\\a 95\\a 96\\a 97\\a 98\\a 99\\a";content:var(--tw-content);font-variant-numeric:tabular-nums;white-space:pre;text-align:end;direction:rtl;transition:all 1s cubic-bezier(1,0,0,1),width .2s ease-out .2s,opacity .2s ease-out .2s;position:absolute;overflow-x:clip}.countdown>:before{width:calc(1ch + var(--show-hundreds)*1ch);top:calc(var(--first-digits)*-1em);opacity:var(--show-tens);inset-inline-end:0}.countdown>:after{width:1ch;top:calc(var(--value-ones)*-1em);inset-inline-start:0}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative;overflow:hidden}@media(prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}@media(prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete,visibility .2s allow-discrete,padding .2s ease-out,background-color .2s ease-out,height .2s;interpolate-size:allow-keywords;height:0}.collapse:is(details):where([open])::details-content{height:auto}}.collapse:is(details) summary{display:block;position:relative}.collapse:is(details) summary::-webkit-details-marker{display:none}.collapse:is(details)>.collapse-content{content-visibility:visible}.collapse:is(details) summary{outline:none}.collapse-content{content-visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden}}@media(prefers-reduced-motion:no-preference){.collapse-content{transition:content-visibility .2s allow-discrete,visibility .2s allow-discrete,padding .2s ease-out,background-color .2s ease-out}}.validator-hint{visibility:hidden;margin-top:.5rem;font-size:.75rem}.validator:user-valid{--input-color:var(--color-success)}.validator:user-valid:focus{--input-color:var(--color-success)}.validator:user-valid:checked{--input-color:var(--color-success)}.validator:user-valid[aria-checked=true]{--input-color:var(--color-success)}.validator:user-valid:focus-within{--input-color:var(--color-success)}.validator:has(:user-valid){--input-color:var(--color-success)}.validator:has(:user-valid):focus{--input-color:var(--color-success)}.validator:has(:user-valid):checked{--input-color:var(--color-success)}.validator:has(:user-valid)[aria-checked=true]{--input-color:var(--color-success)}.validator:has(:user-valid):focus-within{--input-color:var(--color-success)}.validator:user-invalid{--input-color:var(--color-error)}.validator:user-invalid:focus{--input-color:var(--color-error)}.validator:user-invalid:checked{--input-color:var(--color-error)}.validator:user-invalid[aria-checked=true]{--input-color:var(--color-error)}.validator:user-invalid:focus-within{--input-color:var(--color-error)}.validator:user-invalid~.validator-hint{visibility:visible;color:var(--color-error)}.validator:has(:user-invalid){--input-color:var(--color-error)}.validator:has(:user-invalid):focus{--input-color:var(--color-error)}.validator:has(:user-invalid):checked{--input-color:var(--color-error)}.validator:has(:user-invalid)[aria-checked=true]{--input-color:var(--color-error)}.validator:has(:user-invalid):focus-within{--input-color:var(--color-error)}.validator:has(:user-invalid)~.validator-hint{visibility:visible;color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))),:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):checked,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))[aria-checked=true],:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus-within{--input-color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{visibility:visible;color:var(--color-error)}.radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative}.radial-progress:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}.radial-progress:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content)5%,transparent)}}.toast{translate:var(--toast-x,0)var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media(prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab,red,red)){.toggle{box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab,red,red)){.toggle{--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000)}}.toggle{--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:none}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:none}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab,red,red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)}}.toggle:before{background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}@media(forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border)solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.input{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.input:where(input){display:inline-flex}.input :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}.table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media(hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot){border-top:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps .step:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);content:"";border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step);content:var(--tw-content);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.steps .step:first-child:before{--tw-content:none;content:var(--tw-content)}.steps .step[data-content]:after{--tw-content:attr(data-content);content:var(--tw-content)}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab,red,red)){.range{--range-bg:color-mix(in oklab,currentColor 10%,#0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media(forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill));position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab,red,red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab,red,red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2)) 0 0 calc(100rem*var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative}.chat-bubble:before{background-color:inherit;content:"";width:.75rem;height:.75rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-chat);mask-image:var(--mask-chat);position:absolute;bottom:0;-webkit-mask-position:0 -1px;mask-position:0 -1px;-webkit-mask-size:.8125rem;mask-size:.8125rem}.select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.select{--size:calc(var(--size-field,.25rem)*10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border)*2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border)solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth)*3px) -2px #0003;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth)*.1)),0 8px 10px -6px rgb(0 0 0/calc(var(--depth)*.1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth)*3px) -2px var(--color-neutral)}.diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:2;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:1rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;overflow:hidden;transform:scaleY(3)translate(.35rem,.35rem)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.swap{cursor:pointer;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative}.swap input{appearance:none;border:none}.swap>*{grid-row-start:1;grid-column-start:1}@media(prefers-reduced-motion:no-preference){.swap>*{transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on,.swap input:is(:checked,:indeterminate)~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}.collapse-title{grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.mockup-browser{border-radius:var(--radius-box);position:relative;overflow:auto hidden}.mockup-browser pre[data-prefix]:before{--tw-content:attr(data-prefix);content:var(--tw-content);text-align:right;display:inline-block}.mockup-browser .mockup-browser-toolbar{align-items:center;width:100%;margin-block:.75rem;padding-right:1.4em;display:inline-flex}.mockup-browser .mockup-browser-toolbar:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.mockup-browser .mockup-browser-toolbar:before{content:"";aspect-ratio:1;opacity:.3;border-radius:3.40282e38px;height:.75rem;margin-right:4.8rem;display:inline-block;box-shadow:1.4em 0,2.8em 0,4.2em 0}.mockup-browser .mockup-browser-toolbar .input{background-color:var(--color-base-200);text-overflow:ellipsis;white-space:nowrap;direction:ltr;align-items:center;gap:.5rem;height:100%;margin-inline:auto;font-size:.75rem;display:flex;overflow:hidden}.mockup-browser .mockup-browser-toolbar .input:before{content:"";opacity:.5;background-color:currentColor;width:1rem;height:1rem;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M9.965 11.026a5 5 0 1 1 1.06-1.06l2.755 2.754a.75.75 0 1 1-1.06 1.06l-2.755-2.754ZM10.5 7a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z' clip-rule='evenodd' /%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M9.965 11.026a5 5 0 1 1 1.06-1.06l2.755 2.754a.75.75 0 1 1-1.06 1.06l-2.755-2.754ZM10.5 7a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z' clip-rule='evenodd' /%3E%3C/svg%3E") 50%/contain no-repeat}.mockup-code{border-radius:var(--radius-box);background-color:var(--color-neutral);color:var(--color-neutral-content);direction:ltr;padding-block:1.25rem;font-size:.875rem;position:relative;overflow:auto hidden}.mockup-code:before{content:"";opacity:.3;border-radius:3.40282e38px;width:.75rem;height:.75rem;margin-bottom:1rem;display:block;box-shadow:1.4em 0,2.8em 0,4.2em 0}.mockup-code pre{padding-right:1.25rem}.mockup-code pre:before{content:"";margin-right:2ch}.mockup-code pre[data-prefix]:before{--tw-content:attr(data-prefix);content:var(--tw-content);text-align:right;opacity:.5;width:2rem;display:inline-block}.mockup-window{border-radius:var(--radius-box);flex-direction:column;padding-top:1.25rem;display:flex;position:relative;overflow:auto hidden}.mockup-window:before{content:"";aspect-ratio:1;opacity:.3;border-radius:3.40282e38px;flex-shrink:0;align-self:flex-start;height:.75rem;margin-bottom:1rem;display:block;box-shadow:1.4em 0,2.8em 0,4.2em 0}[dir=rtl] .mockup-window:before{align-self:flex-end}.mockup-window pre[data-prefix]:before{--tw-content:attr(data-prefix);content:var(--tw-content);text-align:right;display:inline-block}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border)solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0/calc(var(--depth)*.1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media(forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}.checkbox\\!{border:var(--border)solid var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab,red,red)){.checkbox\\!{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))!important}}.checkbox\\!{cursor:pointer!important;appearance:none!important;border-radius:var(--radius-selector)!important;vertical-align:middle!important;color:var(--color-base-content)!important;box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 0 #0000 inset,0 0 #0000!important;--size:calc(var(--size-selector,.25rem)*6)!important;width:var(--size)!important;height:var(--size)!important;background-size:auto,calc(var(--noise)*100%)!important;background-image:none,var(--fx-noise)!important;flex-shrink:0!important;padding:.25rem!important;transition:background-color .2s,box-shadow .2s!important;display:inline-block!important;position:relative!important}.checkbox\\!:before{--tw-content:""!important;content:var(--tw-content)!important;opacity:0!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%)!important;width:100%!important;height:100%!important;box-shadow:0 3px oklch(100% 0 0/calc(var(--depth)*.1)) inset!important;background-color:currentColor!important;font-size:1rem!important;line-height:.75!important;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s!important;display:block!important;rotate:45deg!important}.checkbox\\!:focus-visible{outline:2px solid var(--input-color,currentColor)!important;outline-offset:2px!important}.checkbox\\!:checked,.checkbox\\![aria-checked=true]{background-color:var(--input-color,#0000)!important;box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1))!important}:is(.checkbox\\!:checked,.checkbox\\![aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%)!important;opacity:1!important}@media(forced-colors:active){:is(.checkbox\\!:checked,.checkbox\\![aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}@media print{:is(.checkbox\\!:checked,.checkbox\\![aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}.checkbox\\!:indeterminate{background-color:var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab,red,red)){.checkbox\\!:indeterminate{background-color:var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000))!important}}.checkbox\\!:indeterminate:before{opacity:1!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%)!important;translate:0 -35%!important;rotate:none!important}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab,red,red)){.radio{border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000))}}.radio{box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1)) inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media(prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1)) inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media(forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem}@media(prefers-reduced-motion:no-preference){.rating :where(*){animation:.25s ease-out rating}}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{scale:1.1}@media(prefers-reduced-motion:no-preference){.rating :focus-visible{transition:scale .2s ease-out}}.rating :active:focus{animation:none;scale:1.1}.navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.progress{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media(prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media(prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed}.file-input{cursor:pointer;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.file-input{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.file-input{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.file-input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.file-input::file-selector-button{cursor:pointer;webkit-user-select:none;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px #fff inset,var(--btn-shadow);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}@supports (color:color-mix(in lab,red,red)){.file-input::file-selector-button{box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000) inset,var(--btn-shadow)}}.file-input::file-selector-button{--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.file-input::file-selector-button{--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%)}}.file-input::file-selector-button{--btn-shadow:0 3px 2px -2px var(--btn-bg),0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.file-input::file-selector-button{--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000)}}.file-input::file-selector-button{--btn-noise:var(--fx-noise)}.file-input:focus{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.file-input:focus{box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000)}}.file-input:focus{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}:is(.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]){box-shadow:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]){color:color-mix(in oklch,var(--color-base-content)20%,#0000)}}:is(.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]))::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.file-input:has(>input[disabled]),.file-input:is(:disabled,[disabled]))::file-selector-button{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}.hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}.textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000) inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.mockup-phone-camera{z-index:1;background:#000;border-radius:17px;grid-area:1/1/1/1;width:28%;height:3.7%;margin-top:3%}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box);--tabcontent-order:1;width:100%;height:calc(100% - var(--tab-height) + var(--border));margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.hover-gallery{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}.hover-gallery,.hover-gallery:is(figure){display:inline-grid}.hover-gallery:has(>:nth-child(3)){--items:2}.hover-gallery:has(>:nth-child(4)){--items:3}.hover-gallery:has(>:nth-child(5)){--items:4}.hover-gallery:has(>:nth-child(6)){--items:5}.hover-gallery:has(>:nth-child(7)){--items:6}.hover-gallery:has(>:nth-child(8)){--items:7}.hover-gallery:has(>:nth-child(9)){--items:8}.hover-gallery:has(>:nth-child(10)){--items:9}.hover-gallery>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%}.hover-gallery>:first-child{opacity:1;grid-column:1/-1}.hover-gallery>:nth-child(2){grid-column:1}.hover-gallery>:nth-child(3){grid-column:2}.hover-gallery>:nth-child(4){grid-column:3}.hover-gallery>:nth-child(5){grid-column:4}.hover-gallery>:nth-child(6){grid-column:5}.hover-gallery>:nth-child(7){grid-column:6}.hover-gallery>:nth-child(8){grid-column:7}.hover-gallery>:nth-child(9){grid-column:8}.hover-gallery>:nth-child(10){grid-column:9}.hover-gallery>:nth-child(n+11){display:none}.hover-gallery>:hover{opacity:1;grid-column:1/-1}.hover-gallery:has(:hover)>:first-child{display:none}.mockup-phone-display{border-radius:54px;grid-area:1/1/1/1;width:100%;height:100%;overflow:hidden}@supports (corner-shape:superellipse(1.87)){.mockup-phone-display{corner-shape:superellipse(1.87);border-radius:101px}}.mockup-phone-display>img{object-fit:cover;width:100%;height:100%}.timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid}.hero>*{grid-row-start:1;grid-column-start:1}.hero-overlay{background-color:var(--color-neutral);grid-row-start:1;grid-column-start:1;width:100%;height:100%}@supports (color:color-mix(in lab,red,red)){.hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent)}}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px #00000040}.drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.timeline-middle{grid-row-start:2;grid-column-start:2}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-desc{color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.stat-desc{font-size:.75rem}.stat-title{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-title{color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.stat-title{font-size:.75rem}.stat-actions{white-space:nowrap;grid-column-start:1}.chat-image{grid-row:span 2/span 2;align-self:flex-end}.chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentcolor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto}.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li{align-items:center;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>*{cursor:pointer;align-items:center;gap:.5rem;display:flex}@media(hover:hover){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:hover{text-decoration-line:underline}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{outline-offset:2px;outline:2px solid #0000}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus-visible{outline-offset:2px;outline:2px solid}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] :is(:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li)+:before{rotate:-135deg}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black)30%,transparent)}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000)}}.mockup-phone{aspect-ratio:462/978;background-color:#000;border:5px solid #6b6b6b;border-radius:65px;justify-items:center;width:100%;max-width:462px;padding:6px;display:inline-grid;overflow:hidden}@supports (corner-shape:superellipse(1.45)){.mockup-phone{corner-shape:superellipse(1.45);border-radius:90px}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid var(--color-base-content);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.kbd{border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{border-bottom:calc(var(--border) + 1px)solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.kbd{border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000)}}.kbd{--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);font-size:.875rem}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border)dashed currentColor}@supports (color:color-mix(in lab,red,red)){.stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}.stat:not(:last-child){border-block-end:none}.navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}.navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.fab-flower{--position:0rem;display:grid}.fab-flower>:nth-child(-n+2){--position:0rem}.fab-flower>*{--degree:180deg;--flip-degree:calc(180deg - var(--degree));transform:translate(calc(cos(var(--degree))*var(--position)))translateY(calc(sin(var(--degree))*calc(-1*var(--position))));grid-area:1/1}[dir=rtl] :is(.fab-flower>*){transform:translate(calc(cos(var(--flip-degree))*var(--position)))translateY(calc(sin(var(--flip-degree))*calc(-1*var(--position))))}.fab-flower>:nth-child(n+7){display:none}.fab-flower:has(:nth-child(3)){--position:140%}.fab-flower:has(:nth-child(3))>:nth-child(3){--degree:135deg}.fab-flower:has(:nth-child(4)){--position:140%}.fab-flower:has(:nth-child(4))>:nth-child(3){--degree:165deg}.fab-flower:has(:nth-child(4))>:nth-child(4){--degree:105deg}.fab-flower:has(:nth-child(5)){--position:180%}.fab-flower:has(:nth-child(5))>:nth-child(3){--degree:180deg}.fab-flower:has(:nth-child(5))>:nth-child(4){--degree:135deg}.fab-flower:has(:nth-child(5))>:nth-child(5){--degree:90deg}.fab-flower:has(:nth-child(6)){--position:220%}.fab-flower:has(:nth-child(6))>:nth-child(3){--degree:180deg}.fab-flower:has(:nth-child(6))>:nth-child(4){--degree:150deg}.fab-flower:has(:nth-child(6))>:nth-child(5){--degree:120deg}.fab-flower:has(:nth-child(6))>:nth-child(6){--degree:90deg}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;display:inline-flex;overflow-x:scroll}@media(prefers-reduced-motion:no-preference){.carousel{scroll-behavior:smooth}}.carousel::-webkit-scrollbar{display:none}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.avatar-group{display:flex;overflow:hidden}.avatar-group .avatar{border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.cally{font-size:.7rem}.cally::part(container){-webkit-user-select:none;user-select:none;padding:.5rem 1rem}.cally ::part(th){block-size:auto;font-weight:400}.cally::part(header){direction:ltr}.cally ::part(head){opacity:.5;font-size:.7rem}.cally::part(button){border-radius:var(--radius-field);background:0 0;border:none;padding:.5rem}.cally::part(button):hover{background:var(--color-base-200)}.cally ::part(day){border-radius:var(--radius-field);font-size:.7rem}.cally ::part(button day today){background:var(--color-primary);color:var(--color-primary-content)}.cally ::part(selected){color:var(--color-base-100);background:var(--color-base-content);border-radius:var(--radius-field)}.cally ::part(range-inner){border-radius:0}.cally ::part(range-start){border-start-end-radius:0;border-end-end-radius:0}.cally ::part(range-end){border-start-start-radius:0;border-end-start-radius:0}.cally ::part(range-start range-end){border-radius:var(--radius-field)}.cally calendar-month{width:100%}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media(prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100)50%,#0000 60% 100%);background-position-x:-50%;background-repeat:no-repeat;background-size:200%}@media(prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px #0000000d}.menu-title{color:var(--color-base-content);padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}.menu-title{font-size:.875rem;font-weight:600}}@layer daisyui.modifier{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}.drawer-open>.drawer-side{overflow-y:auto}.drawer-open>.drawer-toggle{display:none}.drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky}.drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:#0000}.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay),[dir=rtl] :is(.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:0%}.drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}:where(.drawer-toggle:checked~.drawer-side){pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto}:where(.drawer-toggle:checked~.drawer-side)>:not(.drawer-overlay){translate:0%}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.tooltip:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.collapse-arrow>.collapse-title:after{width:.5rem;height:.5rem;display:block;position:absolute;transform:translateY(-100%)rotate(45deg)}@media(prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}}.collapse-arrow>.collapse-title:after{content:"";transform-origin:75% 75%;pointer-events:none;top:50%;inset-inline-end:1.4rem;box-shadow:2px 2px}.collapse-plus>.collapse-title:after{width:.5rem;height:.5rem;display:block;position:absolute}@media(prefers-reduced-motion:no-preference){.collapse-plus>.collapse-title:after{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}}.collapse-plus>.collapse-title:after{--tw-content:"+";content:var(--tw-content);pointer-events:none;top:.9rem;inset-inline-end:1.4rem}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media(hover:hover){.btn:disabled:hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn:disabled:hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media(hover:hover){.btn[disabled]:hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn[disabled]:hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.btn-disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn-disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn-disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn-disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn-disabled{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}@media(hover:hover){.btn-disabled:hover{pointer-events:none;background-color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.btn-disabled:hover{background-color:color-mix(in oklab,var(--color-neutral)20%,transparent)}}.btn-disabled:hover{--btn-border:#0000;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn-disabled:hover{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.tab-disabled{pointer-events:none;opacity:.4}@media(prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}.collapse-open{grid-template-rows:max-content 1fr}.collapse-open>.collapse-content{content-visibility:visible;min-height:fit-content;padding-bottom:1rem}@supports not (content-visibility:visible){.collapse-open>.collapse-content{visibility:visible}}.tabs-lift{--tabs-height:auto;--tabs-direction:row}.tabs-lift>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:var(--tab-radius-limit);--tab-radius-se:var(--tab-radius-limit);--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + var(--tab-radius-limit)*2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es)}.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,var(--tab-radius-grad));--radius-end:radial-gradient(circle at top right,var(--tab-radius-grad));background-color:var(--tab-bg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:var(--tab-radius-limit)var(--tab-radius-limit);inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{--radius-start:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{transform:rotateY(180deg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{--radius-end:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{transform:rotateY(180deg)}.tabs-lift:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}.tabs-lift>.tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}.list .list-row>:not(.list-col-wrap){grid-row-start:1}.avatar-offline:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}.avatar-online:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}.tabs-border>.tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative}.tabs-border>.tab:before{content:"";background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}:is(.tabs-border>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-border>.tab:is(input:checked),.tabs-border>.tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.image-full{display:grid}.image-full>*{grid-row-start:1;grid-column-start:1}.image-full>.card-body{color:var(--color-neutral-content);position:relative}.image-full :where(figure){border-radius:inherit;overflow:hidden}.image-full>figure img{object-fit:cover;filter:brightness(28%);height:100%}.menu-horizontal{flex-direction:row;display:inline-flex}.menu-horizontal>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}.menu-horizontal>li>details>ul:before{--tw-content:none;content:var(--tw-content)}:where(.menu-horizontal>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.menu-vertical{flex-direction:column;display:inline-flex}.menu-vertical>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}.checkbox:disabled{cursor:not-allowed;opacity:.2}.checkbox\\!:disabled{cursor:not-allowed!important;opacity:.2!important}.radio:disabled{cursor:not-allowed;opacity:.2}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}:where(.navbar){position:relative}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}.tooltip-bottom:after{transform:translate(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}.tooltip-left>.tooltip-content,.tooltip-left[data-tip]:before{transform:translate(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}.tooltip-left:after{transform:translate(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.tooltip-top>.tooltip-content,.tooltip-top[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.tooltip-top:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.toast-center{--toast-x:-50%;inset-inline:50%}.toast-end{--toast-x:0;inset-inline:auto 1rem}.toast-start{--toast-x:0;inset-inline:1rem auto}.dropdown-right{--anchor-h:right;--anchor-v:span-bottom}.dropdown-right .dropdown-content{transform-origin:0;inset-inline-start:100%;top:0;bottom:auto}.chat-end{grid-template-columns:1fr auto;place-items:end}.chat-end .chat-header,.chat-end .chat-footer{grid-column-start:1}.chat-end .chat-image{grid-column-start:2}.chat-end .chat-bubble{border-end-end-radius:0;grid-column-start:1}.chat-end .chat-bubble:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] :is(.chat-end .chat-bubble):before{transform:rotateY(0)}.chat-start{grid-template-columns:auto 1fr;place-items:start}.chat-start .chat-header,.chat-start .chat-footer{grid-column-start:2}.chat-start .chat-image{grid-column-start:1}.chat-start .chat-bubble{border-end-start-radius:0;grid-column-start:2}.chat-start .chat-bubble:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] :is(.chat-start .chat-bubble):before{transform:rotateY(180deg)}.dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.dropdown-center{--anchor-h:center}.dropdown-center :where(.dropdown-content){inset-inline-end:50%;translate:50%}[dir=rtl] :is(.dropdown-center :where(.dropdown-content)){translate:-50%}.dropdown-center.dropdown-left{--anchor-h:left;--anchor-v:center}.dropdown-center.dropdown-left .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-center.dropdown-right{--anchor-h:right;--anchor-v:center}.dropdown-center.dropdown-right .dropdown-content{top:auto;bottom:50%;translate:0 50%}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-start{--anchor-h:span-right}.dropdown-start :where(.dropdown-content){inset-inline-end:auto;translate:0}[dir=rtl] :is(.dropdown-start :where(.dropdown-content)){translate:0}.dropdown-start.dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.dropdown-start.dropdown-left .dropdown-content{top:0;bottom:auto}.dropdown-start.dropdown-right{--anchor-h:right;--anchor-v:span-bottom}.dropdown-start.dropdown-right .dropdown-content{top:0;bottom:auto}.dropdown-bottom{--anchor-v:bottom}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.dropdown-top{--anchor-v:top}.dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.toast-bottom{--toast-y:0;top:auto;bottom:1rem}.toast-middle{--toast-y:-50%;top:50%;bottom:auto}.toast-top{--toast-y:0;top:1rem;bottom:auto}.dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom))}.dock-sm .dock-active:after{bottom:-.1rem}.dock-sm .dock-label{font-size:.625rem}.dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom))}.dock-lg .dock-active:after{bottom:.4rem}.dock-lg .dock-label{font-size:.6875rem}.dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom))}.dock-xl .dock-active:after{bottom:.4rem}.dock-xl .dock-label{font-size:.75rem}.dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom))}.dock-xs .dock-active:after{bottom:-.1rem}.dock-xs .dock-label{font-size:.625rem}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.timeline-horizontal{flex-direction:row}.timeline-horizontal>li{align-items:center}.timeline-horizontal>li>hr{width:100%;height:.25rem}.timeline-horizontal>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline-horizontal>li>hr:last-child{grid-area:2/3/auto/none}.timeline-horizontal .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}.timeline-horizontal .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}.timeline-horizontal:has(.timeline-middle)>li>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-horizontal:has(.timeline-middle)>li>hr:last-child,.timeline-horizontal:not(:has(.timeline-middle)) :first-child>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline-horizontal:not(:has(.timeline-middle)) :last-child>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-vertical{flex-direction:column}.timeline-vertical>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center}.timeline-vertical>li>hr{width:.25rem;height:100%}.timeline-vertical>li>hr:first-child{grid-row-start:1;grid-column-start:2}.timeline-vertical>li>hr:last-child{grid-area:3/2/none}.timeline-vertical .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}.timeline-vertical .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}.timeline-vertical:has(.timeline-middle)>li>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical:has(.timeline-middle)>li>hr:last-child,.timeline-vertical:not(:has(.timeline-middle)) :first-child>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}.timeline-vertical:not(:has(.timeline-middle)) :last-child>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical.timeline-snap-icon>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}.timeline-compact{--timeline-row-start:0}.timeline-compact .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}.timeline-compact li:has(.timeline-start) .timeline-end{grid-row-start:auto;grid-column-start:none}.timeline-compact.timeline-vertical>li{--timeline-col-start:0}.timeline-compact.timeline-vertical .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}.timeline-compact.timeline-vertical li:has(.timeline-start) .timeline-end{grid-row-start:none;grid-column-start:auto}.list-col-wrap{grid-row-start:2}.file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s}.file-input-ghost::file-selector-button{cursor:pointer;webkit-user-select:none;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}.file-input-ghost:focus,.file-input-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:max(var(--font-size,1.125rem),1.125rem)}.input-lg[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-md{--size:calc(var(--size-field,.25rem)*10);font-size:max(var(--font-size,.875rem),.875rem)}.input-md[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:max(var(--font-size,.75rem),.75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:max(var(--font-size,1.375rem),1.375rem)}.input-xl[type=number]::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:max(var(--font-size,.6875rem),.6875rem)}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row}.steps-vertical .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid}.steps-vertical .step:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] :is(.steps-vertical .step):before{translate:50% -50%}.steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps-horizontal .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps-horizontal .step:before{width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] :is(.steps-horizontal .step):before{translate:0}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(3*var(--radius-field));border-radius:calc(min(calc(var(--tab-height)/2),var(--radius-field)) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05)) inset;padding:.25rem}.tabs-box>.tab{border-radius:var(--radius-field);border-style:none}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px var(--color-neutral),0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1)) inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000)}}@media(forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid}}.tabs-box>.tab-content{height:calc(100% - var(--tab-height) + var(--border) - .5rem);border-radius:calc(min(calc(var(--tab-height)/2),var(--radius-field)) + min(.25rem,var(--tabs-box-radius)) - var(--border));margin-top:.25rem}.avatar-placeholder>div{justify-content:center;align-items:center;display:flex}.divider-end:after,.divider-start:before{display:none}.modal-bottom{place-items:end}.modal-bottom .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}.modal-end{place-items:end}.modal-end .modal-box{--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}.modal-middle{place-items:center}.modal-middle .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}.modal-start{place-items:start}.modal-start .modal-box{--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}.modal-top{place-items:start}.modal-top .modal-box{--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}.card-side{flex-direction:row;align-items:stretch}.card-side :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}.card-side :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}.card-side figure>*{max-width:unset}.card-side :where(figure>*){object-fit:cover;width:100%;height:100%}.divider-horizontal{--divider-m:0 1rem}.divider-horizontal.divider{flex-direction:column;width:1rem;height:auto}.divider-horizontal.divider:before,.divider-horizontal.divider:after{width:.125rem;height:100%}.divider-vertical{--divider-m:1rem 0}.divider-vertical.divider{flex-direction:row;width:auto;height:1rem}.divider-vertical.divider:before,.divider-vertical.divider:after{width:100%;height:.125rem}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.status-lg{width:.75rem;height:.75rem}.status-md{width:.5rem;height:.5rem}.status-sm{width:.25rem;height:.25rem}.status-xl{width:1rem;height:1rem}.status-xs{width:.125rem;height:.125rem}.dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom))}.dock-md .dock-label{font-size:.6875rem}.btn-wide{width:100%;max-width:16rem}.dock-active:after{color:currentColor;background-color:currentColor;width:2.5rem}.rating-half.rating-xs :not(.rating-hidden){width:.5rem}.rating-half.rating-sm :not(.rating-hidden){width:.625rem}.rating-half.rating-md :not(.rating-hidden){width:.75rem}.rating-half.rating-lg :not(.rating-hidden){width:.875rem}.rating-half.rating-xl :not(.rating-hidden){width:1rem}.btn-block{width:100%}.loading-lg{width:calc(var(--size-selector,.25rem)*7)}.loading-md{width:calc(var(--size-selector,.25rem)*6)}.loading-sm{width:calc(var(--size-selector,.25rem)*5)}.loading-xl{width:calc(var(--size-selector,.25rem)*8)}.loading-xs{width:calc(var(--size-selector,.25rem)*4)}.swap-rotate .swap-on,.swap-rotate input:indeterminate~.swap-on{rotate:45deg}.swap-rotate input:is(:checked,:indeterminate)~.swap-on,.swap-rotate.swap-active .swap-on{rotate:none}.swap-rotate input:is(:checked,:indeterminate)~.swap-off,.swap-rotate.swap-active .swap-off{rotate:-45deg}.swap-flip{transform-style:preserve-3d;perspective:20rem}.swap-flip .swap-on,.swap-flip .swap-indeterminate,.swap-flip input:indeterminate~.swap-on{backface-visibility:hidden;transform:rotateY(180deg)}.swap-flip input:is(:checked,:indeterminate)~.swap-on,.swap-flip.swap-active .swap-on{transform:rotateY(0)}.swap-flip input:is(:checked,:indeterminate)~.swap-off,.swap-flip.swap-active .swap-off{backface-visibility:hidden;opacity:1;transform:rotateY(-180deg)}.carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.carousel-center .carousel-item{scroll-snap-align:center}.carousel-end .carousel-item{scroll-snap-align:end}.carousel-start .carousel-item{scroll-snap-align:start}.alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start}.alert-horizontal:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center}.alert-vertical:has(:nth-child(2)){grid-template-columns:auto}.stats-horizontal{grid-auto-flow:column;overflow-x:auto}.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border)dashed currentColor}@supports (color:color-mix(in lab,red,red)){.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}.stats-horizontal .stat:not(:last-child){border-block-end:none}.stats-vertical{grid-auto-flow:row;overflow-y:auto}.stats-vertical .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed currentColor}@supports (color:color-mix(in lab,red,red)){.stats-vertical .stat:not(:last-child){border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}.footer-horizontal{grid-auto-flow:column}.footer-horizontal.footer-center{grid-auto-flow:dense}.footer-vertical{grid-auto-flow:row}.footer-vertical.footer-center{grid-auto-flow:column dense}.menu-lg :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-lg :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}.menu-lg .menu-title{padding-block:.75rem;padding-inline:1.5rem}.menu-md :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-md :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}.menu-md .menu-title{padding-block:.5rem;padding-inline:.75rem}.menu-sm :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-sm :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}.menu-sm .menu-title{padding-block:.5rem;padding-inline:.75rem}.menu-xl :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-xl :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}.menu-xl .menu-title{padding-block:.75rem;padding-inline:1.5rem}.menu-xs :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-xs :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}.menu-xs .menu-title{padding-block:.25rem;padding-inline:.5rem}.badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.btn-dash:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media(hover:none){.btn-dash:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100))}}.badge-soft{border-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.badge-soft{border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100))}}.badge-soft{background-image:none}.select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s}.select-ghost:focus,.select-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.input-ghost{box-shadow:none;background-color:#0000;border-color:#0000}.input-ghost:focus,.input-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000}.textarea-ghost:focus,.textarea-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}:where(:not(ul,details,.menu-title,.btn)).menu-active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:where(:not(ul,details,.menu-title,.btn)).menu-active{outline-offset:2px;outline:2px solid #0000}}:where(:not(ul,details,.menu-title,.btn)).menu-active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise)}.chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.status-accent{background-color:var(--color-accent);color:var(--color-accent)}.status-error{background-color:var(--color-error);color:var(--color-error)}.status-info{background-color:var(--color-info);color:var(--color-info)}.status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.status-primary{background-color:var(--color-primary);color:var(--color-primary)}.status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.status-success{background-color:var(--color-success);color:var(--color-success)}.status-warning{background-color:var(--color-warning);color:var(--color-warning)}.table-zebra tbody tr:where(:nth-child(2n)),.table-zebra tbody tr:where(:nth-child(2n)) :where(.table-pin-cols tr th){background-color:var(--color-base-200)}@media(hover:hover){:is(.table-zebra tbody tr.row-hover,.table-zebra tbody tr.row-hover:where(:nth-child(2n))):hover{background-color:var(--color-base-300)}}.divider-accent:before,.divider-accent:after{background-color:var(--color-accent)}.divider-error:before,.divider-error:after{background-color:var(--color-error)}.divider-info:before,.divider-info:after{background-color:var(--color-info)}.divider-neutral:before,.divider-neutral:after{background-color:var(--color-neutral)}.divider-primary:before,.divider-primary:after{background-color:var(--color-primary)}.divider-secondary:before,.divider-secondary:after{background-color:var(--color-secondary)}.divider-success:before,.divider-success:after{background-color:var(--color-success)}.divider-warning:before,.divider-warning:after{background-color:var(--color-warning)}.loading-ball{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E")}.loading-bars{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E")}.loading-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E")}.loading-infinity{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' style='shape-rendering:auto;' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' style='shape-rendering:auto;' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E")}.loading-ring{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.mask-circle{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-decagon{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-diamond{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m100 0 100 100-100 100L0 100z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m100 0 100 100-100 100L0 100z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-heart{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-hexagon{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='182' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0L14.51 161.62C6.151 157.44.3 145.737.3 136.54V65.486Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='182' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0L14.51 161.62C6.151 157.44.3 145.737.3 136.54V65.486Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-hexagon-2{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-pentagon{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='181' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 95.106 69.098-36.327 111.804H37.22L.894 69.098z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='181' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 95.106 69.098-36.327 111.804H37.22L.894 69.098z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-squircle{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e")}.mask-star{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-star-2{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='174' height='149' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 148.476-86.603.185L43.86 74.423 87 0l43.14 74.423 43.463 74.238z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='174' height='149' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 148.476-86.603.185L43.86 74.423 87 0l43.14 74.423 43.463 74.238z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-2{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='174' height='150' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 .738 86.603-.184-43.463 74.238L87 149.214 43.86 74.792.397.554z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='174' height='150' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 .738 86.603-.184-43.463 74.238L87 149.214 43.86 74.792.397.554z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-3{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m149.369 87.107.185 86.603-74.239-43.463L.893 87.107l74.422-43.14L149.554.505z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m149.369 87.107.185 86.603-74.239-43.463L.893 87.107l74.422-43.14L149.554.505z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-4{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M.631 87.107.446.505l74.239 43.462 74.422 43.14-74.422 43.14L.446 173.71z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M.631 87.107.446.505l74.239 43.462 74.422 43.14-74.422 43.14L.446 173.71z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-half-1{-webkit-mask-position:0;mask-position:0;-webkit-mask-size:200%;mask-size:200%}.mask-half-1:where(:dir(rtl),[dir=rtl],[dir=rtl] *){-webkit-mask-position:100%;mask-position:100%}.mask-half-2{-webkit-mask-position:100%;mask-position:100%;-webkit-mask-size:200%;mask-size:200%}.mask-half-2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){-webkit-mask-position:0;mask-position:0}.checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}.checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.radio-lg{padding:.3125rem}.radio-lg[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}.radio-md{padding:.25rem}.radio-md[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}.radio-xl{padding:.375rem}.radio-xl[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}.radio-xs{padding:.125rem}.radio-xs[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}.select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.select-lg option{padding-block:.375rem;padding-inline:1rem}.select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.select-md option{padding-block:.375rem;padding-inline:.75rem}.select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.select-sm option{padding-block:.25rem;padding-inline:.625rem}.select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}.select-xl option{padding-block:.375rem;padding-inline:1.25rem}.select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.select-xs option{padding-block:.25rem;padding-inline:.5rem}.table-lg :not(thead,tfoot) tr{font-size:1.125rem}.table-lg :where(th,td){padding-block:1rem;padding-inline:1.25rem}.table-md :not(thead,tfoot) tr{font-size:.875rem}.table-md :where(th,td){padding-block:.75rem;padding-inline:1rem}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.table-xl :not(thead,tfoot) tr{font-size:1.375rem}.table-xl :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}.table-xs :not(thead,tfoot) tr{font-size:.6875rem}.table-xs :where(th,td){padding-block:.25rem;padding-inline:.5rem}.badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}.badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem}.file-input-xl::file-selector-button{font-size:1.375rem}.file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem}.file-input-lg::file-selector-button{font-size:1.125rem}.file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2}.file-input-md::file-selector-button{font-size:.875rem}.file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem}.file-input-sm::file-selector-button{font-size:.75rem}.file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem}.file-input-xs::file-selector-button{font-size:.6875rem}.tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12)}.tabs-lg>.tab{--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}.tabs-md{--tab-height:calc(var(--size-field,.25rem)*10)}.tabs-md>.tab{--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}.tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8)}.tabs-sm>.tab{--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}.tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14)}.tabs-xl>.tab{--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}.tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6)}.tabs-xs>.tab{--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}.kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}.kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.textarea-lg{font-size:max(var(--font-size,1.125rem),1.125rem)}.textarea-md{font-size:max(var(--font-size,.875rem),.875rem)}.textarea-sm{font-size:max(var(--font-size,.75rem),.75rem)}.textarea-xl{font-size:max(var(--font-size,1.375rem),1.375rem)}.textarea-xs{font-size:max(var(--font-size,.6875rem),.6875rem)}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.file-input-accent{--btn-color:var(--color-accent)}.file-input-accent::file-selector-button{color:var(--color-accent-content)}.file-input-accent,.file-input-accent:focus,.file-input-accent:focus-within{--input-color:var(--color-accent)}.file-input-error{--btn-color:var(--color-error)}.file-input-error::file-selector-button{color:var(--color-error-content)}.file-input-error,.file-input-error:focus,.file-input-error:focus-within{--input-color:var(--color-error)}.file-input-info{--btn-color:var(--color-info)}.file-input-info::file-selector-button{color:var(--color-info-content)}.file-input-info,.file-input-info:focus,.file-input-info:focus-within{--input-color:var(--color-info)}.file-input-neutral{--btn-color:var(--color-neutral)}.file-input-neutral::file-selector-button{color:var(--color-neutral-content)}.file-input-neutral,.file-input-neutral:focus,.file-input-neutral:focus-within{--input-color:var(--color-neutral)}.file-input-primary{--btn-color:var(--color-primary)}.file-input-primary::file-selector-button{color:var(--color-primary-content)}.file-input-primary,.file-input-primary:focus,.file-input-primary:focus-within{--input-color:var(--color-primary)}.file-input-secondary{--btn-color:var(--color-secondary)}.file-input-secondary::file-selector-button{color:var(--color-secondary-content)}.file-input-secondary,.file-input-secondary:focus,.file-input-secondary:focus-within{--input-color:var(--color-secondary)}.file-input-success{--btn-color:var(--color-success)}.file-input-success::file-selector-button{color:var(--color-success-content)}.file-input-success,.file-input-success:focus,.file-input-success:focus-within{--input-color:var(--color-success)}.file-input-warning{--btn-color:var(--color-warning)}.file-input-warning::file-selector-button{color:var(--color-warning-content)}.file-input-warning,.file-input-warning:focus,.file-input-warning:focus-within{--input-color:var(--color-warning)}.checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.link-accent{color:var(--color-accent)}@media(hover:hover){.link-accent:hover{color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.link-accent:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.link-error{color:var(--color-error)}@media(hover:hover){.link-error:hover{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.link-error:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}.link-info{color:var(--color-info)}@media(hover:hover){.link-info:hover{color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.link-info:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.link-neutral{color:var(--color-neutral)}@media(hover:hover){.link-neutral:hover{color:var(--color-neutral)}@supports (color:color-mix(in lab,red,red)){.link-neutral:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.link-primary{color:var(--color-primary)}@media(hover:hover){.link-primary:hover{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.link-primary:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.link-secondary{color:var(--color-secondary)}@media(hover:hover){.link-secondary:hover{color:var(--color-secondary)}@supports (color:color-mix(in lab,red,red)){.link-secondary:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.link-success{color:var(--color-success)}@media(hover:hover){.link-success:hover{color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.link-success:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.link-warning{color:var(--color-warning)}@media(hover:hover){.link-warning:hover{color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.link-warning:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.tooltip-accent{--tt-bg:var(--color-accent)}.tooltip-accent>.tooltip-content,.tooltip-accent[data-tip]:before{color:var(--color-accent-content)}.tooltip-error{--tt-bg:var(--color-error)}.tooltip-error>.tooltip-content,.tooltip-error[data-tip]:before{color:var(--color-error-content)}.tooltip-info{--tt-bg:var(--color-info)}.tooltip-info>.tooltip-content,.tooltip-info[data-tip]:before{color:var(--color-info-content)}.tooltip-primary{--tt-bg:var(--color-primary)}.tooltip-primary>.tooltip-content,.tooltip-primary[data-tip]:before{color:var(--color-primary-content)}.tooltip-secondary{--tt-bg:var(--color-secondary)}.tooltip-secondary>.tooltip-content,.tooltip-secondary[data-tip]:before{color:var(--color-secondary-content)}.tooltip-success{--tt-bg:var(--color-success)}.tooltip-success>.tooltip-content,.tooltip-success[data-tip]:before{color:var(--color-success-content)}.tooltip-warning{--tt-bg:var(--color-warning)}.tooltip-warning>.tooltip-content,.tooltip-warning[data-tip]:before{color:var(--color-warning-content)}.progress-accent{color:var(--color-accent)}.progress-error{color:var(--color-error)}.progress-info{color:var(--color-info)}.progress-neutral{color:var(--color-neutral)}.progress-primary{color:var(--color-primary)}.progress-secondary{color:var(--color-secondary)}.progress-success{color:var(--color-success)}.progress-warning{color:var(--color-warning)}.btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}.btn-link:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media(hover:none){.btn-link:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}.link-hover{text-decoration-line:none}@media(hover:hover){.link-hover:hover{text-decoration-line:underline}}.swap-active .swap-off{opacity:0}.swap-active .swap-on{opacity:1}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible):not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}@media(hover:none){.btn-ghost:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}.tabs-bottom{--tabs-height:auto;--tabs-direction:row}.tabs-bottom>.tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:var(--tab-radius-limit);--tab-radius-ee:var(--tab-radius-limit);--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + var(--tab-radius-limit)*2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left,top right}.tabs-bottom>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-bottom>.tab:is(input:checked),.tabs-bottom>.tab:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,var(--tab-radius-grad));--radius-end:radial-gradient(circle at bottom right,var(--tab-radius-grad))}.tabs-bottom:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}.tabs-bottom>.tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}:is(.tabs-bottom>:checked,.tabs-bottom>:is(label:has(:checked)),.tabs-bottom>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}.tabs-top{--tabs-height:auto;--tabs-direction:row}.tabs-top>.tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:var(--tab-radius-limit);--tab-radius-se:var(--tab-radius-limit);--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + var(--tab-radius-limit)*2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left,top right}.tabs-top>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-top>.tab:is(input:checked),.tabs-top>.tab:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,var(--tab-radius-grad));--radius-end:radial-gradient(circle at top right,var(--tab-radius-grad))}.tabs-top:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}.tabs-top>.tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}:is(.tabs-top :checked,.tabs-top label:has(:checked),.tabs-top :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-top :checked,.tabs-top label:has(:checked),.tabs-top :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media(hover:none){.btn-outline:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}@media(hover:none){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100))}}.btn-soft:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-noise:none}}.indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}[dir=rtl] .indicator-end,.indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}[dir=rtl] .indicator-start{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}.indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%}[dir=rtl] .indicator-center{--indicator-x:50%}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.card-lg .card-body{--card-p:2rem;--card-fs:1rem}.card-lg .card-title{--cardtitle-fs:1.25rem}.card-md .card-body{--card-p:1.5rem;--card-fs:.875rem}.card-md .card-title{--cardtitle-fs:1.125rem}.card-sm .card-body{--card-p:1rem;--card-fs:.75rem}.card-sm .card-title{--cardtitle-fs:1rem}.card-xl .card-body{--card-p:2.5rem;--card-fs:1.125rem}.card-xl .card-title{--cardtitle-fs:1.375rem}.card-xs .card-body{--card-p:.5rem;--card-fs:.6875rem}.card-xs .card-title{--cardtitle-fs:.875rem}.indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.timeline-snap-icon>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}.card-border{border:var(--border)solid var(--color-base-200)}.card-dash{border:var(--border)dashed var(--color-base-200)}.input-accent,.input-accent:focus,.input-accent:focus-within{--input-color:var(--color-accent)}.input-error,.input-error:focus,.input-error:focus-within{--input-color:var(--color-error)}.input-info,.input-info:focus,.input-info:focus-within{--input-color:var(--color-info)}.input-neutral,.input-neutral:focus,.input-neutral:focus-within{--input-color:var(--color-neutral)}.input-primary,.input-primary:focus,.input-primary:focus-within{--input-color:var(--color-primary)}.input-secondary,.input-secondary:focus,.input-secondary:focus-within{--input-color:var(--color-secondary)}.input-success,.input-success:focus,.input-success:focus-within{--input-color:var(--color-success)}.input-warning,.input-warning:focus,.input-warning:focus-within{--input-color:var(--color-warning)}.radio-accent{--input-color:var(--color-accent)}.radio-error{--input-color:var(--color-error)}.radio-info{--input-color:var(--color-info)}.radio-neutral{--input-color:var(--color-neutral)}.radio-primary{--input-color:var(--color-primary)}.radio-secondary{--input-color:var(--color-secondary)}.radio-success{--input-color:var(--color-success)}.radio-warning{--input-color:var(--color-warning)}.range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}.range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.select-accent,.select-accent:focus,.select-accent:focus-within{--input-color:var(--color-accent)}.select-error,.select-error:focus,.select-error:focus-within{--input-color:var(--color-error)}.select-info,.select-info:focus,.select-info:focus-within{--input-color:var(--color-info)}.select-neutral,.select-neutral:focus,.select-neutral:focus-within{--input-color:var(--color-neutral)}.select-primary,.select-primary:focus,.select-primary:focus-within{--input-color:var(--color-primary)}.select-secondary,.select-secondary:focus,.select-secondary:focus-within{--input-color:var(--color-secondary)}.select-success,.select-success:focus,.select-success:focus-within{--input-color:var(--color-success)}.select-warning,.select-warning:focus,.select-warning:focus-within{--input-color:var(--color-warning)}.textarea-accent,.textarea-accent:focus,.textarea-accent:focus-within{--input-color:var(--color-accent)}.textarea-error,.textarea-error:focus,.textarea-error:focus-within{--input-color:var(--color-error)}.textarea-info,.textarea-info:focus,.textarea-info:focus-within{--input-color:var(--color-info)}.textarea-neutral,.textarea-neutral:focus,.textarea-neutral:focus-within{--input-color:var(--color-neutral)}.textarea-primary,.textarea-primary:focus,.textarea-primary:focus-within{--input-color:var(--color-primary)}.textarea-secondary,.textarea-secondary:focus,.textarea-secondary:focus-within{--input-color:var(--color-secondary)}.textarea-success,.textarea-success:focus,.textarea-success:focus-within{--input-color:var(--color-success)}.textarea-warning,.textarea-warning:focus,.textarea-warning:focus-within{--input-color:var(--color-warning)}.toggle-accent:checked,.toggle-accent[aria-checked=true]{--input-color:var(--color-accent)}.toggle-error:checked,.toggle-error[aria-checked=true]{--input-color:var(--color-error)}.toggle-info:checked,.toggle-info[aria-checked=true]{--input-color:var(--color-info)}.toggle-lg[type=checkbox],.toggle-lg:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}.toggle-md[type=checkbox],.toggle-md:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}.toggle-neutral:checked,.toggle-neutral[aria-checked=true]{--input-color:var(--color-neutral)}.toggle-primary:checked,.toggle-primary[aria-checked=true]{--input-color:var(--color-primary)}.toggle-secondary:checked,.toggle-secondary[aria-checked=true]{--input-color:var(--color-secondary)}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}.toggle-success:checked,.toggle-success[aria-checked=true]{--input-color:var(--color-success)}.toggle-warning:checked,.toggle-warning[aria-checked=true]{--input-color:var(--color-warning)}.toggle-xl[type=checkbox],.toggle-xl:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}.toggle-xs[type=checkbox],.toggle-xs:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}@layer daisyui.modifier.drawer{.drawer-open>.drawer-toggle:checked~.drawer-side{scrollbar-color:revert-layer}:root:has(.drawer-open>.drawer-toggle:checked){--page-overflow:revert-layer;--page-scroll-gutter:revert-layer;--page-scroll-bg:revert-layer;--page-scroll-transition:revert-layer;--page-has-backdrop:revert-layer;animation:revert-layer;animation-timeline:revert-layer}:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:currentColor oklch(0 0 0/calc(var(--page-has-backdrop,0)*.4))}@supports (color:color-mix(in lab,red,red)){:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)oklch(0 0 0/calc(var(--page-has-backdrop,0)*.4))}}:where(:root:has(.drawer-toggle:checked)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}}.prose .btn{text-decoration-line:none}.pointer-events-none{pointer-events:none}.countdown.countdown{line-height:1em}.collapse:not(td,tr,colgroup){visibility:revert-layer}.validator:user-invalid~.validator-hint{display:revert-layer}.validator:has(:user-invalid)~.validator-hint{display:revert-layer}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{display:revert-layer}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-start-1{inset-inline-start:calc(var(--spacing)*-1)}.start-0{inset-inline-start:calc(var(--spacing)*0)}.start-1{inset-inline-start:calc(var(--spacing)*1)}.start-full{inset-inline-start:100%}.end-0{inset-inline-end:calc(var(--spacing)*0)}.end-2{inset-inline-end:calc(var(--spacing)*2)}.end-4{inset-inline-end:calc(var(--spacing)*4)}.-top-7{top:calc(var(--spacing)*-7)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-1\\/3{top:33.3333%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-5{right:calc(var(--spacing)*5)}.-bottom-full{bottom:-100%}.left-4{left:calc(var(--spacing)*4)}.left-5{left:calc(var(--spacing)*5)}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-10{z-index:10}.z-1002{z-index:1002}.col-span-2{grid-column:span 2/span 2}@layer daisyui.modifier.placement{.drawer-end{grid-auto-columns:auto max-content}.drawer-end>.drawer-toggle~.drawer-content{grid-column-start:1}.drawer-end>.drawer-toggle~.drawer-side{grid-column-start:2;justify-items:end}.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay){translate:100%}[dir=rtl] :is(.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:-100%}.drawer-end>.drawer-toggle:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0\\!{margin:calc(var(--spacing)*0)!important}.m-1{margin:calc(var(--spacing)*1)}.m-4{margin:calc(var(--spacing)*4)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-10{margin-inline:calc(var(--spacing)*10)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-6{margin-block:calc(var(--spacing)*6)}.my-10{margin-block:calc(var(--spacing)*10)}.my-16{margin-block:calc(var(--spacing)*16)}.my-20{margin-block:calc(var(--spacing)*20)}.join-horizontal{flex-direction:row}.join-horizontal>.join-item:first-child,.join-horizontal :first-child:not(:last-child) .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join-horizontal>.join-item:last-child,.join-horizontal :last-child:not(:first-child) .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join-horizontal>.join-item:only-child,.join-horizontal :only-child .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join-horizontal .join-item:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.join-vertical{flex-direction:column}.join-vertical>.join-item:first-child,.join-vertical :first-child:not(:last-child) .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}.join-vertical>.join-item:last-child,.join-vertical :last-child:not(:first-child) .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join-vertical>.join-item:only-child,.join-vertical :only-child .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join-vertical .join-item:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}.me-2{margin-inline-end:calc(var(--spacing)*2)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-32{margin-top:calc(var(--spacing)*32)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.mb-20{margin-bottom:calc(var(--spacing)*20)}.mb-28{margin-bottom:calc(var(--spacing)*28)}.mb-32{margin-bottom:calc(var(--spacing)*32)}.mb-40{margin-bottom:calc(var(--spacing)*40)}.mb-48{margin-bottom:calc(var(--spacing)*48)}.mb-72{margin-bottom:calc(var(--spacing)*72)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-auto{margin-left:auto}.kbd{box-shadow:none}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex}.join :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0)}.join :where(.join-item) *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:root .prose{--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-16\\/9{aspect-ratio:16/9}.aspect-\\[1600\\/650\\]{aspect-ratio:1600/650}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1\\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-28{width:calc(var(--spacing)*28);height:calc(var(--spacing)*28)}.size-\\[1\\.2em\\]{width:1.2em;height:1.2em}.size-\\[1\\.8em\\]{width:1.8em;height:1.8em}.size-\\[1em\\]{width:1em;height:1em}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-36{height:calc(var(--spacing)*36)}.h-40{height:calc(var(--spacing)*40)}.h-42{height:calc(var(--spacing)*42)}.h-48{height:calc(var(--spacing)*48)}.h-52{height:calc(var(--spacing)*52)}.h-56{height:calc(var(--spacing)*56)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-96{height:calc(var(--spacing)*96)}.h-\\[1em\\]{height:1em}.h-\\[3\\.5rem\\]{height:3.5rem}.h-\\[320px\\]{height:320px}.h-\\[375px\\]{height:375px}.h-\\[414px\\]{height:414px}.h-\\[568px\\]{height:568px}.h-\\[667px\\]{height:667px}.h-\\[736px\\]{height:736px}.h-\\[812px\\]{height:812px}.h-\\[896px\\]{height:896px}.h-\\[1024px\\]{height:1024px}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-96{max-height:calc(var(--spacing)*96)}.min-h-12{min-height:calc(var(--spacing)*12)}.min-h-\\[20rem\\]{min-height:20rem}.min-h-\\[30rem\\]{min-height:30rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-11\\/12{width:91.6667%}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-52{width:calc(var(--spacing)*52)}.w-56{width:calc(var(--spacing)*56)}.w-60{width:calc(var(--spacing)*60)}.w-64{width:calc(var(--spacing)*64)}.w-80{width:calc(var(--spacing)*80)}.w-96{width:calc(var(--spacing)*96)}.w-\\[5\\.3rem\\]{width:5.3rem}.w-\\[5\\.8rem\\]{width:5.8rem}.w-\\[320px\\]{width:320px}.w-\\[375px\\]{width:375px}.w-\\[414px\\]{width:414px}.w-\\[568px\\]{width:568px}.w-\\[667px\\]{width:667px}.w-\\[736px\\]{width:736px}.w-\\[812px\\]{width:812px}.w-\\[896px\\]{width:896px}.w-\\[1024px\\]{width:1024px}.w-full{width:100%}.w-lg{width:var(--container-lg)}.w-px{width:1px}.w-xs{width:var(--container-xs)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-60{max-width:calc(var(--spacing)*60)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-2{--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-26{--tw-translate-y:calc(var(--spacing)*26);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-400{--tw-scale-x:400%;--tw-scale-y:400%;--tw-scale-z:400%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-10{rotate:-10deg}.\\[transform\\:scaleY\\(\\.3\\)\\]{transform:scaleY(.3)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:calc(var(--spacing)*1)}:where(.-space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-6)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-2{row-gap:calc(var(--spacing)*2)}:where(.divide-primary>:not(:last-child)){border-color:var(--color-primary)}.place-self-start{place-self:start}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-box{border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-selector{border-radius:var(--radius-selector)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-e-lg{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.rounded-se-box{border-start-end-radius:var(--radius-box)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b-box{border-bottom-right-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-\\[length\\:var\\(--border\\)\\]{border-style:var(--tw-border-style);border-width:var(--border)}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-s-0{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@layer daisyui.style{.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert-soft{background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.alert-soft{--alert-border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#00b544\\]{border-color:#00b544}.border-\\[\\#4eaa0c\\]{border-color:#4eaa0c}.border-\\[\\#005fd8\\]{border-color:#005fd8}.border-\\[\\#0059b3\\]{border-color:#0059b3}.border-\\[\\#35567b\\]{border-color:#35567b}.border-\\[\\#591660\\]{border-color:#591660}.border-\\[\\#e5e5e5\\]{border-color:#e5e5e5}.border-\\[\\#e17d00\\]{border-color:#e17d00}.border-\\[\\#f1d800\\]{border-color:#f1d800}.border-\\[\\#ff8938\\]{border-color:#ff8938}.border-base-300{border-color:var(--color-base-300)}.border-base-content,.border-base-content\\/5{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\\/5{border-color:color-mix(in oklab,var(--color-base-content)5%,transparent)}}.border-base-content\\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\\/10{border-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.border-base-content\\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\\/20{border-color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.border-black{border-color:var(--color-black)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-700{border-color:var(--color-blue-700)}.border-gray-200{border-color:var(--color-gray-200)}.border-indigo-600{border-color:var(--color-indigo-600)}.border-primary{border-color:var(--color-primary)}.border-primary-content\\/10{border-color:var(--color-primary-content)}@supports (color:color-mix(in lab,red,red)){.border-primary-content\\/10{border-color:color-mix(in oklab,var(--color-primary-content)10%,transparent)}}.border-red-300{border-color:var(--color-red-300)}.border-secondary{border-color:var(--color-secondary)}.border-sky-400{border-color:var(--color-sky-400)}.border-white\\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-zinc-200{border-color:var(--color-zinc-200)}.glass{-webkit-backdrop-filter:blur(var(--glass-blur,40px));backdrop-filter:blur(var(--glass-blur,40px));background-color:#0000;background-image:linear-gradient(135deg,oklch(100% 0 0/var(--glass-opacity,30%)),#0000),linear-gradient(var(--glass-reflect-degree,100deg),oklch(100% 0 0/var(--glass-reflect-opacity,5%))25%,oklch(0% 0 0/0) 25%);box-shadow:0 0 0 1px oklch(100% 0 0/var(--glass-border-opacity,20%)) inset,0 0 0 2px #0000000d;text-shadow:0 1px oklch(0% 0 0/var(--glass-text-shadow-opacity,5%));border:none}.bg-\\[\\#1A77F2\\]{background-color:#1a77f2}.bg-\\[\\#2F2F2F\\]{background-color:#2f2f2f}.bg-\\[\\#03C755\\]{background-color:#03c755}.bg-\\[\\#5EBB2B\\]{background-color:#5ebb2b}.bg-\\[\\#0967C2\\]{background-color:#0967c2}.bg-\\[\\#47698F\\]{background-color:#47698f}.bg-\\[\\#622069\\]{background-color:#622069}.bg-\\[\\#FEE502\\]{background-color:#fee502}.bg-\\[\\#FF9900\\]{background-color:#f90}.bg-accent{background-color:var(--color-accent)}.bg-accent-content{background-color:var(--color-accent-content)}.bg-amber-300{background-color:var(--color-amber-300)}.bg-base-100{background-color:var(--color-base-100)}.bg-base-200{background-color:var(--color-base-200)}.bg-base-300{background-color:var(--color-base-300)}.bg-base-content{background-color:var(--color-base-content)}.bg-black{background-color:var(--color-black)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-error{background-color:var(--color-error)}.bg-error-content{background-color:var(--color-error-content)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-info{background-color:var(--color-info)}.bg-info-content{background-color:var(--color-info-content)}.bg-lime-400{background-color:var(--color-lime-400)}.bg-neutral{background-color:var(--color-neutral)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-content{background-color:var(--color-neutral-content)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-primary{background-color:var(--color-primary)}.bg-primary-content{background-color:var(--color-primary-content)}.bg-primary\\/50{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\\/50{background-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-content{background-color:var(--color-secondary-content)}.bg-success{background-color:var(--color-success)}.bg-success-content{background-color:var(--color-success-content)}.bg-warning{background-color:var(--color-warning)}.bg-warning-content{background-color:var(--color-warning-content)}.bg-white{background-color:var(--color-white)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-100{background-color:var(--color-zinc-100)}.from-primary{--tw-gradient-from:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-primary{--tw-gradient-via:var(--color-primary);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.mask-circle{--tw-mask-radial-shape:circle}.fill-current{fill:currentColor}.fill-primary{fill:var(--color-primary)}.stroke-current{stroke:currentColor}.stroke-info{stroke:var(--color-info)}.stroke-primary{stroke:var(--color-primary)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-10{padding-inline:calc(var(--spacing)*10)}.px-12{padding-inline:calc(var(--spacing)*12)}.px-16{padding-inline:calc(var(--spacing)*16)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.ps-4{padding-inline-start:calc(var(--spacing)*4)}.ps-6{padding-inline-start:calc(var(--spacing)*6)}.pe-10{padding-inline-end:calc(var(--spacing)*10)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-10{padding-top:calc(var(--spacing)*10)}.pt-12{padding-top:calc(var(--spacing)*12)}.pt-16{padding-top:calc(var(--spacing)*16)}.pt-32{padding-top:calc(var(--spacing)*32)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\\[text-wrap\\:balance\\]{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[\\#181600\\]{color:#181600}.text-\\[color-mix\\(in_oklab\\,color-mix\\(in_oklab\\,white_40\\%\\,var\\(--color-neutral-content\\)\\)_20\\%\\,oklch\\(75\\%_0\\.3_173\\.24\\)\\)\\]{color:#fff}@supports (color:color-mix(in lab,red,red)){.text-\\[color-mix\\(in_oklab\\,color-mix\\(in_oklab\\,white_40\\%\\,var\\(--color-neutral-content\\)\\)_20\\%\\,oklch\\(75\\%_0\\.3_173\\.24\\)\\)\\]{color:color-mix(in oklab,color-mix(in oklab,white 40%,var(--color-neutral-content))20%,oklch(75% .3 173.24))}}.text-accent{color:var(--color-accent)}.text-accent-content{color:var(--color-accent-content)}.text-base-100{color:var(--color-base-100)}.text-base-content,.text-base-content\\/20{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/20{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.text-base-content\\/30{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/30{color:color-mix(in oklab,var(--color-base-content)30%,transparent)}}.text-base-content\\/40{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/40{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}.text-base-content\\/50{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/50{color:color-mix(in oklab,var(--color-base-content)50%,transparent)}}.text-base-content\\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/60{color:color-mix(in oklab,var(--color-base-content)60%,transparent)}}.text-base-content\\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\\/70{color:color-mix(in oklab,var(--color-base-content)70%,transparent)}}.text-black{color:var(--color-black)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-neutral{color:var(--color-neutral)}.text-neutral-content{color:var(--color-neutral-content)}.text-orange-400{color:var(--color-orange-400)}.text-primary{color:var(--color-primary)}.text-primary-content,.text-primary-content\\/50{color:var(--color-primary-content)}@supports (color:color-mix(in lab,red,red)){.text-primary-content\\/50{color:color-mix(in oklab,var(--color-primary-content)50%,transparent)}}.text-primary-content\\/60{color:var(--color-primary-content)}@supports (color:color-mix(in lab,red,red)){.text-primary-content\\/60{color:color-mix(in oklab,var(--color-primary-content)60%,transparent)}}.text-secondary{color:var(--color-secondary)}.text-secondary-content{color:var(--color-secondary-content)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-warning-content{color:var(--color-warning-content)}.text-white{color:var(--color-white)}.text-zinc-800{color:var(--color-zinc-800)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.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,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-primary{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.placeholder-primary::placeholder{color:var(--color-primary)}.caret-primary{caret-color:var(--color-primary)}.accent-primary{accent-color:var(--color-primary)}.opacity-5{opacity:.05}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-primary{--tw-shadow-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.shadow-primary{--tw-shadow-color:color-mix(in oklab,var(--color-primary)var(--tw-shadow-alpha),transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-base-100{--tw-ring-offset-color:var(--color-base-100)}.ring-offset-primary{--tw-ring-offset-color:var(--color-primary)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-black\\/5{outline-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.outline-black\\/5{outline-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.outline-primary{outline-color:var(--color-primary)}.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-lg{--tw-blur:blur(var(--blur-lg));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-125{--tw-brightness:brightness(125%);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,)}.saturate-200{--tw-saturate:saturate(200%);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-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-0{--tw-duration:0s;transition-duration:0s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@layer daisyui.modifier.color{.btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}.select-none{-webkit-user-select:none;user-select:none}.\\[--alert-color\\:blue\\]{--alert-color:blue}.\\[--range-bg\\:orange\\]{--range-bg:orange}.\\[--range-fill\\:0\\]{--range-fill:0}.\\[--range-thumb\\:blue\\]{--range-thumb:blue}.\\[--tab-bg\\:orange\\]{--tab-bg:orange}.\\[--tab-bg\\:var\\(--color-neutral\\)\\]{--tab-bg:var(--color-neutral)}.\\[--tab-border-color\\:red\\]{--tab-border-color:red}.\\[--tab-border-color\\:var\\(--color-neutral\\)\\]{--tab-border-color:var(--color-neutral)}.\\[--tglbg\\:var\\(--color-sky-500\\)\\]{--tglbg:var(--color-sky-500)}.\\[direction\\:ltr\\]{direction:ltr}.text-shadow-lg{text-shadow:0px 1px 2px var(--tw-text-shadow-color,#0000001a),0px 3px 2px var(--tw-text-shadow-color,#0000001a),0px 4px 8px var(--tw-text-shadow-color,#0000001a)}:is(.\\*\\:-ms-px>*){margin-inline-start:-1px}:is(.\\*\\:-mt-px>*){margin-top:-1px}:is(.\\*\\:grid>*){display:grid}:is(.\\*\\:place-content-center>*){place-content:center}:is(.\\*\\:bg-linear-80>*){--tw-gradient-position:80deg}@supports (background-image:linear-gradient(in lab,red,red)){:is(.\\*\\:bg-linear-80>*){--tw-gradient-position:80deg in oklab}}:is(.\\*\\:bg-linear-80>*){background-image:linear-gradient(var(--tw-gradient-stops))}:is(.\\*\\:from-white\\/10>*){--tw-gradient-from:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:is(.\\*\\:from-white\\/10>*){--tw-gradient-from:color-mix(in oklab,var(--color-white)10%,transparent)}}:is(.\\*\\:from-white\\/10>*){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}:is(.\\*\\:via-transparent>*){--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}:is(.\\*\\:to-black\\/10>*){--tw-gradient-to:#0000001a}@supports (color:color-mix(in lab,red,red)){:is(.\\*\\:to-black\\/10>*){--tw-gradient-to:color-mix(in oklab,var(--color-black)10%,transparent)}}:is(.\\*\\:to-black\\/10>*){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}:is(.\\*\\:\\[grid-area\\:1\\/1\\]>*){grid-area:1/1}@media(hover:hover){.group-hover\\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:\\[transform\\:scaleY\\(\\.4\\)\\]:is(:where(.group):hover *){transform:scaleY(.4)}.group-hover\\:text-base-content:is(:where(.group):hover *){color:var(--color-base-content)}.group-hover\\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\\:opacity-30:is(:where(.group):hover *){opacity:.3}.group-hover\\:duration-800:is(:where(.group):hover *){--tw-duration:.8s;transition-duration:.8s}}.peer-checked\\:bg-secondary:is(:where(.peer):checked~*){background-color:var(--color-secondary)}.peer-checked\\:text-secondary-content:is(:where(.peer):checked~*){color:var(--color-secondary-content)}.checked\\:border-blue-600:checked{border-color:var(--color-blue-600)}.checked\\:border-blue-800:checked{border-color:var(--color-blue-800)}.checked\\:border-orange-500:checked{border-color:var(--color-orange-500)}.checked\\:border-red-600:checked{border-color:var(--color-red-600)}.checked\\:border-yellow-400:checked{border-color:var(--color-yellow-400)}.checked\\:bg-blue-200:checked{background-color:var(--color-blue-200)}.checked\\:bg-blue-300:checked{background-color:var(--color-blue-300)}.checked\\:bg-orange-400:checked{background-color:var(--color-orange-400)}.checked\\:bg-red-200:checked{background-color:var(--color-red-200)}.checked\\:bg-yellow-100:checked{background-color:var(--color-yellow-100)}.checked\\:text-blue-600:checked{color:var(--color-blue-600)}.checked\\:text-neutral-content\\!:checked{color:var(--color-neutral-content)!important}.checked\\:text-orange-800:checked{color:var(--color-orange-800)}.checked\\:text-red-600:checked{color:var(--color-red-600)}.checked\\:text-yellow-600:checked{color:var(--color-yellow-600)}.checked\\:\\[--tglbg\\:var\\(--color-blue-900\\)\\]:checked{--tglbg:var(--color-blue-900)}@media(hover:hover){.hover\\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\\:bg-base-300:hover{background-color:var(--color-base-300)}.hover\\:bg-gray-900:hover{background-color:var(--color-gray-900)}.hover\\:text-primary:hover{color:var(--color-primary)}.hover\\:text-secondary:hover{color:var(--color-secondary)}.hover\\:underline:hover{text-decoration-line:underline}@layer daisyui.modifier{.hover\\:swap-active:hover .swap-off{opacity:0}.hover\\:swap-active:hover .swap-on{opacity:1}}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:-translate-y-0\\.5:focus{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.focus\\:bg-secondary:focus{background-color:var(--color-secondary)}.focus\\:text-secondary-content:focus{color:var(--color-secondary-content)}.focus\\:shadow-sm:focus{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media not all and (min-width:64rem){.max-lg\\:z-1002{z-index:1002}}@media not all and (min-width:48rem){@layer daisyui.modifier{.max-md\\:timeline-compact{--timeline-row-start:0}.max-md\\:timeline-compact .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}.max-md\\:timeline-compact li:has(.timeline-start) .timeline-end{grid-row-start:auto;grid-column-start:none}.max-md\\:timeline-compact.timeline-vertical>li{--timeline-col-start:0}.max-md\\:timeline-compact.timeline-vertical .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}.max-md\\:timeline-compact.timeline-vertical li:has(.timeline-start) .timeline-end{grid-row-start:none;grid-column-start:auto}}}@media not all and (min-width:40rem){@layer daisyui.modifier{.max-sm\\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8)}.max-sm\\:tabs-sm>.tab{--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}}@media(min-width:40rem){@layer daisyui.modifier{.sm\\:modal-middle{place-items:center}.sm\\:modal-middle .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}.sm\\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start}.sm\\:alert-horizontal:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.sm\\:footer-horizontal{grid-auto-flow:column}.sm\\:footer-horizontal.footer-center{grid-auto-flow:dense}.sm\\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10)}.sm\\:tabs-md>.tab{--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}.sm\\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.sm\\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\\:join-horizontal{flex-direction:row}.md\\:join-horizontal>.join-item:first-child,.md\\:join-horizontal :first-child:not(:last-child) .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.md\\:join-horizontal>.join-item:last-child,.md\\:join-horizontal :last-child:not(:first-child) .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.md\\:join-horizontal>.join-item:only-child,.md\\:join-horizontal :only-child .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.md\\:join-horizontal .join-item:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.md\\:mb-10{margin-bottom:calc(var(--spacing)*10)}.md\\:w-52{width:calc(var(--spacing)*52)}.md\\:w-80{width:calc(var(--spacing)*80)}.md\\:w-auto{width:auto}@layer daisyui.modifier{.md\\:footer-horizontal{grid-auto-flow:column}.md\\:footer-horizontal.footer-center{grid-auto-flow:dense}.md\\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.md\\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}}.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\\:place-self-center{place-self:center}.md\\:justify-self-end{justify-self:flex-end}.md\\:text-end{text-align:end}}@media(min-width:64rem){@layer daisyui.modifier.drawer{.lg\\:drawer-open>.drawer-toggle:checked~.drawer-side{scrollbar-color:revert-layer}:root:has(.lg\\:drawer-open>.drawer-toggle:checked){--page-overflow:revert-layer;--page-scroll-gutter:revert-layer;--page-scroll-bg:revert-layer;--page-scroll-transition:revert-layer;--page-has-backdrop:revert-layer;animation:revert-layer;animation-timeline:revert-layer}}@layer daisyui.modifier{.lg\\:drawer-open>.drawer-side{overflow-y:auto}.lg\\:drawer-open>.drawer-toggle{display:none}.lg\\:drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky}.lg\\:drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:#0000}.lg\\:drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay),[dir=rtl] :is(.lg\\:drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:0%}.lg\\:drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.lg\\:tooltip>.tooltip-content,.lg\\:tooltip[data-tip]:before{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}.lg\\:tooltip:after{transform:translate(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}.lg\\:menu-horizontal{flex-direction:row;display:inline-flex}.lg\\:menu-horizontal>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}.lg\\:menu-horizontal>li>details>ul:before{--tw-content:none;content:var(--tw-content)}:where(.lg\\:menu-horizontal>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.lg\\:timeline-horizontal{flex-direction:row}.lg\\:timeline-horizontal>li{align-items:center}.lg\\:timeline-horizontal>li>hr{width:100%;height:.25rem}.lg\\:timeline-horizontal>li>hr:first-child{grid-row-start:2;grid-column-start:1}.lg\\:timeline-horizontal>li>hr:last-child{grid-area:2/3/auto/none}.lg\\:timeline-horizontal .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}.lg\\:timeline-horizontal .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}.lg\\:timeline-horizontal:has(.timeline-middle)>li>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.lg\\:timeline-horizontal:has(.timeline-middle)>li>hr:last-child,.lg\\:timeline-horizontal:not(:has(.timeline-middle)) :first-child>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.lg\\:timeline-horizontal:not(:has(.timeline-middle)) :last-child>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.lg\\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.lg\\:steps-horizontal .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.lg\\:steps-horizontal .step:before{width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] :is(.lg\\:steps-horizontal .step):before{translate:0}.lg\\:card-side{flex-direction:row;align-items:stretch}.lg\\:card-side :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}.lg\\:card-side :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}.lg\\:card-side figure>*{max-width:unset}.lg\\:card-side :where(figure>*){object-fit:cover;width:100%;height:100%}.lg\\:divider-horizontal{--divider-m:0 1rem}.lg\\:divider-horizontal.divider{flex-direction:column;width:1rem;height:auto}.lg\\:divider-horizontal.divider:before,.lg\\:divider-horizontal.divider:after{width:.125rem;height:100%}.lg\\:stats-horizontal{grid-auto-flow:column;overflow-x:auto}.lg\\:stats-horizontal .stat:not(:last-child){border-inline-end:var(--border)dashed currentColor}@supports (color:color-mix(in lab,red,red)){.lg\\:stats-horizontal .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}.lg\\:stats-horizontal .stat:not(:last-child){border-block-end:none}.lg\\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%}[dir=rtl] .lg\\:indicator-center{--indicator-x:50%}.lg\\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}@layer daisyui.component{.lg\\:tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.lg\\:tooltip>.tooltip-content,.lg\\:tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}@media(prefers-reduced-motion:no-preference){.lg\\:tooltip>.tooltip-content,.lg\\:tooltip[data-tip]:before,.lg\\:tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}.lg\\:tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible))>.tooltip-content,:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible))[data-tip]:before,:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media(prefers-reduced-motion:no-preference){:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible))>.tooltip-content,:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible))[data-tip]:before,:is(.lg\\:tooltip.tooltip-open,.lg\\:tooltip[data-tip]:not([data-tip=""]):hover,.lg\\:tooltip:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,.lg\\:tooltip:has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.lg\\:mx-10{margin-inline:calc(var(--spacing)*10)}.lg\\:-my-6{margin-block:calc(var(--spacing)*-6)}.lg\\:join-horizontal{flex-direction:row}.lg\\:join-horizontal>.join-item:first-child,.lg\\:join-horizontal :first-child:not(:last-child) .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.lg\\:join-horizontal>.join-item:last-child,.lg\\:join-horizontal :last-child:not(:first-child) .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.lg\\:join-horizontal>.join-item:only-child,.lg\\:join-horizontal :only-child .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.lg\\:join-horizontal .join-item:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.lg\\:mb-10{margin-bottom:calc(var(--spacing)*10)}.lg\\:mb-64{margin-bottom:calc(var(--spacing)*64)}.lg\\:block{display:block}.lg\\:flex{display:flex}.lg\\:grid{display:grid}.lg\\:hidden{display:none}.lg\\:w-52{width:calc(var(--spacing)*52)}.lg\\:min-w-max{min-width:max-content}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:flex-row{flex-direction:row}.lg\\:flex-row-reverse{flex-direction:row-reverse}.lg\\:gap-10{gap:calc(var(--spacing)*10)}.lg\\:gap-x-6{column-gap:calc(var(--spacing)*6)}.lg\\:p-10{padding:calc(var(--spacing)*10)}.lg\\:py-16{padding-block:calc(var(--spacing)*16)}.lg\\:ps-6{padding-inline-start:calc(var(--spacing)*6)}.lg\\:pe-16{padding-inline-end:calc(var(--spacing)*16)}.lg\\:text-left{text-align:left}.lg\\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}}@media(min-width:80rem){@layer daisyui.modifier{.xl\\:menu-horizontal{flex-direction:row;display:inline-flex}.xl\\:menu-horizontal>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}.xl\\:menu-horizontal>li>details>ul:before{--tw-content:none;content:var(--tw-content)}:where(.xl\\:menu-horizontal>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.xl\\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}[dir=rtl] .xl\\:indicator-end{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}.xl\\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}.xl\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\\:p-10{padding:calc(var(--spacing)*10)}.dark\\:p-20{padding:calc(var(--spacing)*20)}}.\\[\\&_img\\]\\:size-16 img{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.\\[\\&_li\\>\\*\\]\\:rounded-none li>*{border-radius:0}.\\[\\&_svg\\]\\:visible svg{visibility:visible}.\\[\\&_svg\\]\\:size-16 svg{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}}:host{font-family:Fira Code,monospace}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-text-shadow-color{syntax:"*";inherits:false}@property --tw-text-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}`; let mountPromise = null; let isMounted = false; async function mountApp() { if (isMounted) { return Promise.resolve(); } if (mountPromise) { return mountPromise; } mountPromise = (async () => { if (isMounted) { return; } if (!document.getElementById("tubeinsights-font")) { const link = document.createElement("link"); link.id = "tubeinsights-font"; link.rel = "stylesheet"; link.href = "https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&display=swap"; document.head.appendChild(link); } const savedTheme = await storage.get( "tubeinsights-theme", currentTheme.value ); currentTheme.value = savedTheme; const savedPanelVisible = await storage.get( "tubeinsights-panelVisible", isPanelVisible.value.toString() ); isPanelVisible.value = savedPanelVisible === "true"; const savedTab = await storage.get("tubeinsights-activeTab", "insights"); if (savedTab === "insights" || savedTab === "livecount" || savedTab === "bookmark" || savedTab === "settings") { const { activeTab: activeTab2 } = await __vitePreload(async () => { const { activeTab: activeTab3 } = await Promise.resolve().then(() => index); return { activeTab: activeTab3 }; }, void 0 ); activeTab2.value = savedTab; } const rootId = "tubeinsights-root"; const existingRoots = document.querySelectorAll(`#${rootId}`); if (existingRoots.length > 1) { existingRoots.forEach((el, index2) => { if (index2 > 0) { el.remove(); } }); } let root = document.getElementById(rootId); if (!root) { root = document.createElement("div"); root.id = rootId; document.body.append(root); } let shadowRoot = root.shadowRoot; if (!shadowRoot) { shadowRoot = root.attachShadow({ mode: "open" }); try { shadowRoot.adoptedStyleSheets = prepareStyles(); } catch (e) { const styleElement = document.createElement("style"); styleElement.textContent = styles.replace(/:root/gu, ":host"); shadowRoot.appendChild(styleElement); } } if (!isMounted) { preact.render( u(App, {}), shadowRoot); isMounted = true; } })(); try { await mountPromise; } finally { mountPromise = null; } } function prepareStyles() { const shadowSheet = new CSSStyleSheet(); shadowSheet.replaceSync(styles.replace(/:root/gu, ":host")); return [shadowSheet]; } if (window.location.href.startsWith("https://www.youtube.com")) { const isLiveChat = window.location.pathname.startsWith("/live_chat"); const isInIframe = window.self !== window.top; if (!isLiveChat && !isInIframe) { const scheduleMount = () => { if (!document.body) { requestAnimationFrame(scheduleMount); return; } requestAnimationFrame(() => { setTimeout(() => { void mountApp(); }, 150); }); }; if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", scheduleMount); } else { scheduleMount(); } } } })(preact, preactSignals, preactHooks, dayjs);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址