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

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

b,
strong {
  font-weight: bolder;
}

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

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

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

small {
  font-size: 80%;
}

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

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

button,
select {
  text-transform: none;
}

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

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

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

:-moz-focusring {
  outline: auto;
}

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

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

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

progress {
  vertical-align: baseline;
}

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

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

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

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

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

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

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

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

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

summary {
  display: list-item;
}

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

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

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

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

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

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

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

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

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

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

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

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

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

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

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  :root {
    --background: 42 31% 94%;
    --foreground: 38 11% 15%;
    --card: 45 100% 99%;
    --card-foreground: 38 11% 15%;
    --popover: 43 100% 99%;
    --popover-foreground: 38 11% 15%;
    --primary: 212 92% 45%;
    --primary-foreground: 0 0% 100%;
    --secondary: 42 29% 91%;
    --secondary-foreground: 38 12% 36%;
    --muted: 40 32% 91%;
    --muted-foreground: 38 12% 36%;
    --accent: 40 32% 91%;
    --accent-foreground: 38 11% 15%;
    --border: 40 28% 87%;
    --input: 40 28% 87%;
    --ring: 212 92% 45%;
    --up: 145 70% 27%;
    --down: 6 72% 40%;
    --warn: 32 90% 30%;
    --scrollbar-hover: 38 20% 71%;
    --radius: 0.5rem;
    color-scheme: light dark;
  }

  /* 🔴 `:not([data-theme])` — con el selector de estilo del tab ⚙ (2026-08-17)
     la preferencia del sistema es solo el DEFAULT: si el usuario eligió uno, el
     `data-theme` del `<html>` manda. Sin esta guarda, elegir "Claro" en un
     sistema oscuro no haría nada (misma especificidad, y el media query viene
     después en el archivo). */
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme]) {
      --background: 40 7% 8%;
      --foreground: 40 22% 92%;
      --card: 40 4% 13%;
      --card-foreground: 40 22% 92%;
      --popover: 45 8% 10%;
      --popover-foreground: 40 22% 92%;
      --primary: 212 100% 70%;
      --primary-foreground: 222 48% 5%;
      --secondary: 43 9% 16%;
      --secondary-foreground: 38 8% 63%;
      --muted: 43 9% 16%;
      --muted-foreground: 38 8% 63%;
      --accent: 43 9% 16%;
      --accent-foreground: 40 22% 92%;
      --border: 45 8% 19%;
      --input: 45 8% 19%;
      --ring: 212 100% 70%;
      --up: 145 63% 55%;
      --down: 6 90% 70%;
      --warn: 37 90% 65%;
      --scrollbar-hover: 45 8% 25%;
    }
  }

  /* ── LOS CUATRO ESTILOS ELEGIBLES (2026-08-17) ────────────────────────────
     Pedido del usuario: *"poné cobalto y carbon como estilos a elegir en config
     como en la vm remota"*. Son los mismos cuatro de glocomapp
     (`AuthContext.THEMES = ['dark','light','cobalto','carbon']`), con SUS
     valores, convertidos a HSL como el resto de la paleta.

     🔴 Como allá, un estilo **solo pisa SUPERFICIES**: la marca y los
     semánticos (`up`/`down`/`warn`) valen lo mismo en los cuatro. Un verde de
     "ganó" no cambia de significado porque cambie el fondo — y en esta pantalla
     ese verde es plata de verdad. Cobalto sí trae su propio `primary` (#4d8dff),
     que es chrome, no semántica.
     ⚠️ Si se agrega un estilo, va acá y en `ESTILOS` de `ConfigTab.jsx`: la
     lista de la pantalla y la del CSS se separan en silencio. */

  /* Claro — el mismo de `:root`, explícito para poder FORZARLO desde el panel
     aunque el sistema esté en oscuro. */
  :root[data-theme="light"] {
    color-scheme: light;
    --background: 42 31% 94%; --foreground: 38 11% 15%;
    --card: 45 100% 99%; --card-foreground: 38 11% 15%;
    --popover: 43 100% 99%; --popover-foreground: 38 11% 15%;
    --primary: 212 92% 45%; --primary-foreground: 0 0% 100%;
    --secondary: 42 29% 91%; --secondary-foreground: 38 12% 36%;
    --muted: 40 32% 91%; --muted-foreground: 38 12% 36%;
    --accent: 40 32% 91%; --accent-foreground: 38 11% 15%;
    --border: 40 28% 87%; --input: 40 28% 87%; --ring: 212 92% 45%;
    --up: 145 70% 27%; --down: 6 72% 40%; --warn: 32 90% 30%;
    --scrollbar-hover: 38 20% 71%;
  }

  /* Oscuro — el default de glocomapp (neutros cálidos). */
  :root[data-theme="dark"] {
    color-scheme: dark;
    --background: 40 7% 8%; --foreground: 40 22% 92%;
    --card: 40 4% 13%; --card-foreground: 40 22% 92%;
    --popover: 45 8% 10%; --popover-foreground: 40 22% 92%;
    --primary: 212 100% 70%; --primary-foreground: 222 48% 5%;
    --secondary: 43 9% 16%; --secondary-foreground: 38 8% 63%;
    --muted: 43 9% 16%; --muted-foreground: 38 8% 63%;
    --accent: 43 9% 16%; --accent-foreground: 40 22% 92%;
    --border: 45 8% 19%; --input: 45 8% 19%; --ring: 212 100% 70%;
    --up: 145 63% 55%; --down: 6 90% 70%; --warn: 37 90% 65%;
    --scrollbar-hover: 45 8% 25%;
  }

  /* Cobalto — azul profundo (#070b14 / #131c2b / #4d8dff). */
  :root[data-theme="cobalto"] {
    color-scheme: dark;
    --background: 222 48% 5%; --foreground: 216 48% 94%;
    --card: 218 39% 12%; --card-foreground: 216 48% 94%;
    --popover: 218 42% 9%; --popover-foreground: 216 48% 94%;
    --primary: 218 100% 70%; --primary-foreground: 222 48% 5%;
    --secondary: 214 41% 7%; --secondary-foreground: 214 28% 70%;
    --muted: 217 34% 17%; --muted-foreground: 214 28% 70%;
    --accent: 217 34% 17%; --accent-foreground: 216 48% 94%;
    --border: 215 30% 26%; --input: 215 30% 26%; --ring: 218 100% 65%;
    --up: 145 63% 55%; --down: 6 90% 70%; --warn: 37 90% 65%;
    --scrollbar-hover: 217 30% 32%;
  }

  /* Carbón — gris neutro casi negro (#08090a / #161718). */
  :root[data-theme="carbon"] {
    color-scheme: dark;
    --background: 210 11% 4%; --foreground: 218 21% 85%;
    --card: 210 4% 9%; --card-foreground: 218 21% 85%;
    --popover: 210 6% 6%; --popover-foreground: 218 21% 85%;
    --primary: 212 100% 70%; --primary-foreground: 222 48% 5%;
    --secondary: 210 8% 5%; --secondary-foreground: 219 8% 68%;
    --muted: 216 8% 12%; --muted-foreground: 219 8% 68%;
    --accent: 216 8% 12%; --accent-foreground: 218 21% 85%;
    --border: 222 10% 19%; --input: 222 10% 19%; --ring: 212 100% 70%;
    --up: 145 63% 55%; --down: 6 90% 70%; --warn: 37 90% 65%;
    --scrollbar-hover: 222 8% 23%;
  }

  * {
  border-color: hsl(var(--border));
}
  body {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "cv02", "cv03";
}
  /* tabulares en todo número: las columnas de pp/$ tienen que alinearse */
  .tnum { font-variant-numeric: tabular-nums; }
  /* Subrayado punteado del glosario: heredado del dashboard viejo, es la señal
     de "acá hay una explicación" que el usuario ya tiene aprendida. */
  .helpable {
  cursor: help;
  text-decoration-line: underline;
  text-decoration-color: hsl(var(--muted-foreground));
  text-decoration-style: dotted;
  text-underline-offset: 4px;
}
  @media (max-width: 639px) {
  .helpable { min-height: 2.75rem; min-width: 2.75rem; }
  }
  /* La barra de tabs scrollea en horizontal en celular sin mostrar scrollbar */

  /* Scrollbar del design system de glocomapp (regla ui-base #4: nunca la del
     navegador). Copiada con sus medidas; los colores salen de los tokens de
     acá para que siga los dos temas. Es la que la regla M4-C exige al lado de
     todo `overflow-x-auto`. */
  .custom-scrollbar-thin { scrollbar-width: thin; scrollbar-color: hsl(var(--border)) transparent; }
  .custom-scrollbar-thin::-webkit-scrollbar { width: 6px; height: 6px; }
  .custom-scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
  .custom-scrollbar-thin::-webkit-scrollbar-thumb { background: hsl(var(--border)); border-radius: 3px; border: none; }
  .custom-scrollbar-thin::-webkit-scrollbar-thumb:hover { background: hsl(var(--scrollbar-hover)); }
  .custom-scrollbar-thin::-webkit-scrollbar-button { width: 0; height: 0; display: none; }

  /* M6 — táctil de 44px SOLO en pantalla chica. No toca la densidad de
     escritorio, que es lo que la regla pide explícitamente. */
  .tap { min-height: 2.75rem; min-width: 2.75rem; }
  @media (min-width: 640px) { .tap { min-height: 2.25rem; min-width: 2.25rem; } }

  /* LA BARRA DEL ENCABEZADO DE LA TABLA DE ÓRDENES (2026-08-17): buscador a la
     izquierda con ancho moderado, pestañas CENTRADAS (ui-base #15) y la "i" a
     la derecha. Es grilla y no flex porque centrado tiene que ser centrado:
     con flex las pestañas quedan donde sobra espacio, no en el eje de la card.
     En angosto el buscador se lleva su renglón (M12) y el centrado se sostiene
     con un hueco del mismo ancho que la "i".
     Va en CSS y no en clases arbitrarias de Tailwind porque
     `grid-template-areas` con varias filas no sobrevive al parser de valores
     arbitrarios. */
  .vb-tools {
    display: grid;
    gap: .5rem;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "buscar buscar" "fecha fecha" "tabs info";
  }
  .vb-tools-buscar { grid-area: buscar; }
  .vb-tools-hueco { display: none; }
  .vb-tools-tabs {
    grid-area: tabs;
    justify-self: start;
    max-width: 100%;
    overflow-x: auto;
  }
  .vb-tools-info { grid-area: info; justify-self: end; }
  /* 🔴 EL FILTRO DE FECHA SE LLEVA SU PROPIO RENGLÓN, EN LOS DOS ANCHOS
     (2026-08-29). Los dos campos miden ~21rem: metidos en la celda del buscador
     harían que la columna izquierda dejara de ser un tercio y las pestañas se
     correrían del eje de la card — o sea romperían la regla ui-base #15
     (pestañas CENTRADAS) que esta grilla existe para cumplir. Con renglón propio
     la fila de pestañas queda EXACTAMENTE como estaba y el assert de centrado
     sigue describiendo lo mismo. */
  .vb-tools-fecha { grid-area: fecha; justify-self: start; }
  @media (min-width: 640px) {
    .vb-tools {
      grid-template-columns: 1fr auto 1fr;
      grid-template-areas: "buscar tabs info" "fecha fecha fecha";
    }
    .vb-tools-buscar { width: 16rem; max-width: 100%; }
  }
  /* Paleta categórica de la banca simulada (2026-08-08). Salió del validador
     de la guía de dataviz, corrido en los DOS modos: en claro pasa daltonismo
     y contraste (el magenta queda apenas bajo 3:1 y por eso cada línea lleva
     etiqueta escrita + tabla debajo, que es la compensación que pide la regla);
     en oscuro pasa todo. El VERDE es la candidata, por pedido del usuario.
     El color sigue a la REGLA, no a su puesto: apagar una línea no repinta las
     otras. Si se agrega una regla, se le asigna el siguiente color de la
     paleta y se vuelve a correr el validador — no se inventa un tono. */
  .banca-viz {
    --serie-plano10: #2a78d6;   /* azul */
    /* PLANO $5 comparte el azul de `plano10`: es su gemela exacta —la misma regla
       con otro monto— y se distingue por el TRAZO punteado, que declara el
       servidor en `banca.REGLAS[...]["trazo"]`. Codificación compuesta (color +
       trazo) es lo que manda la guía de dataviz cuando hacen falta más series que
       tonos: inventar un noveno tono está prohibido. */
    --serie-plano5: #2a78d6;
    --serie-pct3: #e87ba4;      /* magenta */
    --serie-kelly_4: #008300;   /* VERDE — la candidata */
    --serie-kelly_2: #4a3aa7;   /* violeta */
    --serie-kelly_1: #e34948;   /* rojo */
    /* (acá vivieron `kelly_bin`, `plano10_bin` y `plano5_bin`, las tres curvas del
       mecanismo por escalón, del 26/8 al 2026-09-01: se borraron con el mecanismo.
       El verde punteado y el teal quedan LIBRES para la próxima serie.) */
    /* 🔴 PÚRPURA — «PLANO $X», LA PLANA CON EL MONTO TIPEADO (2026-08-30). Es un
       color LIBRE, no inventado: quedó vacante el 29/8 al borrar las tres reglas
       de apartar, y la guía de dataviz prohíbe generar un tono nuevo. Va con
       color PROPIO y no con el azul punteado de la familia plana porque ese par
       ya está gastado (`plano10` macizo · `plano5` punteado): un tercer miembro
       necesitaría un tercer trazo, y tres punteados distintos no se distinguen
       en una curva de 250 puntos. Además esta curva es de otra naturaleza —sólo
       existe mientras dura el supuesto que el usuario pidió, como el corte— así
       que que se vea distinta de las dos fijas ES la información. */
    --serie-plano_x: #9c27b0;
    /* ÁMBAR — "apostado de verdad". No es una regla más: es la única curva que
       no es una simulación, y por eso lleva un color que no pertenece a la
       familia de las otras (hoy seis). */
    --serie-real: #b8860b;
  }
  :root[data-theme="dark"] .banca-viz,
  :root[data-theme="cobalto"] .banca-viz,
  :root[data-theme="carbon"] .banca-viz {
      --serie-plano10: #3987e5;
      --serie-plano5: #3987e5;
      --serie-pct3: #d55181;
      --serie-kelly_4: #39b96b;
      --serie-kelly_2: #9085e9;
      --serie-kelly_1: #e66767;
      --serie-plano_x: #c04ddb;
      --serie-real: #e8b93a;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme]) .banca-viz {
      --serie-plano10: #3987e5;
      --serie-plano5: #3987e5;       /* misma familia, se distingue por el trazo punteado */
      --serie-pct3: #d55181;
      --serie-kelly_4: #39b96b;
      --serie-kelly_2: #9085e9;
      --serie-kelly_1: #e66767;
      --serie-plano_x: #c04ddb;      /* el púrpura sube un paso: en oscuro el #9c27b0 queda bajo 3:1 */
      --serie-real: #e8b93a;
    }
  }
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.-right-1\.5 {
  right: -0.375rem;
}
.-right-2 {
  right: -0.5rem;
}
.-top-1\.5 {
  top: -0.375rem;
}
.-top-2 {
  top: -0.5rem;
}
.left-2 {
  left: 0.5rem;
}
.left-2\.5 {
  left: 0.625rem;
}
.right-0 {
  right: 0px;
}
.right-3 {
  right: 0.75rem;
}
.top-1\/2 {
  top: 50%;
}
.top-2\.5 {
  top: 0.625rem;
}
.top-3 {
  top: 0.75rem;
}
.z-10 {
  z-index: 10;
}
.z-50 {
  z-index: 50;
}
.col-span-1 {
  grid-column: span 1 / span 1;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-start-2 {
  grid-column-start: 2;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-auto {
  margin-left: auto;
}
.ml-px {
  margin-left: 1px;
}
.mr-0\.5 {
  margin-right: 0.125rem;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-\[1px\] {
  margin-top: 1px;
}
.mt-\[3px\] {
  margin-top: 3px;
}
.mt-auto {
  margin-top: auto;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.table-column {
  display: table-column;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.h-11 {
  height: 2.75rem;
}
.h-2 {
  height: 0.5rem;
}
.h-20 {
  height: 5rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-4 {
  height: 1rem;
}
.h-5 {
  height: 1.25rem;
}
.h-7 {
  height: 1.75rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[120px\] {
  height: 120px;
}
.h-\[140px\] {
  height: 140px;
}
.h-\[18px\] {
  height: 18px;
}
.h-\[3px\] {
  height: 3px;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-screen {
  height: 100vh;
}
.max-h-72 {
  max-height: 18rem;
}
.min-h-11 {
  min-height: 2.75rem;
}
.min-h-9 {
  min-height: 2.25rem;
}
.min-h-\[32px\] {
  min-height: 32px;
}
.w-1\/3 {
  width: 33.333333%;
}
.w-1\/4 {
  width: 25%;
}
.w-11 {
  width: 2.75rem;
}
.w-16 {
  width: 4rem;
}
.w-2 {
  width: 0.5rem;
}
.w-2\/5 {
  width: 40%;
}
.w-24 {
  width: 6rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-5 {
  width: 1.25rem;
}
.w-8 {
  width: 2rem;
}
.w-\[170px\] {
  width: 170px;
}
.w-\[260px\] {
  width: 260px;
}
.w-\[4\.5rem\] {
  width: 4.5rem;
}
.w-\[5\.5rem\] {
  width: 5.5rem;
}
.w-\[70px\] {
  width: 70px;
}
.w-\[9\.5rem\] {
  width: 9.5rem;
}
.w-full {
  width: 100%;
}
.w-max {
  width: -moz-max-content;
  width: max-content;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-\[10rem\] {
  min-width: 10rem;
}
.min-w-\[180px\] {
  min-width: 180px;
}
.min-w-\[18px\] {
  min-width: 18px;
}
.min-w-\[52rem\] {
  min-width: 52rem;
}
.min-w-\[7rem\] {
  min-width: 7rem;
}
.min-w-\[Nrem\] {
  min-width: Nrem;
}
.max-w-\[1400px\] {
  max-width: 1400px;
}
.max-w-\[16rem\] {
  max-width: 16rem;
}
.max-w-\[7rem\] {
  max-width: 7rem;
}
.max-w-\[min\(340px\2c calc\(100vw-24px\)\)\] {
  max-width: min(340px, calc(100vw - 24px));
}
.max-w-\[min\(420px\2c calc\(100vw-24px\)\)\] {
  max-width: min(420px, calc(100vw - 24px));
}
.max-w-full {
  max-width: 100%;
}
.max-w-sm {
  max-width: 24rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.table-fixed {
  table-layout: fixed;
}
.caption-bottom {
  caption-side: bottom;
}
.border-collapse {
  border-collapse: collapse;
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-default {
  cursor: default;
}
.cursor-pointer {
  cursor: pointer;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize-none {
  resize: none;
}
.resize {
  resize: both;
}
.appearance-none {
  -webkit-appearance: none;
     -moz-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-\[7\.5rem_repeat\(2\2c minmax\(0\2c 1fr\)\)\] {
  grid-template-columns: 7.5rem repeat(2,minmax(0,1fr));
}
.grid-cols-\[7\.5rem_repeat\(3\2c minmax\(0\2c 1fr\)\)\] {
  grid-template-columns: 7.5rem repeat(3,minmax(0,1fr));
}
.grid-cols-\[minmax\(0\2c 1fr\)_7rem\] {
  grid-template-columns: minmax(0,1fr) 7rem;
}
.grid-cols-\[minmax\(0\2c 1fr\)_auto\] {
  grid-template-columns: minmax(0,1fr) auto;
}
.grid-cols-\[minmax\(90px\2c 140px\)_1fr_36px\] {
  grid-template-columns: minmax(90px,140px) 1fr 36px;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-0 {
  gap: 0px;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-3\.5 {
  -moz-column-gap: 0.875rem;
       column-gap: 0.875rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-1\.5 {
  row-gap: 0.375rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}
.break-words {
  overflow-wrap: break-word;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: var(--radius);
}
.rounded-md {
  border-radius: calc(var(--radius) - 2px);
}
.rounded-none {
  border-radius: 0px;
}
.rounded-sm {
  border-radius: calc(var(--radius) - 4px);
}
.rounded-l-md {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.rounded-r-md {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.border {
  border-width: 1px;
}
.border-0 {
  border-width: 0px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-b-0 {
  border-bottom-width: 0px;
}
.border-l {
  border-left-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-2 {
  border-top-width: 2px;
}
.border-dashed {
  border-style: dashed;
}
.border-border {
  border-color: hsl(var(--border));
}
.border-down\/50 {
  border-color: hsl(var(--down) / 0.5);
}
.border-input {
  border-color: hsl(var(--input));
}
.border-muted-foreground\/60 {
  border-color: hsl(var(--muted-foreground) / 0.6);
}
.border-primary {
  border-color: hsl(var(--primary));
}
.border-primary\/50 {
  border-color: hsl(var(--primary) / 0.5);
}
.border-primary\/70 {
  border-color: hsl(var(--primary) / 0.7);
}
.border-transparent {
  border-color: transparent;
}
.border-up\/60 {
  border-color: hsl(var(--up) / 0.6);
}
.border-warn\/25 {
  border-color: hsl(var(--warn) / 0.25);
}
.border-warn\/40 {
  border-color: hsl(var(--warn) / 0.4);
}
.border-warn\/50 {
  border-color: hsl(var(--warn) / 0.5);
}
.bg-\[\#0d7ea8\]\/20 {
  background-color: rgb(13 126 168 / 0.2);
}
.bg-\[\#14919b\]\/20 {
  background-color: rgb(20 145 155 / 0.2);
}
.bg-\[\#2a9d8f\]\/20 {
  background-color: rgb(42 157 143 / 0.2);
}
.bg-\[\#3f8f5f\]\/20 {
  background-color: rgb(63 143 95 / 0.2);
}
.bg-\[\#4c8fd1\]\/20 {
  background-color: rgb(76 143 209 / 0.2);
}
.bg-\[\#e07a3c\]\/25 {
  background-color: rgb(224 122 60 / 0.25);
}
.bg-accent\/50 {
  background-color: hsl(var(--accent) / 0.5);
}
.bg-background {
  background-color: hsl(var(--background));
}
.bg-background\/40 {
  background-color: hsl(var(--background) / 0.4);
}
.bg-card {
  background-color: hsl(var(--card));
}
.bg-card\/60 {
  background-color: hsl(var(--card) / 0.6);
}
.bg-down {
  background-color: hsl(var(--down));
}
.bg-down\/10 {
  background-color: hsl(var(--down) / 0.1);
}
.bg-down\/15 {
  background-color: hsl(var(--down) / 0.15);
}
.bg-down\/20 {
  background-color: hsl(var(--down) / 0.2);
}
.bg-muted {
  background-color: hsl(var(--muted));
}
.bg-muted-foreground {
  background-color: hsl(var(--muted-foreground));
}
.bg-muted-foreground\/55 {
  background-color: hsl(var(--muted-foreground) / 0.55);
}
.bg-muted\/30 {
  background-color: hsl(var(--muted) / 0.3);
}
.bg-muted\/40 {
  background-color: hsl(var(--muted) / 0.4);
}
.bg-popover {
  background-color: hsl(var(--popover));
}
.bg-primary {
  background-color: hsl(var(--primary));
}
.bg-primary\/10 {
  background-color: hsl(var(--primary) / 0.1);
}
.bg-primary\/15 {
  background-color: hsl(var(--primary) / 0.15);
}
.bg-secondary {
  background-color: hsl(var(--secondary));
}
.bg-transparent {
  background-color: transparent;
}
.bg-up {
  background-color: hsl(var(--up));
}
.bg-up\/10 {
  background-color: hsl(var(--up) / 0.1);
}
.bg-up\/15 {
  background-color: hsl(var(--up) / 0.15);
}
.bg-up\/20 {
  background-color: hsl(var(--up) / 0.2);
}
.bg-warn {
  background-color: hsl(var(--warn));
}
.bg-warn\/10 {
  background-color: hsl(var(--warn) / 0.1);
}
.bg-warn\/25 {
  background-color: hsl(var(--warn) / 0.25);
}
.bg-warn\/\[0\.06\] {
  background-color: hsl(var(--warn) / 0.06);
}
.fill-border {
  fill: hsl(var(--border));
}
.fill-down {
  fill: hsl(var(--down));
}
.fill-muted-foreground {
  fill: hsl(var(--muted-foreground));
}
.fill-muted-foreground\/10 {
  fill: hsl(var(--muted-foreground) / 0.1);
}
.fill-muted-foreground\/55 {
  fill: hsl(var(--muted-foreground) / 0.55);
}
.fill-primary {
  fill: hsl(var(--primary));
}
.fill-primary\/15 {
  fill: hsl(var(--primary) / 0.15);
}
.fill-up {
  fill: hsl(var(--up));
}
.stroke-background {
  stroke: hsl(var(--background));
}
.stroke-border {
  stroke: hsl(var(--border));
}
.stroke-card {
  stroke: hsl(var(--card));
}
.stroke-muted-foreground {
  stroke: hsl(var(--muted-foreground));
}
.stroke-muted-foreground\/60 {
  stroke: hsl(var(--muted-foreground) / 0.6);
}
.stroke-primary {
  stroke: hsl(var(--primary));
}
.p-0 {
  padding: 0px;
}
.p-1 {
  padding: 0.25rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-4 {
  padding: 1rem;
}
.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-2\.5 {
  padding-left: 0.625rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-7 {
  padding-left: 1.75rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pt-0 {
  padding-top: 0px;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-1\.5 {
  padding-top: 0.375rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-px {
  padding-top: 1px;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.align-bottom {
  vertical-align: bottom;
}
.align-super {
  vertical-align: super;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12\.5px\] {
  font-size: 12.5px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[40px\] {
  font-size: 40px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.capitalize {
  text-transform: capitalize;
}
.italic {
  font-style: italic;
}
.leading-3 {
  line-height: .75rem;
}
.leading-4 {
  line-height: 1rem;
}
.leading-none {
  line-height: 1;
}
.leading-normal {
  line-height: 1.5;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-normal {
  letter-spacing: 0em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.text-\[\#0b6c90\] {
  --tw-text-opacity: 1;
  color: rgb(11 108 144 / var(--tw-text-opacity, 1));
}
.text-\[\#0f7a82\] {
  --tw-text-opacity: 1;
  color: rgb(15 122 130 / var(--tw-text-opacity, 1));
}
.text-\[\#1f7a70\] {
  --tw-text-opacity: 1;
  color: rgb(31 122 112 / var(--tw-text-opacity, 1));
}
.text-\[\#2c6b45\] {
  --tw-text-opacity: 1;
  color: rgb(44 107 69 / var(--tw-text-opacity, 1));
}
.text-\[\#2f6ea8\] {
  --tw-text-opacity: 1;
  color: rgb(47 110 168 / var(--tw-text-opacity, 1));
}
.text-\[\#7b3fb0\] {
  --tw-text-opacity: 1;
  color: rgb(123 63 176 / var(--tw-text-opacity, 1));
}
.text-\[\#8a6100\] {
  --tw-text-opacity: 1;
  color: rgb(138 97 0 / var(--tw-text-opacity, 1));
}
.text-\[\#c2601f\] {
  --tw-text-opacity: 1;
  color: rgb(194 96 31 / var(--tw-text-opacity, 1));
}
.text-card-foreground {
  color: hsl(var(--card-foreground));
}
.text-current {
  color: currentColor;
}
.text-down {
  color: hsl(var(--down));
}
.text-foreground {
  color: hsl(var(--foreground));
}
.text-inherit {
  color: inherit;
}
.text-muted-foreground {
  color: hsl(var(--muted-foreground));
}
.text-muted-foreground\/30 {
  color: hsl(var(--muted-foreground) / 0.3);
}
.text-muted-foreground\/40 {
  color: hsl(var(--muted-foreground) / 0.4);
}
.text-popover-foreground {
  color: hsl(var(--popover-foreground));
}
.text-primary {
  color: hsl(var(--primary));
}
.text-primary-foreground {
  color: hsl(var(--primary-foreground));
}
.text-secondary-foreground {
  color: hsl(var(--secondary-foreground));
}
.text-text-primary {
  color: hsl(var(--foreground));
}
.text-text-secondary {
  color: hsl(var(--muted-foreground));
}
.text-up {
  color: hsl(var(--up));
}
.text-warn {
  color: hsl(var(--warn));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.underline {
  text-decoration-line: underline;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.accent-\[hsl\(var\(--primary\)\)\] {
  accent-color: hsl(var(--primary));
}
.accent-primary {
  accent-color: hsl(var(--primary));
}
.opacity-0 {
  opacity: 0;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-75 {
  opacity: 0.75;
}
.opacity-80 {
  opacity: 0.8;
}
.opacity-90 {
  opacity: 0.9;
}
.\!shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-\[\#3f8f5f\]\/45 {
  --tw-ring-color: rgb(63 143 95 / 0.45);
}
.ring-down\/40 {
  --tw-ring-color: hsl(var(--down) / 0.4);
}
.ring-muted {
  --tw-ring-color: hsl(var(--muted));
}
.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PALETA: la de glocomapp (2026-08-17, decisión del usuario "todo: reglas +
   estilos + componentes"). Los valores salen de
   `glocomapp/frontend/src/index.css` (rama dev-mariano) y están convertidos a
   HSL porque acá los tokens se consumen como `hsl(var(--x))` — cambiar el
   FORMATO además del valor habría roto los modificadores de opacidad
   (`bg-primary/15`, `border-down/40`) que ya usan seis componentes.

   Equivalencias, para poder auditarlo contra el original:
     bg-main #161513 · bg-secondary/elevated #1c1b18 · bg-card #232220
     bg-hover/muted #2c2a25 · border #34322c · text-primary #efece6
     text-secondary #8a847a · primary #0969da
     status-ok #2ecc71 · status-warning #f39c12 · status-error #e74c3c
   Claro: bg-main #f4f1ea · card #fffefb · elevated #fffdf8 · border #e8e2d6
     text-primary #2a2722 · text-secondary #7c7466 · hover/muted #efeae0

   🔴 Como en Glocom, el CLARO solo pisa las superficies: la marca y los
   semánticos (up/down/warn) valen lo mismo en los dos temas. Un verde de
   "ganó" no cambia de significado porque cambie el fondo.
   ═══════════════════════════════════════════════════════════════════════════ */

.placeholder\:text-muted-foreground::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-text-secondary::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-text-secondary::placeholder {
  color: hsl(var(--muted-foreground));
}

.first\:mt-0:first-child {
  margin-top: 0px;
}

.first\:border-l-0:first-child {
  border-left-width: 0px;
}

.last\:border-0:last-child {
  border-width: 0px;
}

.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}

.hover\:border-primary\/50:hover {
  border-color: hsl(var(--primary) / 0.5);
}

.hover\:bg-accent:hover {
  background-color: hsl(var(--accent));
}

.hover\:bg-accent\/30:hover {
  background-color: hsl(var(--accent) / 0.3);
}

.hover\:bg-muted\/40:hover {
  background-color: hsl(var(--muted) / 0.4);
}

.hover\:bg-primary:hover {
  background-color: hsl(var(--primary));
}

.hover\:bg-primary\/15:hover {
  background-color: hsl(var(--primary) / 0.15);
}

.hover\:bg-primary\/90:hover {
  background-color: hsl(var(--primary) / 0.9);
}

.hover\:bg-secondary\/80:hover {
  background-color: hsl(var(--secondary) / 0.8);
}

.hover\:bg-transparent:hover {
  background-color: transparent;
}

.hover\:text-accent-foreground:hover {
  color: hsl(var(--accent-foreground));
}

.hover\:text-foreground:hover {
  color: hsl(var(--foreground));
}

.hover\:text-primary-foreground:hover {
  color: hsl(var(--primary-foreground));
}

.hover\:text-status-error:hover {
  color: hsl(var(--down));
}

.hover\:text-status-warning:hover {
  color: hsl(var(--warn));
}

.hover\:text-text-primary:hover {
  color: hsl(var(--foreground));
}

.hover\:opacity-100:hover {
  opacity: 1;
}

.focus\:bg-accent:focus {
  background-color: hsl(var(--accent));
}

.focus\:text-accent-foreground:focus {
  color: hsl(var(--accent-foreground));
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-ring:focus {
  --tw-ring-color: hsl(var(--ring));
}

.focus-visible\:rounded-sm:focus-visible {
  border-radius: calc(var(--radius) - 4px);
}

.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: hsl(var(--ring));
}

.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:opacity-40:disabled {
  opacity: 0.4;
}

.disabled\:opacity-50:disabled {
  opacity: 0.5;
}

.disabled\:opacity-60:disabled {
  opacity: 0.6;
}

.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}

.aria-selected\:opacity-100[aria-selected="true"] {
  opacity: 1;
}

@keyframes accordion-up {

  from {
    height: var(--radix-accordion-content-height);
  }

  to {
    height: 0;
  }
}

.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
  animation: accordion-up .2s ease-out;
}

@keyframes accordion-down {

  from {
    height: 0;
  }

  to {
    height: var(--radix-accordion-content-height);
  }
}

.data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
  animation: accordion-down .2s ease-out;
}

.data-\[state\=active\]\:bg-card[data-state="active"] {
  background-color: hsl(var(--card));
}

.data-\[state\=checked\]\:bg-primary[data-state="checked"] {
  background-color: hsl(var(--primary));
}

.data-\[state\=active\]\:text-foreground[data-state="active"] {
  color: hsl(var(--foreground));
}

.data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
  color: hsl(var(--primary-foreground));
}

.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}

.data-\[state\=active\]\:shadow-sm[data-state="active"] {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

@media (min-width: 640px) {

  .sm\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .sm\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .sm\:col-start-auto {
    grid-column-start: auto;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:table-cell {
    display: table-cell;
  }

  .sm\:table-column {
    display: table-column;
  }

  .sm\:grid {
    display: grid;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:h-7 {
    height: 1.75rem;
  }

  .sm\:h-8 {
    height: 2rem;
  }

  .sm\:h-9 {
    height: 2.25rem;
  }

  .sm\:min-h-0 {
    min-height: 0px;
  }

  .sm\:w-7 {
    width: 1.75rem;
  }

  .sm\:w-8 {
    width: 2rem;
  }

  .sm\:w-9 {
    width: 2.25rem;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:max-w-\[280px\] {
    max-width: 280px;
  }

  .sm\:max-w-\[7rem\] {
    max-width: 7rem;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-\[7\.5rem_1fr\] {
    grid-template-columns: 7.5rem 1fr;
  }

  .sm\:grid-cols-\[auto_5rem_minmax\(7rem\2c 1fr\)_auto\] {
    grid-template-columns: auto 5rem minmax(7rem,1fr) auto;
  }

  .sm\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(8rem\2c 0\.35fr\)_minmax\(18rem\2c 0\.8fr\)\] {
    grid-template-columns: minmax(0,1fr) minmax(8rem,0.35fr) minmax(18rem,0.8fr);
  }

  .sm\:flex-wrap {
    flex-wrap: wrap;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:justify-start {
    justify-content: flex-start;
  }

  .sm\:justify-end {
    justify-content: flex-end;
  }

  .sm\:justify-center {
    justify-content: center;
  }

  .sm\:gap-1\.5 {
    gap: 0.375rem;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:gap-x-3\.5 {
    -moz-column-gap: 0.875rem;
         column-gap: 0.875rem;
  }

  .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0px * var(--tw-space-y-reverse));
  }

  .sm\:rounded-none {
    border-radius: 0px;
  }

  .sm\:border-x-0 {
    border-left-width: 0px;
    border-right-width: 0px;
  }

  .sm\:border-b-0 {
    border-bottom-width: 0px;
  }

  .sm\:bg-transparent {
    background-color: transparent;
  }

  .sm\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  .sm\:px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .sm\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .sm\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .sm\:text-right {
    text-align: right;
  }

  .sm\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }
}

@media (min-width: 768px) {

  .md\:block {
    display: block;
  }

  .md\:flex {
    display: flex;
  }

  .md\:hidden {
    display: none;
  }
}

@media (min-width: 1024px) {

  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .lg\:col-span-10 {
    grid-column: span 10 / span 10;
  }

  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:grid {
    display: grid;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:w-20 {
    width: 5rem;
  }

  .lg\:w-24 {
    width: 6rem;
  }

  .lg\:w-\[5\.25rem\] {
    width: 5.25rem;
  }

  .lg\:w-\[5\.5rem\] {
    width: 5.5rem;
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[minmax\(0\2c 340px\)_minmax\(0\2c 1fr\)\] {
    grid-template-columns: minmax(0,340px) minmax(0,1fr);
  }

  .lg\:grid-cols-\[minmax\(7rem\2c 1fr\)_5\.5rem_5\.25rem_4\.75rem_4\.75rem_5\.75rem_6\.75rem_3\.75rem_4\.25rem_23\.5rem\] {
    grid-template-columns: minmax(7rem,1fr) 5.5rem 5.25rem 4.75rem 4.75rem 5.75rem 6.75rem 3.75rem 4.25rem 23.5rem;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:gap-0 {
    gap: 0px;
  }

  .lg\:gap-1\.5 {
    gap: 0.375rem;
  }

  .lg\:space-y-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0px * var(--tw-space-y-reverse));
  }

  .lg\:truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .lg\:rounded-none {
    border-radius: 0px;
  }

  .lg\:border-x-0 {
    border-left-width: 0px;
    border-right-width: 0px;
  }

  .lg\:border-t-0 {
    border-top-width: 0px;
  }

  .lg\:bg-transparent {
    background-color: transparent;
  }

  .lg\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  .lg\:py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .lg\:pl-2 {
    padding-left: 0.5rem;
  }
}

@media (min-width: 1280px) {

  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-color-scheme: dark) {

  .dark\:text-\[\#3fc2cc\] {
    --tw-text-opacity: 1;
    color: rgb(63 194 204 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#4fb0d8\] {
    --tw-text-opacity: 1;
    color: rgb(79 176 216 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#4fc3b5\] {
    --tw-text-opacity: 1;
    color: rgb(79 195 181 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#6fc48f\] {
    --tw-text-opacity: 1;
    color: rgb(111 196 143 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#7db4e8\] {
    --tw-text-opacity: 1;
    color: rgb(125 180 232 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#b98ae0\] {
    --tw-text-opacity: 1;
    color: rgb(185 138 224 / var(--tw-text-opacity, 1));
  }

  .dark\:text-\[\#f0a06a\] {
    --tw-text-opacity: 1;
    color: rgb(240 160 106 / var(--tw-text-opacity, 1));
  }

  .dark\:text-warn {
    color: hsl(var(--warn));
  }
}

.\[\&\>span\]\:line-clamp-1>span {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&_\.truncate\]\:overflow-visible .truncate {
  overflow: visible;
}

.\[\&_\.truncate\]\:text-clip .truncate {
  text-overflow: clip;
}

.\[\&_\.truncate\]\:whitespace-normal .truncate {
  white-space: normal;
}

.\[\&_\.truncate\]\:break-words .truncate {
  overflow-wrap: break-word;
}

.\[\&_tr\:last-child\]\:border-0 tr:last-child {
  border-width: 0px;
}

.\[\&_tr\]\:border-b tr {
  border-bottom-width: 1px;
}
