@augmentd-labs/canvas-web 2.26.43 → 2.26.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/CalendarApplet-CsyUmI2B.js +2 -0
- package/dist/assets/{DocumentBodyEditor-CVO5KPCs.js → DocumentBodyEditor-C8AEpqX3.js} +1 -1
- package/dist/assets/{DocumentIcon-9i1uCMQa.js → DocumentIcon-0ya9gycp.js} +1 -1
- package/dist/assets/{EditorOverlay-D5t3xg4w.js → EditorOverlay-DglJkHo3.js} +1 -1
- package/dist/assets/{FiltersApplet-gQ6jhX7q.js → FiltersApplet-CVnCAs-P.js} +1 -1
- package/dist/assets/HomeFab-iC5BF7LV.js +3 -0
- package/dist/assets/{IdentityFields-D-NCTUaE.js → IdentityFields-CB3Ap0bl.js} +1 -1
- package/dist/assets/{LensApplet-WFygUZx1.js → LensApplet-DA0ZWS1k.js} +1 -1
- package/dist/assets/LinkToCard-oi3wGP0a.js +1 -0
- package/dist/assets/{MarkdownEditor-DbpRWbO6.js → MarkdownEditor-bDoyR7l2.js} +2 -2
- package/dist/assets/{MessageComposerDialog-CdPp-3GR.js → MessageComposerDialog-CLrwtB76.js} +1 -1
- package/dist/assets/{NextShell-ull6WmMg.js → NextShell-DCWxD5TR.js} +1 -1
- package/dist/assets/{NotesApplet-D8cseekh.js → NotesApplet-BSJ-9RKl.js} +1 -1
- package/dist/assets/ObjectPropertiesCard-DesXRw-_.js +8 -0
- package/dist/assets/{PathPickerField-CW2yG2Yg.js → PathPickerField-CSIa7jSl.js} +1 -1
- package/dist/assets/PickDocumentsCard-DVdBxx3s.js +1 -0
- package/dist/assets/{SketchApplet-BKnhzTBA.js → SketchApplet--3uyqpmo.js} +1 -1
- package/dist/assets/{SketchEditor-DmGMcbU0.js → SketchEditor-CSA7dTyq.js} +2 -2
- package/dist/assets/{TerminalApplet-D7YxftqM.js → TerminalApplet-BZJx2ztD.js} +1 -1
- package/dist/assets/{TextDocumentEditor-BQnVD0dd.js → TextDocumentEditor-VYIF2XCX.js} +1 -1
- package/dist/assets/{TodosApplet-DU5VWc5i.js → TodosApplet-DY7JzeZS.js} +1 -1
- package/dist/assets/{TodosWidget-CNnfNk4L.js → TodosWidget-DGftEAbs.js} +1 -1
- package/dist/assets/{_agentId_-DVR-2m5A.js → _agentId_-BrzFDu8r.js} +0 -0
- package/dist/assets/{_contextId_-BofzZDP6.js → _contextId_-DS6b9Uml.js} +1 -1
- package/dist/assets/_workspaceName_-XRqfa4c6.js +1 -0
- package/dist/assets/{about-lxN3BXmR.js → about-hcdKJNm5.js} +1 -1
- package/dist/assets/{add-LFFQQgj3.js → add-CEBusWuu.js} +1 -1
- package/dist/assets/{agents-DxqAi3vk.js → agents-BfSFdg41.js} +1 -1
- package/dist/assets/{agents-DHexvztp.js → agents-wFp7Vh3p.js} +1 -1
- package/dist/assets/{alert-dialog-CFeuDt0T.js → alert-dialog-BKtaX1_a.js} +1 -1
- package/dist/assets/{api-tokens-drrVuCYc.js → api-tokens-Biqt5TnG.js} +1 -1
- package/dist/assets/{appearance-0-j0SAoe.js → appearance-D5BUjZm8.js} +1 -1
- package/dist/assets/{applet-target-pLdP-R76.js → applet-target-LvhUEvE5.js} +1 -1
- package/dist/assets/{apps-ylUU3K5c.js → apps-65YXCnzH.js} +1 -1
- package/dist/assets/{auth-PqttD05H.js → auth-BwxT5xRB.js} +1 -1
- package/dist/assets/{button-SeUZ_Pvi.js → button--VYZekMF.js} +1 -1
- package/dist/assets/{context-t3rdtGUB.js → context-DY40EDc6.js} +1 -1
- package/dist/assets/{contexts-DDJagU4j.js → contexts-BPO_Wb9W.js} +1 -1
- package/dist/assets/{contexts-Bq8LHUTK2.js → contexts-DBJ0_-AO2.js} +1 -1
- package/dist/assets/{date-time-picker-DCikruos.js → date-time-picker-p3vy4nst.js} +1 -1
- package/dist/assets/{devices-BwU9M8-W.js → devices-DZbbaWYU.js} +1 -1
- package/dist/assets/{document-Cr7GhnVd.js → document-Dv8NCUoM.js} +1 -1
- package/dist/assets/document-list-Bbbx-pTZ.js +3 -0
- package/dist/assets/document-paste-BuTC6S7_.js +1 -0
- package/dist/assets/{embedding-D-I_ygUZ.js → embedding-B9vSy_a9.js} +1 -1
- package/dist/assets/{embedding-BvXcVfij.js → embedding-M2hUmnk0.js} +1 -1
- package/dist/assets/{form-panel-3p-ncEVK.js → form-panel-CEbNKttr.js} +1 -1
- package/dist/assets/{home-CfYR15C5.js → home-vr8b8oR-.js} +1 -1
- package/dist/assets/index-CTvqbEB8.js +16 -0
- package/dist/assets/index-CoVFQpP3.css +2 -0
- package/dist/assets/{inferd-config-editor-B8x_XPOt.js → inferd-config-editor-Dpdj90iN.js} +1 -1
- package/dist/assets/{key-bindings-DAIw70SC.js → key-bindings-DmqvYSaF.js} +1 -1
- package/dist/assets/{label-BSTdjCWU.js → label-RuOXXC8t.js} +1 -1
- package/dist/assets/{lazy-editor-BUFAkTGl.js → lazy-editor-CShGeIep.js} +2 -2
- package/dist/assets/{logs-DjG8_wJ2.js → logs-7eSz9yjc.js} +1 -1
- package/dist/assets/{offline-ByoT6JJX.js → offline-C-Yvb6LA.js} +1 -1
- package/dist/assets/{page-header-DrDt1sQ2.js → page-header-NyYSXjfY.js} +1 -1
- package/dist/assets/{public-share-CXR25Q1X.js → public-share-0DqS7L2Q.js} +1 -1
- package/dist/assets/{query-debug-lD5vbJGi.js → query-debug-PEWbZsOP.js} +1 -1
- package/dist/assets/registry-g1SKt_fD.js +2 -0
- package/dist/assets/{remotes-RPGcw6fH.js → remotes-DqCLds8Q.js} +1 -1
- package/dist/assets/{roles-sb8vgjV_.js → roles-BwVDE1aQ.js} +1 -1
- package/dist/assets/{roles-p2cRajz-.js → roles-W7oJ5WMg.js} +1 -1
- package/dist/assets/rule-builder-CziPqpNe.js +6 -0
- package/dist/assets/settings-BIoSwdXv.js +16 -0
- package/dist/assets/{settings-C5cS_cw0.js → settings-BWCMmkjr.js} +1 -1
- package/dist/assets/{settings-Bojeuvgh.js → settings-CbMkpipO.js} +1 -1
- package/dist/assets/settings-XMhqrvTu.js +1 -0
- package/dist/assets/{share-target-PgtwhQo-.js → share-target-hDXdgW6o.js} +1 -1
- package/dist/assets/{shared-BLOuO2Is.js → shared-CLjTxih0.js} +1 -1
- package/dist/assets/{shared-fdwDs5-g.js → shared-DVlDThVA.js} +1 -1
- package/dist/assets/sketch-lazy-CtjOUfVz.js +2 -0
- package/dist/assets/{subtree-transfer-dialog-DQM5zfx2.js → subtree-transfer-dialog-DtE6JSUr.js} +1 -1
- package/dist/assets/{text-documents-Cdb3U63i.js → text-documents-wu6fzOuw.js} +2 -2
- package/dist/assets/tree-folders-IDoobsGN.js +1 -0
- package/dist/assets/ui-DEgHnkQu.js +41 -0
- package/dist/assets/{use-applet-docs-rimRHjID.js → use-applet-docs-C08GAUm3.js} +1 -1
- package/dist/assets/{use-applet-target-BygCSj5n.js → use-applet-target-BlpVWlnA.js} +1 -1
- package/dist/assets/{use-canvas-pins-Bmj8upH3.js → use-canvas-pins-q5Tncavk.js} +2 -2
- package/dist/assets/{use-menu-DIP1zh7I.js → use-menu-CKSpS96u.js} +1 -1
- package/dist/assets/use-settings-back-D_MM9diy.js +1 -0
- package/dist/assets/{use-sortable-data-BBKmqs79.js → use-sortable-data-D7zS2qCC.js} +1 -1
- package/dist/assets/{use-workspace-identity-CSkRwVyo.js → use-workspace-identity-XSv3dATQ.js} +1 -1
- package/dist/assets/{useAddTarget-DeRZWtGg.js → useAddTarget-BvuFR5pN.js} +1 -1
- package/dist/assets/{useAgentModels-DLjVm0T8.js → useAgentModels-CI9XT6yc.js} +1 -1
- package/dist/assets/{useDocumentThumbnail-Cj4UYyhC.js → useDocumentThumbnail-CZIaXkIi.js} +1 -1
- package/dist/assets/{useEditNoteFields-BT1ASu_q.js → useEditNoteFields-DsVKIHWm.js} +1 -1
- package/dist/assets/{users-DuVk-TEd.js → users-DzlbKZp6.js} +1 -1
- package/dist/assets/workspace-4hWrSEku.js +1 -0
- package/dist/assets/{workspace-content-gate-C54J9Man.js → workspace-content-gate-BlFdbi67.js} +1 -1
- package/dist/assets/{workspace-import-form-DTvV9jYt.js → workspace-import-form-CWs9ZTts.js} +1 -1
- package/dist/assets/{workspaces-CqHYstZv.js → workspaces-67v2hWrl.js} +1 -1
- package/dist/assets/workspaces-ByYQ6L3I.js +1 -0
- package/dist/index.html +36 -38
- package/dist/sw.js +1 -1
- package/package.json +2 -2
- package/dist/assets/CalendarApplet-JRMqt67k.js +0 -2
- package/dist/assets/FileForm-CDiVKvxq.js +0 -1
- package/dist/assets/HomeFab-Bp9cpmps.js +0 -3
- package/dist/assets/LinkToCard-CKVi4Nrg.js +0 -1
- package/dist/assets/ObjectPropertiesCard-D2lrTQqT.js +0 -8
- package/dist/assets/PickDocumentsCard-BWgc-A02.js +0 -1
- package/dist/assets/UploadProgressList-D2wEpa7t.js +0 -1
- package/dist/assets/_workspaceName_-Ds__P3h9.js +0 -1
- package/dist/assets/backend-sync-progress-Dp12uN4y.js +0 -6
- package/dist/assets/document-list-BLu9S0zR.js +0 -3
- package/dist/assets/index-BNP_llN_.js +0 -16
- package/dist/assets/index-CYvpxvg6.css +0 -2
- package/dist/assets/registry-H_3ckTyM.js +0 -2
- package/dist/assets/settings-COqQc1hP.js +0 -16
- package/dist/assets/settings-DziSEdYH.js +0 -1
- package/dist/assets/sketch-lazy-BY_ka1hw.js +0 -2
- package/dist/assets/tree-folders-Da9k9cbV.js +0 -1
- package/dist/assets/ui-CDoK3F3U.js +0 -41
- package/dist/assets/use-settings-back-DGmLAD63.js +0 -1
- package/dist/assets/workspace-C5V-ZCOE.js +0 -1
- package/dist/assets/workspace-area-menu-LLSySOlH.js +0 -1
- package/dist/assets/workspaces-DxvxX0wQ.js +0 -1
- /package/dist/assets/{backend-sync-progress-DU-e9TWi.css → rule-builder-DU-e9TWi.css} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-family-sans);--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-gray-200:oklch(92.8% .006 264.531);--color-zinc-900:oklch(21% .006 285.885);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:var(--font-size-sm);--text-sm--line-height:var(--line-height-sm);--text-base:var(--font-size-base);--text-base--line-height:var(--line-height-base);--text-lg:var(--font-size-lg);--text-lg--line-height:var(--line-height-lg);--text-xl:var(--font-size-xl);--text-xl--line-height:var(--line-height-xl);--text-2xl:var(--font-size-2xl);--text-2xl--line-height:var(--line-height-2xl);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:calc(var(--radius) * .5);--radius-md:calc(var(--radius) * .75);--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-family-sans);--default-mono-font-family:var(--font-family-mono);--spacing-rail:var(--layout-rail-width);--spacing-shell:var(--layout-gap-shell);--spacing-fab-inset:max(1rem, var(--safe-bottom));--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-desk:var(--desk);--color-primary:var(--primary);--color-secondary:var(--secondary);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-success:var(--success);--color-border:var(--border);--color-ring:var(--ring);--color-scrim:var(--scrim);--color-data-1:var(--data-1);--shadow-elevation-0:none;--shadow-elevation-1:0 1px 2px -1px oklch(from var(--shadow-color) l c h / var(--shadow-strength)), 0 1px 3px 0 oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7));--shadow-elevation-2:0 2px 4px -2px oklch(from var(--shadow-color) l c h / var(--shadow-strength)), 0 4px 6px -1px oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7));--shadow-elevation-3:0 4px 6px -4px oklch(from var(--shadow-color) l c h / var(--shadow-strength)), 0 10px 15px -3px oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7));--shadow-elevation-4:0 8px 10px -6px oklch(from var(--shadow-color) l c h / var(--shadow-strength)), 0 20px 25px -5px oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7));--shadow-elevation-5:0 16px 20px -8px oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * 1.1)), 0 32px 48px -12px oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .9));--duration-fast:calc(40ms * var(--motion-scale));--duration-normal:calc(70ms * var(--motion-scale));--duration-slow:calc(90ms * var(--motion-scale));--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-decelerate:cubic-bezier(0, 0, 0, 1);--ease-accelerate:cubic-bezier(.3, 0, 1, 1);--z-layer-raised:10;--z-layer-sticky:20;--z-layer-nav-scrim:38;--z-layer-nav:39;--z-layer-drawer:40;--z-layer-rail:46;--z-layer-side-scrim:47;--z-layer-side:48;--z-layer-dialog:50;--z-layer-card:52;--z-layer-card-overlay:53;--z-layer-panel-scrim:54;--z-layer-panel:55;--z-layer-picker-scrim:59;--z-layer-picker:60;--z-layer-menu-scrim:70;--z-layer-menu:75;--z-layer-fullscreen:80;--z-layer-toast:100}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}html{-webkit-text-size-adjust:100%}body{background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;overscroll-behavior:none}h1{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);letter-spacing:-.02em;font-weight:600}h2{font-size:var(--text-xl);line-height:var(--text-xl--line-height);letter-spacing:-.015em;font-weight:600}h3{font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:600}h4{font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:600}h5,h6{font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:600}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}option,optgroup{background-color:var(--native-popup);color:var(--native-popup-foreground)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-muted-foreground)}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.scrim{background-color:var(--color-scrim);animation:fade-in var(--duration-fast) var(--ease-decelerate);-webkit-backdrop-filter:var(--glass-scrim-backdrop,none);backdrop-filter:var(--glass-scrim-backdrop,none);position:fixed;inset:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-2{inset:calc(var(--spacing) * 2)}.inset-x-0{inset-inline:0}.inset-x-0\.5{inset-inline:calc(var(--spacing) * .5)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block:0}.-top-1{top:calc(var(--spacing) * -1)}.-top-\[5px\]{top:-5px}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-\[1\.375rem\]{top:1.375rem}.top-\[2px\]{top:2px}.top-\[50\%\]{top:50%}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.right-6{right:calc(var(--spacing) * 6)}.right-\[calc\(50\%-14px\)\]{right:calc(50% - 14px)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-24{bottom:calc(var(--spacing) * 24)}.bottom-fab-inset{bottom:max(1rem, var(--safe-bottom))}.bottom-rail-inset{bottom:max(.5rem, var(--safe-bottom))}.bottom-rail-stack{bottom:calc(max(.5rem, var(--safe-bottom)) + var(--layout-rail-width) + .5rem)}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.left-8{left:calc(var(--spacing) * 8)}.left-16{left:calc(var(--spacing) * 16)}.left-\[50\%\]{left:50%}.left-\[calc\(0\.5rem\+var\(--spacing-rail\)\+0\.5rem\)\]{left:calc(.5rem + var(--spacing-rail) + .5rem)}.left-full{left:100%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[5\]{z-index:5}.z-\[47\]{z-index:47}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.z-\[1000\]{z-index:1000}.z-card{z-index:var(--z-layer-card)}.z-dialog{z-index:var(--z-layer-dialog)}.z-drawer{z-index:var(--z-layer-drawer)}.z-fullscreen{z-index:var(--z-layer-fullscreen)}.z-menu{z-index:var(--z-layer-menu)}.z-menu-scrim{z-index:var(--z-layer-menu-scrim)}.z-nav{z-index:var(--z-layer-nav)}.z-nav-scrim{z-index:var(--z-layer-nav-scrim)}.z-panel{z-index:var(--z-layer-panel)}.z-panel-scrim{z-index:var(--z-layer-panel-scrim)}.z-picker{z-index:var(--z-layer-picker)}.z-picker-scrim{z-index:var(--z-layer-picker-scrim)}.z-rail{z-index:var(--z-layer-rail)}.z-raised{z-index:var(--z-layer-raised)}.z-side-scrim{z-index:var(--z-layer-side-scrim)}.z-toast{z-index:var(--z-layer-toast)}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:9999}.col-span-3{grid-column:span 3/span 3}.col-span-full{grid-column:1/-1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing) * -.5)}.m-6{margin:calc(var(--spacing) * 6)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-auto{margin-block:auto}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-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)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-\[22px\]{margin-left:22px}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-\[8\]{-webkit-line-clamp:8;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-full{width:100%;height:100%}.h-\(--btn-height\){height:var(--btn-height)}.h-\(--input-height\){height:var(--input-height)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.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-32{height:calc(var(--spacing) * 32)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-\[2\.3rem\]{height:2.3rem}.h-\[3px\]{height:3px}.h-\[14px\]{height:14px}.h-\[86dvh\]{height:86dvh}.h-\[calc\(3rem-1px\)\]{height:calc(3rem - 1px)}.h-\[calc\(3rem-4px\)\]{height:calc(3rem - 4px)}.h-auto{height:auto}.h-control{height:var(--control-height-md)}.h-control-lg{height:var(--control-height-lg)}.h-control-sm{height:var(--control-height-sm)}.h-full{height:100%}.h-px{height:1px}.h-rail{height:var(--layout-rail-width)}.h-screen{height:100vh}.h-viewport{height:var(--viewport-h)}.h-viewport-card{height:calc(var(--viewport-h) * .85)}.h-viewport-modal{height:calc(var(--viewport-h) * .9)}.h-viewport-pane{height:calc(var(--viewport-h) * .7)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[32rem\]{max-height:32rem}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70dvh\]{max-height:70dvh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[75vh\]{max-height:75vh}.max-h-\[90dvh\]{max-height:90dvh}.max-h-\[120px\]{max-height:120px}.max-h-\[200px\]{max-height:200px}.max-h-\[236px\]{max-height:236px}.max-h-\[480px\]{max-height:480px}.max-h-\[560px\]{max-height:560px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-h-viewport-card{max-height:calc(var(--viewport-h) * .85)}.max-h-viewport-modal{max-height:calc(var(--viewport-h) * .9)}.max-h-viewport-pane{max-height:calc(var(--viewport-h) * .7)}@media (pointer:coarse){.touch-target{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[8rem\]{min-height:8rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[38px\]{min-height:38px}.min-h-\[60vh\]{min-height:60vh}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[140px\]{min-height:140px}.min-h-\[160px\]{min-height:160px}.min-h-\[300px\]{min-height:300px}.min-h-\[400px\]{min-height:400px}.min-h-\[420px\]{min-height:420px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-viewport{min-height:var(--viewport-h)}.w-\(--btn-height\){width:var(--btn-height)}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.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-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[3px\]{width:3px}.w-\[7\.5rem\]{width:7.5rem}.w-\[9\.5rem\]{width:9.5rem}.w-\[95vw\]{width:95vw}.w-\[104px\]{width:104px}.w-\[168px\]{width:168px}.w-\[188px\]{width:188px}.w-\[200\%\]{width:200%}.w-\[200px\]{width:200px}.w-\[236px\]{width:236px}.w-\[270px\]{width:270px}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(380px\,90vw\)\]{width:min(380px,90vw)}.w-\[min\(420px\,90vw\)\]{width:min(420px,90vw)}.w-\[min\(560px\,100vw\)\]{width:min(560px,100vw)}.w-control-sm{width:var(--control-height-sm)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-rail{width:var(--layout-rail-width)}.max-w-0{max-width:0}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-16{max-width:calc(var(--spacing) * 16)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[10rem\]{max-width:10rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[40\%\]{max-width:40%}.max-w-\[60px\]{max-width:60px}.max-w-\[70\%\]{max-width:70%}.max-w-\[80\%\]{max-width:80%}.max-w-\[80vw\]{max-width:80vw}.max-w-\[85\%\]{max-width:85%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[95vw\]{max-width:95vw}.max-w-\[120px\]{max-width:120px}.max-w-\[180px\]{max-width:180px}.max-w-\[640px\]{max-width:640px}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2\.5rem\)\]{max-width:calc(100vw - 2.5rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[calc\(100vw-5rem\)\]{max-width:calc(100vw - 5rem)}.max-w-\[var\(--document-reading-width\,100\%\)\]{max-width:var(--document-reading-width,100%)}.max-w-full{max-width:100%}.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:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[8ch\]{min-width:8ch}.min-w-\[9rem\]{min-width:9rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[11rem\]{min-width:11rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[14px\]{min-width:14px}.min-w-\[14rem\]{min-width:14rem}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-\[1_1_20rem\]{flex:20rem}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-40{flex-basis:calc(var(--spacing) * 40)}.basis-48{flex-basis:calc(var(--spacing) * 48)}.basis-52{flex-basis:calc(var(--spacing) * 52)}.basis-64{flex-basis:calc(var(--spacing) * 64)}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[2px\]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[22px\]{--tw-translate-x:22px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-card-in{animation:card-in var(--duration-slow) var(--ease-decelerate)}.animate-fade-in{animation:fade-in var(--duration-normal) var(--ease-decelerate)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-cell{cursor:cell}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.break-inside-avoid{break-inside:avoid}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[2\.25rem_1fr_auto\]{grid-template-columns:2.25rem 1fr auto}.grid-cols-\[3\.5rem_1fr_1fr_1fr\]{grid-template-columns:3.5rem 1fr 1fr 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(7rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(11rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(120px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(100\%\,17rem\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(120px\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(120px,100%),1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(min\(100\%\,16rem\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(min\(640px\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(640px,100%),1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-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:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-shell{gap:var(--layout-gap-shell)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}: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-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-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)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.gap-y-px{row-gap:1px}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.surface-sheet{background-color:var(--color-card);border-radius:var(--sheet-radius);box-shadow:var(--sheet-shadow);-webkit-backdrop-filter:var(--glass-backdrop,none);backdrop-filter:var(--glass-backdrop,none);overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.\!rounded-full{border-radius:2147483647px!important}.rounded{border-radius:.25rem}.rounded-\(--btn-radius\){border-radius:var(--btn-radius)}.rounded-\(--card-radius\){border-radius:var(--card-radius)}.rounded-\(--input-radius\){border-radius:var(--input-radius)}.rounded-\(--panel-radius\){border-radius:var(--panel-radius)}.rounded-\(--sheet-radius\){border-radius:var(--sheet-radius)}.rounded-2xl{border-radius:calc(var(--radius) * 2)}.rounded-\[var\(--panel-radius\)\]{border-radius:var(--panel-radius)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .75)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) * .5)}.rounded-xl{border-radius:calc(var(--radius) * 1.5)}.rounded-xs{border-radius:calc(var(--radius) * .25)}.rounded-t-\[\.5rem\]{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-t-md{border-top-left-radius:calc(var(--radius) * .75);border-top-right-radius:calc(var(--radius) * .75)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-\[5px\]{border-top-left-radius:5px;border-bottom-left-radius:5px}.rounded-l-full{border-top-left-radius:2147483647px;border-bottom-left-radius:2147483647px}.rounded-l-lg{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-l-md{border-top-left-radius:calc(var(--radius) * .75);border-bottom-left-radius:calc(var(--radius) * .75)}.rounded-r-\(--card-radius\){border-top-right-radius:var(--card-radius);border-bottom-right-radius:var(--card-radius)}.rounded-r-full{border-top-right-radius:2147483647px;border-bottom-right-radius:2147483647px}.rounded-r-lg{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.5);border-bottom-left-radius:calc(var(--radius) * 1.5)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\(length\:--btn-border-width\){border-style:var(--tw-border-style);border-width:var(--btn-border-width)}.border-\(length\:--input-border-width\){border-style:var(--tw-border-style);border-width:var(--input-border-width)}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-b-\[3px\]{border-bottom-style:var(--tw-border-style);border-bottom-width:3px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-background{border-color:var(--background)}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, var(--border) 40%, transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-destructive,.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-foreground{border-color:var(--foreground)}.border-gray-200{border-color:var(--color-gray-200)}.border-info{border-color:var(--info)}.border-input{border-color:var(--input)}.border-muted-foreground\/40{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/40{border-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.border-primary,.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/30{border-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.border-primary\/40{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.border-success{border-color:var(--success)}.border-transparent{border-color:#0000}.border-warning,.border-warning\/50{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/50{border-color:color-mix(in oklab, var(--warning) 50%, transparent)}}.border-warning\/60{border-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/60{border-color:color-mix(in oklab, var(--warning) 60%, transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/90{border-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.border-white\/90{border-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.border-t-amber-500\/70{border-top-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.border-t-amber-500\/70{border-top-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.border-t-primary{border-top-color:var(--primary)}.border-b-primary{border-bottom-color:var(--primary)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-emerald-500{border-left-color:var(--color-emerald-500)}.border-l-rose-500{border-left-color:var(--color-rose-500)}.border-l-transparent{border-left-color:#0000}.surface-desk{background-color:var(--color-desk);background-image:var(--wallpaper-image,none);background-size:var(--wallpaper-size,cover);background-position:50%;background-repeat:no-repeat}.\!bg-destructive\/10{background-color:var(--destructive)!important}@supports (color:color-mix(in lab, red, red)){.\!bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)!important}}.\!bg-info\/10{background-color:var(--info)!important}@supports (color:color-mix(in lab, red, red)){.\!bg-info\/10{background-color:color-mix(in oklab, var(--info) 10%, transparent)!important}}.\!bg-success\/10{background-color:var(--success)!important}@supports (color:color-mix(in lab, red, red)){.\!bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)!important}}.bg-\[color-mix\(in_oklab\,currentColor_9\%\,transparent\)\]{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_oklab\,currentColor_9\%\,transparent\)\]{background-color:color-mix(in oklab,currentColor 9%,transparent)}}.bg-accent,.bg-accent\/40{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/40{background-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.bg-accent\/50{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/50{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-background,.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/60{background-color:color-mix(in oklab, var(--background) 60%, transparent)}}.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/90{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/90{background-color:color-mix(in oklab, var(--background) 90%, transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/95{background-color:color-mix(in oklab, var(--background) 95%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/95{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/95{background-color:color-mix(in oklab, var(--card) 95%, transparent)}}.bg-current{background-color:currentColor}.bg-data-1\/15{background-color:var(--data-1)}@supports (color:color-mix(in lab, red, red)){.bg-data-1\/15{background-color:color-mix(in oklab, var(--data-1) 15%, transparent)}}.bg-data-2\/15{background-color:var(--data-2)}@supports (color:color-mix(in lab, red, red)){.bg-data-2\/15{background-color:color-mix(in oklab, var(--data-2) 15%, transparent)}}.bg-data-3\/15{background-color:var(--data-3)}@supports (color:color-mix(in lab, red, red)){.bg-data-3\/15{background-color:color-mix(in oklab, var(--data-3) 15%, transparent)}}.bg-data-4\/15{background-color:var(--data-4)}@supports (color:color-mix(in lab, red, red)){.bg-data-4\/15{background-color:color-mix(in oklab, var(--data-4) 15%, transparent)}}.bg-data-5\/15{background-color:var(--data-5)}@supports (color:color-mix(in lab, red, red)){.bg-data-5\/15{background-color:color-mix(in oklab, var(--data-5) 15%, transparent)}}.bg-data-6\/15{background-color:var(--data-6)}@supports (color:color-mix(in lab, red, red)){.bg-data-6\/15{background-color:color-mix(in oklab, var(--data-6) 15%, transparent)}}.bg-data-7\/15{background-color:var(--data-7)}@supports (color:color-mix(in lab, red, red)){.bg-data-7\/15{background-color:color-mix(in oklab, var(--data-7) 15%, transparent)}}.bg-data-8\/15{background-color:var(--data-8)}@supports (color:color-mix(in lab, red, red)){.bg-data-8\/15{background-color:color-mix(in oklab, var(--data-8) 15%, transparent)}}.bg-data-9\/15{background-color:var(--data-9)}@supports (color:color-mix(in lab, red, red)){.bg-data-9\/15{background-color:color-mix(in oklab, var(--data-9) 15%, transparent)}}.bg-data-10\/15{background-color:var(--data-10)}@supports (color:color-mix(in lab, red, red)){.bg-data-10\/15{background-color:color-mix(in oklab, var(--data-10) 15%, transparent)}}.bg-data-11\/15{background-color:var(--data-11)}@supports (color:color-mix(in lab, red, red)){.bg-data-11\/15{background-color:color-mix(in oklab, var(--data-11) 15%, transparent)}}.bg-data-12\/15{background-color:var(--data-12)}@supports (color:color-mix(in lab, red, red)){.bg-data-12\/15{background-color:color-mix(in oklab, var(--data-12) 15%, transparent)}}.bg-destructive{background-color:var(--destructive)}.bg-destructive-subtle{background-color:var(--destructive-subtle)}.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab, var(--destructive) 5%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-destructive\/\[0\.08\]{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/\[0\.08\]{background-color:color-mix(in oklab, var(--destructive) 8%, transparent)}}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/5{background-color:color-mix(in oklab, var(--color-emerald-500) 5%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-foreground,.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/10{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.bg-info{background-color:var(--info)}.bg-info-subtle,.bg-info-subtle\/50{background-color:var(--info-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-info-subtle\/50{background-color:color-mix(in oklab, var(--info-subtle) 50%, transparent)}}.bg-info\/10{background-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.bg-info\/10{background-color:color-mix(in oklab, var(--info) 10%, transparent)}}.bg-info\/15{background-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.bg-info\/15{background-color:color-mix(in oklab, var(--info) 15%, transparent)}}.bg-input{background-color:var(--input)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/15{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/15{background-color:color-mix(in oklab, var(--muted-foreground) 15%, transparent)}}.bg-muted-foreground\/20{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab, var(--muted-foreground) 20%, transparent)}}.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/10{background-color:color-mix(in oklab, var(--muted) 10%, transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/20{background-color:color-mix(in oklab, var(--muted) 20%, transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/60{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.bg-muted\/80{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/80{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab, red, red)){.bg-pink-500\/10{background-color:color-mix(in oklab, var(--color-pink-500) 10%, transparent)}}.bg-popover,.bg-popover\/95{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.bg-popover\/95{background-color:color-mix(in oklab, var(--popover) 95%, transparent)}}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, var(--primary) 5%, transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, var(--primary) 15%, transparent)}}.bg-primary\/\[0\.03\]{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.03\]{background-color:color-mix(in oklab, var(--primary) 3%, transparent)}}.bg-primary\/\[0\.04\]{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.04\]{background-color:color-mix(in oklab, var(--primary) 4%, transparent)}}.bg-primary\/\[0\.06\]{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.06\]{background-color:color-mix(in oklab, var(--primary) 6%, transparent)}}.bg-primary\/\[0\.08\]{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.08\]{background-color:color-mix(in oklab, var(--primary) 8%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-scrim{background-color:var(--scrim)}.bg-secondary{background-color:var(--secondary)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.bg-slate-500\/10{background-color:#62748e1a}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/10{background-color:color-mix(in oklab, var(--color-slate-500) 10%, transparent)}}.bg-success{background-color:var(--success)}.bg-success-subtle,.bg-success-subtle\/50{background-color:var(--success-subtle)}@supports (color:color-mix(in lab, red, red)){.bg-success-subtle\/50{background-color:color-mix(in oklab, var(--success-subtle) 50%, transparent)}}.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--success) 10%, transparent)}}.bg-success\/15{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/15{background-color:color-mix(in oklab, var(--success) 15%, transparent)}}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab, red, red)){.bg-teal-500\/10{background-color:color-mix(in oklab, var(--color-teal-500) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-warning{background-color:var(--warning)}.bg-warning-subtle{background-color:var(--warning-subtle)}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-warning\/15{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/15{background-color:color-mix(in oklab, var(--warning) 15%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.bg-white\/85{background-color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from:var(--background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\/75{--tw-gradient-from:#000000bf}@supports (color:color-mix(in lab, red, red)){.from-black\/75{--tw-gradient-from:color-mix(in oklab, var(--color-black) 75%, transparent)}}.from-black\/75{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-card{--tw-gradient-from:var(--card);--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-background\/60{--tw-gradient-via:var(--background)}@supports (color:color-mix(in lab, red, red)){.via-background\/60{--tw-gradient-via:color-mix(in oklab, var(--background) 60%, transparent)}}.via-background\/60{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/45{--tw-gradient-via:#00000073}@supports (color:color-mix(in lab, red, red)){.via-black\/45{--tw-gradient-via:color-mix(in oklab, var(--color-black) 45%, transparent)}}.via-black\/45{--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-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.fill-warning{fill:var(--warning)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-page{padding:var(--layout-pad-page)}.p-shell{padding:var(--layout-gap-shell)}.px-\(--btn-padding-x\){padding-inline:var(--btn-padding-x)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pr-28{padding-right:calc(var(--spacing) * 28)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pb-safe-bottom{padding-bottom:var(--safe-bottom)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-family-mono)}.font-sans{font-family:var(--font-family-sans)}.text-2xl{font-size:var(--font-size-2xl);line-height:var(--tw-leading,var(--line-height-2xl))}.text-3xl{font-size:var(--font-size-3xl);line-height:var(--tw-leading,var(--line-height-3xl))}.text-base{font-size:var(--font-size-base);line-height:var(--tw-leading,var(--line-height-base))}.text-lg{font-size:var(--font-size-lg);line-height:var(--tw-leading,var(--line-height-lg))}.text-sm{font-size:var(--font-size-sm);line-height:var(--tw-leading,var(--line-height-sm))}.text-xl{font-size:var(--font-size-xl);line-height:var(--tw-leading,var(--line-height-xl))}.text-xs{font-size:var(--font-size-xs);line-height:var(--tw-leading,var(--line-height-xs))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-\(number\:--btn-font-weight\){--tw-font-weight:var(--btn-font-weight);font-weight:var(--btn-font-weight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-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)}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-background{color:var(--background)}.text-black{color:var(--color-black)}.text-black\/45{color:#00000073}@supports (color:color-mix(in lab, red, red)){.text-black\/45{color:color-mix(in oklab, var(--color-black) 45%, transparent)}}.text-blue-600{color:var(--color-blue-600)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-data-1{color:var(--data-1)}.text-data-2{color:var(--data-2)}.text-data-3{color:var(--data-3)}.text-data-4{color:var(--data-4)}.text-data-5{color:var(--data-5)}.text-data-6{color:var(--data-6)}.text-data-7{color:var(--data-7)}.text-data-8{color:var(--data-8)}.text-data-9{color:var(--data-9)}.text-data-10{color:var(--data-10)}.text-data-11{color:var(--data-11)}.text-data-12{color:var(--data-12)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-destructive\/80{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/80{color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground,.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/50{color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-green-600{color:var(--color-green-600)}.text-indigo-600{color:var(--color-indigo-600)}.text-info{color:var(--info)}.text-info-foreground{color:var(--info-foreground)}.text-muted-foreground,.text-muted-foreground\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/40{color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-pink-600{color:var(--color-pink-600)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/80{color:var(--primary-foreground)}@supports (color:color-mix(in lab, red, red)){.text-primary-foreground\/80{color:color-mix(in oklab, var(--primary-foreground) 80%, transparent)}}.text-red-500{color:var(--color-red-500)}.text-rose-600{color:var(--color-rose-600)}.text-scrim-foreground{color:var(--scrim-foreground)}.text-secondary{color:var(--secondary)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sky-600{color:var(--color-sky-600)}.text-slate-600{color:var(--color-slate-600)}.text-success{color:var(--success)}.text-success-foreground{color:var(--success-foreground)}.text-teal-600{color:var(--color-teal-600)}.text-violet-600{color:var(--color-violet-600)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-muted-foreground{-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);text-decoration-color:var(--muted-foreground)}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-current{accent-color:currentColor}.accent-destructive{accent-color:var(--destructive)}.accent-foreground{accent-color:var(--foreground)}.accent-primary{accent-color:var(--primary)}.caption-reveal{opacity:1;transition:opacity var(--duration-fast) var(--ease-standard)}@media (hover:hover){.caption-reveal{opacity:0}.group:hover .caption-reveal,.group:focus-visible .caption-reveal{opacity:1}}.reveal-on-hover{transition:opacity var(--duration-fast) var(--ease-standard)}@media (hover:hover) and (pointer:fine){.reveal-on-hover{opacity:0}.group:hover .reveal-on-hover,.group:focus-within .reveal-on-hover{opacity:1}}.reveal-on-hover:focus-visible{opacity:1}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_-3px_0_0_var\(--color-primary\)\]{--tw-shadow:0 -3px 0 0 var(--tw-shadow-color,var(--color-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_3px_0_0_var\(--color-primary\)\]{--tw-shadow:0 3px 0 0 var(--tw-shadow-color,var(--color-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 4px 20px 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-\[inset_-2px_0_0_0_hsl\(var\(--primary\)\)\]{--tw-shadow:inset -2px 0 0 0 var(--tw-shadow-color,hsl(var(--primary)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_2px_0_0_0_hsl\(var\(--primary\)\)\]{--tw-shadow:inset 2px 0 0 0 var(--tw-shadow-color,hsl(var(--primary)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-0{--tw-shadow:none;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-1{--tw-shadow:0 1px 2px -1px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 1px 3px 0 var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-2{--tw-shadow:0 2px 4px -2px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 4px 6px -1px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-3{--tw-shadow:0 4px 6px -4px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 10px 15px -3px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-4{--tw-shadow:0 8px 10px -6px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 20px 25px -5px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-5{--tw-shadow:0 16px 20px -8px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * 1.1))), 0 32px 48px -12px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .9)));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-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-border{--tw-ring-color:var(--border)}.ring-foreground{--tw-ring-color:var(--foreground)}.ring-info,.ring-info\/40{--tw-ring-color:var(--info)}@supports (color:color-mix(in lab, red, red)){.ring-info\/40{--tw-ring-color:color-mix(in oklab, var(--info) 40%, transparent)}}.ring-primary,.ring-primary\/20{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/20{--tw-ring-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.ring-primary\/50{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/50{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.ring-primary\/60{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/60{--tw-ring-color:color-mix(in oklab, var(--primary) 60%, transparent)}}.ring-ring{--tw-ring-color:var(--ring)}.ring-success{--tw-ring-color:var(--success)}.ring-warning\/40{--tw-ring-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.ring-warning\/40{--tw-ring-color:color-mix(in oklab, var(--warning) 40%, transparent)}}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.focus-ring:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-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,)}.surface-glass{-webkit-backdrop-filter:var(--glass-backdrop,none);backdrop-filter:var(--glass-backdrop,none)}.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(--duration-normal))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.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(--duration-normal))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.slide-in-from-bottom-10{--tw-enter-translate-y:calc(.1*100%)}.zoom-in-95{--tw-enter-scale:.95}.fade-in{--tw-enter-opacity:0}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:hidden:is(:where(.group):hover *){display:none}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:border-muted-foreground\/70:is(:where(.group):hover *){border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-muted-foreground\/70:is(:where(.group):hover *){border-color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/agent-reply\:opacity-100:is(:where(.group\/agent-reply):hover *){opacity:1}}.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.group-\[\.destructive\]\:text-destructive:is(:where(.group).destructive *){color:var(--destructive)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--font-size-sm);line-height:var(--tw-leading,var(--line-height-sm))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:font-normal::placeholder{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.placeholder\:text-muted-foreground\/60::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-muted-foreground\/60::placeholder{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.backdrop\:bg-black\/40::backdrop{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/40::backdrop{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0:before{content:var(--tw-content);top:0}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-1\.5:before{content:var(--tw-content);width:calc(var(--spacing) * 1.5)}.before\:bg-destructive:before{content:var(--tw-content);background-color:var(--destructive)}.before\:bg-info:before{content:var(--tw-content);background-color:var(--info)}.before\:bg-primary:before{content:var(--tw-content);background-color:var(--primary)}.before\:bg-transparent:before{content:var(--tw-content);background-color:#0000}.before\:bg-warning:before{content:var(--tw-content);background-color:var(--warning)}.before\:transition-colors:before{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:bg-foreground\/0:after{content:var(--tw-content);background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.after\:bg-foreground\/0:after{background-color:color-mix(in oklab, var(--foreground) 0%, transparent)}}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.first\:pt-0:first-child{padding-top:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring:focus-within{--tw-ring-color:var(--ring)}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-foreground\/30:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/30:hover{border-color:color-mix(in oklab, var(--foreground) 30%, transparent)}}.hover\:border-info:hover{border-color:var(--info)}.hover\:border-muted-foreground\/40:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.hover\:border-success:hover{border-color:var(--success)}.hover\:bg-\[color-mix\(in_oklab\,currentColor_24\%\,transparent\)\]:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,currentColor_24\%\,transparent\)\]:hover{background-color:color-mix(in oklab,currentColor 24%,transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/20:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.hover\:bg-accent\/40:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-black\/75:hover{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/75:hover{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.hover\:bg-destructive:hover,.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-destructive\/\[0\.12\]:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/\[0\.12\]:hover{background-color:color-mix(in oklab, var(--destructive) 12%, transparent)}}.hover\:bg-foreground:hover,.hover\:bg-foreground\/10:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/10:hover{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.hover\:bg-foreground\/20:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/20:hover{background-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.hover\:bg-foreground\/90:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/90:hover{background-color:color-mix(in oklab, var(--foreground) 90%, transparent)}}.hover\:bg-info-subtle:hover{background-color:var(--info-subtle)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-muted-foreground\/10:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted-foreground\/10:hover{background-color:color-mix(in oklab, var(--muted-foreground) 10%, transparent)}}.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/60:hover{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.hover\:bg-muted\/80:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/80:hover{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.hover\:bg-primary:hover{background-color:var(--primary)}.hover\:bg-primary-foreground\/20:hover{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary-foreground\/20:hover{background-color:color-mix(in oklab, var(--primary-foreground) 20%, transparent)}}.hover\:bg-primary\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.hover\:bg-primary\/25:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/25:hover{background-color:color-mix(in oklab, var(--primary) 25%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-primary\/\[0\.04\]:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/\[0\.04\]:hover{background-color:color-mix(in oklab, var(--primary) 4%, transparent)}}.hover\:bg-primary\/\[0\.12\]:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/\[0\.12\]:hover{background-color:color-mix(in oklab, var(--primary) 12%, transparent)}}.hover\:bg-secondary:hover,.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-warning\/20:hover{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/20:hover{background-color:color-mix(in oklab, var(--warning) 20%, transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-white\/40:hover{background-color:#fff6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/40:hover{background-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-destructive-foreground:hover{color:var(--destructive-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover,.hover\:text-primary\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-elevation-2:hover{--tw-shadow:0 2px 4px -2px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 4px 6px -1px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-elevation-3:hover{--tw-shadow:0 4px 6px -4px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 10px 15px -3px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-elevation-4:hover{--tw-shadow:0 8px 10px -6px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / var(--shadow-strength))), 0 20px 25px -5px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .7)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-2:hover{--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)}.hover\:ring-primary\/30:hover{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:ring-primary\/30:hover{--tw-ring-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.group-\[\.destructive\]\:hover\:bg-destructive:is(:where(.group).destructive *):hover{background-color:var(--destructive)}.group-\[\.destructive\]\:hover\:text-destructive-foreground:is(:where(.group).destructive *):hover{color:var(--destructive-foreground)}.hover\:after\:bg-foreground\/\[0\.07\]:hover:after{content:var(--tw-content);background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:after\:bg-foreground\/\[0\.07\]:hover:after{background-color:color-mix(in oklab, var(--foreground) 7.0%, transparent)}}}.focus\:border-primary:focus{border-color:var(--primary)}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:border-transparent:focus{border-color:#0000}.focus\:bg-destructive:focus{background-color:var(--destructive)}.focus\:bg-muted:focus{background-color:var(--muted)}.focus\:text-destructive-foreground:focus{color:var(--destructive-foreground)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-primary:focus{--tw-ring-color:var(--primary)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.group-\[\.destructive\]\:focus\:ring-destructive:is(:where(.group).destructive *):focus{--tw-ring-color:var(--destructive)}.group-\[\.destructive\]\:focus\:ring-offset-destructive:is(:where(.group).destructive *):focus{--tw-ring-offset-color:var(--destructive)}.focus-visible\:bg-primary\/10:focus-visible{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-primary\/10:focus-visible{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.focus-visible\:bg-primary\/20:focus-visible{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-primary\/20:focus-visible{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-destructive:focus-visible{--tw-ring-color:var(--destructive)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-primary:focus-visible{outline-color:var(--primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[\.98\]:active{scale:.98}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-\[color-mix\(in_oklab\,currentColor_32\%\,transparent\)\]:active{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.active\:bg-\[color-mix\(in_oklab\,currentColor_32\%\,transparent\)\]:active{background-color:color-mix(in oklab,currentColor 32%,transparent)}}.active\:bg-primary\/40:active{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.active\:bg-primary\/40:active{background-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (hover:hover){.disabled\:hover\:bg-primary:disabled:hover{background-color:var(--primary)}.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[reading\=true\]\:border-primary[data-reading=true]{border-color:var(--primary)}.data-\[reading\=true\]\:bg-accent[data-reading=true]{background-color:var(--accent)}.data-\[reading\=true\]\:text-accent-foreground[data-reading=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:.8}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:calc(1 / 2*-100%)}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:calc(1*100%)}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:calc(48%*-1)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:calc(1 / 2*-100%)}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:calc(48%*-1)}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:calc(1*-100%)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}@media (prefers-reduced-motion:reduce){.motion-reduce\:hidden{display:none}.motion-reduce\:transition-none{transition-property:none}}@media not all and (width>=80rem){.max-xl\:hidden{display:none}.max-xl\:max-h-viewport-half{max-height:calc(var(--viewport-h) * .5)}}@media not all and (width>=48rem){.max-md\:invisible{visibility:hidden}.max-md\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-md\:absolute{position:absolute}.max-md\:fixed{position:fixed}.max-md\:inset-2{inset:calc(var(--spacing) * 2)}.max-md\:top-2{top:calc(var(--spacing) * 2)}.max-md\:right-2{right:calc(var(--spacing) * 2)}.max-md\:bottom-2{bottom:calc(var(--spacing) * 2)}.max-md\:bottom-20{bottom:calc(var(--spacing) * 20)}.max-md\:bottom-rail-stack{bottom:calc(max(.5rem, var(--safe-bottom)) + var(--layout-rail-width) + .5rem)}.max-md\:left-2{left:calc(var(--spacing) * 2)}.max-md\:z-10{z-index:10}.max-md\:z-40{z-index:40}.max-md\:z-card-overlay{z-index:var(--z-layer-card-overlay)}.max-md\:z-rail{z-index:var(--z-layer-rail)}.max-md\:z-side{z-index:var(--z-layer-side)}.max-md\:mr-0{margin-right:0}.max-md\:hidden{display:none}.max-md\:h-auto{height:auto}.max-md\:h-full{height:100%}.max-md\:max-h-none{max-height:none}.max-md\:w-auto{width:auto}.max-md\:w-full{width:100%}.max-md\:w-max{width:max-content}.max-md\:max-w-none{max-width:none}.max-md\:min-w-full{min-width:100%}.max-md\:animate-fade-in{animation:fade-in var(--duration-normal) var(--ease-decelerate)}.max-md\:rounded-\(--panel-radius\){border-radius:var(--panel-radius)}.max-md\:bg-card{background-color:var(--card)}.max-md\:p-1{padding:var(--spacing)}.max-md\:p-2{padding:calc(var(--spacing) * 2)}.max-md\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-md\:py-0{padding-block:0}.max-md\:pr-0{padding-right:0}.max-md\:pb-rail-stack{padding-bottom:calc(max(.5rem, var(--safe-bottom)) + var(--layout-rail-width) + .5rem)}.max-md\:shadow-elevation-5{--tw-shadow:0 16px 20px -8px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * 1.1))), 0 32px 48px -12px var(--tw-shadow-color,oklch(from var(--shadow-color) l c h / calc(var(--shadow-strength) * .9)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.max-md\:surface-glass{-webkit-backdrop-filter:var(--glass-backdrop,none);backdrop-filter:var(--glass-backdrop,none)}}@media not all and (width>=40rem){.max-sm\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-sm\:hidden{display:none}.max-sm\:h-9{height:calc(var(--spacing) * 9)}.max-sm\:w-9{width:calc(var(--spacing) * 9)}.max-sm\:w-full{width:100%}.max-sm\:flex-wrap{flex-wrap:wrap}.max-sm\:justify-end{justify-content:flex-end}.max-sm\:gap-0{gap:0}.max-sm\:gap-0\.5{gap:calc(var(--spacing) * .5)}.max-sm\:p-0{padding:0}.max-sm\:px-1{padding-inline:var(--spacing)}.max-sm\:pr-10{padding-right:calc(var(--spacing) * 10)}.max-sm\:text-xs{font-size:var(--font-size-xs);line-height:var(--tw-leading,var(--line-height-xs))}}@media (width>=40rem){.sm\:top-4{top:calc(var(--spacing) * 4)}.sm\:right-0{right:0}.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:order-1{order:1}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mx-0{margin-inline:0}.sm\:mt-0{margin-top:0}.sm\:mt-1{margin-top:var(--spacing)}.sm\:mt-3{margin-top:calc(var(--spacing) * 3)}.sm\:mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.sm\:mr-2{margin-right:calc(var(--spacing) * 2)}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:table-cell{display:table-cell}.sm\:h-6{height:calc(var(--spacing) * 6)}.sm\:h-12{height:calc(var(--spacing) * 12)}.sm\:h-40{height:calc(var(--spacing) * 40)}.sm\:w-6{width:calc(var(--spacing) * 6)}.sm\:w-12{width:calc(var(--spacing) * 12)}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:w-auto{width:auto}.sm\:max-w-32{max-width:calc(var(--spacing) * 32)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:basis-\[48\%\]{flex-basis:48%}.sm\:basis-\[var\(--col-w\)\]{flex-basis:var(--col-w)}.sm\:basis-auto{flex-basis:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[1fr_6rem_1fr\]{grid-template-columns:1fr 6rem 1fr}.sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.sm\:grid-cols-\[2\.25rem_minmax\(0\,240px\)_1fr_auto\]{grid-template-columns:2.25rem minmax(0,240px) 1fr auto}.sm\:grid-cols-\[minmax\(0\,220px\)_1fr\]{grid-template-columns:minmax(0,220px) 1fr}.sm\:grid-cols-\[repeat\(auto-fill\,minmax\(min\(200px\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}:where(.sm\: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)))}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-2xl{border-radius:calc(var(--radius) * 2)}.sm\:p-3{padding:calc(var(--spacing) * 3)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pl-4{padding-left:calc(var(--spacing) * 4)}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:var(--font-size-3xl);line-height:var(--tw-leading,var(--line-height-3xl))}.sm\:text-base{font-size:var(--font-size-base);line-height:var(--tw-leading,var(--line-height-base))}.sm\:text-sm{font-size:var(--font-size-sm);line-height:var(--tw-leading,var(--line-height-sm))}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:calc(1*100%)}}@media (width>=48rem){.md\:right-28{right:calc(var(--spacing) * 28)}.md\:right-\[min\(436px\,90vw\)\]{right:min(436px,90vw)}.md\:bottom-\[calc\(var\(--spacing-fab-inset\)\+5rem\)\]{bottom:calc(var(--spacing-fab-inset) + 5rem)}.md\:z-panel{z-index:var(--z-layer-panel)}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:m-2{margin:calc(var(--spacing) * 2)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:h-\[calc\(var\(--viewport-h\)-1rem\)\]{height:calc(var(--viewport-h) - 1rem)}.md\:h-viewport-pane{height:calc(var(--viewport-h) * .7)}.md\:w-1\/2{width:50%}.md\:w-64{width:calc(var(--spacing) * 64)}.md\:w-72{width:calc(var(--spacing) * 72)}.md\:w-\[700px\]{width:700px}.md\:w-\[var\(--reader-width\)\]{width:var(--reader-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-\[calc\(100\%_-_248px\)\]{max-width:calc(100% - 248px)}.md\:max-w-none{max-width:none}.md\:max-w-xs{max-width:var(--container-xs)}.md\:min-w-\[320px\]{min-width:320px}.md\:resize-x{resize:horizontal}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[140px_180px_1fr_auto\]{grid-template-columns:140px 180px 1fr auto}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:rounded-\(--panel-radius\){border-radius:var(--panel-radius)}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:p-10{padding:calc(var(--spacing) * 10)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:pr-2{padding-right:calc(var(--spacing) * 2)}.md\:pr-28{padding-right:calc(var(--spacing) * 28)}.md\:pb-12{padding-bottom:calc(var(--spacing) * 12)}.md\:text-5xl{font-size:var(--font-size-5xl);line-height:var(--tw-leading,var(--line-height-5xl))}.md\:text-sm{font-size:var(--font-size-sm);line-height:var(--tw-leading,var(--line-height-sm))}.md\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--duration-normal))}.md\:ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@media (width>=64rem){.lg\:table-cell{display:table-cell}.lg\:basis-\[32\%\]{flex-basis:32%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=80rem){.xl\:pointer-events-none{pointer-events:none}.xl\:hidden{display:none}.xl\:basis-\[24\%\]{flex-basis:24%}.xl\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(320px\,0\.8fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.xl\:grid-rows-none{grid-template-rows:none}.xl\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}@container (width>=48rem){.\@3xl\:w-auto{width:auto}.\@3xl\:max-w-\[60\%\]{max-width:60%}.\@3xl\:min-w-\[18rem\]{min-width:18rem}.\@3xl\:flex-1{flex:1}.\@3xl\:flex-row{flex-direction:row}.\@3xl\:items-center{align-items:center}.\@3xl\:items-start{align-items:flex-start}.\@3xl\:justify-between{justify-content:space-between}}.dark\:bg-green-500:where([data-scheme=dark],[data-scheme=dark] *){background-color:var(--color-green-500)}.dark\:bg-muted-foreground:where([data-scheme=dark],[data-scheme=dark] *){background-color:var(--muted-foreground)}.dark\:text-amber-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-amber-400)}.dark\:text-amber-500:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-amber-500)}.dark\:text-blue-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-blue-400)}.dark\:text-emerald-300:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-emerald-400)}.dark\:text-green-500:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-green-500)}.dark\:text-indigo-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-indigo-400)}.dark\:text-info:where([data-scheme=dark],[data-scheme=dark] *){color:var(--info)}.dark\:text-pink-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-pink-400)}.dark\:text-rose-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-rose-400)}.dark\:text-sky-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-sky-400)}.dark\:text-slate-300:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-slate-300)}.dark\:text-success:where([data-scheme=dark],[data-scheme=dark] *){color:var(--success)}.dark\:text-teal-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-teal-400)}.dark\:text-violet-400:where([data-scheme=dark],[data-scheme=dark] *){color:var(--color-violet-400)}.dark\:text-warning:where([data-scheme=dark],[data-scheme=dark] *){color:var(--warning)}.\[\&_\.ProseMirror\]\:h-full .ProseMirror{height:100%}.\[\&_pre\]\:break-words pre{overflow-wrap:break-word}.\[\&_pre\]\:whitespace-pre-wrap pre{white-space:pre-wrap}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_table\]\:w-full table{width:100%}.\[\&_table\]\:table-fixed table{table-layout:fixed}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}@media not all and (width>=40rem){.max-sm\:\[\&\>button\]\:px-2\.5>button{padding-inline:calc(var(--spacing) * 2.5)}}.\[\&\>div\]\:flex-1>div{flex:1}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.\[\@media\(hover\:hover\)\]\:block{display:block}.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}@media (hover:hover){.\[\@media\(hover\:hover\)\]\:group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}}}@media (pointer:coarse){.\[\@media\(pointer\:coarse\)\]\:w-6{width:calc(var(--spacing) * 6)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--p-neutral-0:oklch(100% 0 0);--p-neutral-50:oklch(98.5% .001 286);--p-neutral-100:oklch(96.7% .002 286);--p-neutral-200:oklch(92% .004 286);--p-neutral-300:oklch(87.1% .006 286);--p-neutral-400:oklch(70.5% .014 286);--p-neutral-500:oklch(55.2% .015 286);--p-neutral-600:oklch(44.2% .015 286);--p-neutral-700:oklch(37% .013 286);--p-neutral-800:oklch(27.4% .011 286);--p-neutral-900:oklch(21% .008 286);--p-neutral-950:oklch(14.1% .005 286);--p-neutral-1000:oklch(0% 0 0);--p-teal-300:oklch(85.5% .108 187);--p-teal-400:oklch(77.7% .128 184);--p-teal-500:oklch(70.4% .135 183);--p-teal-600:oklch(60% .118 184);--p-teal-700:oklch(51.1% .096 186);--p-blue-300:oklch(80.9% .105 252);--p-blue-400:oklch(70.7% .153 254);--p-blue-500:oklch(62.3% .188 260);--p-blue-600:oklch(54.6% .215 263);--p-blue-700:oklch(48.8% .203 264);--p-green-300:oklch(87.1% .15 154);--p-green-400:oklch(79.2% .184 152);--p-green-500:oklch(72.3% .192 150);--p-green-600:oklch(62.7% .17 149);--p-green-700:oklch(52.7% .143 150);--p-amber-300:oklch(87.9% .169 92);--p-amber-400:oklch(82.8% .189 85);--p-amber-500:oklch(76.9% .188 70);--p-amber-600:oklch(66.6% .179 58);--p-amber-700:oklch(55.5% .163 49);--p-red-300:oklch(80.8% .114 20);--p-red-400:oklch(70.4% .191 22);--p-red-500:oklch(63.7% .237 25);--p-red-600:oklch(57.7% .245 27);--p-red-700:oklch(50.5% .213 27);--p-violet-400:oklch(70.2% .183 294);--p-violet-500:oklch(60.6% .25 292);--p-violet-600:oklch(54.1% .281 293);--p-scale-0:0;--p-scale-px:1px;--p-scale-1:.25rem;--p-scale-2:.5rem;--p-scale-3:.75rem;--p-scale-4:1rem;--p-scale-5:1.25rem;--p-scale-6:1.5rem;--p-scale-8:2rem;--p-scale-10:2.5rem;--p-scale-12:3rem;--p-scale-16:4rem;--radius:.5rem;--font-family-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--font-size-2xs:.6875rem;--line-height-2xs:1rem;--font-size-xs:.75rem;--line-height-xs:1rem;--font-size-sm:.875rem;--line-height-sm:1.25rem;--font-size-base:1rem;--line-height-base:1.5rem;--font-size-lg:1.125rem;--line-height-lg:1.75rem;--font-size-xl:1.25rem;--line-height-xl:1.75rem;--font-size-2xl:1.5rem;--line-height-2xl:2rem;--font-size-3xl:1.875rem;--line-height-3xl:2.25rem;--font-size-4xl:2.25rem;--line-height-4xl:2.5rem;--font-size-5xl:3rem;--line-height-5xl:1;--motion-scale:1;--background:var(--p-neutral-0);--foreground:var(--p-neutral-1000);--card:var(--p-neutral-0);--card-foreground:var(--p-neutral-1000);--popover:var(--p-neutral-0);--popover-foreground:var(--p-neutral-1000);--desk:var(--p-neutral-200);--primary:var(--p-neutral-1000);--primary-foreground:var(--p-neutral-0);--secondary:var(--p-teal-500);--secondary-foreground:var(--p-neutral-1000);--muted:var(--p-neutral-100);--muted-foreground:var(--p-neutral-600);--accent:var(--p-neutral-100);--accent-foreground:var(--p-neutral-1000);--destructive:var(--p-red-600);--destructive-foreground:var(--p-neutral-0);--destructive-subtle:oklch(from var(--p-red-500) .96 .03 h);--success:var(--p-green-600);--success-foreground:var(--p-neutral-0);--success-subtle:oklch(from var(--p-green-500) .96 .03 h);--warning:var(--p-amber-600);--warning-foreground:var(--p-neutral-1000);--warning-subtle:oklch(from var(--p-amber-500) .96 .04 h);--info:var(--p-blue-600);--info-foreground:var(--p-neutral-0);--info-subtle:oklch(from var(--p-blue-500) .96 .03 h);--border:var(--p-neutral-200);--input:var(--p-neutral-300);--ring:var(--p-neutral-1000);--scrim:oklch(0% 0 0/.32);--scrim-foreground:oklch(100% 0 0);--shadow-color:var(--p-neutral-1000);--shadow-strength:.12}@media (prefers-color-scheme:dark){:root:not([data-scheme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:var(--p-neutral-950);--foreground:var(--p-neutral-50);--card:var(--p-neutral-900);--card-foreground:var(--p-neutral-50);--popover:var(--p-neutral-900);--popover-foreground:var(--p-neutral-50);--desk:var(--p-neutral-1000);--primary:var(--p-neutral-50);--primary-foreground:var(--p-neutral-950);--secondary:var(--p-teal-400);--secondary-foreground:var(--p-neutral-950);--muted:var(--p-neutral-800);--muted-foreground:var(--p-neutral-400);--accent:var(--p-neutral-800);--accent-foreground:var(--p-neutral-50);--destructive:var(--p-red-400);--destructive-foreground:var(--p-neutral-950);--destructive-subtle:oklch(from var(--p-red-500) .28 .07 h);--success:var(--p-green-400);--success-foreground:var(--p-neutral-950);--success-subtle:oklch(from var(--p-green-500) .28 .06 h);--warning:var(--p-amber-400);--warning-foreground:var(--p-neutral-950);--warning-subtle:oklch(from var(--p-amber-500) .28 .06 h);--info:var(--p-blue-400);--info-foreground:var(--p-neutral-950);--info-subtle:oklch(from var(--p-blue-500) .28 .07 h);--border:var(--p-neutral-800);--input:var(--p-neutral-700);--ring:var(--p-neutral-400);--scrim:oklch(0% 0 0/.6);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0);--shadow-strength:.5}}:root{--layout-rail-width:3rem;--layout-menu-panel-width:17.5rem;--layout-menu-subpanel-width:20rem;--layout-toolbox-rail-width:3rem;--layout-toolbox-panel-width:31.25rem;--control-height-sm:1.75rem;--control-height-md:2.25rem;--control-height-lg:2.75rem;--touch-target-min:2.25rem;--layout-gap-shell:.5rem;--layout-pad-page:1.5rem;--layout-pad-card:1rem;--layout-row-height:2.25rem;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--viewport-h:100vh}@supports (height:100dvh){:root{--viewport-h:100dvh}}:root{--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-color:var(--ring);--btn-radius:var(--radius-md);--btn-height:var(--control-height-md);--btn-padding-x:1rem;--btn-font-weight:500;--btn-border-width:1px;--native-popup:var(--popover);--native-popup-foreground:var(--popover-foreground);--input-radius:var(--radius-md);--input-height:var(--control-height-md);--input-border-width:1px;--surface-radius:4px;--card-radius:var(--surface-radius);--card-border-width:1px;--card-padding:var(--layout-pad-card);--card-shadow:var(--shadow-elevation-1);--sheet-radius:var(--surface-radius);--sheet-shadow:var(--shadow-elevation-2);--panel-radius:var(--surface-radius);--panel-shadow:var(--shadow-elevation-4);--panel-shadow-overlay:var(--shadow-elevation-5);--row-radius:var(--radius-sm);--row-height:var(--layout-row-height);--row-padding-x:.5rem}[data-theme=canvas]{--radius:.5rem}[data-theme=canvas][data-scheme=light],[data-theme=canvas] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:var(--p-neutral-0);--foreground:var(--p-neutral-1000);--card:var(--p-neutral-0);--card-foreground:var(--p-neutral-1000);--popover:var(--p-neutral-0);--popover-foreground:var(--p-neutral-1000);--desk:var(--p-neutral-200);--primary:var(--p-neutral-1000);--primary-foreground:var(--p-neutral-0);--secondary:var(--p-teal-500);--secondary-foreground:var(--p-neutral-1000);--muted:var(--p-neutral-100);--muted-foreground:var(--p-neutral-600);--accent:var(--p-neutral-100);--accent-foreground:var(--p-neutral-1000);--destructive:var(--p-red-600);--destructive-foreground:var(--p-neutral-0);--destructive-subtle:oklch(from var(--p-red-500) .96 .03 h);--success:var(--p-green-600);--success-foreground:var(--p-neutral-0);--success-subtle:oklch(from var(--p-green-500) .96 .03 h);--warning:var(--p-amber-600);--warning-foreground:var(--p-neutral-1000);--warning-subtle:oklch(from var(--p-amber-500) .96 .04 h);--info:var(--p-blue-600);--info-foreground:var(--p-neutral-0);--info-subtle:oklch(from var(--p-blue-500) .96 .03 h);--border:var(--p-neutral-200);--input:var(--p-neutral-300);--ring:var(--p-neutral-1000);--scrim:oklch(0% 0 0/.32);--scrim-foreground:oklch(100% 0 0);--shadow-color:var(--p-neutral-1000);--shadow-strength:.12}[data-theme=canvas][data-scheme=dark],[data-theme=canvas] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:var(--p-neutral-950);--foreground:var(--p-neutral-50);--card:var(--p-neutral-900);--card-foreground:var(--p-neutral-50);--popover:var(--p-neutral-900);--popover-foreground:var(--p-neutral-50);--desk:var(--p-neutral-1000);--primary:var(--p-neutral-50);--primary-foreground:var(--p-neutral-950);--secondary:var(--p-teal-400);--secondary-foreground:var(--p-neutral-950);--muted:var(--p-neutral-800);--muted-foreground:var(--p-neutral-400);--accent:var(--p-neutral-800);--accent-foreground:var(--p-neutral-50);--destructive:var(--p-red-400);--destructive-foreground:var(--p-neutral-950);--destructive-subtle:oklch(from var(--p-red-500) .28 .07 h);--success:var(--p-green-400);--success-foreground:var(--p-neutral-950);--success-subtle:oklch(from var(--p-green-500) .28 .06 h);--warning:var(--p-amber-400);--warning-foreground:var(--p-neutral-950);--warning-subtle:oklch(from var(--p-amber-500) .28 .06 h);--info:var(--p-blue-400);--info-foreground:var(--p-neutral-950);--info-subtle:oklch(from var(--p-blue-500) .28 .07 h);--border:var(--p-neutral-800);--input:var(--p-neutral-700);--ring:var(--p-neutral-400);--scrim:oklch(0% 0 0/.6);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0);--shadow-strength:.5}[data-theme=nord]{--radius:.625rem}[data-theme=nord][data-scheme=light],[data-theme=nord] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:oklch(97.6% .006 251);--foreground:oklch(30.9% .026 261);--card:oklch(100% 0 0);--card-foreground:oklch(30.9% .026 261);--popover:oklch(100% 0 0);--popover-foreground:oklch(30.9% .026 261);--desk:oklch(92.9% .011 253);--primary:oklch(58.8% .056 244);--primary-foreground:oklch(98.4% .004 248);--secondary:oklch(68.6% .062 213);--secondary-foreground:oklch(22.9% .023 261);--muted:oklch(92.9% .011 253);--muted-foreground:oklch(49.2% .028 258);--accent:oklch(90.6% .017 251);--accent-foreground:oklch(30.9% .026 261);--destructive:oklch(56.4% .114 19);--destructive-foreground:oklch(98.4% .004 248);--destructive-subtle:oklch(94.5% .028 19);--success:oklch(69.6% .086 143);--success-foreground:oklch(22.9% .023 261);--success-subtle:oklch(95.1% .028 143);--warning:oklch(78.8% .093 74);--warning-foreground:oklch(22.9% .023 261);--warning-subtle:oklch(95.7% .032 74);--info:oklch(63.8% .071 235);--info-foreground:oklch(98.4% .004 248);--info-subtle:oklch(94.7% .023 235);--border:oklch(88.5% .017 252);--input:oklch(83% .019 252);--ring:oklch(58.8% .056 244);--scrim:oklch(22.9% .023 261/.35);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(30.9% .026 261);--shadow-strength:.1}[data-theme=nord][data-scheme=dark],[data-theme=nord] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:oklch(27.9% .024 261);--foreground:oklch(92.5% .011 252);--card:oklch(32.2% .024 259);--card-foreground:oklch(92.5% .011 252);--popover:oklch(32.2% .024 259);--popover-foreground:oklch(92.5% .011 252);--desk:oklch(22.9% .023 261);--primary:oklch(75.5% .062 224);--primary-foreground:oklch(22.9% .023 261);--secondary:oklch(68.6% .062 213);--secondary-foreground:oklch(22.9% .023 261);--muted:oklch(36.5% .024 258);--muted-foreground:oklch(72.9% .019 253);--accent:oklch(40.4% .025 257);--accent-foreground:oklch(92.5% .011 252);--destructive:oklch(62.9% .114 19);--destructive-foreground:oklch(22.9% .023 261);--destructive-subtle:oklch(37.2% .048 19);--success:oklch(75.5% .086 143);--success-foreground:oklch(22.9% .023 261);--success-subtle:oklch(37.2% .041 143);--warning:oklch(82.6% .093 74);--warning-foreground:oklch(22.9% .023 261);--warning-subtle:oklch(38.3% .044 74);--info:oklch(70.8% .071 235);--info-foreground:oklch(22.9% .023 261);--info-subtle:oklch(37.2% .039 235);--border:oklch(37.2% .024 258);--input:oklch(46% .026 257);--ring:oklch(75.5% .062 224);--scrim:oklch(18% .02 261/.6);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(14.5% .018 261);--shadow-strength:.45}[data-theme=contrast]{--radius:0;--shadow-strength:0;--focus-ring-width:3px;--focus-ring-offset:2px;--btn-border-width:2px;--btn-font-weight:600;--input-border-width:2px;--card-border-width:2px;--card-shadow:none;--sheet-shadow:none;--panel-shadow:none;--panel-shadow-overlay:none}[data-theme=contrast][data-scheme=light],[data-theme=contrast] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:oklch(100% 0 0);--foreground:oklch(0% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(0% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(0% 0 0);--desk:oklch(88% 0 0);--primary:oklch(0% 0 0);--primary-foreground:oklch(100% 0 0);--secondary:oklch(32% .11 250);--secondary-foreground:oklch(100% 0 0);--muted:oklch(94% 0 0);--muted-foreground:oklch(36% 0 0);--accent:oklch(90% 0 0);--accent-foreground:oklch(0% 0 0);--destructive:oklch(42% .2 27);--destructive-foreground:oklch(100% 0 0);--destructive-subtle:oklch(94% .03 27);--success:oklch(40% .12 150);--success-foreground:oklch(100% 0 0);--success-subtle:oklch(94% .03 150);--warning:oklch(44% .11 70);--warning-foreground:oklch(100% 0 0);--warning-subtle:oklch(94% .04 70);--info:oklch(40% .16 258);--info-foreground:oklch(100% 0 0);--info-subtle:oklch(94% .03 258);--border:oklch(22% 0 0);--input:oklch(22% 0 0);--ring:oklch(32% .16 258);--scrim:oklch(0% 0 0/.7);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0)}[data-theme=contrast][data-scheme=dark],[data-theme=contrast] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:oklch(0% 0 0);--foreground:oklch(100% 0 0);--card:oklch(8% 0 0);--card-foreground:oklch(100% 0 0);--popover:oklch(8% 0 0);--popover-foreground:oklch(100% 0 0);--desk:oklch(14% 0 0);--primary:oklch(100% 0 0);--primary-foreground:oklch(0% 0 0);--secondary:oklch(82% .13 200);--secondary-foreground:oklch(0% 0 0);--muted:oklch(18% 0 0);--muted-foreground:oklch(82% 0 0);--accent:oklch(24% 0 0);--accent-foreground:oklch(100% 0 0);--destructive:oklch(75% .16 25);--destructive-foreground:oklch(0% 0 0);--destructive-subtle:oklch(24% .07 25);--success:oklch(85% .2 148);--success-foreground:oklch(0% 0 0);--success-subtle:oklch(24% .06 148);--warning:oklch(88% .17 90);--warning-foreground:oklch(0% 0 0);--warning-subtle:oklch(26% .06 90);--info:oklch(82% .13 235);--info-foreground:oklch(0% 0 0);--info-subtle:oklch(24% .07 235);--border:oklch(85% 0 0);--input:oklch(85% 0 0);--ring:oklch(90% .16 100);--scrim:oklch(0% 0 0/.8);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0)}[data-theme=terminal]{--radius:.125rem;--font-family-sans:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--font-size-2xs:.625rem;--line-height-2xs:.875rem;--font-size-xs:.6875rem;--line-height-xs:.9375rem;--font-size-sm:.8125rem;--line-height-sm:1.125rem;--font-size-base:.875rem;--line-height-base:1.25rem;--font-size-lg:1rem;--line-height-lg:1.375rem;--font-size-xl:1.125rem;--line-height-xl:1.5rem;--font-size-2xl:1.25rem;--line-height-2xl:1.625rem;--font-size-3xl:1.5rem;--line-height-3xl:1.875rem;--font-size-4xl:1.75rem;--line-height-4xl:2.125rem;--font-size-5xl:2.25rem;--line-height-5xl:1.1;--layout-rail-width:2.5rem;--layout-menu-panel-width:15rem;--layout-menu-subpanel-width:17rem;--layout-toolbox-rail-width:2.5rem;--layout-toolbox-panel-width:30rem;--layout-gap-shell:.25rem;--layout-pad-page:.75rem;--layout-pad-card:.625rem;--layout-row-height:1.625rem;--control-height-sm:1.375rem;--control-height-md:1.75rem;--control-height-lg:2.125rem;--motion-scale:.6;--shadow-strength:.06;--card-shadow:none;--sheet-shadow:none;--btn-padding-x:.625rem;--btn-font-weight:400;--row-radius:0;--row-padding-x:.375rem}[data-theme=terminal][data-scheme=light],[data-theme=terminal] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:oklch(99.5% .002 106);--foreground:oklch(22% .008 106);--card:oklch(100% 0 0);--card-foreground:oklch(22% .008 106);--popover:oklch(100% 0 0);--popover-foreground:oklch(22% .008 106);--desk:oklch(93% .004 106);--primary:oklch(42% .13 155);--primary-foreground:oklch(99.5% .002 106);--secondary:oklch(50% .11 232);--secondary-foreground:oklch(99.5% .002 106);--muted:oklch(95.5% .003 106);--muted-foreground:oklch(48% .008 106);--accent:oklch(93% .012 155);--accent-foreground:oklch(22% .008 106);--destructive:oklch(52% .2 27);--destructive-foreground:oklch(99.5% .002 106);--destructive-subtle:oklch(95% .035 27);--success:oklch(50% .14 150);--success-foreground:oklch(99.5% .002 106);--success-subtle:oklch(95% .035 150);--warning:oklch(58% .14 62);--warning-foreground:oklch(99.5% .002 106);--warning-subtle:oklch(95% .04 62);--info:oklch(50% .15 250);--info-foreground:oklch(99.5% .002 106);--info-subtle:oklch(95% .032 250);--border:oklch(87% .005 106);--input:oklch(80% .006 106);--ring:oklch(42% .13 155);--scrim:oklch(22% .008 106/.4);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(22% .008 106)}[data-theme=terminal][data-scheme=dark],[data-theme=terminal] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:oklch(17% .006 152);--foreground:oklch(89% .02 152);--card:oklch(21% .008 152);--card-foreground:oklch(89% .02 152);--popover:oklch(21% .008 152);--popover-foreground:oklch(89% .02 152);--desk:oklch(12% .005 152);--primary:oklch(80% .19 148);--primary-foreground:oklch(14% .01 152);--secondary:oklch(75% .12 220);--secondary-foreground:oklch(14% .01 152);--muted:oklch(26% .008 152);--muted-foreground:oklch(66% .02 152);--accent:oklch(29% .02 152);--accent-foreground:oklch(89% .02 152);--destructive:oklch(70% .19 25);--destructive-foreground:oklch(14% .01 152);--destructive-subtle:oklch(28% .07 25);--success:oklch(80% .19 148);--success-foreground:oklch(14% .01 152);--success-subtle:oklch(28% .06 148);--warning:oklch(82% .16 85);--warning-foreground:oklch(14% .01 152);--warning-subtle:oklch(28% .06 85);--info:oklch(75% .12 235);--info-foreground:oklch(14% .01 152);--info-subtle:oklch(28% .06 235);--border:oklch(30% .012 152);--input:oklch(40% .014 152);--ring:oklch(80% .19 148);--scrim:oklch(8% .004 152/.7);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0)}[data-theme=frost]{--glass-backdrop:blur(18px) saturate(1.5);--glass-scrim-backdrop:blur(8px);--card-shadow:var(--shadow-elevation-2)}[data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:oklch(98.5% .003 250/.55);--foreground:oklch(28% .02 255);--card:oklch(98.5% .003 250/.6);--card-foreground:oklch(28% .02 255);--popover:oklch(98.5% .005 250/.97);--native-popup:oklch(98.5% .005 250);--popover-foreground:oklch(28% .02 255);--desk:oklch(92% .008 250);--wallpaper-image:linear-gradient(160deg, oklch(95% .012 250), oklch(88% .022 245) 55%, oklch(83% .032 238));--primary:oklch(45% .045 255);--primary-foreground:oklch(98.5% .003 250);--secondary:oklch(60% .055 230);--secondary-foreground:oklch(98.5% .003 250);--muted:oklch(45% .02 255/.1);--muted-foreground:oklch(44% .02 255);--accent:oklch(100% 0 0/.55);--accent-foreground:oklch(28% .02 255);--destructive:oklch(56% .14 22);--destructive-foreground:oklch(98.5% .003 250);--destructive-subtle:oklch(62% .14 22/.14);--success:oklch(62% .12 150);--success-foreground:oklch(98.5% .003 250);--success-subtle:oklch(62% .12 150/.14);--warning:oklch(72% .12 70);--warning-foreground:oklch(28% .02 255);--warning-subtle:oklch(72% .12 70/.16);--info:oklch(60% .09 240);--info-foreground:oklch(98.5% .003 250);--info-subtle:oklch(60% .09 240/.14);--border:oklch(50% .02 255/.5);--input:oklch(40% .02 255/.5);--ring:oklch(55% .05 250);--scrim:oklch(30% .02 255/.25);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(35% .03 255);--shadow-strength:.14}[data-theme=frost][data-scheme=dark],[data-theme=frost] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:oklch(31% .025 255/.5);--foreground:oklch(95% .008 250);--card:oklch(33% .025 255/.52);--card-foreground:oklch(95% .008 250);--popover:oklch(30% .028 255/.97);--popover-foreground:oklch(95% .008 250);--native-popup:oklch(30% .028 255);--desk:oklch(26% .025 258);--wallpaper-image:linear-gradient(160deg, oklch(42% .04 260), oklch(31% .045 265) 55%, oklch(24% .04 272));--primary:oklch(85% .02 250);--primary-foreground:oklch(26% .03 258);--secondary:oklch(68% .05 235);--secondary-foreground:oklch(22% .025 258);--muted:oklch(100% 0 0/.08);--muted-foreground:oklch(78% .015 250);--accent:oklch(100% 0 0/.14);--accent-foreground:oklch(95% .008 250);--destructive:oklch(64% .15 22);--destructive-foreground:oklch(98% .005 250);--destructive-subtle:oklch(64% .15 22/.2);--success:oklch(72% .14 150);--success-foreground:oklch(22% .025 258);--success-subtle:oklch(72% .14 150/.18);--warning:oklch(80% .12 75);--warning-foreground:oklch(22% .025 258);--warning-subtle:oklch(80% .12 75/.18);--info:oklch(72% .09 240);--info-foreground:oklch(22% .025 258);--info-subtle:oklch(72% .09 240/.18);--border:oklch(100% 0 0/.14);--input:oklch(100% 0 0/.3);--ring:oklch(80% .04 250);--scrim:oklch(20% .03 260/.45);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(12% .02 260);--shadow-strength:.5}[data-theme=frost] .bg-popover,[data-theme=frost] .bg-scrim>:is(.bg-background,.bg-card){-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop)}[data-theme=frost] .bg-scrim{-webkit-backdrop-filter:var(--glass-scrim-backdrop);backdrop-filter:var(--glass-scrim-backdrop)}:is([data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]) :is(dialog,[role=alertdialog],[role=dialog][aria-modal=true]:not(.bg-scrim),.bg-scrim>:is(.bg-background,.bg-card,.bg-popover),.bg-scrim>div:not(.bg-background,.bg-card,.bg-popover)>:is(.bg-background,.bg-card,.bg-popover)){background-color:var(--background);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop)}:is([data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]) [data-dialog-surface]>:is(div,section):is(.bg-background,.bg-card,.bg-popover){box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;border-color:#0000}:is([data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]) dialog::backdrop{background-color:var(--scrim);-webkit-backdrop-filter:var(--glass-scrim-backdrop);backdrop-filter:var(--glass-scrim-backdrop)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){[data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]{--background:oklch(98.5% .003 250/.94);--card:oklch(98.5% .003 250/.94);--popover:oklch(98.5% .005 250/.97)}[data-theme=frost][data-scheme=dark],[data-theme=frost] [data-scheme=dark]{--background:oklch(31% .025 255/.94);--card:oklch(33% .025 255/.94);--popover:oklch(30% .028 255/.97)}}[data-theme=halflife]{--radius:0;--font-family-sans:"Trebuchet MS", Verdana, "Segoe UI", sans-serif;--btn-font-weight:700;--row-radius:0;--card-shadow:none}[data-theme=halflife][data-scheme=light],[data-theme=halflife] [data-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:oklch(100% 0 0);--foreground:oklch(0% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(0% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(0% 0 0);--desk:oklch(28.1% 0 0);--primary:oklch(72.4% .181 52);--primary-foreground:oklch(0% 0 0);--secondary:oklch(19.6% 0 0);--secondary-foreground:oklch(100% 0 0);--muted:oklch(28.1% 0 0/.1);--muted-foreground:oklch(28.1% 0 0);--accent:oklch(72.4% .181 52);--accent-foreground:oklch(0% 0 0);--destructive:oklch(52% .2 27);--destructive-foreground:oklch(100% 0 0);--destructive-subtle:oklch(94% .04 27);--success:oklch(50% .14 150);--success-foreground:oklch(100% 0 0);--success-subtle:oklch(94% .04 150);--warning:oklch(72.4% .181 52);--warning-foreground:oklch(0% 0 0);--warning-subtle:oklch(94% .06 52);--info:oklch(50% .15 250);--info-foreground:oklch(100% 0 0);--info-subtle:oklch(94% .03 250);--border:oklch(28.1% 0 0);--input:oklch(28.1% 0 0);--ring:oklch(72.4% .181 52);--scrim:oklch(0% 0 0/.5);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0);--shadow-strength:.28}[data-theme=halflife][data-scheme=dark],[data-theme=halflife] [data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:oklch(19.6% 0 0);--foreground:oklch(100% 0 0);--card:oklch(19.6% 0 0);--card-foreground:oklch(100% 0 0);--popover:oklch(28.1% 0 0);--popover-foreground:oklch(100% 0 0);--desk:oklch(0% 0 0);--primary:oklch(72.4% .181 52);--primary-foreground:oklch(0% 0 0);--secondary:oklch(28.1% 0 0);--secondary-foreground:oklch(100% 0 0);--muted:oklch(28.1% 0 0);--muted-foreground:oklch(100% 0 0/.65);--accent:oklch(72.4% .181 52);--accent-foreground:oklch(0% 0 0);--destructive:oklch(70% .19 25);--destructive-foreground:oklch(0% 0 0);--destructive-subtle:oklch(28% .07 25);--success:oklch(75% .16 148);--success-foreground:oklch(0% 0 0);--success-subtle:oklch(28% .06 148);--warning:oklch(72.4% .181 52);--warning-foreground:oklch(0% 0 0);--warning-subtle:oklch(28% .06 52);--info:oklch(72% .12 235);--info-foreground:oklch(0% 0 0);--info-subtle:oklch(28% .06 235);--border:oklch(28.1% 0 0);--input:oklch(28.1% 0 0);--ring:oklch(72.4% .181 52);--scrim:oklch(0% 0 0/.7);--scrim-foreground:oklch(100% 0 0);--shadow-color:oklch(0% 0 0);--shadow-strength:.55}[data-theme=halflife] [data-shell=rail]{color:oklch(0% 0 0);--background:oklch(72.4% .181 52);--foreground:oklch(0% 0 0);--card:oklch(72.4% .181 52);--card-foreground:oklch(0% 0 0);--muted:oklch(0% 0 0/.12);--muted-foreground:oklch(0% 0 0);--accent:oklch(0% 0 0);--accent-foreground:oklch(72.4% .181 52);--primary:oklch(0% 0 0);--primary-foreground:oklch(72.4% .181 52);--secondary:oklch(19.6% 0 0);--secondary-foreground:oklch(72.4% .181 52);--border:oklch(0% 0 0/.35);--input:oklch(0% 0 0/.55);--ring:oklch(0% 0 0);--popover:oklch(0% 0 0);--popover-foreground:oklch(72.4% .181 52);--destructive:oklch(32% .18 18);background-color:oklch(72.4% .181 52)}[data-theme=halflife] [data-shell=rail] .bg-accent{color:oklch(72.4% .181 52)}[data-theme=halflife] .folder-surface:is(:hover,:focus-visible,.bg-accent){background-color:var(--accent);color:var(--accent-foreground)}[data-theme=halflife] .folder-surface:is(:hover,:focus-visible,.bg-accent) svg,[data-theme=halflife] .folder-surface:is(:hover,:focus-visible,.bg-accent) .text-muted-foreground{color:var(--accent-foreground)!important}[data-density=compact]{--layout-rail-width:2.75rem;--layout-menu-panel-width:16rem;--layout-menu-subpanel-width:18rem;--layout-toolbox-rail-width:2.75rem;--layout-toolbox-panel-width:28rem;--control-height-sm:1.5rem;--control-height-md:1.875rem;--control-height-lg:2.25rem;--touch-target-min:1.875rem;--layout-gap-shell:.375rem;--layout-pad-page:1rem;--layout-pad-card:.75rem;--layout-row-height:1.875rem;--motion-scale:.8}[data-density=touch]{--layout-rail-width:3.5rem;--layout-menu-panel-width:19rem;--layout-menu-subpanel-width:22rem;--layout-toolbox-rail-width:3.5rem;--layout-toolbox-panel-width:34rem;--control-height-sm:2.25rem;--control-height-md:2.75rem;--control-height-lg:3.25rem;--touch-target-min:2.75rem;--layout-gap-shell:.625rem;--layout-pad-page:1.25rem;--layout-pad-card:1.125rem;--layout-row-height:2.75rem}@media (pointer:coarse){:root:not([data-density=compact]):not([data-density=comfortable]):not([data-density=touch]){--control-height-sm:2.25rem;--control-height-md:2.75rem;--control-height-lg:3.25rem;--touch-target-min:2.75rem;--layout-row-height:2.75rem}}@media (width<=29.999rem){:root{--font-size-2xl:1.25rem;--line-height-2xl:1.625rem;--font-size-3xl:1.5rem;--line-height-3xl:1.875rem;--font-size-4xl:1.75rem;--line-height-4xl:2.125rem;--font-size-5xl:2rem;--line-height-5xl:2.375rem}}:root{--data-l:.62;--data-c:.15;--data-1:oklch(62% .17 25);--data-2:oklch(65% .16 55);--data-3:oklch(70% .14 90);--data-4:oklch(68% .15 125);--data-5:oklch(62% .14 155);--data-6:oklch(64% .11 185);--data-7:oklch(64% .12 215);--data-8:oklch(60% .15 250);--data-9:oklch(58% .17 275);--data-10:oklch(60% .18 300);--data-11:oklch(62% .17 330);--data-12:oklch(55% .03 270)}[data-scheme=dark]{--data-l:.75;--data-c:.13;--data-1:oklch(73% .15 25);--data-2:oklch(76% .14 55);--data-3:oklch(82% .13 90);--data-4:oklch(79% .14 125);--data-5:oklch(75% .13 155);--data-6:oklch(76% .1 185);--data-7:oklch(76% .11 215);--data-8:oklch(72% .13 250);--data-9:oklch(71% .15 275);--data-10:oklch(73% .16 300);--data-11:oklch(74% .15 330);--data-12:oklch(70% .03 270)}[data-theme=contrast]{--data-l:.35;--data-c:.11;--data-1:oklch(35% .12 25);--data-2:oklch(35% .1 55);--data-3:oklch(35% .09 90);--data-4:oklch(35% .1 125);--data-5:oklch(35% .1 155);--data-6:oklch(35% .08 185);--data-7:oklch(35% .09 215);--data-8:oklch(35% .12 250);--data-9:oklch(35% .13 275);--data-10:oklch(35% .13 300);--data-11:oklch(35% .12 330);--data-12:oklch(30% .02 270)}[data-theme=contrast][data-scheme=dark],[data-theme=contrast] [data-scheme=dark]{--data-l:.86;--data-c:.12;--data-1:oklch(85% .14 25);--data-2:oklch(86% .13 55);--data-3:oklch(90% .13 90);--data-4:oklch(88% .14 125);--data-5:oklch(87% .13 155);--data-6:oklch(87% .1 185);--data-7:oklch(87% .1 215);--data-8:oklch(84% .12 250);--data-9:oklch(83% .13 275);--data-10:oklch(85% .14 300);--data-11:oklch(86% .13 330);--data-12:oklch(85% .02 270)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes card-in{0%{opacity:0;transform:translateY(1rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:root,[data-scheme],[data-theme]{--motion-scale:0}:not(.motion-safe-always),:not(.motion-safe-always):before,:not(.motion-safe-always):after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@supports not (color:oklch(0 0 0)){:root{--p-neutral-0:#fff;--p-neutral-50:#fafafb;--p-neutral-100:#f4f4f5;--p-neutral-200:#e4e4e7;--p-neutral-300:#d4d4d8;--p-neutral-400:#9f9fa9;--p-neutral-500:#71717b;--p-neutral-600:#52525b;--p-neutral-700:#3f3f46;--p-neutral-800:#27272d;--p-neutral-900:#18181c;--p-neutral-950:#09090b;--p-neutral-1000:#000;--p-teal-300:#71e6db;--p-teal-400:#31d1c0;--p-teal-500:#00baa7;--p-teal-600:#009688;--p-teal-700:#00786f;--p-blue-300:#8ec5ff;--p-blue-400:#56a3fd;--p-blue-500:#3c82f6;--p-blue-600:#2663eb;--p-blue-700:#2051d0;--p-green-300:#7cf1a7;--p-green-400:#42dc7d;--p-green-500:#1ec55f;--p-green-600:#18a349;--p-green-700:#07813a;--p-amber-300:#ffd230;--p-amber-400:#feba00;--p-amber-500:#fe9900;--p-amber-600:#e27100;--p-amber-700:#bb4d00;--p-red-300:#ffa2a2;--p-red-400:#ff6468;--p-red-500:#fb2c38;--p-red-600:#e7000f;--p-red-700:#c1000c;--p-violet-400:#a784ff;--p-violet-500:#8c52ff;--p-violet-600:#7f22fe;--background:#fff;--foreground:#000;--card:#fff;--card-foreground:#000;--popover:#fff;--popover-foreground:#000;--desk:#e4e4e7;--primary:#000;--primary-foreground:#fff;--secondary:#00baa7;--secondary-foreground:#000;--muted:#f4f4f5;--muted-foreground:#52525b;--accent:#f4f4f5;--accent-foreground:#000;--destructive:#e7000f;--destructive-foreground:#fff;--destructive-subtle:#ffebe8;--success:#18a349;--success-foreground:#fff;--success-subtle:#e4f8e7;--warning:#e27100;--warning-foreground:#000;--warning-subtle:#ffeed6;--info:#2663eb;--info-foreground:#fff;--info-subtle:#e6f3ff;--border:#e4e4e7;--input:#d4d4d8;--ring:#000;--scrim:#00000052;--scrim-foreground:#fff;--shadow-color:#000}:root:not([data-scheme]){--background:#09090b;--foreground:#fafafb;--card:#18181c;--card-foreground:#fafafb;--popover:#18181c;--popover-foreground:#fafafb;--desk:#000;--primary:#fafafb;--primary-foreground:#09090b;--secondary:#31d1c0;--secondary-foreground:#09090b;--muted:#27272d;--muted-foreground:#9f9fa9;--accent:#27272d;--accent-foreground:#fafafb;--destructive:#ff6468;--destructive-foreground:#09090b;--destructive-subtle:#451816;--success:#42dc7d;--success-foreground:#09090b;--success-subtle:#0f3118;--warning:#feba00;--warning-foreground:#09090b;--warning-subtle:#3b2301;--info:#56a3fd;--info-foreground:#09090b;--info-subtle:#13284b;--border:#27272d;--input:#3f3f46;--ring:#9f9fa9;--scrim:#0009;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=canvas][data-scheme=light],[data-theme=canvas] [data-scheme=light]{--background:#fff;--foreground:#000;--card:#fff;--card-foreground:#000;--popover:#fff;--popover-foreground:#000;--desk:#e4e4e7;--primary:#000;--primary-foreground:#fff;--secondary:#00baa7;--secondary-foreground:#000;--muted:#f4f4f5;--muted-foreground:#52525b;--accent:#f4f4f5;--accent-foreground:#000;--destructive:#e7000f;--destructive-foreground:#fff;--destructive-subtle:#ffebe8;--success:#18a349;--success-foreground:#fff;--success-subtle:#e4f8e7;--warning:#e27100;--warning-foreground:#000;--warning-subtle:#ffeed6;--info:#2663eb;--info-foreground:#fff;--info-subtle:#e6f3ff;--border:#e4e4e7;--input:#d4d4d8;--ring:#000;--scrim:#00000052;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=canvas][data-scheme=dark],[data-theme=canvas] [data-scheme=dark]{--background:#09090b;--foreground:#fafafb;--card:#18181c;--card-foreground:#fafafb;--popover:#18181c;--popover-foreground:#fafafb;--desk:#000;--primary:#fafafb;--primary-foreground:#09090b;--secondary:#31d1c0;--secondary-foreground:#09090b;--muted:#27272d;--muted-foreground:#9f9fa9;--accent:#27272d;--accent-foreground:#fafafb;--destructive:#ff6468;--destructive-foreground:#09090b;--destructive-subtle:#451816;--success:#42dc7d;--success-foreground:#09090b;--success-subtle:#0f3118;--warning:#feba00;--warning-foreground:#09090b;--warning-subtle:#3b2301;--info:#56a3fd;--info-foreground:#09090b;--info-subtle:#13284b;--border:#27272d;--input:#3f3f46;--ring:#9f9fa9;--scrim:#0009;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=nord][data-scheme=light],[data-theme=nord] [data-scheme=light]{--background:#f4f7fb;--foreground:#29303d;--card:#fff;--card-foreground:#29303d;--popover:#fff;--popover-foreground:#29303d;--desk:#e2e8ef;--primary:#60819c;--primary-foreground:#f8fafc;--secondary:#6ca5b1;--secondary-foreground:#171d28;--muted:#e2e8ef;--muted-foreground:#576271;--accent:#d8e1eb;--accent-foreground:#29303d;--destructive:#ae575b;--destructive-foreground:#f8fafc;--destructive-subtle:#ffe6e5;--success:#7dab7a;--success-foreground:#171d28;--success-subtle:#e4f4e3;--warning:#deb175;--warning-foreground:#171d28;--warning-subtle:#feeeda;--info:#5f93b1;--info-foreground:#f8fafc;--info-subtle:#dff0fb;--border:#d1dae4;--input:#bfc8d4;--ring:#60819c;--scrim:#171d2859;--scrim-foreground:#fff;--shadow-color:#29303d}[data-theme=nord][data-scheme=dark],[data-theme=nord] [data-scheme=dark]{--background:#222935;--foreground:#e1e7ee;--card:#2c3440;--card-foreground:#e1e7ee;--popover:#2c3440;--popover-foreground:#e1e7ee;--desk:#171d28;--primary:#84b9cd;--primary-foreground:#171d28;--secondary:#6ca5b1;--secondary-foreground:#171d28;--muted:#373f4b;--muted-foreground:#9fa8b3;--accent:#404956;--accent-foreground:#e1e7ee;--destructive:#c46b6d;--destructive-foreground:#171d28;--destructive-subtle:#573636;--success:#8fbe8c;--success-foreground:#171d28;--success-subtle:#334632;--warning:#eabd81;--warning-foreground:#171d28;--warning-subtle:#514028;--info:#74a8c7;--info-foreground:#171d28;--info-subtle:#2b4452;--border:#38414d;--input:#4f5967;--ring:#84b9cd;--scrim:#0d121b99;--scrim-foreground:#fff;--shadow-color:#060a12}[data-theme=contrast][data-scheme=light],[data-theme=contrast] [data-scheme=light]{--background:#fff;--foreground:#000;--card:#fff;--card-foreground:#000;--popover:#fff;--popover-foreground:#000;--desk:#d7d7d7;--primary:#000;--primary-foreground:#fff;--secondary:#003368;--secondary-foreground:#fff;--muted:#ebebeb;--muted-foreground:#3d3d3d;--accent:#dedede;--accent-foreground:#000;--destructive:#9e0000;--destructive-foreground:#fff;--destructive-subtle:#ffe4e0;--success:#005820;--success-foreground:#fff;--success-subtle:#def1e1;--warning:#784500;--warning-foreground:#fff;--warning-subtle:#fde7cf;--info:#00419b;--info-foreground:#fff;--info-subtle:#dfecff;--border:#1b1b1b;--input:#1b1b1b;--ring:#002881;--scrim:#000000b3;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=contrast][data-scheme=dark],[data-theme=contrast] [data-scheme=dark]{--background:#000;--foreground:#fff;--card:#020202;--card-foreground:#fff;--popover:#020202;--popover-foreground:#fff;--desk:#090909;--primary:#fff;--primary-foreground:#000;--secondary:#34dde5;--secondary-foreground:#000;--muted:#121212;--muted-foreground:#c4c4c4;--accent:#1f1f1f;--accent-foreground:#fff;--destructive:#ff8179;--destructive-foreground:#000;--destructive-subtle:#3a0e0d;--success:#5df07e;--success-foreground:#000;--success-subtle:#06270d;--warning:#ffd12e;--warning-foreground:#000;--warning-subtle:#2f2200;--info:#64d1ff;--info-foreground:#000;--info-subtle:#00233b;--border:#cecece;--input:#cecece;--ring:#f7e04f;--scrim:#000c;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=terminal][data-scheme=light],[data-theme=terminal] [data-scheme=light]{--background:#fdfdfc;--foreground:#1b1b17;--card:#fff;--card-foreground:#1b1b17;--popover:#fff;--popover-foreground:#1b1b17;--desk:#e8e8e5;--primary:#00602a;--primary-foreground:#fdfdfc;--secondary:#006d97;--secondary-foreground:#fdfdfc;--muted:#f0f0ee;--muted-foreground:#5e5e59;--accent:#e2eae4;--accent-foreground:#1b1b17;--destructive:#c2181d;--destructive-foreground:#fdfdfc;--destructive-subtle:#ffe6e2;--success:#007834;--success-foreground:#fdfdfc;--success-subtle:#dff6e2;--warning:#b36300;--warning-foreground:#fdfdfc;--warning-subtle:#ffe9d4;--info:#0065b4;--info-foreground:#fdfdfc;--info-subtle:#dff1ff;--border:#d4d4d1;--input:#bebeba;--ring:#00602a;--scrim:#1b1b1766;--scrim-foreground:#fff;--shadow-color:#1b1b17}[data-theme=terminal][data-scheme=dark],[data-theme=terminal] [data-scheme=dark]{--background:#0e100e;--foreground:#d2dfd4;--card:#161916;--card-foreground:#d2dfd4;--popover:#161916;--popover-foreground:#d2dfd4;--desk:#050605;--primary:#53de73;--primary-foreground:#060a07;--secondary:#3dbfe2;--secondary-foreground:#060a07;--muted:#212522;--muted-foreground:#8a968c;--accent:#242e26;--accent-foreground:#d2dfd4;--destructive:#ff645f;--destructive-foreground:#060a07;--destructive-subtle:#451816;--success:#53de73;--success-foreground:#060a07;--success-subtle:#113117;--warning:#f3ba25;--warning-foreground:#060a07;--warning-subtle:#362600;--info:#56baef;--info-foreground:#060a07;--info-subtle:#002d42;--border:#2a302b;--input:#424a44;--ring:#53de73;--scrim:#010201b3;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]{--background:#f9fafc8c;--foreground:#222933;--card:#f9fafc99;--card-foreground:#222933;--popover:#f8fafdf7;--native-popup:#f8fafd;--popover-foreground:#222933;--desk:#e1e5ea;--primary:#44576e;--primary-foreground:#f9fafc;--secondary:#5e879b;--secondary-foreground:#f9fafc;--muted:#4e56611a;--muted-foreground:#4b535e;--accent:#ffffff8c;--accent-foreground:#222933;--destructive:#b84d4e;--destructive-foreground:#f9fafc;--destructive-subtle:#cd5f5f24;--success:#4a9a5e;--success-foreground:#f9fafc;--success-subtle:#4a9a5e24;--warning:#d49648;--warning-foreground:#222933;--warning-subtle:#d4964829;--info:#4a87b1;--info-foreground:#f9fafc;--info-subtle:#4a87b124;--border:#5c646f80;--input:#41485380;--ring:#5b748e;--scrim:#272e3840;--scrim-foreground:#fff;--shadow-color:#303b4a}[data-theme=frost][data-scheme=dark],[data-theme=frost] [data-scheme=dark]{--background:#28313d80;--foreground:#ebeff4;--card:#2d364285;--card-foreground:#ebeff4;--popover:#242f3cf7;--popover-foreground:#ebeff4;--native-popup:#242f3c;--desk:#1c2430;--primary:#c4cfdb;--primary-foreground:#1b2433;--secondary:#7b9eb3;--secondary-foreground:#131b26;--muted:#ffffff14;--muted-foreground:#b0b8c1;--accent:#ffffff24;--accent-foreground:#ebeff4;--destructive:#d86162;--destructive-foreground:#f6f9fc;--destructive-subtle:#d8616233;--success:#5bbd74;--success-foreground:#131b26;--success-subtle:#5bbd742e;--warning:#ebb25f;--warning-foreground:#131b26;--warning-subtle:#ebb25f2e;--info:#6eacd7;--info-foreground:#131b26;--info-subtle:#6eacd72e;--border:#ffffff24;--input:#ffffff4d;--ring:#abc0d7;--scrim:#0e162473;--scrim-foreground:#fff;--shadow-color:#03060d}[data-theme=frost][data-scheme=light],[data-theme=frost] [data-scheme=light]{--background:#f9fafcf0;--card:#f9fafcf0;--popover:#f8fafdf7}[data-theme=frost][data-scheme=dark],[data-theme=frost] [data-scheme=dark]{--background:#28313df0;--card:#2d3642f0;--popover:#242f3cf7}[data-theme=halflife][data-scheme=light],[data-theme=halflife] [data-scheme=light]{--background:#fff;--foreground:#000;--card:#fff;--card-foreground:#000;--popover:#fff;--popover-foreground:#000;--desk:#292929;--primary:#fb7e15;--primary-foreground:#000;--secondary:#151515;--secondary-foreground:#fff;--muted:#2929291a;--muted-foreground:#292929;--accent:#fb7e15;--accent-foreground:#000;--destructive:#c2181d;--destructive-foreground:#fff;--destructive-subtle:#ffe2dd;--success:#007834;--success-foreground:#fff;--success-subtle:#d9f3dd;--warning:#fb7e15;--warning-foreground:#000;--warning-subtle:#ffe1c7;--info:#0065b4;--info-foreground:#fff;--info-subtle:#ddedff;--border:#292929;--input:#292929;--ring:#fb7e15;--scrim:#00000080;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=halflife][data-scheme=dark],[data-theme=halflife] [data-scheme=dark]{--background:#151515;--foreground:#fff;--card:#151515;--card-foreground:#fff;--popover:#292929;--popover-foreground:#fff;--desk:#000;--primary:#fb7e15;--primary-foreground:#000;--secondary:#292929;--secondary-foreground:#fff;--muted:#292929;--muted-foreground:#ffffffa6;--accent:#fb7e15;--accent-foreground:#000;--destructive:#ff645f;--destructive-foreground:#000;--destructive-subtle:#451816;--success:#5bc971;--success-foreground:#000;--success-subtle:#113117;--warning:#fb7e15;--warning-foreground:#000;--warning-subtle:#3f1f09;--info:#4cb0e5;--info-foreground:#000;--info-subtle:#002d42;--border:#292929;--input:#292929;--ring:#fb7e15;--scrim:#000000b3;--scrim-foreground:#fff;--shadow-color:#000}[data-theme=halflife] [data-shell=rail]{--background:#fb7e15;--foreground:#000;--card:#fb7e15;--card-foreground:#000;--muted:#0000001f;--muted-foreground:#000;--accent:#000;--accent-foreground:#fb7e15;--primary:#000;--primary-foreground:#fb7e15;--secondary:#151515;--secondary-foreground:#fb7e15;--border:#00000059;--input:#0000008c;--ring:#000;--popover:#000;--popover-foreground:#fb7e15;--destructive:#740009}:root{--data-1:#da534f;--data-2:#d76f04;--data-3:#c09910;--data-4:#83a730;--data-5:#269e5f;--data-6:#12a195;--data-7:#009eb9;--data-8:#2784d5;--data-9:#606cdd;--data-10:#9260da;--data-11:#bd5ab6;--data-12:#6b7184}[data-scheme=dark]{--data-1:#f87e77;--data-2:#f49752;--data-3:#e5c057;--data-4:#a6ca60;--data-5:#62c689;--data-6:#5cc6b9;--data-7:#4dc3dd;--data-8:#60aaf3;--data-9:#8798fe;--data-10:#b88efc;--data-11:#df86d7;--data-12:#979eb2}[data-theme=contrast]{--data-1:#6c1517;--data-2:#602800;--data-3:#4d3700;--data-4:#2f4300;--data-5:#004922;--data-6:#004740;--data-7:#004557;--data-8:#003b75;--data-9:#2a2e7c;--data-10:#462373;--data-11:#5b1c57;--data-12:#2a2d38}[data-theme=contrast][data-scheme=dark],[data-theme=contrast] [data-scheme=dark]{--data-1:#ffa89f;--data-2:#ffb97b;--data-3:#ffda72;--data-4:#c2e87d;--data-5:#89eeaf;--data-6:#81eadd;--data-7:#80e5fd;--data-8:#8cd0ff;--data-9:#afc0ff;--data-10:#dcb8ff;--data-11:#ffb1fa;--data-12:#c8cddb}:root{--shadow-elevation-0:none;--shadow-elevation-1:0 1px 2px -1px #0000001f, 0 1px 3px 0 #00000014;--shadow-elevation-2:0 2px 4px -2px #0000001f, 0 4px 6px -1px #00000014;--shadow-elevation-3:0 4px 6px -4px #0000001f, 0 10px 15px -3px #00000014;--shadow-elevation-4:0 8px 10px -6px #0000001f, 0 20px 25px -5px #00000014;--shadow-elevation-5:0 16px 20px -8px #00000029, 0 32px 48px -12px #0000001f}[data-scheme=dark]{--shadow-elevation-1:0 1px 2px -1px #00000080, 0 1px 3px 0 #00000059;--shadow-elevation-2:0 2px 4px -2px #00000080, 0 4px 6px -1px #00000059;--shadow-elevation-3:0 4px 6px -4px #00000080, 0 10px 15px -3px #00000059;--shadow-elevation-4:0 8px 10px -6px #00000080, 0 20px 25px -5px #00000059;--shadow-elevation-5:0 16px 20px -8px #0000008c, 0 32px 48px -12px #00000073}}@media (width<=767px){html{overscroll-behavior-x:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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-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-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@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}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.strip-scroller{gap:var(--spacing-shell);scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain;flex:auto;min-width:0;height:100%;display:flex;overflow:auto clip}.strip-scroller::-webkit-scrollbar{display:none}.strip-col{scroll-snap-align:start;flex-direction:column;flex:none;width:280px;height:100%;min-height:0;display:flex}.strip-menu-col{border-radius:var(--panel-radius);background-color:color-mix(in srgb, var(--color-card) 40%, transparent);-webkit-backdrop-filter:var(--glass-backdrop,none);backdrop-filter:var(--glass-backdrop,none);overflow:hidden}.strip-menu-col :is(.shadow-elevation-1,.shadow-elevation-3):not([data-active]){box-shadow:none;background-color:#0000;border-color:#0000}.strip-menu-col :is(.shadow-elevation-1,.shadow-elevation-3):not([data-active]):hover{background-color:color-mix(in srgb, var(--color-card) 55%, transparent)}.strip-menu-col [data-active]{background-color:var(--color-accent);box-shadow:var(--shadow-elevation-4);transform:translateY(-1px)}.strip-canvas [data-canvas-panes]{background-color:#0000;gap:0;padding:0}.strip-canvas [data-canvas-pane]{border-width:0;border-radius:0}.strip-canvas .canvas-surface-body.is-framed{border-width:0;border-radius:0;margin:0}.strip-rows{height:100%;transition:transform var(--duration-normal) var(--ease-standard);flex-direction:column;flex:none;display:flex}.strip-row{flex-direction:column;flex:0 0 100%;height:100%;min-height:0;display:flex}.strip-row-label{background-color:var(--color-accent);color:var(--color-foreground);border-radius:999px;flex:none;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.strip-row-canvases{gap:var(--spacing-shell);flex:auto;min-height:0;display:flex}.strip-canvas{height:100%;min-height:0;width:calc(var(--strip-h,70vh) / 1.41421);min-width:min(20rem, var(--strip-w,100vw));max-width:var(--strip-w,100vw);scroll-snap-align:start;transition:box-shadow var(--duration-fast) var(--ease-standard), width var(--duration-normal) var(--ease-standard);flex-direction:column;flex:none;display:flex}.strip-canvas--wide{width:var(--strip-w,100vw)}.strip-canvas--focused{box-shadow:var(--shadow-elevation-4)}.strip-canvas-bar{height:3rem;color:var(--color-foreground);border-bottom:1px solid var(--color-border);flex:none;align-items:center;gap:.25rem;padding:0 .5rem 0 1rem;font-size:.875rem;font-weight:600;display:flex}.strip-canvas-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.strip-canvas-btn{width:1.5rem;height:1.5rem;color:var(--color-muted-foreground);border-radius:.375rem;justify-content:center;align-items:center;display:inline-flex}.strip-canvas-btn:hover{background-color:var(--color-accent);color:var(--color-foreground)}.strip-canvas-body{flex-direction:column;flex:auto;min-height:0;display:flex}.strip-ghost-row{opacity:.7;align-items:flex-start;gap:.5rem;padding:.5rem;display:flex}.strip-ghost-chip{background-color:color-mix(in srgb, var(--color-card) 70%, transparent);color:var(--color-muted-foreground);white-space:nowrap;border-radius:999px;padding:.25rem .625rem;font-size:.75rem}.strip-ghost-chip--main{color:var(--color-foreground)}@media (width<=767px){.strip-scroller{scroll-snap-type:x mandatory}.strip-col,.strip-canvas,.strip-canvas--wide{width:var(--strip-w,calc(100vw - 1rem));min-width:0}}.strip-document-card>:first-child{padding-inline:1rem .5rem}.strip-canvas-body{min-width:0}@media (prefers-reduced-motion:reduce){.strip-canvas,.strip-rows{transition:none}}@media (width>=768px){.strip-canvas[data-reader-pane=true]:not(.strip-canvas--wide){width:var(--reader-width,calc(var(--strip-h,70vh) / 1.41421))}.strip-canvas:has([data-always-reader]):not(.strip-canvas--wide){width:max(640px, calc(var(--strip-w,100vw) - var(--strip-menu-space,0px) - 2 * var(--spacing-shell,8px)))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{I as r,J as i,Pt as a,Ur as o,X as s}from"./ui-CDoK3F3U.js";import{t as c}from"./utils-2pl1SbIp.js";import{t as l}from"./button-SeUZ_Pvi.js";import{t as u}from"./input-BOtCd4HP.js";import{c as d,t as f}from"./api-CA6WiiYM.js";import{n as p}from"./use-toast-BlLDqSUO.js";var m=e(n(),1),h=[`onnx`,`clip`,`blip`,`openai`],g=[`onnx`,`clip`,`blip`,`ollama`,`vllm`],_=[{id:`openai`,baseUrl:`https://api.openai.com/v1`,label:`OpenAI`},{id:`vllm`,baseUrl:`http://127.0.0.1:8000/v1`,label:`vLLM`},{id:`ollama`,baseUrl:`http://127.0.0.1:11434/v1`,label:`Ollama`}],v=e=>`${d.workspaces}/${encodeURIComponent(e)}/inferd`;function y(e,t){let n={};for(let[r,i]of Object.entries(e.providers||{})){let e={...i};delete e.apiKeySet,delete e.headerNames,t.has(r)&&i.apiKey?e.apiKey=i.apiKey:delete e.apiKey,n[r]=e}return{...e,providers:n}}async function b(e){return await f.get(`${v(e)}/status`)}async function x(e,t={}){let n={};return t.force!==void 0&&(n.force=t.force),t.scope&&(n.scope=t.scope),await f.post(`${v(e)}/summarize/images`,n)}async function ee(e){return await f.post(`${v(e)}/summarize/images/stop`,{})}async function S(e){return await f.get(`${v(e)}/config`)}async function C(e,t){return await f.put(`${v(e)}/config`,t)}async function w(e,t={}){let n={};return t.space&&(n.space=t.space),t.reindex!==void 0&&(n.reindex=t.reindex),t.scope&&(n.scope=t.scope),await f.post(`${v(e)}/reindex`,n)}async function T(e){return await f.get(`${v(e)}/vector-tables`)}async function E(e,t){return await f.delete(`${v(e)}/vector-tables/${encodeURIComponent(t)}`)}async function D(){return await f.get(`${d.inferd}/config`)}async function O(e){return await f.put(`${d.inferd}/config`,e)}async function k(){return await f.get(`${d.inferd}/defaults`)}async function te(e){return await f.put(`${d.inferd}/defaults`,e)}async function ne(e,t){let n={...e};return delete n.apiKeySet,delete n.headerNames,(await f.post(`${d.inferd}/test`,{provider:n,...t?{model:t}:{},probe:!0})).cached??null}async function re(e,t,n=`text`){let r={...e};return delete r.apiKeySet,delete r.headerNames,await f.post(`${d.inferd}/test`,{provider:r,...t?{model:t}:{},modality:n})}var A={text:{label:`Text & documents`,hint:`Notes, emails, documents and text files`},image:{label:`Photos & images`,hint:`Images, matched against what you type: "red bike in the snow" finds the photo`}},j={onnx:`Built-in text model`,clip:`Built-in image model`,blip:`Built-in image describer`,ollama:`Ollama on this server`,vllm:`vLLM on this server`,openai:`OpenAI`},M={onnx:`Built-in, text`,clip:`Built-in, images`,blip:`Built-in, image descriptions`,openai:`OpenAI-compatible server`},N=e=>e.charAt(0).toUpperCase()+e.slice(1);function P(e){return A[e]?.label??N(e)}function ie(e){return A[e]?.hint??null}function F(e){return j[e]??e}function I(e){return M[e]??e}var L=t(),R=`h-8 w-full rounded-md border bg-background px-2 text-sm outline-none focus:ring-2 focus:ring-ring`,z=`font-semibold uppercase tracking-[0.08em]`,B={openai:{url:{key:`baseUrl`,label:`Base URL`,placeholder:`http://gpu.local:8000/v1`,hint:`OpenAI-compatible embeddings endpoint — Ollama, vLLM, TEI, infinity, LM Studio and OpenAI itself all speak this. A trailing /v1 is optional; both http://host:8000 and http://host:8000/v1 work.`},apiKey:"Sent as `Authorization: Bearer …`. Leave empty for servers that do not check it.",note:`Any server that speaks the OpenAI embeddings API: a GPU machine running Ollama, vLLM or TEI, or a hosted service.`,imageInput:!0,timeoutMs:!0,headers:!0,where:e=>e.baseUrl||`no endpoint set`},ollama:{url:{key:`host`,label:`Host (legacy)`,placeholder:`http://127.0.0.1:11434`,hint:`Written by an older version. Switch the type to openai — the host becomes the base URL and the /v1 suffix is added for you.`},apiKey:"Sent as `Authorization: Bearer …`.",where:e=>e.host||`http://127.0.0.1:11434`},onnx:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Text model that runs inside Canvas on this server. Nothing to connect; the model downloads on first use.`,where:()=>`runs on this server`},clip:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Image model (CLIP) that runs inside Canvas on this server. It also understands text, which is how a typed search finds photos.`,where:()=>`runs on this server`},blip:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Vision model that writes image descriptions, inside Canvas on this server. Configured under Image descriptions.`,where:()=>`runs on this server`}},ae=[`baseUrl`,`host`,`apiKey`,`cacheDir`,`imageInput`,`timeoutMs`],oe=[{value:`data-uri`,label:`data-uri (default)`,hint:"Images ride in the ordinary `input` array as data URIs (infinity, TEI-style servers)."},{value:`messages`,label:`messages`,hint:`vLLM's multimodal shape: one request per image, wrapped in a chat message.`}],se=12e4;function V(e){if(typeof e!=`string`||e.trim()===``)return null;let t;try{t=new URL(e.trim())}catch{return`Must be an absolute URL including the scheme, e.g. http://127.0.0.1:11434`}return t.protocol!==`http:`&&t.protocol!==`https:`?`Unsupported scheme '${t.protocol.replace(`:`,``)}'. Use http or https.`:null}function ce({title:e,hint:t}){return(0,L.jsxs)(`div`,{className:`mb-2`,children:[(0,L.jsx)(`h3`,{className:c(`text-[11px] text-muted-foreground`,z),children:e}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:t})]})}function H({overridden:e,source:t}){return e?(0,L.jsx)(`span`,{className:`rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary`,title:`Set on this layer; it wins over anything inherited`,children:`overridden`}):(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground`,title:t?`Inherited: ${t}`:`Inherited from a lower config layer`,children:`inherited`})}function U({label:e,value:t,inheritedValue:n,onChange:r,type:i=`text`,placeholder:a,disabled:o,hint:s,error:l,mono:d}){let f=t!==void 0&&t!==``;return(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:e}),(0,L.jsx)(H,{overridden:f,source:n===void 0?void 0:String(n)}),f&&!o&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(``),className:`text-[10px] text-muted-foreground underline hover:text-foreground`,title:`Clear the override and fall back to the inherited value`,children:`reset`})]}),(0,L.jsx)(u,{type:i,value:t??``,disabled:o,onChange:e=>r(e.target.value),placeholder:a??(n===void 0?`—`:String(n)),className:c(`h-8 text-sm`,d&&`font-mono`,l&&`border-destructive focus-visible:ring-destructive`)}),l&&(0,L.jsx)(`p`,{className:`text-[11px] font-medium text-destructive`,children:l}),s&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:s})]})}function W({label:e,checked:t,overridden:n,disabled:r,onChange:i}){return(0,L.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,L.jsx)(`input`,{type:`checkbox`,disabled:r,checked:t,onChange:e=>i(e.target.checked)}),e,(0,L.jsx)(H,{overridden:n})]})}function le({storedNames:e,value:t,disabled:n,onChange:r}){let i=t!==void 0,[o,c]=(0,m.useState)([]),d=e=>{c(e),r(Object.fromEntries(e.filter(([e])=>e.trim()!==``)))};return(0,L.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Custom headers`}),i?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`rounded bg-warning-subtle px-1.5 py-0.5 text-[10px] font-medium text-warning`,children:`will replace stored`}),!n&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>{c([]),r(void 0)},className:`text-[10px] text-muted-foreground underline hover:text-foreground`,children:`cancel`})]}):(0,L.jsx)(H,{overridden:!1,source:e?.join(`, `)})]}),!i&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:e?.length?(0,L.jsxs)(L.Fragment,{children:[`Stored: `,(0,L.jsx)(`span`,{className:`font-mono`,children:e.join(`, `)}),` (values are never sent back)`]}):`None set.`}),!n&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>{c([[``,``]]),r({})},children:e?.length?`Replace headers`:`Add headers`})]}),i&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Saving replaces every stored header, so re-enter the ones you want to keep.`}),o.map(([e,t],r)=>(0,L.jsxs)(`div`,{className:`flex gap-2`,children:[(0,L.jsx)(u,{value:e,disabled:n,placeholder:`X-Tenant`,className:`h-8 font-mono text-sm`,onChange:e=>d(o.map((t,n)=>n===r?[e.target.value,t[1]]:t))}),(0,L.jsx)(u,{value:t,disabled:n,placeholder:`value`,className:`h-8 font-mono text-sm`,onChange:e=>d(o.map((t,n)=>n===r?[t[0],e.target.value]:t))}),(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:n,"aria-label":`Remove header ${e||r+1}`,onClick:()=>d(o.filter((e,t)=>t!==r)),children:(0,L.jsx)(s,{className:`h-3.5 w-3.5`})})]},r)),!n&&(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>d([...o,[``,``]]),children:[(0,L.jsx)(a,{className:`mr-1.5 h-3.5 w-3.5`}),`Add header`]})]})]})}function ue({open:e,onClick:t,label:n}){return(0,L.jsx)(`button`,{type:`button`,onClick:t,"aria-expanded":e,title:n,"aria-label":n,className:`flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,L.jsx)(o,{className:c(`h-4 w-4 transition-transform motion-reduce:transition-none`,e&&`rotate-180`)})})}var de={configured:`bg-success`,"needs-fill":`bg-warning`,unresolved:`bg-destructive`,unset:`bg-muted-foreground/30`};function G({value:e,effective:t,inherited:n,resolvedSpaces:o,invalid:d,attention:f,onFill:v,saving:b=!1,disabled:x=!1,saveLabel:ee=`Save`,onSave:S}){let{showToast:C}=p(),[w,T]=(0,m.useState)(()=>structuredClone(e)),[E,D]=(0,m.useState)(new Set),[O,k]=(0,m.useState)(null),[te,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(``),[N,z]=(0,m.useState)(``),[G,K]=(0,m.useState)(null),q=(0,m.useMemo)(()=>[...new Set([...Object.keys(t.spaces||{}),...Object.keys(w.spaces||{})])].sort(),[t.spaces,w.spaces]),J=(0,m.useMemo)(()=>[...new Set([...Object.keys(t.providers||{}),...Object.keys(w.providers||{})])].sort(),[t.providers,w.providers]),Y=(e,t,n)=>{T(r=>{let i={...r.spaces||{}},a={...i[e]||{}};if(n===``)delete a[t];else if(t===`dim`||t===`maxLength`||t===`dimensions`){let e=Number(n);if(Number.isNaN(e))return r;a[t]=e}else a[t]=n;return Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,spaces:i}})},fe=(e,t,n)=>{T(r=>{let i={...r.spaces||{}},a={...i[e]||{}};return n===void 0?delete a[t]:a[t]=n,Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,spaces:i}})},X=(e,t,n)=>{t===`apiKey`&&D(t=>{let r=new Set(t);return n===``?r.delete(e):r.add(e),r}),T(r=>{let i={...r.providers||{}},a={...i[e]||{}};if(n===``)delete a[t];else if(t===`timeoutMs`){let e=Number(n);if(Number.isNaN(e))return r;a[t]=e}else a[t]=n;return Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,providers:i}})},pe=(e,t,n)=>{T(r=>{let i={...r.providers||{}},a={...i[e]||{}};return n===void 0?delete a[t]:a[t]=n,Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,providers:i}})},me=e=>{T(t=>{let n={...t.providers||{}};return delete n[e],{...t,providers:n}}),D(t=>{let n=new Set(t);return n.delete(e),n})},he=()=>{let e=N.trim();if(e){if(q.includes(e)){C({title:`Already listed`,description:`'${e}' already has a row above.`,variant:`destructive`});return}T(t=>({...t,spaces:{...t.spaces||{},[e]:{}}})),z(``),K(`space:${e}`)}},Z=(e,t)=>{if(e){if(J.includes(e)){C({title:`Already listed`,description:`'${e}' is already set up. Open it below to edit.`,variant:`destructive`});return}T(n=>({...n,providers:{...n.providers||{},[e]:{type:`openai`,...t?{baseUrl:t}:{}}}})),M(``),K(`provider:${e}`)}},ge=e=>({...t.providers?.[e]||{},...w.providers?.[e]||{}}),_e=async e=>{let n=w.spaces?.[e]?.provider??t.spaces?.[e]?.provider,r=w.spaces?.[e]?.model??t.spaces?.[e]?.model;if(!n){C({title:`Nothing to test`,description:`${P(e)} has no model provider set.`,variant:`destructive`});return}let i=ge(n),a=i.type?B[i.type]?.url?.key:void 0,o=a?V(i[a]):null;if(o){C({title:F(n),description:o,variant:`destructive`});return}k(e);try{try{await ne(i,r)===!1&&(A(!0),C({title:`Downloading model`,description:`'${r??`the configured model`}' is not in the server's cache yet; downloading now. A first test can take a few minutes; the model is then cached for good.`}))}catch{}let n=await re(i,r,e),a=w.spaces?.[e]?.dim??t.spaces?.[e]?.dim,o=n.dim>0&&a!==void 0&&n.dim!==a;(o||n.dim>0&&a===void 0)&&Y(e,`dim`,String(n.dim)),C({title:o?`Model answered; vector size corrected`:`Model answered`,description:o?`It returned ${n.dim}-d vectors but ${P(e)} was set to ${a}-d. Updated to ${n.dim}; save to apply. (${n.latencyMs} ms)`:`${n.dim}-d vectors in ${n.latencyMs} ms`})}catch(e){C({title:`Test failed`,description:e instanceof Error?e.message:`Model provider unreachable`,variant:`destructive`})}finally{k(null),A(!1)}},Q=(0,m.useMemo)(()=>{let e=[];for(let[n,r]of Object.entries(w.providers||{})){let i=r.type??t.providers?.[n]?.type,a=i?B[i]?.url?.key:void 0;if(!a)continue;let o=V(r[a]);o&&e.push(`${n}: ${o}`)}return e},[w.providers,t.providers]),$=(0,m.useMemo)(()=>JSON.stringify(w)!==JSON.stringify(e)||E.size>0,[w,e,E]),ve=async()=>{if(Q.length>0){C({title:`Fix the endpoint first`,description:Q.join(` · `),variant:`destructive`});return}await S(y(w,E)),D(new Set)},ye=e=>K(t=>t===e?null:e);return(0,L.jsxs)(`div`,{className:`space-y-6`,children:[d&&(0,L.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-destructive/40 bg-destructive-subtle p-3 text-xs`,children:[(0,L.jsx)(i,{className:`mt-0.5 h-4 w-4 shrink-0 text-destructive`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`font-medium text-destructive`,children:`Stored config does not resolve; defaults are standing in`}),(0,L.jsx)(`p`,{className:`mt-0.5 font-mono text-[11px] text-muted-foreground`,children:d})]})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(ce,{title:`Meaning-search models`,hint:`One model per kind of content. After switching a model, index your existing documents so they show up again. The old index is kept, so switching back costs nothing.`}),q.length===0?(0,L.jsxs)(`div`,{className:`rounded-lg border border-dashed p-6 text-center`,children:[(0,L.jsx)(`p`,{className:`text-sm font-medium`,children:`No models set here`}),(0,L.jsx)(`p`,{className:`mx-auto mt-1 max-w-sm text-xs text-muted-foreground`,children:`Add a content type below and pick where its model runs.`})]}):(0,L.jsx)(`div`,{className:`divide-y overflow-hidden rounded-lg border`,children:q.map(e=>{let i=w.spaces?.[e]||{},a=t.spaces?.[e]||{},s=n.spaces?.[e]||{},u=o?.[e],p=`space:${e}`,m=G===p,h=i.model??a.model,g=i.provider??a.provider,_=i.dim??a.dim,y=i.chunk??a.chunk??!1,b=f?.includes(e)??!1;return(0,L.jsxs)(`div`,{className:`relative`,children:[(0,L.jsx)(`span`,{className:c(`absolute inset-y-0 left-0 w-[3px]`,de[d?`unresolved`:b?`needs-fill`:h?`configured`:`unset`]),"aria-hidden":!0}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 py-3 pl-4 pr-3 sm:flex-row sm:items-start sm:gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`text-sm font-medium`,children:P(e)}),(0,L.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,title:`Content type id in the config`,children:e})]}),ie(e)&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:ie(e)}),(0,L.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`truncate font-mono text-xs`,children:h||`no model set`}),g&&(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,title:`Provider id: ${g}`,children:F(g)}),_!==void 0&&(0,L.jsxs)(`span`,{className:`text-[11px] tabular-nums text-muted-foreground`,title:`Vector size: how many numbers the model produces per item`,children:[_,`-d`]}),y&&(0,L.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:`long documents split`})]}),o&&h&&(0,L.jsxs)(`p`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,title:`Where this model's index is stored`,children:[`└─ `,u?.table??(0,L.jsx)(`span`,{className:`not-italic`,children:`not created yet`})]}),b&&(0,L.jsx)(`p`,{className:`mt-1 text-[11px] text-warning`,children:`New model, nothing indexed with it yet. Existing documents of this type won't show up in meaning search until you index them. Switching back is still instant.`})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 max-sm:justify-end`,children:[b&&v&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>v(e),children:`Index existing`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:x||O!==null,onClick:()=>_e(e),title:`Send a sample to this model and check that it answers (also reports its vector size)`,children:[(0,L.jsx)(r,{className:`mr-1.5 h-3.5 w-3.5`}),O===e?te?`Downloading…`:`Testing…`:`Test`]}),(0,L.jsx)(ue,{open:m,onClick:()=>ye(p),label:`Edit ${P(e)}`})]})]}),m&&(0,L.jsxs)(`div`,{className:`border-t bg-muted/40 py-4 pl-4 pr-3`,children:[(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Runs on`}),(0,L.jsx)(H,{overridden:i.provider!==void 0,source:s.provider})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:i.provider??``,onChange:t=>Y(e,`provider`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:a.provider?`Default: ${F(a.provider)}`:`Default`}),J.map(e=>(0,L.jsxs)(`option`,{value:e,children:[F(e),F(e)===e?``:` (${e})`]},e))]})]}),(0,L.jsx)(U,{label:`Model`,mono:!0,value:i.model,inheritedValue:a.model,onChange:t=>Y(e,`model`,t),disabled:x}),(0,L.jsx)(U,{label:`Vector size`,type:`number`,value:i.dim,inheritedValue:a.dim,onChange:t=>Y(e,`dim`,t),disabled:x,hint:`How many numbers the model produces per item. Test asks the model and fills in the real value.`}),(0,L.jsx)(U,{label:`Max input length`,type:`number`,value:i.maxLength,inheritedValue:a.maxLength,onChange:t=>Y(e,`maxLength`,t),disabled:x,hint:`Longest piece of text, in tokens, the model reads at once.`})]}),(0,L.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-4`,children:[(0,L.jsx)(W,{label:`Split long documents into parts`,checked:y,overridden:i.chunk!==void 0,disabled:x,onChange:t=>fe(e,`chunk`,t)}),(0,L.jsx)(W,{label:`Fast lookup index (ANN)`,checked:i.annIndex??a.annIndex??!0,overridden:i.annIndex!==void 0,disabled:x,onChange:t=>fe(e,`annIndex`,t)})]})]})]},e)})}),!x&&(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(u,{value:N,onChange:e=>z(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),he())},placeholder:`new content type (e.g. audio)`,className:`h-8 w-full max-w-xs text-sm sm:w-auto`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:he,children:[(0,L.jsx)(a,{className:`mr-1.5 h-3.5 w-3.5`}),`Add content type`]})]})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(ce,{title:`Where models run`,hint:`Built-in models run inside Canvas on this server and need no setup. To use a GPU machine or a hosted API, add an OpenAI-compatible server here, then pick it under the models above.`}),(0,L.jsx)(`div`,{className:`divide-y overflow-hidden rounded-lg border`,children:J.map(e=>{let n=w.providers?.[e]||{},r=t.providers?.[e]||{},i=g.includes(e),a=w.providers?.[e]!==void 0,o=`provider:${e}`,c=G===o,d=n.type??r.type,f=d?B[d]:void 0,p=f?.url?V(n[f.url.key]):null,m={...r,...n},_=ae.filter(e=>!(n[e]===void 0||e===f?.url?.key||e===`apiKey`&&f?.apiKey||e===`cacheDir`&&f?.cacheDir)),v=q.filter(n=>(w.spaces?.[n]?.provider??t.spaces?.[n]?.provider)===e);return(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 px-4 py-3 sm:flex-row sm:items-start sm:gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`text-sm font-semibold`,children:F(e)}),F(e)!==e&&(0,L.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e}),(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:d?I(d):`no type`}),i&&(0,L.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`preset`}),m.apiKeySet&&!E.has(e)&&(0,L.jsx)(`span`,{className:`text-[10px] font-medium text-success`,children:`key set`}),p&&(0,L.jsx)(`span`,{className:`text-[10px] font-medium text-destructive`,children:`check endpoint`})]}),(0,L.jsx)(`p`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,children:f?f.where(m):`—`}),v.length>0&&(0,L.jsxs)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:[`used for `,v.map(P).join(`, `).toLowerCase()]})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 max-sm:justify-end`,children:[a&&!i&&!x&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>me(e),title:`Remove this override`,children:(0,L.jsx)(s,{className:`h-3.5 w-3.5`})}),(0,L.jsx)(ue,{open:c,onClick:()=>ye(o),label:`Edit ${F(e)}`})]})]}),c&&(0,L.jsxs)(`div`,{className:`border-t bg-muted/40 px-4 py-4`,children:[(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Type`}),(0,L.jsx)(H,{overridden:n.type!==void 0,source:r.type})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:n.type??``,onChange:t=>X(e,`type`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.type?`Default: ${I(r.type)}`:`Default`}),h.map(e=>(0,L.jsx)(`option`,{value:e,children:I(e)},e)),d&&!h.includes(d)&&(0,L.jsxs)(`option`,{value:d,children:[d,` (legacy)`]})]}),f?.note&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:f.note})]}),f?.url&&(0,L.jsx)(U,{label:f.url.label,mono:!0,value:n[f.url.key],inheritedValue:r[f.url.key],onChange:t=>X(e,f.url.key,t),disabled:x,placeholder:r[f.url.key]??f.url.placeholder,hint:f.url.hint,error:p??void 0}),f?.cacheDir&&(0,L.jsx)(U,{label:`Cache directory`,mono:!0,value:n.cacheDir,inheritedValue:r.cacheDir,onChange:t=>X(e,`cacheDir`,t),disabled:x,placeholder:r.cacheDir??`server default`,hint:f.cacheDir}),f?.imageInput&&(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Image input shape`}),(0,L.jsx)(H,{overridden:n.imageInput!==void 0,source:r.imageInput})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:n.imageInput??``,onChange:t=>X(e,`imageInput`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.imageInput?`inherited: ${r.imageInput}`:`inherited: data-uri`}),oe.map(e=>(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:oe.find(e=>e.value===(n.imageInput??r.imageInput??`data-uri`))?.hint})]}),f?.timeoutMs&&(0,L.jsx)(U,{label:`Request timeout (ms)`,type:`number`,value:n.timeoutMs,inheritedValue:r.timeoutMs??se,onChange:t=>X(e,`timeoutMs`,t),disabled:x,hint:`How long to wait for a batch before giving up. Raise it for a slow or cold GPU host.`}),f?.apiKey&&(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`API key`}),E.has(e)&&(0,L.jsx)(`span`,{className:`rounded bg-warning-subtle px-1.5 py-0.5 text-[10px] font-medium text-warning`,children:`will be written`})]}),(0,L.jsx)(u,{type:`password`,autoComplete:`new-password`,disabled:x,value:n.apiKey??``,onChange:t=>X(e,`apiKey`,t.target.value),placeholder:r.apiKeySet?`•••••••• (stored; leave empty to keep)`:`unset`,className:`h-8 text-sm`}),(0,L.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[f.apiKey,` Write-only: the stored key is never sent back, and leaving this empty keeps whatever is stored.`]})]})]}),f?.headers&&(0,L.jsx)(le,{disabled:x,storedNames:r.headerNames,value:n.headers,onChange:t=>pe(e,`headers`,t)}),_.length>0&&!x&&(0,L.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 rounded-md border border-dashed p-2 text-[11px] text-muted-foreground`,children:[(0,L.jsxs)(`span`,{children:[`Not used by type `,(0,L.jsx)(`span`,{className:`font-mono`,children:d}),`:`,` `,(0,L.jsx)(`span`,{className:`font-mono`,children:_.join(`, `)})]}),(0,L.jsx)(`button`,{type:`button`,className:`underline hover:text-foreground`,onClick:()=>_.forEach(t=>X(e,t,``)),children:`clear`})]}),r.headerNames&&r.headerNames.length>0&&(0,L.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Stored custom headers: `,(0,L.jsx)(`span`,{className:`font-mono`,children:r.headerNames.join(`, `)}),` (values not shown)`]})]})]},e)})}),!x&&(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(u,{value:j,onChange:e=>M(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),Z(j.trim()))},placeholder:`name for a server (e.g. gpu)`,className:`h-8 w-full max-w-xs text-sm sm:w-auto`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>Z(j.trim()),children:[(0,L.jsx)(a,{className:`mr-1.5 h-3.5 w-3.5`}),`Add server`]}),_.filter(e=>!J.includes(e.id)).map(e=>(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>Z(e.id,e.baseUrl),title:`Add ${e.label} at ${e.baseUrl}`,children:e.label},e.id))]})]}),!x&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 border-t pt-4`,children:[(0,L.jsx)(l,{type:`button`,size:`sm`,variant:$?`default`:`outline`,onClick:ve,disabled:b||!$||Q.length>0,children:b?`Saving…`:ee}),(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:b||!$,onClick:()=>{T(structuredClone(e)),D(new Set)},children:`Discard changes`}),(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Q.length>0?(0,L.jsxs)(`span`,{className:`font-medium text-destructive`,children:[Q.length,` endpoint `,Q.length===1?`needs`:`need`,` fixing`]}):$?`Unsaved changes`:`Everything saved`})]})]})}export{D as a,T as c,O as d,C as f,k as i,w as l,ee as m,P as n,S as o,x as p,E as r,b as s,G as t,te as u};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{Gr as r,I as i,J as a,Pt as o,X as s}from"./ui-DEgHnkQu.js";import{t as c}from"./utils-2pl1SbIp.js";import{t as l}from"./button--VYZekMF.js";import{t as u}from"./input-BOtCd4HP.js";import{c as d,t as f}from"./api-CA6WiiYM.js";import{n as p}from"./use-toast-BlLDqSUO.js";var m=e(n(),1),h=[`onnx`,`clip`,`blip`,`openai`],g=[`onnx`,`clip`,`blip`,`ollama`,`vllm`],_=[{id:`openai`,baseUrl:`https://api.openai.com/v1`,label:`OpenAI`},{id:`vllm`,baseUrl:`http://127.0.0.1:8000/v1`,label:`vLLM`},{id:`ollama`,baseUrl:`http://127.0.0.1:11434/v1`,label:`Ollama`}],v=e=>`${d.workspaces}/${encodeURIComponent(e)}/inferd`;function y(e,t){let n={};for(let[r,i]of Object.entries(e.providers||{})){let e={...i};delete e.apiKeySet,delete e.headerNames,t.has(r)&&i.apiKey?e.apiKey=i.apiKey:delete e.apiKey,n[r]=e}return{...e,providers:n}}async function b(e){return await f.get(`${v(e)}/status`)}async function x(e,t={}){let n={};return t.force!==void 0&&(n.force=t.force),t.scope&&(n.scope=t.scope),await f.post(`${v(e)}/summarize/images`,n)}async function ee(e){return await f.post(`${v(e)}/summarize/images/stop`,{})}async function S(e){return await f.get(`${v(e)}/config`)}async function C(e,t){return await f.put(`${v(e)}/config`,t)}async function w(e,t={}){let n={};return t.space&&(n.space=t.space),t.reindex!==void 0&&(n.reindex=t.reindex),t.scope&&(n.scope=t.scope),await f.post(`${v(e)}/reindex`,n)}async function T(e){return await f.get(`${v(e)}/vector-tables`)}async function E(e,t){return await f.delete(`${v(e)}/vector-tables/${encodeURIComponent(t)}`)}async function D(){return await f.get(`${d.inferd}/config`)}async function O(e){return await f.put(`${d.inferd}/config`,e)}async function k(){return await f.get(`${d.inferd}/defaults`)}async function te(e){return await f.put(`${d.inferd}/defaults`,e)}async function ne(e,t){let n={...e};return delete n.apiKeySet,delete n.headerNames,(await f.post(`${d.inferd}/test`,{provider:n,...t?{model:t}:{},probe:!0})).cached??null}async function re(e,t,n=`text`){let r={...e};return delete r.apiKeySet,delete r.headerNames,await f.post(`${d.inferd}/test`,{provider:r,...t?{model:t}:{},modality:n})}var A={text:{label:`Text & documents`,hint:`Notes, emails, documents and text files`},image:{label:`Photos & images`,hint:`Images, matched against what you type: "red bike in the snow" finds the photo`}},j={onnx:`Built-in text model`,clip:`Built-in image model`,blip:`Built-in image describer`,ollama:`Ollama on this server`,vllm:`vLLM on this server`,openai:`OpenAI`},M={onnx:`Built-in, text`,clip:`Built-in, images`,blip:`Built-in, image descriptions`,openai:`OpenAI-compatible server`},N=e=>e.charAt(0).toUpperCase()+e.slice(1);function P(e){return A[e]?.label??N(e)}function ie(e){return A[e]?.hint??null}function F(e){return j[e]??e}function I(e){return M[e]??e}var L=t(),R=`h-8 w-full rounded-md border bg-background px-2 text-sm outline-none focus:ring-2 focus:ring-ring`,z=`font-semibold uppercase tracking-[0.08em]`,B={openai:{url:{key:`baseUrl`,label:`Base URL`,placeholder:`http://gpu.local:8000/v1`,hint:`OpenAI-compatible embeddings endpoint — Ollama, vLLM, TEI, infinity, LM Studio and OpenAI itself all speak this. A trailing /v1 is optional; both http://host:8000 and http://host:8000/v1 work.`},apiKey:"Sent as `Authorization: Bearer …`. Leave empty for servers that do not check it.",note:`Any server that speaks the OpenAI embeddings API: a GPU machine running Ollama, vLLM or TEI, or a hosted service.`,imageInput:!0,timeoutMs:!0,headers:!0,where:e=>e.baseUrl||`no endpoint set`},ollama:{url:{key:`host`,label:`Host (legacy)`,placeholder:`http://127.0.0.1:11434`,hint:`Written by an older version. Switch the type to openai — the host becomes the base URL and the /v1 suffix is added for you.`},apiKey:"Sent as `Authorization: Bearer …`.",where:e=>e.host||`http://127.0.0.1:11434`},onnx:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Text model that runs inside Canvas on this server. Nothing to connect; the model downloads on first use.`,where:()=>`runs on this server`},clip:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Image model (CLIP) that runs inside Canvas on this server. It also understands text, which is how a typed search finds photos.`,where:()=>`runs on this server`},blip:{cacheDir:`Where downloaded models are kept on the server. Empty uses the server default.`,note:`Vision model that writes image descriptions, inside Canvas on this server. Configured under Image descriptions.`,where:()=>`runs on this server`}},ae=[`baseUrl`,`host`,`apiKey`,`cacheDir`,`imageInput`,`timeoutMs`],oe=[{value:`data-uri`,label:`data-uri (default)`,hint:"Images ride in the ordinary `input` array as data URIs (infinity, TEI-style servers)."},{value:`messages`,label:`messages`,hint:`vLLM's multimodal shape: one request per image, wrapped in a chat message.`}],se=12e4;function V(e){if(typeof e!=`string`||e.trim()===``)return null;let t;try{t=new URL(e.trim())}catch{return`Must be an absolute URL including the scheme, e.g. http://127.0.0.1:11434`}return t.protocol!==`http:`&&t.protocol!==`https:`?`Unsupported scheme '${t.protocol.replace(`:`,``)}'. Use http or https.`:null}function ce({title:e,hint:t}){return(0,L.jsxs)(`div`,{className:`mb-2`,children:[(0,L.jsx)(`h3`,{className:c(`text-[11px] text-muted-foreground`,z),children:e}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:t})]})}function H({overridden:e,source:t}){return e?(0,L.jsx)(`span`,{className:`rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary`,title:`Set on this layer; it wins over anything inherited`,children:`overridden`}):(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground`,title:t?`Inherited: ${t}`:`Inherited from a lower config layer`,children:`inherited`})}function U({label:e,value:t,inheritedValue:n,onChange:r,type:i=`text`,placeholder:a,disabled:o,hint:s,error:l,mono:d}){let f=t!==void 0&&t!==``;return(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:e}),(0,L.jsx)(H,{overridden:f,source:n===void 0?void 0:String(n)}),f&&!o&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(``),className:`text-[10px] text-muted-foreground underline hover:text-foreground`,title:`Clear the override and fall back to the inherited value`,children:`reset`})]}),(0,L.jsx)(u,{type:i,value:t??``,disabled:o,onChange:e=>r(e.target.value),placeholder:a??(n===void 0?`—`:String(n)),className:c(`h-8 text-sm`,d&&`font-mono`,l&&`border-destructive focus-visible:ring-destructive`)}),l&&(0,L.jsx)(`p`,{className:`text-[11px] font-medium text-destructive`,children:l}),s&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:s})]})}function W({label:e,checked:t,overridden:n,disabled:r,onChange:i}){return(0,L.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,L.jsx)(`input`,{type:`checkbox`,disabled:r,checked:t,onChange:e=>i(e.target.checked)}),e,(0,L.jsx)(H,{overridden:n})]})}function le({storedNames:e,value:t,disabled:n,onChange:r}){let i=t!==void 0,[a,c]=(0,m.useState)([]),d=e=>{c(e),r(Object.fromEntries(e.filter(([e])=>e.trim()!==``)))};return(0,L.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Custom headers`}),i?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`rounded bg-warning-subtle px-1.5 py-0.5 text-[10px] font-medium text-warning`,children:`will replace stored`}),!n&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>{c([]),r(void 0)},className:`text-[10px] text-muted-foreground underline hover:text-foreground`,children:`cancel`})]}):(0,L.jsx)(H,{overridden:!1,source:e?.join(`, `)})]}),!i&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:e?.length?(0,L.jsxs)(L.Fragment,{children:[`Stored: `,(0,L.jsx)(`span`,{className:`font-mono`,children:e.join(`, `)}),` (values are never sent back)`]}):`None set.`}),!n&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>{c([[``,``]]),r({})},children:e?.length?`Replace headers`:`Add headers`})]}),i&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Saving replaces every stored header, so re-enter the ones you want to keep.`}),a.map(([e,t],r)=>(0,L.jsxs)(`div`,{className:`flex gap-2`,children:[(0,L.jsx)(u,{value:e,disabled:n,placeholder:`X-Tenant`,className:`h-8 font-mono text-sm`,onChange:e=>d(a.map((t,n)=>n===r?[e.target.value,t[1]]:t))}),(0,L.jsx)(u,{value:t,disabled:n,placeholder:`value`,className:`h-8 font-mono text-sm`,onChange:e=>d(a.map((t,n)=>n===r?[t[0],e.target.value]:t))}),(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:n,"aria-label":`Remove header ${e||r+1}`,onClick:()=>d(a.filter((e,t)=>t!==r)),children:(0,L.jsx)(s,{className:`h-3.5 w-3.5`})})]},r)),!n&&(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>d([...a,[``,``]]),children:[(0,L.jsx)(o,{className:`mr-1.5 h-3.5 w-3.5`}),`Add header`]})]})]})}function ue({open:e,onClick:t,label:n}){return(0,L.jsx)(`button`,{type:`button`,onClick:t,"aria-expanded":e,title:n,"aria-label":n,className:`flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,L.jsx)(r,{className:c(`h-4 w-4 transition-transform motion-reduce:transition-none`,e&&`rotate-180`)})})}var de={configured:`bg-success`,"needs-fill":`bg-warning`,unresolved:`bg-destructive`,unset:`bg-muted-foreground/30`};function G({value:e,effective:t,inherited:n,resolvedSpaces:r,invalid:d,attention:f,onFill:v,saving:b=!1,disabled:x=!1,saveLabel:ee=`Save`,onSave:S}){let{showToast:C}=p(),[w,T]=(0,m.useState)(()=>structuredClone(e)),[E,D]=(0,m.useState)(new Set),[O,k]=(0,m.useState)(null),[te,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(``),[N,z]=(0,m.useState)(``),[G,K]=(0,m.useState)(null),q=(0,m.useMemo)(()=>[...new Set([...Object.keys(t.spaces||{}),...Object.keys(w.spaces||{})])].sort(),[t.spaces,w.spaces]),J=(0,m.useMemo)(()=>[...new Set([...Object.keys(t.providers||{}),...Object.keys(w.providers||{})])].sort(),[t.providers,w.providers]),Y=(e,t,n)=>{T(r=>{let i={...r.spaces||{}},a={...i[e]||{}};if(n===``)delete a[t];else if(t===`dim`||t===`maxLength`||t===`dimensions`){let e=Number(n);if(Number.isNaN(e))return r;a[t]=e}else a[t]=n;return Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,spaces:i}})},fe=(e,t,n)=>{T(r=>{let i={...r.spaces||{}},a={...i[e]||{}};return n===void 0?delete a[t]:a[t]=n,Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,spaces:i}})},X=(e,t,n)=>{t===`apiKey`&&D(t=>{let r=new Set(t);return n===``?r.delete(e):r.add(e),r}),T(r=>{let i={...r.providers||{}},a={...i[e]||{}};if(n===``)delete a[t];else if(t===`timeoutMs`){let e=Number(n);if(Number.isNaN(e))return r;a[t]=e}else a[t]=n;return Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,providers:i}})},pe=(e,t,n)=>{T(r=>{let i={...r.providers||{}},a={...i[e]||{}};return n===void 0?delete a[t]:a[t]=n,Object.keys(a).length===0?delete i[e]:i[e]=a,{...r,providers:i}})},me=e=>{T(t=>{let n={...t.providers||{}};return delete n[e],{...t,providers:n}}),D(t=>{let n=new Set(t);return n.delete(e),n})},he=()=>{let e=N.trim();if(e){if(q.includes(e)){C({title:`Already listed`,description:`'${e}' already has a row above.`,variant:`destructive`});return}T(t=>({...t,spaces:{...t.spaces||{},[e]:{}}})),z(``),K(`space:${e}`)}},Z=(e,t)=>{if(e){if(J.includes(e)){C({title:`Already listed`,description:`'${e}' is already set up. Open it below to edit.`,variant:`destructive`});return}T(n=>({...n,providers:{...n.providers||{},[e]:{type:`openai`,...t?{baseUrl:t}:{}}}})),M(``),K(`provider:${e}`)}},ge=e=>({...t.providers?.[e]||{},...w.providers?.[e]||{}}),_e=async e=>{let n=w.spaces?.[e]?.provider??t.spaces?.[e]?.provider,r=w.spaces?.[e]?.model??t.spaces?.[e]?.model;if(!n){C({title:`Nothing to test`,description:`${P(e)} has no model provider set.`,variant:`destructive`});return}let i=ge(n),a=i.type?B[i.type]?.url?.key:void 0,o=a?V(i[a]):null;if(o){C({title:F(n),description:o,variant:`destructive`});return}k(e);try{try{await ne(i,r)===!1&&(A(!0),C({title:`Downloading model`,description:`'${r??`the configured model`}' is not in the server's cache yet; downloading now. A first test can take a few minutes; the model is then cached for good.`}))}catch{}let n=await re(i,r,e),a=w.spaces?.[e]?.dim??t.spaces?.[e]?.dim,o=n.dim>0&&a!==void 0&&n.dim!==a;(o||n.dim>0&&a===void 0)&&Y(e,`dim`,String(n.dim)),C({title:o?`Model answered; vector size corrected`:`Model answered`,description:o?`It returned ${n.dim}-d vectors but ${P(e)} was set to ${a}-d. Updated to ${n.dim}; save to apply. (${n.latencyMs} ms)`:`${n.dim}-d vectors in ${n.latencyMs} ms`})}catch(e){C({title:`Test failed`,description:e instanceof Error?e.message:`Model provider unreachable`,variant:`destructive`})}finally{k(null),A(!1)}},Q=(0,m.useMemo)(()=>{let e=[];for(let[n,r]of Object.entries(w.providers||{})){let i=r.type??t.providers?.[n]?.type,a=i?B[i]?.url?.key:void 0;if(!a)continue;let o=V(r[a]);o&&e.push(`${n}: ${o}`)}return e},[w.providers,t.providers]),$=(0,m.useMemo)(()=>JSON.stringify(w)!==JSON.stringify(e)||E.size>0,[w,e,E]),ve=async()=>{if(Q.length>0){C({title:`Fix the endpoint first`,description:Q.join(` · `),variant:`destructive`});return}await S(y(w,E)),D(new Set)},ye=e=>K(t=>t===e?null:e);return(0,L.jsxs)(`div`,{className:`space-y-6`,children:[d&&(0,L.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-destructive/40 bg-destructive-subtle p-3 text-xs`,children:[(0,L.jsx)(a,{className:`mt-0.5 h-4 w-4 shrink-0 text-destructive`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`font-medium text-destructive`,children:`Stored config does not resolve; defaults are standing in`}),(0,L.jsx)(`p`,{className:`mt-0.5 font-mono text-[11px] text-muted-foreground`,children:d})]})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(ce,{title:`Meaning-search models`,hint:`One model per kind of content. After switching a model, index your existing documents so they show up again. The old index is kept, so switching back costs nothing.`}),q.length===0?(0,L.jsxs)(`div`,{className:`rounded-lg border border-dashed p-6 text-center`,children:[(0,L.jsx)(`p`,{className:`text-sm font-medium`,children:`No models set here`}),(0,L.jsx)(`p`,{className:`mx-auto mt-1 max-w-sm text-xs text-muted-foreground`,children:`Add a content type below and pick where its model runs.`})]}):(0,L.jsx)(`div`,{className:`divide-y overflow-hidden rounded-lg border`,children:q.map(e=>{let a=w.spaces?.[e]||{},o=t.spaces?.[e]||{},s=n.spaces?.[e]||{},u=r?.[e],p=`space:${e}`,m=G===p,h=a.model??o.model,g=a.provider??o.provider,_=a.dim??o.dim,y=a.chunk??o.chunk??!1,b=f?.includes(e)??!1;return(0,L.jsxs)(`div`,{className:`relative`,children:[(0,L.jsx)(`span`,{className:c(`absolute inset-y-0 left-0 w-[3px]`,de[d?`unresolved`:b?`needs-fill`:h?`configured`:`unset`]),"aria-hidden":!0}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 py-3 pl-4 pr-3 sm:flex-row sm:items-start sm:gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`text-sm font-medium`,children:P(e)}),(0,L.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,title:`Content type id in the config`,children:e})]}),ie(e)&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:ie(e)}),(0,L.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`truncate font-mono text-xs`,children:h||`no model set`}),g&&(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,title:`Provider id: ${g}`,children:F(g)}),_!==void 0&&(0,L.jsxs)(`span`,{className:`text-[11px] tabular-nums text-muted-foreground`,title:`Vector size: how many numbers the model produces per item`,children:[_,`-d`]}),y&&(0,L.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:`long documents split`})]}),r&&h&&(0,L.jsxs)(`p`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,title:`Where this model's index is stored`,children:[`└─ `,u?.table??(0,L.jsx)(`span`,{className:`not-italic`,children:`not created yet`})]}),b&&(0,L.jsx)(`p`,{className:`mt-1 text-[11px] text-warning`,children:`New model, nothing indexed with it yet. Existing documents of this type won't show up in meaning search until you index them. Switching back is still instant.`})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 max-sm:justify-end`,children:[b&&v&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>v(e),children:`Index existing`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:x||O!==null,onClick:()=>_e(e),title:`Send a sample to this model and check that it answers (also reports its vector size)`,children:[(0,L.jsx)(i,{className:`mr-1.5 h-3.5 w-3.5`}),O===e?te?`Downloading…`:`Testing…`:`Test`]}),(0,L.jsx)(ue,{open:m,onClick:()=>ye(p),label:`Edit ${P(e)}`})]})]}),m&&(0,L.jsxs)(`div`,{className:`border-t bg-muted/40 py-4 pl-4 pr-3`,children:[(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Runs on`}),(0,L.jsx)(H,{overridden:a.provider!==void 0,source:s.provider})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:a.provider??``,onChange:t=>Y(e,`provider`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:o.provider?`Default: ${F(o.provider)}`:`Default`}),J.map(e=>(0,L.jsxs)(`option`,{value:e,children:[F(e),F(e)===e?``:` (${e})`]},e))]})]}),(0,L.jsx)(U,{label:`Model`,mono:!0,value:a.model,inheritedValue:o.model,onChange:t=>Y(e,`model`,t),disabled:x}),(0,L.jsx)(U,{label:`Vector size`,type:`number`,value:a.dim,inheritedValue:o.dim,onChange:t=>Y(e,`dim`,t),disabled:x,hint:`How many numbers the model produces per item. Test asks the model and fills in the real value.`}),(0,L.jsx)(U,{label:`Max input length`,type:`number`,value:a.maxLength,inheritedValue:o.maxLength,onChange:t=>Y(e,`maxLength`,t),disabled:x,hint:`Longest piece of text, in tokens, the model reads at once.`})]}),(0,L.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-4`,children:[(0,L.jsx)(W,{label:`Split long documents into parts`,checked:y,overridden:a.chunk!==void 0,disabled:x,onChange:t=>fe(e,`chunk`,t)}),(0,L.jsx)(W,{label:`Fast lookup index (ANN)`,checked:a.annIndex??o.annIndex??!0,overridden:a.annIndex!==void 0,disabled:x,onChange:t=>fe(e,`annIndex`,t)})]})]})]},e)})}),!x&&(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(u,{value:N,onChange:e=>z(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),he())},placeholder:`new content type (e.g. audio)`,className:`h-8 w-full max-w-xs text-sm sm:w-auto`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:he,children:[(0,L.jsx)(o,{className:`mr-1.5 h-3.5 w-3.5`}),`Add content type`]})]})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(ce,{title:`Where models run`,hint:`Built-in models run inside Canvas on this server and need no setup. To use a GPU machine or a hosted API, add an OpenAI-compatible server here, then pick it under the models above.`}),(0,L.jsx)(`div`,{className:`divide-y overflow-hidden rounded-lg border`,children:J.map(e=>{let n=w.providers?.[e]||{},r=t.providers?.[e]||{},i=g.includes(e),a=w.providers?.[e]!==void 0,o=`provider:${e}`,c=G===o,d=n.type??r.type,f=d?B[d]:void 0,p=f?.url?V(n[f.url.key]):null,m={...r,...n},_=ae.filter(e=>!(n[e]===void 0||e===f?.url?.key||e===`apiKey`&&f?.apiKey||e===`cacheDir`&&f?.cacheDir)),v=q.filter(n=>(w.spaces?.[n]?.provider??t.spaces?.[n]?.provider)===e);return(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 px-4 py-3 sm:flex-row sm:items-start sm:gap-3`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`text-sm font-semibold`,children:F(e)}),F(e)!==e&&(0,L.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e}),(0,L.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:d?I(d):`no type`}),i&&(0,L.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`preset`}),m.apiKeySet&&!E.has(e)&&(0,L.jsx)(`span`,{className:`text-[10px] font-medium text-success`,children:`key set`}),p&&(0,L.jsx)(`span`,{className:`text-[10px] font-medium text-destructive`,children:`check endpoint`})]}),(0,L.jsx)(`p`,{className:`mt-1 truncate font-mono text-[11px] text-muted-foreground`,children:f?f.where(m):`—`}),v.length>0&&(0,L.jsxs)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:[`used for `,v.map(P).join(`, `).toLowerCase()]})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 max-sm:justify-end`,children:[a&&!i&&!x&&(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>me(e),title:`Remove this override`,children:(0,L.jsx)(s,{className:`h-3.5 w-3.5`})}),(0,L.jsx)(ue,{open:c,onClick:()=>ye(o),label:`Edit ${F(e)}`})]})]}),c&&(0,L.jsxs)(`div`,{className:`border-t bg-muted/40 px-4 py-4`,children:[(0,L.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Type`}),(0,L.jsx)(H,{overridden:n.type!==void 0,source:r.type})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:n.type??``,onChange:t=>X(e,`type`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.type?`Default: ${I(r.type)}`:`Default`}),h.map(e=>(0,L.jsx)(`option`,{value:e,children:I(e)},e)),d&&!h.includes(d)&&(0,L.jsxs)(`option`,{value:d,children:[d,` (legacy)`]})]}),f?.note&&(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:f.note})]}),f?.url&&(0,L.jsx)(U,{label:f.url.label,mono:!0,value:n[f.url.key],inheritedValue:r[f.url.key],onChange:t=>X(e,f.url.key,t),disabled:x,placeholder:r[f.url.key]??f.url.placeholder,hint:f.url.hint,error:p??void 0}),f?.cacheDir&&(0,L.jsx)(U,{label:`Cache directory`,mono:!0,value:n.cacheDir,inheritedValue:r.cacheDir,onChange:t=>X(e,`cacheDir`,t),disabled:x,placeholder:r.cacheDir??`server default`,hint:f.cacheDir}),f?.imageInput&&(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`Image input shape`}),(0,L.jsx)(H,{overridden:n.imageInput!==void 0,source:r.imageInput})]}),(0,L.jsxs)(`select`,{className:R,disabled:x,value:n.imageInput??``,onChange:t=>X(e,`imageInput`,t.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.imageInput?`inherited: ${r.imageInput}`:`inherited: data-uri`}),oe.map(e=>(0,L.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:oe.find(e=>e.value===(n.imageInput??r.imageInput??`data-uri`))?.hint})]}),f?.timeoutMs&&(0,L.jsx)(U,{label:`Request timeout (ms)`,type:`number`,value:n.timeoutMs,inheritedValue:r.timeoutMs??se,onChange:t=>X(e,`timeoutMs`,t),disabled:x,hint:`How long to wait for a batch before giving up. Raise it for a slow or cold GPU host.`}),f?.apiKey&&(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`label`,{className:`text-xs font-medium`,children:`API key`}),E.has(e)&&(0,L.jsx)(`span`,{className:`rounded bg-warning-subtle px-1.5 py-0.5 text-[10px] font-medium text-warning`,children:`will be written`})]}),(0,L.jsx)(u,{type:`password`,autoComplete:`new-password`,disabled:x,value:n.apiKey??``,onChange:t=>X(e,`apiKey`,t.target.value),placeholder:r.apiKeySet?`•••••••• (stored; leave empty to keep)`:`unset`,className:`h-8 text-sm`}),(0,L.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[f.apiKey,` Write-only: the stored key is never sent back, and leaving this empty keeps whatever is stored.`]})]})]}),f?.headers&&(0,L.jsx)(le,{disabled:x,storedNames:r.headerNames,value:n.headers,onChange:t=>pe(e,`headers`,t)}),_.length>0&&!x&&(0,L.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 rounded-md border border-dashed p-2 text-[11px] text-muted-foreground`,children:[(0,L.jsxs)(`span`,{children:[`Not used by type `,(0,L.jsx)(`span`,{className:`font-mono`,children:d}),`:`,` `,(0,L.jsx)(`span`,{className:`font-mono`,children:_.join(`, `)})]}),(0,L.jsx)(`button`,{type:`button`,className:`underline hover:text-foreground`,onClick:()=>_.forEach(t=>X(e,t,``)),children:`clear`})]}),r.headerNames&&r.headerNames.length>0&&(0,L.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Stored custom headers: `,(0,L.jsx)(`span`,{className:`font-mono`,children:r.headerNames.join(`, `)}),` (values not shown)`]})]})]},e)})}),!x&&(0,L.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,L.jsx)(u,{value:j,onChange:e=>M(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),Z(j.trim()))},placeholder:`name for a server (e.g. gpu)`,className:`h-8 w-full max-w-xs text-sm sm:w-auto`}),(0,L.jsxs)(l,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>Z(j.trim()),children:[(0,L.jsx)(o,{className:`mr-1.5 h-3.5 w-3.5`}),`Add server`]}),_.filter(e=>!J.includes(e.id)).map(e=>(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>Z(e.id,e.baseUrl),title:`Add ${e.label} at ${e.baseUrl}`,children:e.label},e.id))]})]}),!x&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 border-t pt-4`,children:[(0,L.jsx)(l,{type:`button`,size:`sm`,variant:$?`default`:`outline`,onClick:ve,disabled:b||!$||Q.length>0,children:b?`Saving…`:ee}),(0,L.jsx)(l,{type:`button`,size:`sm`,variant:`ghost`,disabled:b||!$,onClick:()=>{T(structuredClone(e)),D(new Set)},children:`Discard changes`}),(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Q.length>0?(0,L.jsxs)(`span`,{className:`font-medium text-destructive`,children:[Q.length,` endpoint `,Q.length===1?`needs`:`need`,` fixing`]}):$?`Unsaved changes`:`Everything saved`})]})]})}export{D as a,T as c,O as d,C as f,k as i,w as l,ee as m,P as n,S as o,x as p,E as r,b as s,G as t,te as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{_t as r,gt as i,ht as a}from"./index-CTvqbEB8.js";import{n as o}from"./page-header-NyYSXjfY.js";import{t as s}from"./use-settings-back-D_MM9diy.js";var c=e(n(),1),l=t();function u(){let[e,t]=(0,c.useState)(i),[n,u]=(0,c.useState)(``),d=e=>{if(e.previousTree&&e.previousTree===e.nextTree){u(`Choose a different shortcut: that combination is already assigned.`);return}try{r(e),t(e),u(`Saved on this device.`)}catch{u(`Could not save shortcuts in this browser.`)}};return(0,l.jsxs)(`div`,{className:`mx-auto max-w-4xl`,children:[(0,l.jsx)(o,{className:`mb-6`,title:`Key bindings`,onBack:s(),description:`Web UI shortcuts, saved on this device and available offline.`}),(0,l.jsxs)(`section`,{className:`space-y-4 rounded-lg border p-4`,children:[(0,l.jsx)(`h2`,{className:`font-medium`,children:`Tree navigation`}),(0,l.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Cycle the open workspace menu’s tabs in their displayed order, including Pins and Layers. Swipe left for next or right for previous over the tab bar. Shortcuts pause while typing or using a dialog.`}),[`previousTree`,`nextTree`].map(t=>(0,l.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,l.jsx)(`label`,{htmlFor:t,className:`min-w-32 text-sm`,children:t===`previousTree`?`Previous tree`:`Next tree`}),(0,l.jsxs)(`select`,{id:t,className:`rounded-md border bg-background p-2 text-sm`,value:e[t].split(`+`).slice(0,-1).join(`+`),onChange:n=>d({...e,[t]:n.target.value?`${n.target.value}+${e[t].slice(-1)||a[t].slice(-1)}`:``}),children:[(0,l.jsx)(`option`,{value:``,children:`Disabled`}),[`Alt`,`Alt+Shift`,`Ctrl+Shift`,`Meta+Shift`].map(e=>(0,l.jsx)(`option`,{value:e,children:e},e))]}),(0,l.jsx)(`select`,{"aria-label":`${t===`previousTree`?`Previous`:`Next`} tree key`,disabled:!e[t],className:`rounded-md border bg-background p-2 text-sm disabled:opacity-50`,value:e[t].slice(-1)||a[t].slice(-1),onChange:n=>d({...e,[t]:`${e[t].split(`+`).slice(0,-1).join(`+`)}+${n.target.value}`}),children:`ABCDEFGHIJKLMNOPQRSTUVWXYZ`.split(``).map(e=>(0,l.jsx)(`option`,{value:e,children:e},e))})]},t)),(0,l.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Browsers and operating systems may reserve combinations. Choose another if a shortcut does not reach Canvas. Letters refer to physical keyboard positions (Q/W on a US keyboard); Meta is Command on Mac.`}),(0,l.jsx)(`button`,{type:`button`,className:`rounded-md border px-3 py-2 text-sm hover:bg-accent`,onClick:()=>d({...a}),children:`Restore defaults`}),(0,l.jsx)(`p`,{role:`status`,className:`text-sm`,children:n})]})]})}export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{Ci as r}from"./ui-DEgHnkQu.js";import{t as i}from"./utils-2pl1SbIp.js";var a=e(n(),1),o=t(),s=a.forwardRef(({className:e,...t},n)=>(0,o.jsx)(r,{ref:n,className:i(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e),...t}));s.displayName=r.displayName;export{s as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-
|
|
2
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{t as r}from"./preload-helper-Czpn1I53.js";var i=e(n(),1),a=t(),o=(0,i.lazy)(()=>r(()=>import(`./MarkdownEditor-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-bDoyR7l2.js","assets/rolldown-runtime-C0FnF6B9.js","assets/code-editor-BOIngd5F.js","assets/react-BHzhHVTZ.js","assets/ui-DEgHnkQu.js","assets/utils-2pl1SbIp.js","assets/utils-BxVxyehK.js","assets/punycode.es6-ZbLrB_Dn.js","assets/use-theme-DaxpiICf.js","assets/MarkdownEditor-DWa37grk.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{t as r}from"./preload-helper-Czpn1I53.js";var i=e(n(),1),a=t(),o=(0,i.lazy)(()=>r(()=>import(`./MarkdownEditor-bDoyR7l2.js`).then(e=>({default:e.MarkdownEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),s=(0,a.jsx)(`div`,{className:`rounded-md border border-input p-3 text-sm text-muted-foreground`,children:`Loading editor…`});function c(e){return(0,a.jsx)(i.Suspense,{fallback:s,children:(0,a.jsx)(o,{...e})})}export{c as t};
|