@medicaresoft/dicom-viewer 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -45,6 +45,45 @@ El host decide de dónde salen los bytes: API propia, DICOMweb, disco local
45
45
  | `onBack` | `() => void` | Si se define, muestra botón volver |
46
46
  | `actions` | `ReactNode` | `<Action/>` inyectadas en slots |
47
47
  | `modals` | `ReactNode` | `<ViewerModal/>` inyectados |
48
+ | `theme` | `DicomViewerTheme` | Colores primario/secundario + contrastes y superficies |
49
+
50
+ ## Tema (`theme`)
51
+
52
+ El visor se personaliza en runtime sin recompilar estilos:
53
+
54
+ ```tsx
55
+ <DicomViewer
56
+ study={study}
57
+ getDicomFile={fetcher}
58
+ theme={{
59
+ primary: "#0a5f8a",
60
+ primaryForeground: "#ffffff",
61
+ secondary: "#e63946",
62
+ secondaryForeground: "#ffffff",
63
+ // superficies opcionales (tema oscuro completo):
64
+ background: "#0e1017",
65
+ chrome: "#060608",
66
+ panel: "#1a1d27",
67
+ panelHover: "#202432",
68
+ border: "#242735",
69
+ // ...
70
+ }}
71
+ />
72
+ ```
73
+
74
+ El prop se inyecta como variables CSS (`--dv-*`) en el elemento raíz del
75
+ visor — alcance por instancia, sin contaminar el `:root` del host. Todos los
76
+ campos son opcionales; los no definidos usan los defaults del paquete (o el
77
+ tema del host, en el caso de Symphony).
78
+
79
+ También puedes sobreescribir las variables globalmente en tu CSS:
80
+
81
+ ```css
82
+ :root {
83
+ --dv-secondary: #e63946;
84
+ --dv-primary: #0a5f8a;
85
+ }
86
+ ```
48
87
 
49
88
  ## Acciones y modales (slots)
50
89
 
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import type { DicomFileFetcher, DicomStudy, PresetsConfig, ThumbnailUrlResolver, ViewerBranding } from "./types";
2
+ import type { DicomFileFetcher, DicomStudy, DicomViewerTheme, PresetsConfig, ThumbnailUrlResolver, ViewerBranding } from "./types";
3
3
  export interface DicomViewerProps {
4
4
  /** Metadatos del estudio (el host los obtiene de donde quiera). */
5
5
  study: DicomStudy;
@@ -19,6 +19,11 @@ export interface DicomViewerProps {
19
19
  actions?: ReactNode;
20
20
  /** Modales inyectados: <ViewerModal open=...>...</ViewerModal>. */
21
21
  modals?: ReactNode;
22
+ /**
23
+ * Tema de colores: primario/secundario con contrastes y tokens de
24
+ * superficie. Se aplica como variables CSS scoped al visor.
25
+ */
26
+ theme?: DicomViewerTheme;
22
27
  className?: string;
23
28
  }
24
29
  /**
@@ -26,5 +31,5 @@ export interface DicomViewerProps {
26
31
  * lógica de negocio, sin router y sin HTTP propio. Todo lo específico del
27
32
  * host llega por props (datos, fetchers, branding, acciones y modales).
28
33
  */
29
- export declare const DicomViewer: ({ study, getDicomFile, getThumbnailUrl, presets, maxConcurrentDownloads, branding, onBack, actions: actionsProp, modals: modalsProp, className, }: DicomViewerProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const DicomViewer: ({ study, getDicomFile, getThumbnailUrl, presets, maxConcurrentDownloads, branding, onBack, actions: actionsProp, modals: modalsProp, theme, className, }: DicomViewerProps) => import("react/jsx-runtime").JSX.Element;
30
35
  export default DicomViewer;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import "./style.css";
2
1
  export { DicomViewer } from "./DicomViewer";
3
2
  export type { DicomViewerProps } from "./DicomViewer";
4
3
  export { Action, ViewerModal } from "./Action";
5
4
  export { DicomToolbarButton } from "./components/DicomToolbarButton";
6
5
  export { useDicomContext, useViewerActions, DicomViewerContext } from "./context";
7
- export type { ActionContext, ActionPlacement, ActionProps, DicomFile, DicomFileFetcher, DicomSeries, DicomStudy, PresetsConfig, ThumbnailUrlResolver, ViewerBranding, ViewerModalProps, } from "./types";
6
+ export type { ActionContext, ActionPlacement, ActionProps, DicomFile, DicomFileFetcher, DicomSeries, DicomStudy, DicomViewerTheme, PresetsConfig, ThumbnailUrlResolver, ViewerBranding, ViewerModalProps, } from "./types";
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- /* empty css */
2
1
  import e, { Children as t, createContext as n, isValidElement as r, useCallback as i, useContext as a, useEffect as o, useMemo as s, useReducer as c, useRef as l, useState as u } from "react";
3
2
  import { Check as d, ChevronLeft as f, ChevronRight as p, Circle as m, Columns as h, Compass as g, Contrast as _, Crosshair as v, Eye as y, EyeOff as b, FlipHorizontal as x, FlipVertical as S, LayoutGrid as C, Library as w, Loader2 as T, Move as E, Pause as D, Play as O, RefreshCw as k, RotateCcw as A, RotateCw as j, Ruler as M, Search as N, Sliders as P, SlidersHorizontal as F, Square as I, Sun as L, Target as R, Trash2 as z, Triangle as B, Wrench as V, ZoomIn as H } from "lucide-react";
4
3
  import { Fragment as U, jsx as W, jsxs as G } from "react/jsx-runtime";
@@ -15975,7 +15974,7 @@ function Wt(...e) {
15975
15974
  //#region src/components/DicomToolbarButton.tsx
15976
15975
  var Gt = ({ active: e = !1, variant: t = "tool", icon: n, label: r, boundButtons: i, className: a, ...o }) => {
15977
15976
  let s = Wt("relative flex items-center justify-center text-xs font-semibold rounded-xl border cursor-pointer select-none transition-all duration-200 hover:-translate-y-0.5 active:translate-y-0 disabled:opacity-40 disabled:pointer-events-none disabled:transform-none shrink-0", r ? "gap-1.5 px-3 py-1.5" : "p-2 w-9 h-9"), c = "";
15978
- return t === "tool" ? c = e ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/15 font-bold" : "border-transparent text-slate-400 hover:bg-slate-850/50 hover:text-slate-200" : t === "action" ? c = "border-[#242735] bg-[#1a1d27] text-slate-300 hover:bg-[#202432] hover:border-[#30354a] hover:text-white shadow-sm" : t === "destructive" && (c = "border-[#242735] bg-[#1a1d27] text-rose-450 hover:bg-rose-950/25 hover:border-rose-800/55 hover:text-rose-400 shadow-sm"), /* @__PURE__ */ G("button", {
15977
+ return t === "tool" ? c = e ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/15 font-bold" : "border-transparent text-slate-400 hover:bg-slate-850/50 hover:text-slate-200" : t === "action" ? c = "border-dv-border bg-dv-panel text-slate-300 hover:bg-dv-panel-hover hover:border-dv-border-hover hover:text-white shadow-sm" : t === "destructive" && (c = "border-dv-border bg-dv-panel text-rose-450 hover:bg-rose-950/25 hover:border-rose-800/55 hover:text-rose-400 shadow-sm"), /* @__PURE__ */ G("button", {
15979
15978
  className: Wt(s, c, a),
15980
15979
  ...o,
15981
15980
  children: [
@@ -16022,7 +16021,7 @@ var Gt = ({ active: e = !1, variant: t = "tool", icon: n, label: r, boundButtons
16022
16021
  ref: m,
16023
16022
  children: [/* @__PURE__ */ W("button", {
16024
16023
  onClick: () => p(!f),
16025
- className: Wt("relative flex items-center justify-center text-xs font-semibold rounded-xl border cursor-pointer select-none transition-all duration-200 hover:-translate-y-0.5 active:translate-y-0 disabled:opacity-40 disabled:pointer-events-none disabled:transform-none shrink-0 p-2 w-9 h-9 shadow-xs", f ? "bg-secondary/15 border-secondary/40 text-secondary font-extrabold shadow-sm shadow-secondary/20" : "border-[#242735] bg-[#1a1d27] text-slate-400 hover:bg-[#202432] hover:text-slate-200"),
16024
+ className: Wt("relative flex items-center justify-center text-xs font-semibold rounded-xl border cursor-pointer select-none transition-all duration-200 hover:-translate-y-0.5 active:translate-y-0 disabled:opacity-40 disabled:pointer-events-none disabled:transform-none shrink-0 p-2 w-9 h-9 shadow-xs", f ? "bg-secondary/15 border-secondary/40 text-secondary font-extrabold shadow-sm shadow-secondary/20" : "border-dv-border bg-dv-panel text-slate-400 hover:bg-dv-panel-hover hover:text-slate-200"),
16026
16025
  title: "Presets de Ventana (Contraste)",
16027
16026
  children: /* @__PURE__ */ W(F, { className: "h-3.5 w-3.5" })
16028
16027
  }), f && /* @__PURE__ */ W("div", {
@@ -16118,7 +16117,7 @@ var Yt = () => {
16118
16117
  e.deltaY !== 0 && (e.currentTarget.scrollLeft += e.deltaY);
16119
16118
  };
16120
16119
  return /* @__PURE__ */ G("div", {
16121
- className: "hidden md:flex px-4 py-2.5 bg-[#060608] border-b border-[#242735] items-center justify-between gap-4 z-30 select-none shrink-0 w-full overflow-visible",
16120
+ className: "hidden md:flex px-4 py-2.5 bg-dv-chrome border-b border-dv-border items-center justify-between gap-4 z-30 select-none shrink-0 w-full overflow-visible",
16122
16121
  children: [
16123
16122
  /* @__PURE__ */ G("div", {
16124
16123
  className: "flex items-center gap-3 shrink-0",
@@ -16127,7 +16126,7 @@ var Yt = () => {
16127
16126
  onClick: () => {
16128
16127
  w?.();
16129
16128
  },
16130
- className: "p-1.5 rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-white hover:bg-slate-800/40 cursor-pointer transition-all active:scale-95",
16129
+ className: "p-1.5 rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-white hover:bg-slate-800/40 cursor-pointer transition-all active:scale-95",
16131
16130
  title: "Volver a estudios",
16132
16131
  children: /* @__PURE__ */ W(f, { className: "w-4 h-4" })
16133
16132
  }),
@@ -16155,7 +16154,7 @@ var Yt = () => {
16155
16154
  /* @__PURE__ */ W("div", {
16156
16155
  className: "flex-1 min-w-0 flex items-center",
16157
16156
  children: /* @__PURE__ */ W("div", {
16158
- className: "w-full flex flex-nowrap gap-1 bg-[#1a1d27] border border-[#242735] p-2 rounded-2xl overflow-x-auto scrollbar-none cursor-grab active:cursor-grabbing",
16157
+ className: "w-full flex flex-nowrap gap-1 bg-dv-panel border border-dv-border p-2 rounded-2xl overflow-x-auto scrollbar-none cursor-grab active:cursor-grabbing",
16159
16158
  ...N,
16160
16159
  onWheel: R,
16161
16160
  children: ge.map((e) => /* @__PURE__ */ W(Gt, {
@@ -16183,7 +16182,7 @@ var Yt = () => {
16183
16182
  })
16184
16183
  }),
16185
16184
  /* @__PURE__ */ G("div", {
16186
- className: "flex gap-1.5 bg-[#1a1d27] border border-[#242735] p-1.5 rounded-2xl items-center shrink-0",
16185
+ className: "flex gap-1.5 bg-dv-panel border border-dv-border p-1.5 rounded-2xl items-center shrink-0",
16187
16186
  children: [
16188
16187
  /* @__PURE__ */ W(Gt, {
16189
16188
  onClick: () => n({ type: "TOGGLE_REFERENCE_LINES" }),
@@ -16225,7 +16224,7 @@ var Yt = () => {
16225
16224
  ]
16226
16225
  }),
16227
16226
  /* @__PURE__ */ G("div", {
16228
- className: "flex gap-1.5 bg-[#1a1d27] border border-[#242735] p-1.5 rounded-2xl items-center shrink-0",
16227
+ className: "flex gap-1.5 bg-dv-panel border border-dv-border p-1.5 rounded-2xl items-center shrink-0",
16229
16228
  children: [
16230
16229
  M.map((t) => t.children ? /* @__PURE__ */ W(e.Fragment, { children: t.children }, t.id) : /* @__PURE__ */ W(Gt, {
16231
16230
  onClick: () => t.onClick?.({
@@ -16251,7 +16250,7 @@ var Yt = () => {
16251
16250
  icon: /* @__PURE__ */ W(z, { className: "w-3.5 h-3.5" }),
16252
16251
  title: "Borrar todas las mediciones"
16253
16252
  }),
16254
- /* @__PURE__ */ W("div", { className: "w-px h-5 bg-[#242735] mx-0.5" }),
16253
+ /* @__PURE__ */ W("div", { className: "w-px h-5 bg-dv-border mx-0.5" }),
16255
16254
  /* @__PURE__ */ W(Gt, {
16256
16255
  onClick: () => n({
16257
16256
  type: "SET_SHOW_OVERLAYS",
@@ -16267,7 +16266,7 @@ var Yt = () => {
16267
16266
  ref: L,
16268
16267
  children: [/* @__PURE__ */ G("button", {
16269
16268
  onClick: () => F(!P),
16270
- className: "relative flex items-center justify-center text-slate-400 hover:text-slate-200 border border-[#242735] bg-[#1a1d27] hover:bg-[#202432] rounded-xl p-2 w-9 h-9 cursor-pointer select-none transition-all duration-200",
16269
+ className: "relative flex items-center justify-center text-slate-400 hover:text-slate-200 border border-dv-border bg-dv-panel hover:bg-dv-panel-hover rounded-xl p-2 w-9 h-9 cursor-pointer select-none transition-all duration-200",
16271
16270
  title: "Dividir pantalla (Layout)",
16272
16271
  children: [
16273
16272
  t.layout === "1x1" && /* @__PURE__ */ W(I, { className: "w-3.5 h-3.5" }),
@@ -16330,7 +16329,7 @@ var Zt = ({ currentImageIndex: e, totalImages: t, ww: n, wc: r }) => {
16330
16329
  let i = se(), { state: a, onBack: o, branding: s } = i, { study: c, showOverlays: l = !0 } = a, u = e ?? i.currentImageIndex, d = t ?? i.totalImages, p = n === void 0 ? i.ww : n, m = r === void 0 ? i.wc : r, h = Wt("transition-all duration-300", l ? "opacity-80 scale-100" : "opacity-0 scale-95 pointer-events-none");
16331
16330
  return /* @__PURE__ */ G(U, { children: [
16332
16331
  /* @__PURE__ */ G("div", {
16333
- className: Wt("absolute top-4 left-4 flex items-center gap-2.5 pointer-events-auto bg-[#13151c]/85 border border-[#242735] px-3.5 py-2.5 rounded-2xl backdrop-blur-md shadow-lg leading-relaxed text-left z-10", h),
16332
+ className: Wt("absolute top-4 left-4 flex items-center gap-2.5 pointer-events-auto bg-dv-overlay/85 border border-dv-border px-3.5 py-2.5 rounded-2xl backdrop-blur-md shadow-lg leading-relaxed text-left z-10", h),
16334
16333
  children: [o && /* @__PURE__ */ W("button", {
16335
16334
  onClick: o,
16336
16335
  className: "p-1 rounded-lg text-slate-400 hover:text-white hover:bg-slate-800/60 active:scale-95 transition-all cursor-pointer shrink-0 md:hidden",
@@ -16363,7 +16362,7 @@ var Zt = ({ currentImageIndex: e, totalImages: t, ww: n, wc: r }) => {
16363
16362
  })]
16364
16363
  }),
16365
16364
  s.logo && /* @__PURE__ */ W("div", {
16366
- className: Wt("absolute top-4 right-4 pointer-events-none bg-[#13151c]/80 border border-[#242735] px-3 py-1.5 rounded-xl backdrop-blur-md shadow-lg z-10 flex items-center justify-center md:hidden", h),
16365
+ className: Wt("absolute top-4 right-4 pointer-events-none bg-dv-overlay/80 border border-dv-border px-3 py-1.5 rounded-xl backdrop-blur-md shadow-lg z-10 flex items-center justify-center md:hidden", h),
16367
16366
  children: /* @__PURE__ */ W("img", {
16368
16367
  src: s.logo,
16369
16368
  alt: "Institution Logo",
@@ -16371,7 +16370,7 @@ var Zt = ({ currentImageIndex: e, totalImages: t, ww: n, wc: r }) => {
16371
16370
  })
16372
16371
  }),
16373
16372
  /* @__PURE__ */ G("div", {
16374
- className: Wt("absolute bottom-4 left-4 pointer-events-none text-[10px] text-slate-300 font-mono space-y-1 bg-[#13151c]/85 border border-[#242735] px-3 py-2 rounded-2xl backdrop-blur-md shadow-lg leading-relaxed text-left z-10", h),
16373
+ className: Wt("absolute bottom-4 left-4 pointer-events-none text-[10px] text-slate-300 font-mono space-y-1 bg-dv-overlay/85 border border-dv-border px-3 py-2 rounded-2xl backdrop-blur-md shadow-lg leading-relaxed text-left z-10", h),
16375
16374
  children: [
16376
16375
  /* @__PURE__ */ G("p", { children: [
16377
16376
  "W:",
@@ -16404,7 +16403,7 @@ var Zt = ({ currentImageIndex: e, totalImages: t, ww: n, wc: r }) => {
16404
16403
  ]
16405
16404
  }),
16406
16405
  s.name && /* @__PURE__ */ W("div", {
16407
- className: Wt("absolute bottom-4 right-4 pointer-events-none text-[9px] text-slate-500 font-mono bg-[#13151c]/65 px-2.5 py-1 rounded-xl border border-[#242735] shadow-inner z-10 uppercase tracking-wider", h),
16406
+ className: Wt("absolute bottom-4 right-4 pointer-events-none text-[9px] text-slate-500 font-mono bg-dv-overlay/65 px-2.5 py-1 rounded-xl border border-dv-border shadow-inner z-10 uppercase tracking-wider", h),
16408
16407
  children: s.name
16409
16408
  })
16410
16409
  ] });
@@ -35805,7 +35804,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35805
35804
  onDragEnter: b,
35806
35805
  onDragLeave: x,
35807
35806
  onDrop: S,
35808
- className: Wt("flex-1 h-full min-h-0 relative bg-[#090b11] flex items-center justify-center border transition-all duration-200 cursor-pointer select-none", h ? "border-secondary bg-secondary/5 ring-2 ring-secondary/35 z-10 shadow-xl" : n ? "border-secondary ring-1 ring-secondary/20 z-10 shadow-lg shadow-secondary/5" : "border-[#242735] hover:border-slate-800/50"),
35807
+ className: Wt("flex-1 h-full min-h-0 relative bg-dv-viewport flex items-center justify-center border transition-all duration-200 cursor-pointer select-none", h ? "border-secondary bg-secondary/5 ring-2 ring-secondary/35 z-10 shadow-xl" : n ? "border-secondary ring-1 ring-secondary/20 z-10 shadow-lg shadow-secondary/5" : "border-dv-border hover:border-slate-800/50"),
35809
35808
  children: [
35810
35809
  h && /* @__PURE__ */ W("div", {
35811
35810
  className: "absolute inset-0 bg-secondary/5 backdrop-blur-xs border-2 border-dashed border-secondary flex items-center justify-center z-30 pointer-events-none transition-all duration-200",
@@ -35815,7 +35814,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35815
35814
  })
35816
35815
  }),
35817
35816
  O < k && /* @__PURE__ */ W("div", {
35818
- className: "absolute top-0 left-0 right-0 h-0.5 bg-[#13151c]/80 z-20",
35817
+ className: "absolute top-0 left-0 right-0 h-0.5 bg-dv-overlay/80 z-20",
35819
35818
  children: /* @__PURE__ */ W("div", {
35820
35819
  className: "bg-linear-to-r from-secondary to-secondary/50 h-full transition-all duration-300 ease-out shadow-sm shadow-secondary/30",
35821
35820
  style: { width: `${D}%` }
@@ -35827,10 +35826,10 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35827
35826
  onContextMenu: (e) => e.preventDefault()
35828
35827
  }),
35829
35828
  E ? /* @__PURE__ */ G("div", {
35830
- className: "absolute inset-0 bg-[#090b11]/90 z-10 flex flex-col justify-center items-center pointer-events-none",
35829
+ className: "absolute inset-0 bg-dv-viewport/90 z-10 flex flex-col justify-center items-center pointer-events-none",
35831
35830
  children: [
35832
35831
  /* @__PURE__ */ G("div", {
35833
- className: Wt("absolute top-4 left-4 bg-[#13151c]/85 border border-[#242735] px-3.5 py-2.5 rounded-2xl w-40 space-y-2 transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35832
+ className: Wt("absolute top-4 left-4 bg-dv-overlay/85 border border-dv-border px-3.5 py-2.5 rounded-2xl w-40 space-y-2 transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35834
35833
  children: [
35835
35834
  /* @__PURE__ */ W(Xt, { className: "h-3 w-3/4 bg-slate-800/40" }),
35836
35835
  /* @__PURE__ */ W(Xt, { className: "h-2 w-1/2 bg-slate-800/30" }),
@@ -35838,7 +35837,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35838
35837
  ]
35839
35838
  }),
35840
35839
  /* @__PURE__ */ W("div", {
35841
- className: Wt("absolute top-4 right-4 bg-[#13151c]/85 border border-[#242735] px-3 py-2 rounded-2xl w-24 h-12 flex items-center justify-center transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35840
+ className: Wt("absolute top-4 right-4 bg-dv-overlay/85 border border-dv-border px-3 py-2 rounded-2xl w-24 h-12 flex items-center justify-center transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35842
35841
  children: /* @__PURE__ */ W(Xt, { className: "h-4 w-16 bg-slate-800/40" })
35843
35842
  }),
35844
35843
  /* @__PURE__ */ G("div", {
@@ -35856,7 +35855,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35856
35855
  })]
35857
35856
  }),
35858
35857
  /* @__PURE__ */ G("div", {
35859
- className: Wt("absolute bottom-4 left-4 bg-[#13151c]/85 border border-[#242735] px-3 py-2 rounded-2xl w-24 space-y-2 transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35858
+ className: Wt("absolute bottom-4 left-4 bg-dv-overlay/85 border border-dv-border px-3 py-2 rounded-2xl w-24 space-y-2 transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35860
35859
  children: [
35861
35860
  /* @__PURE__ */ W(Xt, { className: "h-2 w-2/3 bg-slate-800/30" }),
35862
35861
  /* @__PURE__ */ W(Xt, { className: "h-2 w-2/3 bg-slate-800/30" }),
@@ -35864,7 +35863,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35864
35863
  ]
35865
35864
  }),
35866
35865
  /* @__PURE__ */ W("div", {
35867
- className: Wt("absolute bottom-4 right-4 bg-[#13151c]/65 px-2.5 py-1 rounded-xl border border-[#242735] w-28 h-5 flex items-center justify-center transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35866
+ className: Wt("absolute bottom-4 right-4 bg-dv-overlay/65 px-2.5 py-1 rounded-xl border border-dv-border w-28 h-5 flex items-center justify-center transition-all duration-300", a.showOverlays ?? !0 ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"),
35868
35867
  children: /* @__PURE__ */ W(Xt, { className: "h-2 w-20 bg-slate-800/30" })
35869
35868
  })
35870
35869
  ]
@@ -35895,7 +35894,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35895
35894
  onActivate: () => {}
35896
35895
  })
35897
35896
  }) : /* @__PURE__ */ W("div", {
35898
- className: Wt("h-full w-full min-h-0 flex-1 bg-[#060608] gap-1.5 p-1.5 grid", n === "1x1" && "grid-cols-1 grid-rows-1", n === "1x2" && "grid-cols-2 grid-rows-1", n === "2x2" && "grid-cols-2 grid-rows-2"),
35897
+ className: Wt("h-full w-full min-h-0 flex-1 bg-dv-chrome gap-1.5 p-1.5 grid", n === "1x1" && "grid-cols-1 grid-rows-1", n === "1x2" && "grid-cols-2 grid-rows-1", n === "2x2" && "grid-cols-2 grid-rows-2"),
35899
35898
  children: l.map((e) => {
35900
35899
  let n = i[e]?.seriesIndex ?? 0;
35901
35900
  return /* @__PURE__ */ W(fn, {
@@ -35912,11 +35911,11 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35912
35911
  }, mn = () => {
35913
35912
  let { state: e, dispatch: t, isPlaying: n, togglePlay: r, currentImageIndex: i, totalImages: a, downloadedCount: o, loadingProgress: s, handleSliderChange: c } = se(), l = e.playSpeed ?? 1;
35914
35913
  return /* @__PURE__ */ G("div", {
35915
- className: "bg-[#13151c]/90 backdrop-blur-md border border-[#242735] rounded-2xl p-3 flex flex-col md:flex-row items-center gap-4 shadow-xl select-none mx-4 mb-4",
35914
+ className: "bg-dv-overlay/90 backdrop-blur-md border border-dv-border rounded-2xl p-3 flex flex-col md:flex-row items-center gap-4 shadow-xl select-none mx-4 mb-4",
35916
35915
  children: [
35917
35916
  /* @__PURE__ */ W("button", {
35918
35917
  onClick: r,
35919
- className: `p-2.5 rounded-xl border cursor-pointer select-none transition-all duration-300 active:scale-95 shrink-0 ${n ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/15 font-semibold" : "border-[#242735] bg-[#1a1d27] text-slate-300 hover:bg-[#202432] hover:text-white"}`,
35918
+ className: `p-2.5 rounded-xl border cursor-pointer select-none transition-all duration-300 active:scale-95 shrink-0 ${n ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/15 font-semibold" : "border-dv-border bg-dv-panel text-slate-300 hover:bg-dv-panel-hover hover:text-white"}`,
35920
35919
  title: n ? "Pausar reproducción" : "Reproducir serie",
35921
35920
  children: W(n ? D : O, { className: "w-4 h-4 fill-current" })
35922
35921
  }),
@@ -35936,7 +35935,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35936
35935
  max: o > 0 ? o - 1 : 0,
35937
35936
  value: i,
35938
35937
  onChange: (e) => c(Number(e.target.value)),
35939
- className: "flex-1 h-1.5 bg-[#1a1d27] border border-[#242735] rounded-full appearance-none cursor-pointer accent-secondary focus:outline-none"
35938
+ className: "flex-1 h-1.5 bg-dv-panel border border-dv-border rounded-full appearance-none cursor-pointer accent-secondary focus:outline-none"
35940
35939
  }),
35941
35940
  /* @__PURE__ */ W("button", {
35942
35941
  onClick: () => c(Math.min(o - 1, i + 1)),
@@ -35948,10 +35947,10 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35948
35947
  ]
35949
35948
  }),
35950
35949
  /* @__PURE__ */ G("div", {
35951
- className: "w-full md:w-auto text-[11px] font-mono text-slate-400 bg-[#1a1d27] border border-[#242735] px-3.5 py-1.5 rounded-xl select-none flex items-center justify-between md:justify-start gap-3",
35950
+ className: "w-full md:w-auto text-[11px] font-mono text-slate-400 bg-dv-panel border border-dv-border px-3.5 py-1.5 rounded-xl select-none flex items-center justify-between md:justify-start gap-3",
35952
35951
  children: [
35953
35952
  o < a && /* @__PURE__ */ G("span", {
35954
- className: "flex items-center gap-1.5 text-secondary font-semibold mr-2 border-r border-[#242735] pr-3",
35953
+ className: "flex items-center gap-1.5 text-secondary font-semibold mr-2 border-r border-dv-border pr-3",
35955
35954
  children: [/* @__PURE__ */ W(T, { className: "w-3 h-3 animate-spin" }), /* @__PURE__ */ G("span", { children: [
35956
35955
  "Cargando ",
35957
35956
  o,
@@ -35977,7 +35976,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35977
35976
  onClick: () => {
35978
35977
  t({ type: "TOGGLE_PLAY_SPEED" });
35979
35978
  },
35980
- className: "ml-3 pl-3 border-l border-[#242735] text-[10.5px] font-black text-secondary hover:text-white transition-colors cursor-pointer select-none",
35979
+ className: "ml-3 pl-3 border-l border-dv-border text-[10.5px] font-black text-secondary hover:text-white transition-colors cursor-pointer select-none",
35981
35980
  title: "Velocidad de reproducción (Cine FPS)",
35982
35981
  children: ["x", l]
35983
35982
  })
@@ -35988,9 +35987,9 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
35988
35987
  }, hn = () => {
35989
35988
  let { state: e, dispatch: t, getThumbnailUrl: n } = se(), { study: r } = e, i = ue("sidebar"), a = e.viewports[e.activeViewportIndex]?.seriesIndex ?? 0;
35990
35989
  return /* @__PURE__ */ G("aside", {
35991
- className: "hidden md:flex w-80 border-r border-[#242735] bg-[#060608] h-full flex-col shrink-0 overflow-y-auto scrollbar-discreet select-none",
35990
+ className: "hidden md:flex w-80 border-r border-dv-border bg-dv-chrome h-full flex-col shrink-0 overflow-y-auto scrollbar-discreet select-none",
35992
35991
  children: [/* @__PURE__ */ G("div", {
35993
- className: "p-4 border-b border-[#242735] space-y-3 text-left",
35992
+ className: "p-4 border-b border-dv-border space-y-3 text-left",
35994
35993
  children: [/* @__PURE__ */ W("span", {
35995
35994
  className: "text-[9px] font-black text-slate-500 uppercase tracking-widest block pl-1",
35996
35995
  children: "HERRAMIENTAS DE ESTUDIO"
@@ -36043,7 +36042,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
36043
36042
  let { icon: t, text: n, onClick: r, className: i, disabled: a } = e;
36044
36043
  return /* @__PURE__ */ G("button", {
36045
36044
  onClick: r,
36046
- className: Wt("flex-1 flex items-center justify-center gap-1.5 px-2.5 py-2.5 rounded-xl text-[10px] bg-[#1a1d27] hover:bg-[#222634] border border-[#242735] font-semibold text-slate-300 hover:text-white transition-all cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed select-none active:scale-95", i),
36045
+ className: Wt("flex-1 flex items-center justify-center gap-1.5 px-2.5 py-2.5 rounded-xl text-[10px] bg-dv-panel hover:bg-dv-panel-hover-alt border border-dv-border font-semibold text-slate-300 hover:text-white transition-all cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed select-none active:scale-95", i),
36047
36046
  disabled: a,
36048
36047
  children: [t, /* @__PURE__ */ W("span", { children: n })]
36049
36048
  });
@@ -36055,7 +36054,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
36055
36054
  onDragStart: (e) => {
36056
36055
  e.dataTransfer.setData("text/plain", s.toString()), e.dataTransfer.effectAllowed = "copyMove";
36057
36056
  },
36058
- className: Wt("relative rounded-2xl overflow-hidden border cursor-grab active:cursor-grabbing group bg-[#11131c]/90 transition-all duration-300 p-2", t ? "border-secondary/60 shadow-md shadow-secondary/15 ring-1 ring-secondary/30" : "border-[#242735] hover:border-slate-700/50"),
36057
+ className: Wt("relative rounded-2xl overflow-hidden border cursor-grab active:cursor-grabbing group bg-dv-card/90 transition-all duration-300 p-2", t ? "border-secondary/60 shadow-md shadow-secondary/15 ring-1 ring-secondary/30" : "border-dv-border hover:border-slate-700/50"),
36059
36058
  children: [/* @__PURE__ */ G("div", {
36060
36059
  className: "relative w-full h-32 rounded-xl bg-black overflow-hidden flex items-center justify-center",
36061
36060
  children: [l && /* @__PURE__ */ W("img", {
@@ -36072,7 +36071,7 @@ var fn = ({ viewportIndex: e, seriesIndex: t, isActive: n, onActivate: r }) => {
36072
36071
  }), /* @__PURE__ */ G("div", {
36073
36072
  className: "mt-2.5 flex items-center gap-2 px-1 text-left",
36074
36073
  children: [/* @__PURE__ */ W("span", {
36075
- className: Wt("px-1.5 py-0.5 rounded-lg border text-[8px] font-black uppercase tracking-wider shrink-0", t ? "bg-secondary/30 border-secondary/45 text-slate-250" : "bg-[#1a1d27] border-[#242735] text-slate-450"),
36074
+ className: Wt("px-1.5 py-0.5 rounded-lg border text-[8px] font-black uppercase tracking-wider shrink-0", t ? "bg-secondary/30 border-secondary/45 text-slate-250" : "bg-dv-panel border-dv-border text-slate-450"),
36076
36075
  children: i
36077
36076
  }), /* @__PURE__ */ G("div", {
36078
36077
  className: "min-w-0 flex-1",
@@ -36139,12 +36138,12 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36139
36138
  defaultValue: "tools",
36140
36139
  className: "w-full",
36141
36140
  children: [/* @__PURE__ */ G("div", {
36142
- className: "flex items-center justify-between border-b border-[#242735] pb-2",
36141
+ className: "flex items-center justify-between border-b border-dv-border pb-2",
36143
36142
  children: [/* @__PURE__ */ W("span", {
36144
36143
  className: "text-[9px] font-black text-slate-500 uppercase tracking-widest",
36145
36144
  children: "Herramientas"
36146
36145
  }), /* @__PURE__ */ G(bn, {
36147
- className: "bg-[#11131c] border border-[#242735] h-7 p-[2px] rounded-lg",
36146
+ className: "bg-dv-card border border-dv-border h-7 p-[2px] rounded-lg",
36148
36147
  children: [
36149
36148
  /* @__PURE__ */ W(xn, {
36150
36149
  value: "tools",
@@ -36175,7 +36174,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36175
36174
  let t = n === e.id;
36176
36175
  return /* @__PURE__ */ G("button", {
36177
36176
  onClick: () => r(e.id),
36178
- className: Wt("flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border transition-all duration-150 active:scale-95 cursor-pointer select-none", t ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/10 font-black" : "border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200"),
36177
+ className: Wt("flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border transition-all duration-150 active:scale-95 cursor-pointer select-none", t ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/10 font-black" : "border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200"),
36179
36178
  children: [/* @__PURE__ */ W(e.Icon, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ W("span", {
36180
36179
  className: "truncate w-full text-center",
36181
36180
  children: e.label
@@ -36192,37 +36191,37 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36192
36191
  children: [
36193
36192
  /* @__PURE__ */ G("button", {
36194
36193
  onClick: i,
36195
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36194
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36196
36195
  children: [/* @__PURE__ */ W(A, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Restablecer" })]
36197
36196
  }),
36198
36197
  /* @__PURE__ */ G("button", {
36199
36198
  onClick: a,
36200
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-rose-400 hover:text-rose-200 transition-all duration-150 active:scale-95 cursor-pointer",
36199
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-rose-400 hover:text-rose-200 transition-all duration-150 active:scale-95 cursor-pointer",
36201
36200
  children: [/* @__PURE__ */ W(z, { className: "w-3.5 h-3.5 text-rose-450" }), /* @__PURE__ */ W("span", { children: "Medidas" })]
36202
36201
  }),
36203
36202
  /* @__PURE__ */ G("button", {
36204
36203
  onClick: o,
36205
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36204
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36206
36205
  children: [/* @__PURE__ */ W(_, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Invertir" })]
36207
36206
  }),
36208
36207
  /* @__PURE__ */ G("button", {
36209
36208
  onClick: s,
36210
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36209
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36211
36210
  children: [/* @__PURE__ */ W(j, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Girar D." })]
36212
36211
  }),
36213
36212
  /* @__PURE__ */ G("button", {
36214
36213
  onClick: c,
36215
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36214
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36216
36215
  children: [/* @__PURE__ */ W(A, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Girar I." })]
36217
36216
  }),
36218
36217
  /* @__PURE__ */ G("button", {
36219
36218
  onClick: l,
36220
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36219
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36221
36220
  children: [/* @__PURE__ */ W(x, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Volteo H." })]
36222
36221
  }),
36223
36222
  /* @__PURE__ */ G("button", {
36224
36223
  onClick: u,
36225
- className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36224
+ className: "flex flex-col items-center justify-center gap-1.5 py-2 px-1 text-[9px] font-bold rounded-xl border border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200 transition-all duration-150 active:scale-95 cursor-pointer",
36226
36225
  children: [/* @__PURE__ */ W(S, { className: "w-3.5 h-3.5 text-secondary" }), /* @__PURE__ */ W("span", { children: "Volteo V." })]
36227
36226
  })
36228
36227
  ]
@@ -36237,7 +36236,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36237
36236
  let n = d === t.W && f === t.C;
36238
36237
  return /* @__PURE__ */ W("button", {
36239
36238
  onClick: () => p(t.W, t.C),
36240
- className: Wt("flex items-center justify-center gap-1 py-2 px-1.5 text-[9px] font-bold rounded-xl border transition-all duration-150 active:scale-95 cursor-pointer select-none", n ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/10" : "border-[#242735] bg-[#1a1d27] text-slate-400 hover:text-slate-200"),
36239
+ className: Wt("flex items-center justify-center gap-1 py-2 px-1.5 text-[9px] font-bold rounded-xl border transition-all duration-150 active:scale-95 cursor-pointer select-none", n ? "bg-secondary/10 border-secondary/35 text-secondary shadow-sm shadow-secondary/10" : "border-dv-border bg-dv-panel text-slate-400 hover:text-slate-200"),
36241
36240
  title: `W: ${t.W} C: ${t.C}`,
36242
36241
  children: /* @__PURE__ */ W("span", { children: Cn(e) })
36243
36242
  }, e);
@@ -36253,9 +36252,9 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36253
36252
  i((t) => t === e ? null : e);
36254
36253
  };
36255
36254
  return /* @__PURE__ */ G("footer", {
36256
- className: "md:hidden w-full bg-[#060608] border-t border-[#242735] shrink-0 select-none z-20 relative font-sans",
36255
+ className: "md:hidden w-full bg-dv-chrome border-t border-dv-border shrink-0 select-none z-20 relative font-sans",
36257
36256
  children: [r !== null && /* @__PURE__ */ G("div", {
36258
- className: "absolute bottom-16 left-4 right-4 z-30 p-4 bg-[#060608]/95 backdrop-blur-md rounded-2xl border border-[#242735] shadow-2xl overflow-y-auto overflow-x-hidden scrollbar-discreet animate-in slide-in-from-bottom duration-250 max-h-[260px]",
36257
+ className: "absolute bottom-16 left-4 right-4 z-30 p-4 bg-dv-chrome/95 backdrop-blur-md rounded-2xl border border-dv-border shadow-2xl overflow-y-auto overflow-x-hidden scrollbar-discreet animate-in slide-in-from-bottom duration-250 max-h-[260px]",
36259
36258
  children: [
36260
36259
  r === "series" && /* @__PURE__ */ W(En, {}),
36261
36260
  r === "options" && /* @__PURE__ */ G("div", {
@@ -36292,14 +36291,14 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36292
36291
  activeSeriesIndex: e.viewports[e.activeViewportIndex]?.seriesIndex ?? 0
36293
36292
  }),
36294
36293
  disabled: t.disabled,
36295
- className: Wt("flex flex-col items-center justify-center gap-1.5 py-2.5 rounded-xl text-[10px] bg-[#1a1d27] border border-[#242735] font-semibold text-slate-355 hover:text-white transition-all cursor-pointer select-none active:scale-95 animate-fade-in disabled:opacity-40 disabled:cursor-not-allowed", t.className),
36294
+ className: Wt("flex flex-col items-center justify-center gap-1.5 py-2.5 rounded-xl text-[10px] bg-dv-panel border border-dv-border font-semibold text-slate-355 hover:text-white transition-all cursor-pointer select-none active:scale-95 animate-fade-in disabled:opacity-40 disabled:cursor-not-allowed", t.className),
36296
36295
  children: [t.icon, /* @__PURE__ */ W("span", { children: t.label })]
36297
36296
  }, t.id)), /* @__PURE__ */ G("button", {
36298
36297
  onClick: () => t({
36299
36298
  type: "SET_SHOW_OVERLAYS",
36300
36299
  payload: !o
36301
36300
  }),
36302
- className: Wt("flex flex-col items-center justify-center gap-1.5 py-2.5 rounded-xl text-[10px] border font-semibold transition-all cursor-pointer select-none active:scale-95 animate-fade-in", o ? "bg-[#1a1d27] border-[#242735] text-slate-355 hover:text-white" : "bg-secondary/15 border-secondary/35 text-secondary font-bold"),
36301
+ className: Wt("flex flex-col items-center justify-center gap-1.5 py-2.5 rounded-xl text-[10px] border font-semibold transition-all cursor-pointer select-none active:scale-95 animate-fade-in", o ? "bg-dv-panel border-dv-border text-slate-355 hover:text-white" : "bg-secondary/15 border-secondary/35 text-secondary font-bold"),
36303
36302
  children: [o ? /* @__PURE__ */ W(y, { className: "h-4 w-4 text-slate-400" }) : /* @__PURE__ */ W(b, { className: "h-4 w-4 text-secondary" }), /* @__PURE__ */ W("span", { children: o ? "Ocultar Datos" : "Mostrar Datos" })]
36304
36303
  })]
36305
36304
  })]
@@ -36356,7 +36355,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36356
36355
  type: "SET_ACTIVE_SERIES_INDEX",
36357
36356
  payload: r
36358
36357
  }),
36359
- className: Wt("relative rounded-2xl overflow-hidden border cursor-pointer group hover:border-secondary/20 transition-all duration-300 w-32 h-20 shrink-0 p-1 bg-[#11131c]/90", i ? "border-secondary/60 shadow-lg shadow-secondary/10 ring-1 ring-secondary/20" : "border-[#242735]"),
36358
+ className: Wt("relative rounded-2xl overflow-hidden border cursor-pointer group hover:border-secondary/20 transition-all duration-300 w-32 h-20 shrink-0 p-1 bg-dv-card/90", i ? "border-secondary/60 shadow-lg shadow-secondary/10 ring-1 ring-secondary/20" : "border-dv-border"),
36360
36359
  children: /* @__PURE__ */ G("div", {
36361
36360
  className: "relative w-full h-full rounded-xl bg-black overflow-hidden",
36362
36361
  children: [n && /* @__PURE__ */ W("img", {
@@ -36367,7 +36366,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36367
36366
  className: "absolute inset-0 bg-linear-to-t from-black via-black/70 to-transparent flex flex-col justify-end p-2 text-left",
36368
36367
  children: [
36369
36368
  /* @__PURE__ */ W("span", {
36370
- className: Wt("inline-block px-1 py-0.2 rounded-sm border text-[6px] font-black uppercase tracking-wider mb-1 w-fit", i ? "bg-secondary/30 border-secondary/45 text-slate-250" : "bg-[#1a1d27] border-[#242735] text-slate-450"),
36369
+ className: Wt("inline-block px-1 py-0.2 rounded-sm border text-[6px] font-black uppercase tracking-wider mb-1 w-fit", i ? "bg-secondary/30 border-secondary/45 text-slate-250" : "bg-dv-panel border-dv-border text-slate-450"),
36371
36370
  children: e.modality
36372
36371
  }),
36373
36372
  /* @__PURE__ */ W("p", {
@@ -36388,14 +36387,14 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36388
36387
  }, Dn = () => {
36389
36388
  let { currentImageIndex: e, totalImages: t, downloadedCount: n, handleSliderChange: r } = se();
36390
36389
  return /* @__PURE__ */ G("div", {
36391
- className: "md:hidden shrink-0 bg-[#060608] border-t border-[#242735] px-4 py-2.5 flex items-center gap-3 select-none",
36390
+ className: "md:hidden shrink-0 bg-dv-chrome border-t border-dv-border px-4 py-2.5 flex items-center gap-3 select-none",
36392
36391
  children: [/* @__PURE__ */ W("input", {
36393
36392
  type: "range",
36394
36393
  min: "0",
36395
36394
  max: n > 0 ? n - 1 : 0,
36396
36395
  value: e,
36397
36396
  onChange: (e) => r(Number(e.target.value)),
36398
- className: "flex-1 h-1.5 bg-[#1a1d27] border border-[#242735] rounded-full appearance-none cursor-pointer accent-secondary focus:outline-none"
36397
+ className: "flex-1 h-1.5 bg-dv-panel border border-dv-border rounded-full appearance-none cursor-pointer accent-secondary focus:outline-none"
36399
36398
  }), /* @__PURE__ */ G("span", {
36400
36399
  className: "text-[10px] font-mono text-primary font-bold shrink-0",
36401
36400
  children: [
@@ -36405,21 +36404,46 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36405
36404
  ]
36406
36405
  })]
36407
36406
  });
36408
- }, On = ({ study: e, getDicomFile: n, getThumbnailUrl: i, presets: a, maxConcurrentDownloads: o, branding: c, onBack: l, actions: u, modals: d, className: f }) => {
36409
- let p = s(() => t.toArray(u).filter(r), [u]), m = s(() => t.toArray(d).filter(r), [d]), h = fe(e, {
36407
+ }, On = ({ study: e, getDicomFile: n, getThumbnailUrl: i, presets: a, maxConcurrentDownloads: o, branding: c, onBack: l, actions: u, modals: d, theme: f, className: p }) => {
36408
+ let m = s(() => t.toArray(u).filter(r), [u]), h = s(() => t.toArray(d).filter(r), [d]), g = s(() => {
36409
+ if (!f) return;
36410
+ let e = {
36411
+ primary: "--dv-primary",
36412
+ primaryForeground: "--dv-primary-foreground",
36413
+ secondary: "--dv-secondary",
36414
+ secondaryForeground: "--dv-secondary-foreground",
36415
+ background: "--dv-bg",
36416
+ chrome: "--dv-chrome",
36417
+ viewport: "--dv-viewport",
36418
+ overlay: "--dv-overlay",
36419
+ panel: "--dv-panel",
36420
+ panelHover: "--dv-panel-hover",
36421
+ panelHoverAlt: "--dv-panel-hover-alt",
36422
+ border: "--dv-border",
36423
+ borderHover: "--dv-border-hover",
36424
+ card: "--dv-card",
36425
+ modal: "--dv-modal"
36426
+ }, t = {};
36427
+ for (let [n, r] of Object.entries(e)) {
36428
+ let e = f[n];
36429
+ typeof e == "string" && e.length > 0 && (t[r] = e);
36430
+ }
36431
+ return t;
36432
+ }, [f]), _ = fe(e, {
36410
36433
  getDicomFile: n,
36411
36434
  getThumbnailUrl: i,
36412
36435
  presets: a,
36413
36436
  maxConcurrentDownloads: o,
36414
36437
  branding: c,
36415
36438
  onBack: l,
36416
- actions: p,
36417
- modals: m
36439
+ actions: m,
36440
+ modals: h
36418
36441
  });
36419
36442
  return /* @__PURE__ */ W(oe.Provider, {
36420
- value: h,
36443
+ value: _,
36421
36444
  children: /* @__PURE__ */ G("div", {
36422
- className: "h-dvh bg-[#0e1017] text-slate-100 flex flex-col overflow-hidden font-sans select-none w-full relative" + (f ? ` ${f}` : ""),
36445
+ style: g,
36446
+ className: "h-dvh bg-dv-bg text-slate-100 flex flex-col overflow-hidden font-sans select-none w-full relative" + (p ? ` ${p}` : ""),
36423
36447
  onContextMenu: (e) => {
36424
36448
  e.preventDefault();
36425
36449
  },
@@ -36428,7 +36452,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36428
36452
  /* @__PURE__ */ G("div", {
36429
36453
  className: "flex-1 flex flex-col md:flex-row overflow-hidden min-h-0 relative w-full",
36430
36454
  children: [/* @__PURE__ */ W(hn, {}), /* @__PURE__ */ G("div", {
36431
- className: "flex-1 flex flex-col h-full min-w-0 overflow-hidden bg-[#0e1017] relative",
36455
+ className: "flex-1 flex flex-col h-full min-w-0 overflow-hidden bg-dv-bg relative",
36432
36456
  children: [
36433
36457
  /* @__PURE__ */ W(pn, {}),
36434
36458
  /* @__PURE__ */ W(Dn, {}),
@@ -36440,7 +36464,7 @@ var Cn = (e) => e.split("_").map((e) => e.charAt(0).toUpperCase() + e.slice(1).t
36440
36464
  })]
36441
36465
  }),
36442
36466
  /* @__PURE__ */ W(Tn, {}),
36443
- m
36467
+ h
36444
36468
  ]
36445
36469
  })
36446
36470
  });
@@ -1,3 +1,2 @@
1
- import "./style.css";
2
1
  export declare const DicomViewerSkeleton: () => import("react/jsx-runtime").JSX.Element;
3
2
  export default DicomViewerSkeleton;
package/dist/skeleton.js CHANGED
@@ -1,11 +1,10 @@
1
- /* empty css */
2
1
  import { jsx as e, jsxs as t } from "react/jsx-runtime";
3
2
  //#region src/skeleton.tsx
4
3
  var n = () => /* @__PURE__ */ t("div", {
5
- className: "h-dvh bg-[#07090e] text-slate-100 flex flex-col md:flex-row overflow-hidden font-sans select-none w-full relative animate-pulse",
4
+ className: "h-dvh bg-dv-bg text-slate-100 flex flex-col md:flex-row overflow-hidden font-sans select-none w-full relative animate-pulse",
6
5
  children: [
7
6
  /* @__PURE__ */ t("aside", {
8
- className: "hidden md:flex w-80 border-r border-slate-800 bg-[#0c0e14] h-full flex-col shrink-0",
7
+ className: "hidden md:flex w-80 border-r border-slate-800 bg-dv-modal h-full flex-col shrink-0",
9
8
  children: [
10
9
  /* @__PURE__ */ t("div", {
11
10
  className: "p-4 border-b border-slate-800 space-y-2 text-left",
@@ -49,7 +48,7 @@ var n = () => /* @__PURE__ */ t("div", {
49
48
  className: "flex-1 flex flex-col h-full min-w-0 overflow-hidden bg-black relative",
50
49
  children: [
51
50
  /* @__PURE__ */ t("div", {
52
- className: "px-3 py-2 md:px-4 md:py-3 bg-[#0c0e14] border-b border-slate-800 flex flex-nowrap items-center justify-between gap-3 shrink-0 w-full overflow-hidden",
51
+ className: "px-3 py-2 md:px-4 md:py-3 bg-dv-modal border-b border-slate-800 flex flex-nowrap items-center justify-between gap-3 shrink-0 w-full overflow-hidden",
53
52
  children: [/* @__PURE__ */ e("div", {
54
53
  className: "flex-1 min-w-0 flex flex-nowrap gap-1.5 overflow-hidden",
55
54
  children: [...[
@@ -99,13 +98,13 @@ var n = () => /* @__PURE__ */ t("div", {
99
98
  ]
100
99
  }),
101
100
  /* @__PURE__ */ t("div", {
102
- className: "hidden md:flex h-14 border-t border-slate-800 bg-[#0c0e14] items-center px-4 gap-4 shrink-0",
101
+ className: "hidden md:flex h-14 border-t border-slate-800 bg-dv-modal items-center px-4 gap-4 shrink-0",
103
102
  children: [/* @__PURE__ */ e("div", { className: "h-8 w-8 bg-slate-900/50 border border-slate-800/50 rounded-lg shrink-0" }), /* @__PURE__ */ e("div", { className: "flex-1 h-2 bg-slate-900/60 rounded-full" })]
104
103
  })
105
104
  ]
106
105
  }),
107
106
  /* @__PURE__ */ t("footer", {
108
- className: "md:hidden w-full border-t border-slate-800 bg-[#0c0e14] shrink-0 flex flex-col h-56",
107
+ className: "md:hidden w-full border-t border-slate-800 bg-dv-modal shrink-0 flex flex-col h-56",
109
108
  children: [/* @__PURE__ */ t("div", {
110
109
  className: "flex items-center justify-between p-3 border-b border-slate-800",
111
110
  children: [/* @__PURE__ */ e("div", { className: "h-3 bg-slate-800/50 rounded-md w-1/3" }), /* @__PURE__ */ t("div", {
package/dist/style.css CHANGED
@@ -1,3 +1,2 @@
1
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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-800:oklch(45% .085 224.283);--color-cyan-950:oklch(30.2% .056 229.695);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-950:oklch(29.1% .149 302.717);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-16{bottom:calc(var(--spacing) * 16)}.left-0{left:0}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.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}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.h-0\.5{height:calc(var(--spacing) * .5)}.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-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-56{height:calc(var(--spacing) * 56)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-\[180px\]{max-height:180px}.max-h-\[260px\]{max-height:260px}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:0}.min-h-\[90px\]{min-height:90px}.min-h-\[120px\]{min-height:120px}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.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-60{width:calc(var(--spacing) * 60)}.w-80{width:calc(var(--spacing) * 80)}.w-\[170px\]{width:170px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[200px\]{max-width:200px}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-top-right{transform-origin:100% 0}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-grab{cursor:grab}.cursor-none\!{cursor:none!important}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.appearance-none{appearance:none}.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-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}: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-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * 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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#242735\]{border-color:#242735}.border-amber-800\/80{border-color:#953d00cc}@supports (color:color-mix(in lab, red, red)){.border-amber-800\/80{border-color:color-mix(in oklab, var(--color-amber-800) 80%, transparent)}}.border-cyan-800\/80{border-color:#005f78cc}@supports (color:color-mix(in lab, red, red)){.border-cyan-800\/80{border-color:color-mix(in oklab, var(--color-cyan-800) 80%, transparent)}}.border-primary\/25{border-color:var(--dv-primary,#004461)}@supports (color:color-mix(in lab, red, red)){.border-primary\/25{border-color:color-mix(in oklab, var(--dv-primary,#004461) 25%, transparent)}}.border-purple-800\/80{border-color:#6e11b0cc}@supports (color:color-mix(in lab, red, red)){.border-purple-800\/80{border-color:color-mix(in oklab, var(--color-purple-800) 80%, transparent)}}.border-secondary,.border-secondary\/25{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/25{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 25%, transparent)}}.border-secondary\/30{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/30{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.border-secondary\/35{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/35{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 35%, transparent)}}.border-secondary\/40{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/40{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 40%, transparent)}}.border-secondary\/45{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/45{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 45%, transparent)}}.border-secondary\/60{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/60{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 60%, transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/50{border-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/50{border-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.border-slate-800\/80{border-color:#1d293dcc}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/80{border-color:color-mix(in oklab, var(--color-slate-800) 80%, transparent)}}.border-slate-900{border-color:var(--color-slate-900)}.border-slate-900\/50{border-color:#0f172b80}@supports (color:color-mix(in lab, red, red)){.border-slate-900\/50{border-color:color-mix(in oklab, var(--color-slate-900) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\/5{border-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.border-t-transparent{border-top-color:#0000}.bg-\[\#0c0e14\]{background-color:#0c0e14}.bg-\[\#0e1017\]{background-color:#0e1017}.bg-\[\#1a1d27\]{background-color:#1a1d27}.bg-\[\#090b11\]{background-color:#090b11}.bg-\[\#090b11\]\/90{background-color:oklab(15.0381% .0000409335 -.0134042/.9)}.bg-\[\#07090e\]{background-color:#07090e}.bg-\[\#11131c\]{background-color:#11131c}.bg-\[\#11131c\]\/90{background-color:oklab(18.9059% .00154323 -.0185384/.9)}.bg-\[\#13151c\]\/65{background-color:oklab(19.6884% .00063619 -.0144322/.65)}.bg-\[\#13151c\]\/80{background-color:oklab(19.6884% .00063619 -.0144322/.8)}.bg-\[\#13151c\]\/85{background-color:oklab(19.6884% .00063619 -.0144322/.85)}.bg-\[\#13151c\]\/90{background-color:oklab(19.6884% .00063619 -.0144322/.9)}.bg-\[\#060608\]{background-color:#060608}.bg-\[\#060608\]\/95{background-color:oklab(12.3375% .00148499 -.00533298/.95)}.bg-\[\#242735\]{background-color:#242735}.bg-amber-950\/80{background-color:#461901cc}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/80{background-color:color-mix(in oklab, var(--color-amber-950) 80%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-cyan-950\/80{background-color:#053345cc}@supports (color:color-mix(in lab, red, red)){.bg-cyan-950\/80{background-color:color-mix(in oklab, var(--color-cyan-950) 80%, transparent)}}.bg-primary\/10{background-color:var(--dv-primary,#004461)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--dv-primary,#004461) 10%, transparent)}}.bg-purple-950\/80{background-color:#3c0366cc}@supports (color:color-mix(in lab, red, red)){.bg-purple-950\/80{background-color:color-mix(in oklab, var(--color-purple-950) 80%, transparent)}}.bg-secondary\/5{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/5{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 5%, transparent)}}.bg-secondary\/10{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/10{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.bg-secondary\/15{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/15{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 15%, transparent)}}.bg-secondary\/30{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/30{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.bg-slate-800\/20{background-color:#1d293d33}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/20{background-color:color-mix(in oklab, var(--color-slate-800) 20%, transparent)}}.bg-slate-800\/30{background-color:#1d293d4d}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/30{background-color:color-mix(in oklab, var(--color-slate-800) 30%, transparent)}}.bg-slate-800\/40{background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/40{background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.bg-slate-800\/50{background-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/50{background-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.bg-slate-800\/60{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/60{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.bg-slate-900\/20{background-color:#0f172b33}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/20{background-color:color-mix(in oklab, var(--color-slate-900) 20%, transparent)}}.bg-slate-900\/50{background-color:#0f172b80}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/50{background-color:color-mix(in oklab, var(--color-slate-900) 50%, transparent)}}.bg-slate-900\/60{background-color:#0f172b99}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/60{background-color:color-mix(in oklab, var(--color-slate-900) 60%, transparent)}}.bg-slate-950{background-color:var(--color-slate-950)}.bg-slate-950\/60{background-color:#02061899}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/60{background-color:color-mix(in oklab, var(--color-slate-950) 60%, transparent)}}.bg-slate-950\/70{background-color:#020618b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/70{background-color:color-mix(in oklab, var(--color-slate-950) 70%, transparent)}}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/80{background-color:color-mix(in oklab, var(--color-slate-950) 80%, transparent)}}.bg-slate-950\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/95{background-color:color-mix(in oklab, var(--color-slate-950) 95%, transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.from-black{--tw-gradient-from:var(--color-black);--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-secondary{--tw-gradient-from:var(--dv-secondary,#bb2d19);--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-black\/70{--tw-gradient-via:#000000b3}@supports (color:color-mix(in lab, red, red)){.via-black\/70{--tw-gradient-via:color-mix(in oklab, var(--color-black) 70%, transparent)}}.via-black\/70{--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-secondary\/50{--tw-gradient-to:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.to-secondary\/50{--tw-gradient-to:color-mix(in oklab, var(--dv-secondary,#bb2d19) 50%, transparent)}}.to-secondary\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.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-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-\[2px\]{padding:2px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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)}.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)}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-1{padding-left:var(--spacing)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-amber-400{color:var(--color-amber-400)}.text-cyan-400{color:var(--color-cyan-400)}.text-primary{color:var(--dv-primary,#004461)}.text-purple-400{color:var(--color-purple-400)}.text-rose-400{color:var(--color-rose-400)}.text-secondary{color:var(--dv-secondary,#bb2d19)}.text-slate-100{color:var(--color-slate-100)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.uppercase{text-transform:uppercase}.accent-secondary{accent-color:var(--dv-secondary,#bb2d19)}.opacity-0{opacity:0}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 1px 4px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-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)}.shadow-secondary\/5{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/10{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/15{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/20{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/30{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-secondary\/20{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/20{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.ring-secondary\/30{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/30{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.ring-secondary\/35{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/35{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 35%, transparent)}}.blur-xs{--tw-blur:blur(var(--blur-xs));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.brightness-110{--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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.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)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[\#30354a\]:hover{border-color:#30354a}.hover\:border-rose-800\/55:hover{border-color:#a300378c}@supports (color:color-mix(in lab, red, red)){.hover\:border-rose-800\/55:hover{border-color:color-mix(in oklab, var(--color-rose-800) 55%, transparent)}}.hover\:border-secondary\/20:hover{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.hover\:border-secondary\/20:hover{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.hover\:border-slate-700\/50:hover{border-color:#31415880}@supports (color:color-mix(in lab, red, red)){.hover\:border-slate-700\/50:hover{border-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.hover\:border-slate-800\/50:hover{border-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.hover\:border-slate-800\/50:hover{border-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.hover\:bg-\[\#202432\]:hover{background-color:#202432}.hover\:bg-\[\#222634\]:hover{background-color:#222634}.hover\:bg-rose-950\/25:hover{background-color:#4d021840}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rose-950\/25:hover{background-color:color-mix(in oklab, var(--color-rose-950) 25%, transparent)}}.hover\:bg-slate-800\/10:hover{background-color:#1d293d1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/10:hover{background-color:color-mix(in oklab, var(--color-slate-800) 10%, transparent)}}.hover\:bg-slate-800\/40:hover{background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/40:hover{background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.hover\:bg-slate-800\/60:hover{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/60:hover{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.hover\:bg-slate-900\/60:hover{background-color:#0f172b99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-900\/60:hover{background-color:color-mix(in oklab, var(--color-slate-900) 60%, transparent)}}.hover\:text-rose-200:hover{color:var(--color-rose-200)}.hover\:text-rose-400:hover{color:var(--color-rose-400)}.hover\:text-slate-100:hover{color:var(--color-slate-100)}.hover\:text-slate-200:hover{color:var(--color-slate-200)}.hover\:text-white:hover{color:var(--color-white)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:translate-y-0:active{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.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-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:transform-none:disabled{transform:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-40:disabled{opacity:.4}.data-active\:border-secondary\/20[data-active]{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-active\:border-secondary\/20[data-active]{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.data-active\:bg-secondary\/10[data-active]{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-active\:bg-secondary\/10[data-active]{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.data-active\:font-bold[data-active]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-active\:text-secondary[data-active]{color:var(--dv-secondary,#bb2d19)}.data-\[state\=active\]\:border-secondary\/20[data-state=active]{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=active\]\:border-secondary\/20[data-state=active]{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.data-\[state\=active\]\:bg-secondary\/10[data-state=active]{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=active\]\:bg-secondary\/10[data-state=active]{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.data-\[state\=active\]\:font-bold[data-state=active]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-\[state\=active\]\:text-secondary[data-state=active]{color:var(--dv-secondary,#bb2d19)}@media (width>=48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}.md\:pl-0{padding-left:0}}.\[\&_canvas\]\:cursor-none\! canvas{cursor:none!important}}@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-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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-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-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
3
- /*$vite$:1*/
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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-800:oklch(45% .085 224.283);--color-cyan-950:oklch(30.2% .056 229.695);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-950:oklch(29.1% .149 302.717);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-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;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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-16{bottom:calc(var(--spacing) * 16)}.left-0{left:0}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-0\.5{height:calc(var(--spacing) * .5)}.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-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-56{height:calc(var(--spacing) * 56)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-\[180px\]{max-height:180px}.max-h-\[260px\]{max-height:260px}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:0}.min-h-\[90px\]{min-height:90px}.min-h-\[120px\]{min-height:120px}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.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-60{width:calc(var(--spacing) * 60)}.w-80{width:calc(var(--spacing) * 80)}.w-\[170px\]{width:170px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[200px\]{max-width:200px}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-top-right{transform-origin:100% 0}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-grab{cursor:grab}.cursor-none\!{cursor:none!important}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.appearance-none{appearance:none}.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-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}: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-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * 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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-800\/80{border-color:#953d00cc}@supports (color:color-mix(in lab, red, red)){.border-amber-800\/80{border-color:color-mix(in oklab, var(--color-amber-800) 80%, transparent)}}.border-cyan-800\/80{border-color:#005f78cc}@supports (color:color-mix(in lab, red, red)){.border-cyan-800\/80{border-color:color-mix(in oklab, var(--color-cyan-800) 80%, transparent)}}.border-dv-border{border-color:var(--dv-border,#242735)}.border-primary\/25{border-color:var(--dv-primary,#004461)}@supports (color:color-mix(in lab, red, red)){.border-primary\/25{border-color:color-mix(in oklab, var(--dv-primary,#004461) 25%, transparent)}}.border-purple-800\/80{border-color:#6e11b0cc}@supports (color:color-mix(in lab, red, red)){.border-purple-800\/80{border-color:color-mix(in oklab, var(--color-purple-800) 80%, transparent)}}.border-secondary,.border-secondary\/25{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/25{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 25%, transparent)}}.border-secondary\/30{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/30{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.border-secondary\/35{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/35{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 35%, transparent)}}.border-secondary\/40{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/40{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 40%, transparent)}}.border-secondary\/45{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/45{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 45%, transparent)}}.border-secondary\/60{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.border-secondary\/60{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 60%, transparent)}}.border-slate-500{border-color:var(--color-slate-500)}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/50{border-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/50{border-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.border-slate-800\/80{border-color:#1d293dcc}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/80{border-color:color-mix(in oklab, var(--color-slate-800) 80%, transparent)}}.border-slate-900{border-color:var(--color-slate-900)}.border-slate-900\/50{border-color:#0f172b80}@supports (color:color-mix(in lab, red, red)){.border-slate-900\/50{border-color:color-mix(in oklab, var(--color-slate-900) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\/5{border-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.border-t-transparent{border-top-color:#0000}.bg-amber-950\/80{background-color:#461901cc}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/80{background-color:color-mix(in oklab, var(--color-amber-950) 80%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-cyan-950\/80{background-color:#053345cc}@supports (color:color-mix(in lab, red, red)){.bg-cyan-950\/80{background-color:color-mix(in oklab, var(--color-cyan-950) 80%, transparent)}}.bg-dv-bg{background-color:var(--dv-bg,#0e1017)}.bg-dv-border{background-color:var(--dv-border,#242735)}.bg-dv-card,.bg-dv-card\/90{background-color:var(--dv-card,#11131c)}@supports (color:color-mix(in lab, red, red)){.bg-dv-card\/90{background-color:color-mix(in oklab, var(--dv-card,#11131c) 90%, transparent)}}.bg-dv-chrome,.bg-dv-chrome\/95{background-color:var(--dv-chrome,#060608)}@supports (color:color-mix(in lab, red, red)){.bg-dv-chrome\/95{background-color:color-mix(in oklab, var(--dv-chrome,#060608) 95%, transparent)}}.bg-dv-modal{background-color:var(--dv-modal,#0c0e14)}.bg-dv-overlay\/65{background-color:var(--dv-overlay,#13151c)}@supports (color:color-mix(in lab, red, red)){.bg-dv-overlay\/65{background-color:color-mix(in oklab, var(--dv-overlay,#13151c) 65%, transparent)}}.bg-dv-overlay\/80{background-color:var(--dv-overlay,#13151c)}@supports (color:color-mix(in lab, red, red)){.bg-dv-overlay\/80{background-color:color-mix(in oklab, var(--dv-overlay,#13151c) 80%, transparent)}}.bg-dv-overlay\/85{background-color:var(--dv-overlay,#13151c)}@supports (color:color-mix(in lab, red, red)){.bg-dv-overlay\/85{background-color:color-mix(in oklab, var(--dv-overlay,#13151c) 85%, transparent)}}.bg-dv-overlay\/90{background-color:var(--dv-overlay,#13151c)}@supports (color:color-mix(in lab, red, red)){.bg-dv-overlay\/90{background-color:color-mix(in oklab, var(--dv-overlay,#13151c) 90%, transparent)}}.bg-dv-panel{background-color:var(--dv-panel,#1a1d27)}.bg-dv-viewport,.bg-dv-viewport\/90{background-color:var(--dv-viewport,#090b11)}@supports (color:color-mix(in lab, red, red)){.bg-dv-viewport\/90{background-color:color-mix(in oklab, var(--dv-viewport,#090b11) 90%, transparent)}}.bg-primary\/10{background-color:var(--dv-primary,#004461)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--dv-primary,#004461) 10%, transparent)}}.bg-purple-950\/80{background-color:#3c0366cc}@supports (color:color-mix(in lab, red, red)){.bg-purple-950\/80{background-color:color-mix(in oklab, var(--color-purple-950) 80%, transparent)}}.bg-secondary\/5{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/5{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 5%, transparent)}}.bg-secondary\/10{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/10{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.bg-secondary\/15{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/15{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 15%, transparent)}}.bg-secondary\/30{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\/30{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.bg-slate-800\/20{background-color:#1d293d33}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/20{background-color:color-mix(in oklab, var(--color-slate-800) 20%, transparent)}}.bg-slate-800\/30{background-color:#1d293d4d}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/30{background-color:color-mix(in oklab, var(--color-slate-800) 30%, transparent)}}.bg-slate-800\/40{background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/40{background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.bg-slate-800\/50{background-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/50{background-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.bg-slate-800\/60{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/60{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.bg-slate-900\/20{background-color:#0f172b33}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/20{background-color:color-mix(in oklab, var(--color-slate-900) 20%, transparent)}}.bg-slate-900\/50{background-color:#0f172b80}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/50{background-color:color-mix(in oklab, var(--color-slate-900) 50%, transparent)}}.bg-slate-900\/60{background-color:#0f172b99}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/60{background-color:color-mix(in oklab, var(--color-slate-900) 60%, transparent)}}.bg-slate-950{background-color:var(--color-slate-950)}.bg-slate-950\/60{background-color:#02061899}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/60{background-color:color-mix(in oklab, var(--color-slate-950) 60%, transparent)}}.bg-slate-950\/70{background-color:#020618b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/70{background-color:color-mix(in oklab, var(--color-slate-950) 70%, transparent)}}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/80{background-color:color-mix(in oklab, var(--color-slate-950) 80%, transparent)}}.bg-slate-950\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/95{background-color:color-mix(in oklab, var(--color-slate-950) 95%, transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.from-black{--tw-gradient-from:var(--color-black);--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-secondary{--tw-gradient-from:var(--dv-secondary,#bb2d19);--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-black\/70{--tw-gradient-via:#000000b3}@supports (color:color-mix(in lab, red, red)){.via-black\/70{--tw-gradient-via:color-mix(in oklab, var(--color-black) 70%, transparent)}}.via-black\/70{--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-secondary\/50{--tw-gradient-to:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.to-secondary\/50{--tw-gradient-to:color-mix(in oklab, var(--dv-secondary,#bb2d19) 50%, transparent)}}.to-secondary\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.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-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-\[2px\]{padding:2px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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)}.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)}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-1{padding-left:var(--spacing)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-amber-400{color:var(--color-amber-400)}.text-cyan-400{color:var(--color-cyan-400)}.text-primary{color:var(--dv-primary,#004461)}.text-purple-400{color:var(--color-purple-400)}.text-rose-400{color:var(--color-rose-400)}.text-secondary{color:var(--dv-secondary,#bb2d19)}.text-slate-100{color:var(--color-slate-100)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.uppercase{text-transform:uppercase}.accent-secondary{accent-color:var(--dv-secondary,#bb2d19)}.opacity-0{opacity:0}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 1px 4px var(--tw-shadow-color,#00000080);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-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)}.shadow-secondary\/5{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/10{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/15{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/20{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-secondary\/30{--tw-shadow-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-secondary\/20{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/20{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.ring-secondary\/30{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/30{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 30%, transparent)}}.ring-secondary\/35{--tw-ring-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\/35{--tw-ring-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 35%, transparent)}}.blur-xs{--tw-blur:blur(var(--blur-xs));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.brightness-110{--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,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.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)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-dv-border-hover:hover{border-color:var(--dv-border-hover,#30354a)}.hover\:border-rose-800\/55:hover{border-color:#a300378c}@supports (color:color-mix(in lab, red, red)){.hover\:border-rose-800\/55:hover{border-color:color-mix(in oklab, var(--color-rose-800) 55%, transparent)}}.hover\:border-secondary\/20:hover{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.hover\:border-secondary\/20:hover{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.hover\:border-slate-700\/50:hover{border-color:#31415880}@supports (color:color-mix(in lab, red, red)){.hover\:border-slate-700\/50:hover{border-color:color-mix(in oklab, var(--color-slate-700) 50%, transparent)}}.hover\:border-slate-800\/50:hover{border-color:#1d293d80}@supports (color:color-mix(in lab, red, red)){.hover\:border-slate-800\/50:hover{border-color:color-mix(in oklab, var(--color-slate-800) 50%, transparent)}}.hover\:bg-dv-panel-hover:hover{background-color:var(--dv-panel-hover,#202432)}.hover\:bg-dv-panel-hover-alt:hover{background-color:var(--dv-panel-hover-alt,#222634)}.hover\:bg-rose-950\/25:hover{background-color:#4d021840}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rose-950\/25:hover{background-color:color-mix(in oklab, var(--color-rose-950) 25%, transparent)}}.hover\:bg-slate-800\/10:hover{background-color:#1d293d1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/10:hover{background-color:color-mix(in oklab, var(--color-slate-800) 10%, transparent)}}.hover\:bg-slate-800\/40:hover{background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/40:hover{background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.hover\:bg-slate-800\/60:hover{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-800\/60:hover{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.hover\:bg-slate-900\/60:hover{background-color:#0f172b99}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-900\/60:hover{background-color:color-mix(in oklab, var(--color-slate-900) 60%, transparent)}}.hover\:text-rose-200:hover{color:var(--color-rose-200)}.hover\:text-rose-400:hover{color:var(--color-rose-400)}.hover\:text-slate-100:hover{color:var(--color-slate-100)}.hover\:text-slate-200:hover{color:var(--color-slate-200)}.hover\:text-white:hover{color:var(--color-white)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:translate-y-0:active{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.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-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:transform-none:disabled{transform:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-40:disabled{opacity:.4}.data-active\:border-secondary\/20[data-active]{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-active\:border-secondary\/20[data-active]{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.data-active\:bg-secondary\/10[data-active]{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-active\:bg-secondary\/10[data-active]{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.data-active\:font-bold[data-active]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-active\:text-secondary[data-active]{color:var(--dv-secondary,#bb2d19)}.data-\[state\=active\]\:border-secondary\/20[data-state=active]{border-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=active\]\:border-secondary\/20[data-state=active]{border-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 20%, transparent)}}.data-\[state\=active\]\:bg-secondary\/10[data-state=active]{background-color:var(--dv-secondary,#bb2d19)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=active\]\:bg-secondary\/10[data-state=active]{background-color:color-mix(in oklab, var(--dv-secondary,#bb2d19) 10%, transparent)}}.data-\[state\=active\]\:font-bold[data-state=active]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-\[state\=active\]\:text-secondary[data-state=active]{color:var(--dv-secondary,#bb2d19)}@media (min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}.md\:pl-0{padding-left:0}}.\[\&_canvas\]\:cursor-none\! canvas{cursor:none!important}}@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-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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-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-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
package/dist/types.d.ts CHANGED
@@ -48,6 +48,47 @@ export type PresetsConfig = Record<string, Record<string, {
48
48
  W: number;
49
49
  C: number;
50
50
  }>>;
51
+ /**
52
+ * Tema del visor: colores primario/secundario con sus contrastes y tokens de
53
+ * superficie opcionales. Todos los campos son opcionales; los no definidos
54
+ * usan el default del paquete (o el tema del host en el caso de Symphony).
55
+ *
56
+ * Se aplican como variables CSS (`--dv-*`) inline en el elemento raíz del
57
+ * visor: alcance por instancia, sin recompilar estilos ni contaminar el
58
+ * `:root` del host.
59
+ */
60
+ export interface DicomViewerTheme {
61
+ /** Color de acento primario (usado en spinners, contadores, presets). */
62
+ primary?: string;
63
+ /** Contraste del primario (texto sobre fondos `primary`). */
64
+ primaryForeground?: string;
65
+ /** Color de acento secundario (herramientas activas, overlays, medidor). */
66
+ secondary?: string;
67
+ /** Contraste del secundario. */
68
+ secondaryForeground?: string;
69
+ /** Fondo de la página del visor (default #0e1017). */
70
+ background?: string;
71
+ /** Barras superior/inferior y sidebar (default #060608). */
72
+ chrome?: string;
73
+ /** Fondo del canvas/viewport (default #090b11). */
74
+ viewport?: string;
75
+ /** Cajas flotantes sobre la imagen (default #13151c). */
76
+ overlay?: string;
77
+ /** Superficie de botones/paneles (default #1a1d27). */
78
+ panel?: string;
79
+ /** Hover de paneles (default #202432). */
80
+ panelHover?: string;
81
+ /** Hover alternativo (botones del sidebar, default #222634). */
82
+ panelHoverAlt?: string;
83
+ /** Bordes de superficies (default #242735). */
84
+ border?: string;
85
+ /** Hover de bordes (default #30354a). */
86
+ borderHover?: string;
87
+ /** Tarjetas de series (default #11131c). */
88
+ card?: string;
89
+ /** Fondo de modales y skeleton (default #0c0e14). */
90
+ modal?: string;
91
+ }
51
92
  export type ActionPlacement = "toolbar" | "sidebar" | "footer";
52
93
  export interface ActionContext {
53
94
  study: DicomStudy;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medicaresoft/dicom-viewer",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "Visor DICOM reutilizable basado en Cornerstone v2. Núcleo de visualización sin lógica de negocio ni permisos: el host inyecta datos, acciones y branding.",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "**/*.css"
31
31
  ],
32
32
  "scripts": {
33
- "build": "vite build && tsc -p tsconfig.build.json",
33
+ "build": "vite build && tsc -p tsconfig.build.json && tailwindcss -i style.css -o dist/style.css --minify",
34
34
  "typecheck": "tsc --noEmit",
35
35
  "link:shared": "bash scripts/link-shared-deps.sh",
36
36
  "prepublishOnly": "npm run build"
@@ -51,6 +51,7 @@
51
51
  "tailwind-merge": "^3.6.0"
52
52
  },
53
53
  "devDependencies": {
54
+ "@tailwindcss/cli": "^4.3.0",
54
55
  "@tailwindcss/vite": "^4.3.0",
55
56
  "@types/hammerjs": "^2.0.46",
56
57
  "@types/react": "^19.2.14",