/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[3].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[3].use[2]!./node_modules/next/font/local/target.css?{"path":"src/fonts/root.ts","import":"","arguments":[{"src":[{"path":"./ibm-plex-sans-latin-var.woff2","weight":"300","style":"normal"},{"path":"./ibm-plex-sans-latin-var.woff2","weight":"400","style":"normal"},{"path":"./ibm-plex-sans-latin-var.woff2","weight":"500","style":"normal"},{"path":"./ibm-plex-sans-latin-var.woff2","weight":"600","style":"normal"},{"path":"./ibm-plex-sans-latin-var.woff2","weight":"700","style":"normal"}],"variable":"--font-sans","display":"swap"}],"variableName":"sans"} ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face {
font-family: '__sans_17a307';
src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 300;
font-style: normal;
}

@font-face {
font-family: '__sans_17a307';
src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: '__sans_17a307';
src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 500;
font-style: normal;
}

@font-face {
font-family: '__sans_17a307';
src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: '__sans_17a307';
src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 700;
font-style: normal;
}@font-face {font-family: '__sans_Fallback_17a307';src: local("Arial");ascent-override: 101.35%;descent-override: 27.19%;line-gap-override: 0.00%;size-adjust: 101.13%
}.__className_17a307 {font-family: '__sans_17a307', '__sans_Fallback_17a307'
}.__variable_17a307 {--font-sans: '__sans_17a307', '__sans_Fallback_17a307'
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[3].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[3].use[2]!./node_modules/next/font/local/target.css?{"path":"src/fonts/root.ts","import":"","arguments":[{"src":[{"path":"./ibm-plex-mono-400.woff2","weight":"400","style":"normal"},{"path":"./ibm-plex-mono-500.woff2","weight":"500","style":"normal"},{"path":"./ibm-plex-mono-600.woff2","weight":"600","style":"normal"},{"path":"./ibm-plex-mono-700.woff2","weight":"700","style":"normal"}],"variable":"--font-mono","display":"swap"}],"variableName":"mono"} ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face {
font-family: '__mono_542659';
src: url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: '__mono_542659';
src: url(/_next/static/media/98e207f02528a563-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 500;
font-style: normal;
}

@font-face {
font-family: '__mono_542659';
src: url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: '__mono_542659';
src: url(/_next/static/media/37786be940ec402b-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 700;
font-style: normal;
}@font-face {font-family: '__mono_Fallback_542659';src: local("Arial");ascent-override: 77.95%;descent-override: 20.91%;line-gap-override: 0.00%;size-adjust: 131.49%
}.__className_542659 {font-family: '__mono_542659', '__mono_Fallback_542659'
}.__variable_542659 {--font-mono: '__mono_542659', '__mono_Fallback_542659'
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[3].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[3].use[2]!./node_modules/next/font/local/target.css?{"path":"src/fonts/root.ts","import":"","arguments":[{"src":[{"path":"./hanken-grotesk-latin-var.woff2","weight":"600","style":"normal"},{"path":"./hanken-grotesk-latin-var.woff2","weight":"700","style":"normal"}],"variable":"--font-logo","display":"swap"}],"variableName":"logo"} ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face {
font-family: '__logo_c26d86';
src: url(/_next/static/media/313510e2713fb214-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: '__logo_c26d86';
src: url(/_next/static/media/313510e2713fb214-s.p.woff2) format('woff2');
font-display: swap;
font-weight: 700;
font-style: normal;
}@font-face {font-family: '__logo_Fallback_c26d86';src: local("Arial");ascent-override: 98.46%;descent-override: 29.83%;line-gap-override: 0.00%;size-adjust: 101.56%
}.__className_c26d86 {font-family: '__logo_c26d86', '__logo_Fallback_c26d86'
}.__variable_c26d86 {--font-logo: '__logo_c26d86', '__logo_Fallback_c26d86'
}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
*, ::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: var(--font-sans), system-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: var(--font-mono), 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 {
    /* Minimapa del mensajero (tracking en vivo) */
    --lab-map-from:   #F5F3FF;
    --lab-map-to:     #EDE9FE;
    --lab-map-grid:   rgba(124, 58, 237, 0.06);
    --lab-map-road:   #C4B5FD;
    --lab-map-road-2: #DDD6FE;
    /* ETA hero — gradiente oscuro aun en modo claro (igual en ambos temas) */
    --lab-eta-from:   #1F1933;
    --lab-eta-to:     #2D2244;
  }
  .\!dark {
    --lab-map-from:   #15102A !important;
    --lab-map-to:     #0F0B1F !important;
    --lab-map-grid:   rgba(167, 139, 250, 0.10) !important;
    --lab-map-road:   #8B5CF6 !important;
    --lab-map-road-2: #5B21B6 !important;
  }
  .dark {
    --lab-map-from:   #15102A;
    --lab-map-to:     #0F0B1F;
    --lab-map-grid:   rgba(167, 139, 250, 0.10);
    --lab-map-road:   #8B5CF6;
    --lab-map-road-2: #5B21B6;
  }
  :root {
    /* ── LIGHT MODE (default) ── */
    --bg:            #F8F7FC;            /* blanco con hint violeta */
    --bg-elev:       #FFFFFF;            /* cards blancos puros */
    --bg-elev-2:     #F0EEF7;            /* nested light purple */
    --bg-hover:      rgba(124,58,237,0.04);

    --border-soft:   rgba(15,10,30,0.12);
    --border-strong: rgba(15,10,30,0.20);
    --border-brand:  rgba(124,58,237,0.30);

    /* Pastilla del switch APAGADO. .switch la pintaba con blanco al 10 %:
       se diseñó para fondo oscuro y sobre el panel CLARO desaparecía, así que
       no se distinguía «apagado» de «no hay switch». Gris violáceo SÓLIDO,
       ~3.3:1 contra la tarjeta blanca y contra la perilla blanca. */
    --switch-off:      #8F8AA4;
    --switch-off-ring: rgba(15,10,30,0.20);

    --brand:         #7c3aed;
    --brand-soft:    rgba(124,58,237,0.10);
    --brand-softer:  rgba(124,58,237,0.04);

    --text-1: #14101F;                   /* casi negro con tinte violeta */
    --text-2: #4A4560;
    --text-3: #7D7892;
    --text-4: #A8A4B8;

    --success:      #059669;
    --success-soft: rgba(5,150,105,0.10);
    --warning:      #d97706;
    --warning-soft: rgba(217,119,6,0.10);
    --danger:       #dc2626;
    --danger-soft:  rgba(220,38,38,0.10);
    --info:         #2563eb;
    --info-soft:    rgba(37,99,235,0.10);

    /* ── Violet ramp (rediseño popup Nueva cita) — alineada con
       --brand (#7c3aed = violet-600). Es una rampa de marca fija (no cambia
       por tema); usar para acentos. Superficies/texto/bordes siguen en tokens
       semánticos (--bg-*, --text-*, --border-*) para que dark mode funcione. ── */
    --violet-50:  #F5F3FF;
    --violet-100: #EDE9FE;
    --violet-200: #DDD6FE;
    --violet-300: #C4B5FD;
    --violet-400: #A78BFA;
    --violet-500: #8B5CF6;
    --violet-600: #7C3AED;
    --violet-700: #6D28D9;

    --radius-sm: 6px;
    --radius:    10px;
    --radius-lg: 14px;

    /* ── Rediseño 2026-07 (Variante A) — marca "105" + elevación + motion.
       El degradado SOLO en 4 acentos (CTA primario, barra activa del
       sidebar, chip del KPI hero, logo). Jamás texto sobre él <AA. ── */
    --brand-grad:   linear-gradient(90deg, #7C3AED, #2563EB);
    --brand-grad-v: linear-gradient(180deg, #7C3AED, #2563EB);
    --brand-blue:   #2563EB;
    /* Tinta fuerte para TEXTO sobre fondos *-soft (AA 4.5:1; el par de
       --danger-strong ya existía más abajo para CAMBRA). */
    --success-strong: #047857;
    --warning-strong: #a85a05;
    --info-strong:    #1d4ed8;
    --shadow-1: 0 1px 2px rgba(20,16,31,.05);
    --shadow-2: 0 4px 12px -2px rgba(20,16,31,.08);
    --shadow-3: 0 16px 40px -12px rgba(20,16,31,.18);
    --ring: 0 0 0 3px rgba(124,58,237,.35);
    --dur-1: 150ms;
    --dur-2: 250ms;
    --ease: cubic-bezier(.2,.8,.4,1);

    /* ── Rampa brand-* de Tailwind (bg-brand-600, text-brand-*, …) ──
       Triplets HSL que consume tailwind.config (hsl(var(--brand-N) / α)).
       DEFAULT = AZUL del funnel público (landing, login/signup, marketing —
       el funnel azul es a propósito). Los paneles internos remapean la rampa
       a violeta más abajo (body:has(.dashboard-shell)). Rampa fija: no
       cambia entre light/dark (igual que --violet-*). */
    --brand-50:  213.8 100% 96.9%;
    --brand-100: 214.3 94.6% 92.7%;
    --brand-200: 213.3 96.9% 87.3%;
    --brand-300: 211.7 96.4% 78.4%;
    --brand-400: 213.1 93.9% 67.8%;
    --brand-500: 217.2 91.2% 59.8%;
    --brand-600: 221.2 83.2% 53.3%;
    --brand-700: 224.3 76.3% 48%;
    --brand-800: 225.9 70.7% 40.2%;
    --brand-900: 224.4 64.3% 32.9%;
    --brand-950: 226.2 57% 21%;

    /* ── Patient Context Bar (consulta activa) — brand tint neutro ── */
    --consult-active-bg:     rgba(124,58,237,0.06);
    --consult-active-border: rgba(124,58,237,0.25);
    --consult-active-accent: var(--brand);
    --consult-active-dot:    var(--success);

    /* ── Alert stripes (alergias, advertencias críticas) ── */
    --danger-soft-strong:    rgba(220,38,38,0.15);
    --danger-border-strong:  rgba(220,38,38,0.35);
    --warning-soft-strong:   rgba(217,119,6,0.15);
    --warning-border-strong: rgba(217,119,6,0.35);

    /* ── Interactive border (reservado v2.2+, no usar aún) ── */
    --border-interactive:    rgba(15,10,30,0.28);

    /* ── Tailwind-compat HSL (light) ── */
    --background:        250 18% 97%;
    --foreground:        255 30% 9%;
    --card:              0 0% 100%;
    --card-foreground:   255 30% 9%;
    --muted:             250 12% 92%;
    --muted-foreground:  250 10% 42%;
    --border:            255 30% 9% / 0.08;
    --primary:           262 83% 58%;
    --primary-foreground: 0 0% 100%;
    --accent:            239 84% 67%;
    --accent-foreground: 0 0% 100%;
    --destructive:         0 84% 60%;
    --destructive-foreground: 0 0% 100%;

    /* Sidebar (light) */
    --sidebar:              0 0% 100%;
    --sidebar-foreground:   255 30% 9%;
    --sidebar-border:       255 30% 9% / 0.08;
    --sidebar-accent:       250 12% 92%;
    --sidebar-accent-foreground: 255 30% 9%;

    /* Brand accents (compat) */
    --violet: 262 83% 58%;
    --indigo: 239 84% 67%;
    --teal:   173 80% 40%;
    --surface:          0 0% 100%;
    --surface-elevated: 250 12% 92%;
  }

  /* ── DARK MODE — space purple ── */
  .\!dark {
    color-scheme: dark !important;

    --bg:            #0B0815 !important;            /* tinte morado espacial */
    --bg-elev:       #121020 !important;            /* cards con tinte morado */
    --bg-elev-2:     #1A1630 !important;            /* nested elements */
    --bg-hover:      rgba(255,255,255,0.03) !important;

    --border-soft:   rgba(255,255,255,0.06) !important;
    --border-strong: rgba(255,255,255,0.10) !important;
    --border-brand:  rgba(124,58,237,0.30) !important;

    /* Par oscuro de la pastilla apagada: ~2.9:1 contra la tarjeta (#121020)
       y 6.4:1 contra la perilla blanca. */
    --switch-off:      #5F5C70 !important;
    --switch-off-ring: rgba(255,255,255,0.16) !important;

    --brand:         #7c3aed !important;
    --brand-soft:    rgba(124,58,237,0.12) !important;
    --brand-softer:  rgba(124,58,237,0.06) !important;

    --text-1: #E8E8EC !important;
    --text-2: #A0A0AB !important;
    --text-3: #6B6B78 !important;
    --text-4: #45454F !important;

    --success:      #10b981 !important;
    --success-soft: rgba(16,185,129,0.12) !important;
    --warning:      #f59e0b !important;
    --warning-soft: rgba(245,158,11,0.12) !important;
    --danger:       #ef4444 !important;
    --danger-soft:  rgba(239,68,68,0.12) !important;
    --info:         #3b82f6 !important;
    --info-soft:    rgba(59,130,246,0.12) !important;

    /* ── Patient Context Bar (consulta activa) ── */
    --consult-active-bg:     rgba(124,58,237,0.10) !important;
    --consult-active-border: rgba(124,58,237,0.30) !important;
    --consult-active-accent: #c4b5fd !important;
    --consult-active-dot:    var(--success) !important;

    /* ── Alert stripes ── */
    --danger-soft-strong:    rgba(239,68,68,0.18) !important;
    --danger-border-strong:  rgba(239,68,68,0.38) !important;
    --warning-soft-strong:   rgba(245,158,11,0.18) !important;
    --warning-border-strong: rgba(245,158,11,0.38) !important;

    /* ── Interactive border (reservado v2.2+) ── */
    --border-interactive:    rgba(255,255,255,0.18) !important;

    /* ── Rediseño 2026-07 (Variante A) — sombras profundas + ring visible ── */
    --shadow-1: 0 1px 2px rgba(0,0,0,.35) !important;
    --shadow-2: 0 4px 12px -2px rgba(0,0,0,.40) !important;
    --shadow-3: 0 16px 40px -12px rgba(0,0,0,.55) !important;
    --ring: 0 0 0 3px rgba(167,139,250,.40) !important;
    /* Tinta fuerte sobre *-soft en dark = versión clara (los soft son oscuros) */
    --success-strong: #34d399 !important;
    --warning-strong: #fbbf24 !important;
    --info-strong:    #60a5fa !important;

    /* Tailwind-compat HSL (dark — space purple) */
    --background:        255 30% 6% !important;
    --foreground:        240 12% 92% !important;
    --card:              255 25% 10% !important;
    --card-foreground:   240 12% 92% !important;
    --muted:             255 20% 14% !important;
    --muted-foreground:  240 5% 60% !important;
    --border:            0 0% 100% / 0.06 !important;
    --sidebar:           255 30% 6% !important;
    --sidebar-foreground: 240 12% 92% !important;
    --sidebar-border:    0 0% 100% / 0.06 !important;
    --sidebar-accent:    255 20% 14% !important;
    --sidebar-accent-foreground: 240 12% 92% !important;
    --surface:           255 25% 10% !important;
    --surface-elevated:  255 20% 14% !important;
  }
  .dark {
    color-scheme: dark;

    --bg:            #0B0815;            /* tinte morado espacial */
    --bg-elev:       #121020;            /* cards con tinte morado */
    --bg-elev-2:     #1A1630;            /* nested elements */
    --bg-hover:      rgba(255,255,255,0.03);

    --border-soft:   rgba(255,255,255,0.06);
    --border-strong: rgba(255,255,255,0.10);
    --border-brand:  rgba(124,58,237,0.30);

    /* Par oscuro de la pastilla apagada: ~2.9:1 contra la tarjeta (#121020)
       y 6.4:1 contra la perilla blanca. */
    --switch-off:      #5F5C70;
    --switch-off-ring: rgba(255,255,255,0.16);

    --brand:         #7c3aed;
    --brand-soft:    rgba(124,58,237,0.12);
    --brand-softer:  rgba(124,58,237,0.06);

    --text-1: #E8E8EC;
    --text-2: #A0A0AB;
    --text-3: #6B6B78;
    --text-4: #45454F;

    --success:      #10b981;
    --success-soft: rgba(16,185,129,0.12);
    --warning:      #f59e0b;
    --warning-soft: rgba(245,158,11,0.12);
    --danger:       #ef4444;
    --danger-soft:  rgba(239,68,68,0.12);
    --info:         #3b82f6;
    --info-soft:    rgba(59,130,246,0.12);

    /* ── Patient Context Bar (consulta activa) ── */
    --consult-active-bg:     rgba(124,58,237,0.10);
    --consult-active-border: rgba(124,58,237,0.30);
    --consult-active-accent: #c4b5fd;
    --consult-active-dot:    var(--success);

    /* ── Alert stripes ── */
    --danger-soft-strong:    rgba(239,68,68,0.18);
    --danger-border-strong:  rgba(239,68,68,0.38);
    --warning-soft-strong:   rgba(245,158,11,0.18);
    --warning-border-strong: rgba(245,158,11,0.38);

    /* ── Interactive border (reservado v2.2+) ── */
    --border-interactive:    rgba(255,255,255,0.18);

    /* ── Rediseño 2026-07 (Variante A) — sombras profundas + ring visible ── */
    --shadow-1: 0 1px 2px rgba(0,0,0,.35);
    --shadow-2: 0 4px 12px -2px rgba(0,0,0,.40);
    --shadow-3: 0 16px 40px -12px rgba(0,0,0,.55);
    --ring: 0 0 0 3px rgba(167,139,250,.40);
    /* Tinta fuerte sobre *-soft en dark = versión clara (los soft son oscuros) */
    --success-strong: #34d399;
    --warning-strong: #fbbf24;
    --info-strong:    #60a5fa;

    /* Tailwind-compat HSL (dark — space purple) */
    --background:        255 30% 6%;
    --foreground:        240 12% 92%;
    --card:              255 25% 10%;
    --card-foreground:   240 12% 92%;
    --muted:             255 20% 14%;
    --muted-foreground:  240 5% 60%;
    --border:            0 0% 100% / 0.06;
    --sidebar:           255 30% 6%;
    --sidebar-foreground: 240 12% 92%;
    --sidebar-border:    0 0% 100% / 0.06;
    --sidebar-accent:    255 20% 14%;
    --sidebar-accent-foreground: 240 12% 92%;
    --surface:           255 25% 10%;
    --surface-elevated:  255 20% 14%;
  }

  /* ── Panel interno = marca VIOLETA (decisión Rafael 14-jul) ──────────
     Remapea la rampa brand-* SOLO dentro de los paneles que llevan
     .dashboard-shell (dashboard, laboratorios, proveedores, afiliados).
     Va sobre <body> vía :has() para que los portales de Radix
     (Dialog/Popover/Dropdown montan en <body>, FUERA del shell) hereden
     el mismo violeta — lección radix-portal. El funnel público (landing,
     login/signup, marketing) no lleva la clase → conserva el azul de
     :root. Misma rampa en dark (marca fija, como --violet-*). */
  body:has(.dashboard-shell) {
    --brand-50:  250 100% 97.6%;
    --brand-100: 251.4 91.3% 95.5%;
    --brand-200: 250.5 95.2% 91.8%;
    --brand-300: 252.5 94.7% 85.1%;
    --brand-400: 255.1 91.7% 76.3%;
    --brand-500: 258.3 89.5% 66.3%;
    --brand-600: 262.1 83.3% 57.8%;
    --brand-700: 263.4 70% 50.4%;
    --brand-800: 263.4 69.3% 42.2%;
    --brand-900: 263.5 67.4% 34.9%;
    --brand-950: 261.2 72.6% 22.9%;
  }

  * { border-color: hsl(var(--border)); }

  html { font-size: 17px;
    font-size: clamp(13px, 0.55vw + 10.5px, 16px); }

  body {
    background: var(--bg);
    color: var(--text-1);
    background-image:
      radial-gradient(ellipse 1200px 600px at 50% -10%, rgba(124,58,237,0.05), transparent 70%),
      linear-gradient(rgba(20,16,31,0.055) 1px, transparent 1px),
      linear-gradient(90deg, rgba(20,16,31,0.055) 1px, transparent 1px);
    background-size: auto, 32px 32px, 32px 32px;
    background-attachment: fixed;
    font-size: 1rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }

  .\!dark body {
    background-image:
      radial-gradient(ellipse 1200px 600px at 50% -10%, rgba(124,58,237,0.10), transparent 70%),
      radial-gradient(ellipse 800px 400px at 90% 10%, rgba(168,85,247,0.06), transparent 70%),
      linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px) !important;
    background-size: auto, auto, 32px 32px, 32px 32px !important;
  }

  .dark body {
    background-image:
      radial-gradient(ellipse 1200px 600px at 50% -10%, rgba(124,58,237,0.10), transparent 70%),
      radial-gradient(ellipse 800px 400px at 90% 10%, rgba(168,85,247,0.06), transparent 70%),
      linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: auto, auto, 32px 32px, 32px 32px;
  }

  /* ─── Dark mode overrides — inputs, tables, semantic *-50 bg colors ─── */
  .\!dark input,
  .\!dark textarea,
  .\!dark select {
    background-color: hsl(var(--card)) !important;
    color: hsl(var(--foreground)) !important;
    border-color: hsl(var(--border)) !important;
  }
  .dark input,
  .dark textarea,
  .dark select {
    background-color: hsl(var(--card)) !important;
    color: hsl(var(--foreground)) !important;
    border-color: hsl(var(--border)) !important;
  }
  .\!dark input,
  .\!dark textarea,
  .\!dark select {
    background-color: hsl(var(--card)) !important;
    color: hsl(var(--foreground)) !important;
    border-color: hsl(var(--border)) !important;
  }
  .\!dark input::-moz-placeholder, .\!dark textarea::-moz-placeholder { color: hsl(var(--muted-foreground)) !important; }
  .\!dark input::placeholder,
  .\!dark textarea::placeholder { color: hsl(var(--muted-foreground)) !important; }
  .dark input::-moz-placeholder, .dark textarea::-moz-placeholder { color: hsl(var(--muted-foreground)) !important; }
  .dark input::placeholder,
  .dark textarea::placeholder { color: hsl(var(--muted-foreground)) !important; }
  .\!dark input::-moz-placeholder, .\!dark textarea::-moz-placeholder { color: hsl(var(--muted-foreground)) !important; }
  .\!dark input::placeholder,
  .\!dark textarea::placeholder { color: hsl(var(--muted-foreground)) !important; }
  .\!dark table tr:hover td { background-color: hsl(255 20% 14%) !important; }
  .dark table tr:hover td { background-color: hsl(255 20% 14%) !important; }
  .\!dark thead tr          { background-color: hsl(var(--card))   !important; }
  .dark thead tr          { background-color: hsl(var(--card))   !important; }
  .\!dark .bg-emerald-50    { background-color: rgb(6 78 59 / 0.3)   !important; }
  .dark .bg-emerald-50    { background-color: rgb(6 78 59 / 0.3)   !important; }
  .\!dark .bg-amber-50      { background-color: rgb(120 53 15 / 0.3) !important; }
  .dark .bg-amber-50      { background-color: rgb(120 53 15 / 0.3) !important; }
  .\!dark .bg-rose-50       { background-color: rgb(136 19 55 / 0.3) !important; }
  .dark .bg-rose-50       { background-color: rgb(136 19 55 / 0.3) !important; }
  .\!dark .bg-blue-50       { background-color: rgb(23 37 84 / 0.3)  !important; }
  .dark .bg-blue-50       { background-color: rgb(23 37 84 / 0.3)  !important; }
  .\!dark .bg-violet-50     { background-color: rgb(76 29 149 / 0.3) !important; }
  .dark .bg-violet-50     { background-color: rgb(76 29 149 / 0.3) !important; }

  /* ═══════════════════════════════════════════════════════════════
     Focus visible — WCAG 2.1 SC 2.4.7 + 1.4.11
     Solo aparece cuando se navega con teclado (no con click)
     ═══════════════════════════════════════════════════════════════ */

  :focus { outline: none; }

  :focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
    border-radius: inherit;
  }

  button:focus-visible,
  a:focus-visible,
  [role="button"]:focus-visible,
  [role="link"]:focus-visible,
  [role="menuitem"]:focus-visible,
  [role="option"]:focus-visible,
  [role="tab"]:focus-visible,
  [tabindex]:focus-visible,
  summary:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.20);
  }

  input:focus-visible,
  textarea:focus-visible,
  select:focus-visible {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.18);
  }

  .input-new:focus-visible {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.18);
  }

  /* El popup de <option> lo pinta el SO con fondo claro; sin esto, las
     opciones heredan texto claro del panel oscuro y quedan blanco-sobre-blanco. */
  select.input-new option,
  select.input option {
    background-color: #18181b;
    color: #f4f4f5;
  }
  
  select.\!input option {
    background-color: #18181b !important;
    color: #f4f4f5 !important;
  }

  .btn-new:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 3px;
    box-shadow:
      0 0 0 4px rgba(124, 58, 237, 0.25),
      inset 0 1px 0 rgba(255,255,255,0.15);
  }

  .btn-new--primary:focus-visible {
    outline: 2px solid #fff;
    outline-offset: -3px;
    box-shadow:
      0 0 0 2px var(--brand),
      0 0 0 5px rgba(124, 58, 237, 0.40),
      0 4px 16px -4px rgba(124,58,237,0.5);
  }

  @media (prefers-reduced-motion: reduce) {
    :focus-visible {
      box-shadow: 0 0 0 3px var(--brand);
    }
    .btn-new:focus-visible,
    .btn-new--primary:focus-visible {
      outline: 2px solid var(--brand);
      outline-offset: 2px;
      box-shadow: 0 0 0 3px var(--brand);
    }
    input:focus-visible,
    textarea:focus-visible,
    select:focus-visible,
    .input-new:focus-visible {
      box-shadow: 0 0 0 2px var(--brand);
    }
  }
.\!container {
  width: 100% !important;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {

  .\!container {
    max-width: 640px !important;
  }

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .\!container {
    max-width: 768px !important;
  }

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .\!container {
    max-width: 1024px !important;
  }

  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {

  .\!container {
    max-width: 1280px !important;
  }

  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {

  .\!container {
    max-width: 1536px !important;
  }

  .container {
    max-width: 1536px;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.\!visible {
  visibility: visible !important;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-3 {
  inset: 0.75rem;
}
.inset-\[3px\] {
  inset: 3px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-x-1\.5 {
  left: 0.375rem;
  right: 0.375rem;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-bottom-1 {
  bottom: -0.25rem;
}
.-bottom-2 {
  bottom: -0.5rem;
}
.-bottom-24 {
  bottom: -6rem;
}
.-bottom-5 {
  bottom: -1.25rem;
}
.-left-10 {
  left: -2.5rem;
}
.-left-2 {
  left: -0.5rem;
}
.-left-24 {
  left: -6rem;
}
.-left-32 {
  left: -8rem;
}
.-left-4 {
  left: -1rem;
}
.-left-40 {
  left: -10rem;
}
.-left-5 {
  left: -1.25rem;
}
.-left-\[34px\] {
  left: -34px;
}
.-left-\[9px\] {
  left: -9px;
}
.-right-1\.5 {
  right: -0.375rem;
}
.-right-10 {
  right: -2.5rem;
}
.-right-2 {
  right: -0.5rem;
}
.-right-3 {
  right: -0.75rem;
}
.-right-32 {
  right: -8rem;
}
.-right-40 {
  right: -10rem;
}
.-top-1\.5 {
  top: -0.375rem;
}
.-top-2 {
  top: -0.5rem;
}
.-top-20 {
  top: -5rem;
}
.-top-4 {
  top: -1rem;
}
.-top-40 {
  top: -10rem;
}
.bottom-0 {
  bottom: 0px;
}
.bottom-1\.5 {
  bottom: 0.375rem;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-3 {
  bottom: 0.75rem;
}
.bottom-5 {
  bottom: 1.25rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.bottom-8 {
  bottom: 2rem;
}
.bottom-\[max\(env\(safe-area-inset-bottom\)\2c 1\.25rem\)\] {
  bottom: max(env(safe-area-inset-bottom), 1.25rem);
}
.bottom-\[max\(env\(safe-area-inset-bottom\)\2c 4\.5rem\)\] {
  bottom: max(env(safe-area-inset-bottom), 4.5rem);
}
.left-0 {
  left: 0px;
}
.left-0\.5 {
  left: 0.125rem;
}
.left-1 {
  left: 0.25rem;
}
.left-1\.5 {
  left: 0.375rem;
}
.left-1\/2 {
  left: 50%;
}
.left-10 {
  left: 2.5rem;
}
.left-2 {
  left: 0.5rem;
}
.left-2\.5 {
  left: 0.625rem;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.left-5 {
  left: 1.25rem;
}
.left-\[18px\] {
  left: 18px;
}
.left-\[22px\] {
  left: 22px;
}
.left-\[50\%\] {
  left: 50%;
}
.right-0 {
  right: 0px;
}
.right-0\.5 {
  right: 0.125rem;
}
.right-1\.5 {
  right: 0.375rem;
}
.right-12 {
  right: 3rem;
}
.right-2 {
  right: 0.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.right-5 {
  right: 1.25rem;
}
.right-6 {
  right: 1.5rem;
}
.top-0 {
  top: 0px;
}
.top-0\.5 {
  top: 0.125rem;
}
.top-1 {
  top: 0.25rem;
}
.top-1\.5 {
  top: 0.375rem;
}
.top-1\/2 {
  top: 50%;
}
.top-1\/3 {
  top: 33.333333%;
}
.top-10 {
  top: 2.5rem;
}
.top-12 {
  top: 3rem;
}
.top-2 {
  top: 0.5rem;
}
.top-2\.5 {
  top: 0.625rem;
}
.top-20 {
  top: 5rem;
}
.top-3 {
  top: 0.75rem;
}
.top-3\.5 {
  top: 0.875rem;
}
.top-4 {
  top: 1rem;
}
.top-40 {
  top: 10rem;
}
.top-5 {
  top: 1.25rem;
}
.top-6 {
  top: 1.5rem;
}
.top-\[50\%\] {
  top: 50%;
}
.top-full {
  top: 100%;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-\[100\] {
  z-index: 100;
}
.z-\[110\] {
  z-index: 110;
}
.z-\[1500\] {
  z-index: 1500;
}
.z-\[200\] {
  z-index: 200;
}
.z-\[21\] {
  z-index: 21;
}
.z-\[60\] {
  z-index: 60;
}
.z-\[70\] {
  z-index: 70;
}
.z-\[80\] {
  z-index: 80;
}
.z-\[90\] {
  z-index: 90;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-full {
  grid-column: 1 / -1;
}
.row-span-2 {
  grid-row: span 2 / span 2;
}
.-m-4 {
  margin: -1rem;
}
.m-0 {
  margin: 0px;
}
.m-\[max\(env\(safe-area-inset-left\)\2c 0\.75rem\)\] {
  margin: max(env(safe-area-inset-left), 0.75rem);
}
.m-\[max\(env\(safe-area-inset-right\)\2c 0\.75rem\)\] {
  margin: max(env(safe-area-inset-right), 0.75rem);
}
.m-auto {
  margin: auto;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.-mx-1\.5 {
  margin-left: -0.375rem;
  margin-right: -0.375rem;
}
.-my-3 {
  margin-top: -0.75rem;
  margin-bottom: -0.75rem;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
.mx-6 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-0\.5 {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}
.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.-mb-3 {
  margin-bottom: -0.75rem;
}
.-mb-px {
  margin-bottom: -1px;
}
.-mr-2 {
  margin-right: -0.5rem;
}
.-mt-0\.5 {
  margin-top: -0.125rem;
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.-mt-6 {
  margin-top: -1.5rem;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-14 {
  margin-bottom: 3.5rem;
}
.mb-16 {
  margin-bottom: 4rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-2\.5 {
  margin-bottom: 0.625rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-3\.5 {
  margin-bottom: 0.875rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-7 {
  margin-bottom: 1.75rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.mb-\[max\(env\(safe-area-inset-bottom\)\2c 0\.5rem\)\] {
  margin-bottom: max(env(safe-area-inset-bottom), 0.5rem);
}
.mb-\[max\(env\(safe-area-inset-bottom\)\2c 0\.75rem\)\] {
  margin-bottom: max(env(safe-area-inset-bottom), 0.75rem);
}
.ml-0\.5 {
  margin-left: 0.125rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-1\.5 {
  margin-left: 0.375rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-3 {
  margin-left: 0.75rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-7 {
  margin-left: 1.75rem;
}
.ml-\[max\(env\(safe-area-inset-left\)\2c 0\.75rem\)\] {
  margin-left: max(env(safe-area-inset-left), 0.75rem);
}
.ml-auto {
  margin-left: auto;
}
.mr-0\.5 {
  margin-right: 0.125rem;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mr-1\.5 {
  margin-right: 0.375rem;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-3 {
  margin-right: 0.75rem;
}
.mr-\[max\(env\(safe-area-inset-right\)\2c 0\.75rem\)\] {
  margin-right: max(env(safe-area-inset-right), 0.75rem);
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-14 {
  margin-top: 3.5rem;
}
.mt-16 {
  margin-top: 4rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-2\.5 {
  margin-top: 0.625rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-3\.5 {
  margin-top: 0.875rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-7 {
  margin-top: 1.75rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-9 {
  margin-top: 2.25rem;
}
.mt-\[1px\] {
  margin-top: 1px;
}
.mt-\[2px\] {
  margin-top: 2px;
}
.mt-\[max\(env\(safe-area-inset-top\)\2c 0\.75rem\)\] {
  margin-top: max(env(safe-area-inset-top), 0.75rem);
}
.mt-auto {
  margin-top: auto;
}
.mt-px {
  margin-top: 1px;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.contents {
  display: contents;
}
.\!hidden {
  display: none !important;
}
.hidden {
  display: none;
}
.aspect-\[16\/10\] {
  aspect-ratio: 16/10;
}
.aspect-\[16\/11\] {
  aspect-ratio: 16/11;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-\[4\/5\] {
  aspect-ratio: 4/5;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-20 {
  height: 5rem;
}
.h-24 {
  height: 6rem;
}
.h-28 {
  height: 7rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-32 {
  height: 8rem;
}
.h-36 {
  height: 9rem;
}
.h-4 {
  height: 1rem;
}
.h-40 {
  height: 10rem;
}
.h-44 {
  height: 11rem;
}
.h-5 {
  height: 1.25rem;
}
.h-6 {
  height: 1.5rem;
}
.h-64 {
  height: 16rem;
}
.h-7 {
  height: 1.75rem;
}
.h-72 {
  height: 18rem;
}
.h-8 {
  height: 2rem;
}
.h-80 {
  height: 20rem;
}
.h-9 {
  height: 2.25rem;
}
.h-96 {
  height: 24rem;
}
.h-\[100dvh\] {
  height: 100dvh;
}
.h-\[15px\] {
  height: 15px;
}
.h-\[18px\] {
  height: 18px;
}
.h-\[1px\] {
  height: 1px;
}
.h-\[21px\] {
  height: 21px;
}
.h-\[22px\] {
  height: 22px;
}
.h-\[260px\] {
  height: 260px;
}
.h-\[26px\] {
  height: 26px;
}
.h-\[280px\] {
  height: 280px;
}
.h-\[30px\] {
  height: 30px;
}
.h-\[34px\] {
  height: 34px;
}
.h-\[38px\] {
  height: 38px;
}
.h-\[420px\] {
  height: 420px;
}
.h-\[46px\] {
  height: 46px;
}
.h-\[52px\] {
  height: 52px;
}
.h-\[560px\] {
  height: 560px;
}
.h-\[620px\] {
  height: 620px;
}
.h-\[640px\] {
  height: 640px;
}
.h-\[72px\] {
  height: 72px;
}
.h-\[72vh\] {
  height: 72vh;
}
.h-\[80px\] {
  height: 80px;
}
.h-\[84px\] {
  height: 84px;
}
.h-\[85vh\] {
  height: 85vh;
}
.h-\[9px\] {
  height: 9px;
}
.h-\[calc\(100dvh-8\.5rem\)\] {
  height: calc(100dvh - 8.5rem);
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.h-screen {
  height: 100vh;
}
.max-h-28 {
  max-height: 7rem;
}
.max-h-40 {
  max-height: 10rem;
}
.max-h-48 {
  max-height: 12rem;
}
.max-h-52 {
  max-height: 13rem;
}
.max-h-56 {
  max-height: 14rem;
}
.max-h-64 {
  max-height: 16rem;
}
.max-h-96 {
  max-height: 24rem;
}
.max-h-\[120px\] {
  max-height: 120px;
}
.max-h-\[420px\] {
  max-height: 420px;
}
.max-h-\[60vh\] {
  max-height: 60vh;
}
.max-h-\[72vh\] {
  max-height: 72vh;
}
.max-h-\[800px\] {
  max-height: 800px;
}
.max-h-\[80vh\] {
  max-height: 80vh;
}
.max-h-\[85vh\] {
  max-height: 85vh;
}
.max-h-\[88vh\] {
  max-height: 88vh;
}
.max-h-\[90vh\] {
  max-height: 90vh;
}
.max-h-\[92vh\] {
  max-height: 92vh;
}
.max-h-\[94vh\] {
  max-height: 94vh;
}
.max-h-\[95vh\] {
  max-height: 95vh;
}
.max-h-\[calc\(100vh-260px\)\] {
  max-height: calc(100vh - 260px);
}
.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\] {
  max-height: var(--radix-dropdown-menu-content-available-height);
}
.max-h-full {
  max-height: 100%;
}
.max-h-screen {
  max-height: 100vh;
}
.min-h-0 {
  min-height: 0px;
}
.min-h-\[100dvh\] {
  min-height: 100dvh;
}
.min-h-\[100px\] {
  min-height: 100px;
}
.min-h-\[120px\] {
  min-height: 120px;
}
.min-h-\[24px\] {
  min-height: 24px;
}
.min-h-\[34px\] {
  min-height: 34px;
}
.min-h-\[360px\] {
  min-height: 360px;
}
.min-h-\[400px\] {
  min-height: 400px;
}
.min-h-\[40px\] {
  min-height: 40px;
}
.min-h-\[420px\] {
  min-height: 420px;
}
.min-h-\[460px\] {
  min-height: 460px;
}
.min-h-\[50vh\] {
  min-height: 50vh;
}
.min-h-\[55vh\] {
  min-height: 55vh;
}
.min-h-\[60px\] {
  min-height: 60px;
}
.min-h-\[60vh\] {
  min-height: 60vh;
}
.min-h-\[64px\] {
  min-height: 64px;
}
.min-h-\[70vh\] {
  min-height: 70vh;
}
.min-h-\[80px\] {
  min-height: 80px;
}
.min-h-\[calc\(100vh-200px\)\] {
  min-height: calc(100vh - 200px);
}
.min-h-screen {
  min-height: 100vh;
}
.w-0\.5 {
  width: 0.125rem;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-1\/2 {
  width: 50%;
}
.w-1\/3 {
  width: 33.333333%;
}
.w-1\/4 {
  width: 25%;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-16 {
  width: 4rem;
}
.w-2 {
  width: 0.5rem;
}
.w-2\.5 {
  width: 0.625rem;
}
.w-2\/3 {
  width: 66.666667%;
}
.w-20 {
  width: 5rem;
}
.w-24 {
  width: 6rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-3\/4 {
  width: 75%;
}
.w-32 {
  width: 8rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-44 {
  width: 11rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-64 {
  width: 16rem;
}
.w-7 {
  width: 1.75rem;
}
.w-72 {
  width: 18rem;
}
.w-8 {
  width: 2rem;
}
.w-80 {
  width: 20rem;
}
.w-9 {
  width: 2.25rem;
}
.w-\[18px\] {
  width: 18px;
}
.w-\[190px\] {
  width: 190px;
}
.w-\[1px\] {
  width: 1px;
}
.w-\[200px\] {
  width: 200px;
}
.w-\[22px\] {
  width: 22px;
}
.w-\[260px\] {
  width: 260px;
}
.w-\[26px\] {
  width: 26px;
}
.w-\[32px\] {
  width: 32px;
}
.w-\[34px\] {
  width: 34px;
}
.w-\[38px\] {
  width: 38px;
}
.w-\[420px\] {
  width: 420px;
}
.w-\[52px\] {
  width: 52px;
}
.w-\[560px\] {
  width: 560px;
}
.w-\[620px\] {
  width: 620px;
}
.w-\[640px\] {
  width: 640px;
}
.w-\[72px\] {
  width: 72px;
}
.w-\[92px\] {
  width: 92px;
}
.w-\[9px\] {
  width: 9px;
}
.w-\[calc\(100\%-2rem\)\] {
  width: calc(100% - 2rem);
}
.w-\[min\(280px\2c 72vw\)\] {
  width: min(280px, 72vw);
}
.w-\[min\(280px\2c calc\(100vw-32px\)\)\] {
  width: min(280px, calc(100vw - 32px));
}
.w-\[min\(420px\2c 90\%\)\] {
  width: min(420px, 90%);
}
.w-\[min\(560px\2c 95\%\)\] {
  width: min(560px, 95%);
}
.w-\[min\(92vw\2c 560px\)\] {
  width: min(92vw, 560px);
}
.w-auto {
  width: auto;
}
.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-5 {
  min-width: 1.25rem;
}
.min-w-\[1\.4em\] {
  min-width: 1.4em;
}
.min-w-\[110px\] {
  min-width: 110px;
}
.min-w-\[112px\] {
  min-width: 112px;
}
.min-w-\[140px\] {
  min-width: 140px;
}
.min-w-\[160px\] {
  min-width: 160px;
}
.min-w-\[180px\] {
  min-width: 180px;
}
.min-w-\[200px\] {
  min-width: 200px;
}
.min-w-\[20px\] {
  min-width: 20px;
}
.min-w-\[28px\] {
  min-width: 28px;
}
.min-w-\[8rem\] {
  min-width: 8rem;
}
.min-w-max {
  min-width: -moz-max-content;
  min-width: max-content;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.max-w-7xl {
  max-width: 80rem;
}
.max-w-\[1000px\] {
  max-width: 1000px;
}
.max-w-\[100px\] {
  max-width: 100px;
}
.max-w-\[110px\] {
  max-width: 110px;
}
.max-w-\[1400px\] {
  max-width: 1400px;
}
.max-w-\[140px\] {
  max-width: 140px;
}
.max-w-\[150px\] {
  max-width: 150px;
}
.max-w-\[160px\] {
  max-width: 160px;
}
.max-w-\[1920px\] {
  max-width: 1920px;
}
.max-w-\[220px\] {
  max-width: 220px;
}
.max-w-\[240px\] {
  max-width: 240px;
}
.max-w-\[320px\] {
  max-width: 320px;
}
.max-w-\[380px\] {
  max-width: 380px;
}
.max-w-\[55\%\] {
  max-width: 55%;
}
.max-w-\[560px\] {
  max-width: 560px;
}
.max-w-\[60vw\] {
  max-width: 60vw;
}
.max-w-\[70\%\] {
  max-width: 70%;
}
.max-w-\[78\%\] {
  max-width: 78%;
}
.max-w-\[80\%\] {
  max-width: 80%;
}
.max-w-\[80px\] {
  max-width: 80px;
}
.max-w-\[85\%\] {
  max-width: 85%;
}
.max-w-\[88vw\] {
  max-width: 88vw;
}
.max-w-\[90vw\] {
  max-width: 90vw;
}
.max-w-full {
  max-width: 100%;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-prose {
  max-width: 65ch;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink-0 {
  flex-shrink: 0;
}
.flex-grow {
  flex-grow: 1;
}
.grow {
  flex-grow: 1;
}
.border-collapse {
  border-collapse: collapse;
}
.origin-\[--radix-dropdown-menu-content-transform-origin\] {
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
}
.origin-\[--radix-tooltip-content-transform-origin\] {
  transform-origin: var(--radix-tooltip-content-transform-origin);
}
.origin-top-left {
  transform-origin: top left;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[-50\%\] {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0\.5 {
  --tw-translate-y: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[-50\%\] {
  --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-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\!transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes ping {

  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}
.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}
@keyframes pulse {

  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-default {
  cursor: default;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-wait {
  cursor: wait;
}
.cursor-zoom-in {
  cursor: zoom-in;
}
.touch-none {
  touch-action: none;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize-none {
  resize: none;
}
.resize-y {
  resize: vertical;
}
.resize {
  resize: both;
}
.list-disc {
  list-style-type: disc;
}
.list-none {
  list-style-type: none;
}
.auto-rows-fr {
  grid-auto-rows: minmax(0, 1fr);
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-\[1fr_1fr_auto_auto_auto\] {
  grid-template-columns: 1fr 1fr auto auto auto;
}
.grid-cols-\[1fr_auto\] {
  grid-template-columns: 1fr auto;
}
.grid-cols-\[52px_1fr\] {
  grid-template-columns: 52px 1fr;
}
.grid-cols-\[auto_1fr_auto_auto_1fr_auto\] {
  grid-template-columns: auto 1fr auto auto 1fr auto;
}
.grid-cols-\[repeat\(auto-fill\2c minmax\(175px\2c 1fr\)\)\] {
  grid-template-columns: repeat(auto-fill,minmax(175px,1fr));
}
.grid-cols-\[repeat\(auto-fill\2c minmax\(min\(340px\2c 100\%\)\2c 1fr\)\)\] {
  grid-template-columns: repeat(auto-fill,minmax(min(340px, 100%),1fr));
}
.grid-rows-\[52px_1fr\] {
  grid-template-rows: 52px 1fr;
}
.flex-col {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
.place-items-center {
  place-items: center;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-0 {
  gap: 0px;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-12 {
  gap: 3rem;
}
.gap-14 {
  gap: 3.5rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-\[13px\] {
  gap: 13px;
}
.gap-\[18px\] {
  gap: 18px;
}
.gap-\[9px\] {
  gap: 9px;
}
.gap-\[clamp\(28px\2c 4vw\2c 44px\)\] {
  gap: clamp(28px, 4vw, 44px);
}
.gap-px {
  gap: 1px;
}
.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-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-x-8 {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}
.gap-y-0\.5 {
  row-gap: 0.125rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-1\.5 {
  row-gap: 0.375rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-4 {
  row-gap: 1rem;
}
.-space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-10 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
}
.space-y-14 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(3.5rem * 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-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.divide-x > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * calc(1 - var(--tw-divide-x-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));
}
.divide-\[color\:var\(--border-soft\)\] > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--border-soft);
}
.divide-border > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: hsl(var(--border) / var(--tw-divide-opacity, 1));
}
.divide-border\/50 > :not([hidden]) ~ :not([hidden]) {
  border-color: hsl(var(--border) / 0.5);
}
.divide-slate-100 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-divide-opacity, 1));
}
.divide-white\/20 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.2);
}
.self-start {
  align-self: flex-start;
}
.self-stretch {
  align-self: stretch;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.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;
}
.break-all {
  word-break: break-all;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: 1.25rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-\[10px\] {
  border-radius: 10px;
}
.rounded-\[13px\] {
  border-radius: 13px;
}
.rounded-\[18px\] {
  border-radius: 18px;
}
.rounded-\[20px\] {
  border-radius: 20px;
}
.rounded-\[22px\] {
  border-radius: 22px;
}
.rounded-\[24px\] {
  border-radius: 24px;
}
.rounded-\[28px\] {
  border-radius: 28px;
}
.rounded-\[32px\] {
  border-radius: 32px;
}
.rounded-\[36px\] {
  border-radius: 36px;
}
.rounded-\[40px\] {
  border-radius: 40px;
}
.rounded-\[4px\] {
  border-radius: 4px;
}
.rounded-\[7px\] {
  border-radius: 7px;
}
.rounded-\[9px\] {
  border-radius: 9px;
}
.rounded-\[var\(--radius\)\] {
  border-radius: var(--radius);
}
.rounded-\[var\(--radius-lg\)\] {
  border-radius: var(--radius-lg);
}
.rounded-\[var\(--radius-sm\)\] {
  border-radius: var(--radius-sm);
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.75rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-sm {
  border-radius: 0.125rem;
}
.rounded-xl {
  border-radius: 1rem;
}
.rounded-b-xl {
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
}
.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.rounded-t-3xl {
  border-top-left-radius: 1.5rem;
  border-top-right-radius: 1.5rem;
}
.rounded-t-\[2rem\] {
  border-top-left-radius: 2rem;
  border-top-right-radius: 2rem;
}
.rounded-t-xl {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.rounded-bl-\[var\(--radius-sm\)\] {
  border-bottom-left-radius: var(--radius-sm);
}
.rounded-bl-full {
  border-bottom-left-radius: 9999px;
}
.rounded-br-\[var\(--radius-sm\)\] {
  border-bottom-right-radius: var(--radius-sm);
}
.border {
  border-width: 1px;
}
.border-0 {
  border-width: 0px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-\[1\.5px\] {
  border-width: 1.5px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-b-2 {
  border-bottom-width: 2px;
}
.border-l {
  border-left-width: 1px;
}
.border-l-2 {
  border-left-width: 2px;
}
.border-l-4 {
  border-left-width: 4px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-dashed {
  border-style: dashed;
}
.border-none {
  border-style: none;
}
.\!border-\[color\:var\(--warning\)\] {
  border-color: var(--warning) !important;
}
.border-\[\#1e3a8a\] {
  --tw-border-opacity: 1;
  border-color: rgb(30 58 138 / var(--tw-border-opacity, 1));
}
.border-\[\#D6D3DE\] {
  --tw-border-opacity: 1;
  border-color: rgb(214 211 222 / var(--tw-border-opacity, 1));
}
.border-\[color-mix\(in_srgb\2c var\(--danger\)_28\%\2c transparent\)\] {
  border-color: color-mix(in srgb,var(--danger) 28%,transparent);
}
.border-\[color\:var\(--border-brand\)\] {
  border-color: var(--border-brand);
}
.border-\[color\:var\(--border-soft\)\] {
  border-color: var(--border-soft);
}
.border-\[color\:var\(--border-strong\)\] {
  border-color: var(--border-strong);
}
.border-\[color\:var\(--brand\)\] {
  border-color: var(--brand);
}
.border-\[color\:var\(--line\)\] {
  border-color: var(--line);
}
.border-\[color\:var\(--line2\)\] {
  border-color: var(--line2);
}
.border-\[color\:var\(--v200\)\] {
  border-color: var(--v200);
}
.border-\[color\:var\(--warning-border-strong\)\] {
  border-color: var(--warning-border-strong);
}
.border-\[var\(--border\)\] {
  border-color: var(--border);
}
.border-\[var\(--border-brand\)\] {
  border-color: var(--border-brand);
}
.border-\[var\(--border-soft\)\] {
  border-color: var(--border-soft);
}
.border-\[var\(--border-soft\2c theme\(colors\.gray\.200\)\)\] {
  border-color: var(--border-soft,#e5e7eb);
}
.border-\[var\(--border-strong\)\] {
  border-color: var(--border-strong);
}
.border-\[var\(--brand\)\] {
  border-color: var(--brand);
}
.border-\[var\(--color-success-fg\)\] {
  border-color: var(--color-success-fg);
}
.border-\[var\(--danger-border-strong\)\] {
  border-color: var(--danger-border-strong);
}
.border-\[var\(--line\2c \#e9e7f3\)\] {
  border-color: var(--line,#e9e7f3);
}
.border-\[var\(--line2\2c \#eef1f6\)\] {
  border-color: var(--line2,#eef1f6);
}
.border-\[var\(--primary\)\] {
  border-color: var(--primary);
}
.border-\[var\(--v200\2c \#ddd6fe\)\] {
  border-color: var(--v200,#ddd6fe);
}
.border-\[var\(--violet-200\)\] {
  border-color: var(--violet-200);
}
.border-\[var\(--warning-border-strong\)\] {
  border-color: var(--warning-border-strong);
}
.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-amber-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}
.border-amber-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}
.border-amber-500\/20 {
  border-color: rgb(245 158 11 / 0.2);
}
.border-amber-500\/30 {
  border-color: rgb(245 158 11 / 0.3);
}
.border-amber-800\/50 {
  border-color: rgb(146 64 14 / 0.5);
}
.border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}
.border-blue-300 {
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}
.border-blue-500 {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-blue-500\/30 {
  border-color: rgb(59 130 246 / 0.3);
}
.border-border {
  --tw-border-opacity: 1;
  border-color: hsl(var(--border) / var(--tw-border-opacity, 1));
}
.border-border\/50 {
  border-color: hsl(var(--border) / 0.5);
}
.border-border\/60 {
  border-color: hsl(var(--border) / 0.6);
}
.border-brand-200 {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-200) / var(--tw-border-opacity, 1));
}
.border-brand-300 {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-300) / var(--tw-border-opacity, 1));
}
.border-brand-500 {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-500) / var(--tw-border-opacity, 1));
}
.border-brand-500\/40 {
  border-color: hsl(var(--brand-500) / 0.4);
}
.border-brand-600 {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-600) / var(--tw-border-opacity, 1));
}
.border-card {
  border-color: hsl(var(--card));
}
.border-emerald-200 {
  --tw-border-opacity: 1;
  border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}
.border-emerald-300 {
  --tw-border-opacity: 1;
  border-color: rgb(110 231 183 / var(--tw-border-opacity, 1));
}
.border-emerald-400 {
  --tw-border-opacity: 1;
  border-color: rgb(52 211 153 / var(--tw-border-opacity, 1));
}
.border-emerald-500 {
  --tw-border-opacity: 1;
  border-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.border-emerald-500\/30 {
  border-color: rgb(16 185 129 / 0.3);
}
.border-emerald-500\/40 {
  border-color: rgb(16 185 129 / 0.4);
}
.border-emerald-600 {
  --tw-border-opacity: 1;
  border-color: rgb(5 150 105 / var(--tw-border-opacity, 1));
}
.border-emerald-800 {
  --tw-border-opacity: 1;
  border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
}
.border-emerald-800\/50 {
  border-color: rgb(6 95 70 / 0.5);
}
.border-gray-100 {
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
}
.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.border-gray-50 {
  --tw-border-opacity: 1;
  border-color: rgb(249 250 251 / var(--tw-border-opacity, 1));
}
.border-green-300 {
  --tw-border-opacity: 1;
  border-color: rgb(134 239 172 / var(--tw-border-opacity, 1));
}
.border-orange-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
}
.border-orange-500\/30 {
  border-color: rgb(249 115 22 / 0.3);
}
.border-purple-400 {
  --tw-border-opacity: 1;
  border-color: rgb(192 132 252 / var(--tw-border-opacity, 1));
}
.border-red-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 226 226 / var(--tw-border-opacity, 1));
}
.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}
.border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}
.border-red-400 {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}
.border-red-500\/20 {
  border-color: rgb(239 68 68 / 0.2);
}
.border-red-500\/30 {
  border-color: rgb(239 68 68 / 0.3);
}
.border-red-700 {
  --tw-border-opacity: 1;
  border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
}
.border-red-800 {
  --tw-border-opacity: 1;
  border-color: rgb(153 27 27 / var(--tw-border-opacity, 1));
}
.border-rose-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
}
.border-rose-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}
.border-rose-500\/40 {
  border-color: rgb(244 63 94 / 0.4);
}
.border-rose-600 {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
}
.border-sidebar-border {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sidebar-border) / var(--tw-border-opacity, 1));
}
.border-sky-400 {
  --tw-border-opacity: 1;
  border-color: rgb(56 189 248 / var(--tw-border-opacity, 1));
}
.border-slate-100 {
  --tw-border-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}
.border-slate-200 {
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}
.border-slate-200\/60 {
  border-color: rgb(226 232 240 / 0.6);
}
.border-slate-300 {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}
.border-slate-50 {
  --tw-border-opacity: 1;
  border-color: rgb(248 250 252 / var(--tw-border-opacity, 1));
}
.border-slate-600 {
  --tw-border-opacity: 1;
  border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));
}
.border-slate-700 {
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));
}
.border-slate-800 {
  --tw-border-opacity: 1;
  border-color: rgb(30 41 59 / var(--tw-border-opacity, 1));
}
.border-slate-800\/60 {
  border-color: rgb(30 41 59 / 0.6);
}
.border-transparent {
  border-color: transparent;
}
.border-violet-100 {
  --tw-border-opacity: 1;
  border-color: rgb(237 233 254 / var(--tw-border-opacity, 1));
}
.border-violet-200 {
  --tw-border-opacity: 1;
  border-color: rgb(221 214 254 / var(--tw-border-opacity, 1));
}
.border-violet-200\/60 {
  border-color: rgb(221 214 254 / 0.6);
}
.border-violet-300 {
  --tw-border-opacity: 1;
  border-color: rgb(196 181 253 / var(--tw-border-opacity, 1));
}
.border-violet-400\/25 {
  border-color: rgb(167 139 250 / 0.25);
}
.border-violet-400\/30 {
  border-color: rgb(167 139 250 / 0.3);
}
.border-violet-400\/40 {
  border-color: rgb(167 139 250 / 0.4);
}
.border-violet-500 {
  --tw-border-opacity: 1;
  border-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
}
.border-violet-500\/20 {
  border-color: rgb(139 92 246 / 0.2);
}
.border-violet-500\/30 {
  border-color: rgb(139 92 246 / 0.3);
}
.border-violet-600 {
  --tw-border-opacity: 1;
  border-color: rgb(124 58 237 / var(--tw-border-opacity, 1));
}
.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}
.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/30 {
  border-color: rgb(255 255 255 / 0.3);
}
.border-yellow-500\/30 {
  border-color: rgb(234 179 8 / 0.3);
}
.border-l-amber-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}
.border-l-blue-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-l-emerald-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.border-l-gray-400 {
  --tw-border-opacity: 1;
  border-left-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
}
.border-l-orange-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(249 115 22 / var(--tw-border-opacity, 1));
}
.border-l-red-500 {
  --tw-border-opacity: 1;
  border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}
.border-t-blue-500 {
  --tw-border-opacity: 1;
  border-top-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.border-t-transparent {
  border-top-color: transparent;
}
.border-t-violet-400 {
  --tw-border-opacity: 1;
  border-top-color: rgb(167 139 250 / var(--tw-border-opacity, 1));
}
.border-t-white {
  --tw-border-opacity: 1;
  border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.bg-\[\#05070F\] {
  --tw-bg-opacity: 1;
  background-color: rgb(5 7 15 / var(--tw-bg-opacity, 1));
}
.bg-\[\#0B0F1E\] {
  --tw-bg-opacity: 1;
  background-color: rgb(11 15 30 / var(--tw-bg-opacity, 1));
}
.bg-\[\#0B0F1E\]\/95 {
  background-color: rgb(11 15 30 / 0.95);
}
.bg-\[\#0b0d11\] {
  --tw-bg-opacity: 1;
  background-color: rgb(11 13 17 / var(--tw-bg-opacity, 1));
}
.bg-\[\#1e3a8a\] {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
}
.bg-\[\#ECEAF1\] {
  --tw-bg-opacity: 1;
  background-color: rgb(236 234 241 / var(--tw-bg-opacity, 1));
}
.bg-\[\#F1F0F4\] {
  --tw-bg-opacity: 1;
  background-color: rgb(241 240 244 / var(--tw-bg-opacity, 1));
}
.bg-\[color\:var\(--bg\)\] {
  background-color: var(--bg);
}
.bg-\[color\:var\(--bg-elev\)\] {
  background-color: var(--bg-elev);
}
.bg-\[color\:var\(--bg-elev-2\)\] {
  background-color: var(--bg-elev-2);
}
.bg-\[color\:var\(--border-strong\)\] {
  background-color: var(--border-strong);
}
.bg-\[color\:var\(--brand-soft\)\] {
  background-color: var(--brand-soft);
}
.bg-\[color\:var\(--brand-softer\)\] {
  background-color: var(--brand-softer);
}
.bg-\[color\:var\(--danger\)\] {
  background-color: var(--danger);
}
.bg-\[color\:var\(--success\)\] {
  background-color: var(--success);
}
.bg-\[color\:var\(--success-soft\)\] {
  background-color: var(--success-soft);
}
.bg-\[color\:var\(--v50\)\] {
  background-color: var(--v50);
}
.bg-\[color\:var\(--warning\)\] {
  background-color: var(--warning);
}
.bg-\[color\:var\(--warning-soft\)\] {
  background-color: var(--warning-soft);
}
.bg-\[rgba\(124\2c 58\2c 237\2c 0\.15\)\] {
  background-color: rgba(124,58,237,0.15);
}
.bg-\[var\(--background\)\] {
  background-color: var(--background);
}
.bg-\[var\(--bg-elev\)\] {
  background-color: var(--bg-elev);
}
.bg-\[var\(--bg-elev-2\)\] {
  background-color: var(--bg-elev-2);
}
.bg-\[var\(--border\)\] {
  background-color: var(--border);
}
.bg-\[var\(--brand\)\] {
  background-color: var(--brand);
}
.bg-\[var\(--brand-soft\)\] {
  background-color: var(--brand-soft);
}
.bg-\[var\(--brand-softer\)\] {
  background-color: var(--brand-softer);
}
.bg-\[var\(--card\)\] {
  background-color: var(--card);
}
.bg-\[var\(--color-danger-bg\)\] {
  background-color: var(--color-danger-bg);
}
.bg-\[var\(--color-danger-fg\)\] {
  background-color: var(--color-danger-fg);
}
.bg-\[var\(--color-info-bg\)\] {
  background-color: var(--color-info-bg);
}
.bg-\[var\(--color-muted\)\] {
  background-color: var(--color-muted);
}
.bg-\[var\(--color-muted-fg\)\] {
  background-color: var(--color-muted-fg);
}
.bg-\[var\(--color-success-bg\)\] {
  background-color: var(--color-success-bg);
}
.bg-\[var\(--color-success-fg\)\] {
  background-color: var(--color-success-fg);
}
.bg-\[var\(--color-warning-bg\)\] {
  background-color: var(--color-warning-bg);
}
.bg-\[var\(--danger-soft\)\] {
  background-color: var(--danger-soft);
}
.bg-\[var\(--info\)\] {
  background-color: var(--info);
}
.bg-\[var\(--info-soft\)\] {
  background-color: var(--info-soft);
}
.bg-\[var\(--line2\2c \#eef1f6\)\] {
  background-color: var(--line2,#eef1f6);
}
.bg-\[var\(--primary\)\] {
  background-color: var(--primary);
}
.bg-\[var\(--success\)\] {
  background-color: var(--success);
}
.bg-\[var\(--success-soft\)\] {
  background-color: var(--success-soft);
}
.bg-\[var\(--v50\2c \#f5f3ff\)\] {
  background-color: var(--v50,#f5f3ff);
}
.bg-\[var\(--violet-100\)\] {
  background-color: var(--violet-100);
}
.bg-\[var\(--warning-soft\)\] {
  background-color: var(--warning-soft);
}
.bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.bg-amber-200\/60 {
  background-color: rgb(253 230 138 / 0.6);
}
.bg-amber-200\/90 {
  background-color: rgb(253 230 138 / 0.9);
}
.bg-amber-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 211 77 / var(--tw-bg-opacity, 1));
}
.bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-amber-50\/40 {
  background-color: rgb(255 251 235 / 0.4);
}
.bg-amber-50\/50 {
  background-color: rgb(255 251 235 / 0.5);
}
.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-amber-500\/10 {
  background-color: rgb(245 158 11 / 0.1);
}
.bg-amber-500\/15 {
  background-color: rgb(245 158 11 / 0.15);
}
.bg-amber-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
}
.bg-amber-600\/80 {
  background-color: rgb(217 119 6 / 0.8);
}
.bg-amber-900\/25 {
  background-color: rgb(120 53 15 / 0.25);
}
.bg-amber-900\/30 {
  background-color: rgb(120 53 15 / 0.3);
}
.bg-amber-900\/40 {
  background-color: rgb(120 53 15 / 0.4);
}
.bg-amber-900\/50 {
  background-color: rgb(120 53 15 / 0.5);
}
.bg-amber-950\/50 {
  background-color: rgb(69 26 3 / 0.5);
}
.bg-background {
  background-color: hsl(var(--background));
}
.bg-background\/60 {
  background-color: hsl(var(--background) / 0.6);
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/0 {
  background-color: rgb(0 0 0 / 0);
}
.bg-black\/10 {
  background-color: rgb(0 0 0 / 0.1);
}
.bg-black\/35 {
  background-color: rgb(0 0 0 / 0.35);
}
.bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}
.bg-black\/45 {
  background-color: rgb(0 0 0 / 0.45);
}
.bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
.bg-black\/55 {
  background-color: rgb(0 0 0 / 0.55);
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/65 {
  background-color: rgb(0 0 0 / 0.65);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}
.bg-black\/90 {
  background-color: rgb(0 0 0 / 0.9);
}
.bg-black\/95 {
  background-color: rgb(0 0 0 / 0.95);
}
.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}
.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.bg-blue-500\/15 {
  background-color: rgb(59 130 246 / 0.15);
}
.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-blue-600\/20 {
  background-color: rgb(37 99 235 / 0.2);
}
.bg-border {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--border) / var(--tw-bg-opacity, 1));
}
.bg-brand-100 {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-100) / var(--tw-bg-opacity, 1));
}
.bg-brand-50 {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-50) / var(--tw-bg-opacity, 1));
}
.bg-brand-500 {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-500) / var(--tw-bg-opacity, 1));
}
.bg-brand-500\/15 {
  background-color: hsl(var(--brand-500) / 0.15);
}
.bg-brand-600 {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-600) / var(--tw-bg-opacity, 1));
}
.bg-brand-600\/10 {
  background-color: hsl(var(--brand-600) / 0.1);
}
.bg-brand-600\/15 {
  background-color: hsl(var(--brand-600) / 0.15);
}
.bg-card {
  background-color: hsl(var(--card));
}
.bg-card\/5 {
  background-color: hsl(var(--card) / 0.05);
}
.bg-card\/\[0\.02\] {
  background-color: hsl(var(--card) / 0.02);
}
.bg-card\/\[0\.03\] {
  background-color: hsl(var(--card) / 0.03);
}
.bg-cyan-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(103 232 249 / var(--tw-bg-opacity, 1));
}
.bg-cyan-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
}
.bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
.bg-emerald-100\/80 {
  background-color: rgb(209 250 229 / 0.8);
}
.bg-emerald-200\/80 {
  background-color: rgb(167 243 208 / 0.8);
}
.bg-emerald-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
.bg-emerald-50\/40 {
  background-color: rgb(236 253 245 / 0.4);
}
.bg-emerald-50\/50 {
  background-color: rgb(236 253 245 / 0.5);
}
.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.bg-emerald-500\/10 {
  background-color: rgb(16 185 129 / 0.1);
}
.bg-emerald-500\/15 {
  background-color: rgb(16 185 129 / 0.15);
}
.bg-emerald-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
}
.bg-emerald-900\/30 {
  background-color: rgb(6 78 59 / 0.3);
}
.bg-emerald-900\/40 {
  background-color: rgb(6 78 59 / 0.4);
}
.bg-emerald-900\/50 {
  background-color: rgb(6 78 59 / 0.5);
}
.bg-emerald-950\/50 {
  background-color: rgb(2 44 34 / 0.5);
}
.bg-emerald-950\/60 {
  background-color: rgb(2 44 34 / 0.6);
}
.bg-fuchsia-300\/80 {
  background-color: rgb(240 171 252 / 0.8);
}
.bg-fuchsia-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 244 255 / var(--tw-bg-opacity, 1));
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.bg-gray-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(3 7 18 / var(--tw-bg-opacity, 1));
}
.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}
.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}
.bg-lime-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(132 204 22 / var(--tw-bg-opacity, 1));
}
.bg-muted {
  background-color: hsl(var(--muted));
}
.bg-muted-foreground\/30 {
  background-color: hsl(var(--muted-foreground) / 0.3);
}
.bg-muted\/20 {
  background-color: hsl(var(--muted) / 0.2);
}
.bg-muted\/30 {
  background-color: hsl(var(--muted) / 0.3);
}
.bg-muted\/40 {
  background-color: hsl(var(--muted) / 0.4);
}
.bg-muted\/50 {
  background-color: hsl(var(--muted) / 0.5);
}
.bg-muted\/60 {
  background-color: hsl(var(--muted) / 0.6);
}
.bg-neutral-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 229 229 / var(--tw-bg-opacity, 1));
}
.bg-neutral-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
}
.bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
.bg-orange-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}
.bg-orange-500\/15 {
  background-color: rgb(249 115 22 / 0.15);
}
.bg-orange-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
}
.bg-pink-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 242 248 / var(--tw-bg-opacity, 1));
}
.bg-popover {
  background-color: hsl(var(--card));
}
.bg-primary {
  background-color: hsl(var(--primary));
}
.bg-primary\/10 {
  background-color: hsl(var(--primary) / 0.1);
}
.bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));
}
.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.bg-red-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));
}
.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.bg-red-500\/10 {
  background-color: rgb(239 68 68 / 0.1);
}
.bg-red-500\/15 {
  background-color: rgb(239 68 68 / 0.15);
}
.bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.bg-red-900\/50 {
  background-color: rgb(127 29 29 / 0.5);
}
.bg-red-950\/60 {
  background-color: rgb(69 10 10 / 0.6);
}
.bg-rose-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}
.bg-rose-100\/90 {
  background-color: rgb(255 228 230 / 0.9);
}
.bg-rose-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}
.bg-rose-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}
.bg-rose-500\/70 {
  background-color: rgb(244 63 94 / 0.7);
}
.bg-rose-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}
.bg-secondary {
  background-color: hsl(var(--muted));
}
.bg-sidebar-accent\/30 {
  background-color: hsl(var(--sidebar-accent) / 0.3);
}
.bg-sky-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}
.bg-sky-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}
.bg-slate-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
.bg-slate-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}
.bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}
.bg-slate-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1));
}
.bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.bg-slate-50\/40 {
  background-color: rgb(248 250 252 / 0.4);
}
.bg-slate-50\/50 {
  background-color: rgb(248 250 252 / 0.5);
}
.bg-slate-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
}
.bg-slate-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
.bg-slate-800\/50 {
  background-color: rgb(30 41 59 / 0.5);
}
.bg-slate-800\/60 {
  background-color: rgb(30 41 59 / 0.6);
}
.bg-slate-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}
.bg-slate-900\/0 {
  background-color: rgb(15 23 42 / 0);
}
.bg-slate-900\/30 {
  background-color: rgb(15 23 42 / 0.3);
}
.bg-slate-900\/40 {
  background-color: rgb(15 23 42 / 0.4);
}
.bg-slate-900\/50 {
  background-color: rgb(15 23 42 / 0.5);
}
.bg-slate-900\/60 {
  background-color: rgb(15 23 42 / 0.6);
}
.bg-slate-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
}
.bg-slate-950\/40 {
  background-color: rgb(2 6 23 / 0.4);
}
.bg-slate-950\/90 {
  background-color: rgb(2 6 23 / 0.9);
}
.bg-stone-800\/20 {
  background-color: rgb(41 37 36 / 0.2);
}
.bg-stone-800\/80 {
  background-color: rgb(41 37 36 / 0.8);
}
.bg-transparent {
  background-color: transparent;
}
.bg-violet-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
.bg-violet-100\/60 {
  background-color: rgb(237 233 254 / 0.6);
}
.bg-violet-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(221 214 254 / var(--tw-bg-opacity, 1));
}
.bg-violet-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(196 181 253 / var(--tw-bg-opacity, 1));
}
.bg-violet-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1));
}
.bg-violet-50\/40 {
  background-color: rgb(245 243 255 / 0.4);
}
.bg-violet-50\/50 {
  background-color: rgb(245 243 255 / 0.5);
}
.bg-violet-50\/60 {
  background-color: rgb(245 243 255 / 0.6);
}
.bg-violet-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}
.bg-violet-500\/10 {
  background-color: rgb(139 92 246 / 0.1);
}
.bg-violet-500\/15 {
  background-color: rgb(139 92 246 / 0.15);
}
.bg-violet-500\/20 {
  background-color: rgb(139 92 246 / 0.2);
}
.bg-violet-500\/25 {
  background-color: rgb(139 92 246 / 0.25);
}
.bg-violet-500\/\[0\.07\] {
  background-color: rgb(139 92 246 / 0.07);
}
.bg-violet-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1));
}
.bg-violet-600\/10 {
  background-color: rgb(124 58 237 / 0.1);
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
.bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/30 {
  background-color: rgb(255 255 255 / 0.3);
}
.bg-white\/35 {
  background-color: rgb(255 255 255 / 0.35);
}
.bg-white\/40 {
  background-color: rgb(255 255 255 / 0.4);
}
.bg-white\/5 {
  background-color: rgb(255 255 255 / 0.05);
}
.bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}
.bg-white\/90 {
  background-color: rgb(255 255 255 / 0.9);
}
.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}
.bg-white\/\[0\.06\] {
  background-color: rgb(255 255 255 / 0.06);
}
.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}
.bg-yellow-500\/15 {
  background-color: rgb(234 179 8 / 0.15);
}
.bg-\[radial-gradient\(circle_at_center\2c var\(--tw-gradient-stops\)\2c transparent_80\%\)\] {
  background-image: radial-gradient(circle at center,var(--tw-gradient-stops),transparent 80%);
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.from-amber-300 {
  --tw-gradient-from: #fcd34d var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(252 211 77 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-amber-500 {
  --tw-gradient-from: #f59e0b var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black\/70 {
  --tw-gradient-from: rgb(0 0 0 / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-500 {
  --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-700 {
  --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-600 {
  --tw-gradient-from: hsl(var(--brand-600) / 1) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--brand-600) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-emerald-400 {
  --tw-gradient-from: #34d399 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-fuchsia-600 {
  --tw-gradient-from: #c026d3 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(192 38 211 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-red-600 {
  --tw-gradient-from: #dc2626 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(220 38 38 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-rose-300 {
  --tw-gradient-from: #fda4af var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(253 164 175 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-200 {
  --tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-900 {
  --tw-gradient-from: #0f172a var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-teal-600 {
  --tw-gradient-from: #0d9488 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-400 {
  --tw-gradient-from: #a78bfa var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-400\/40 {
  --tw-gradient-from: rgb(167 139 250 / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-50 {
  --tw-gradient-from: #f5f3ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-violet-600 {
  --tw-gradient-from: #7c3aed var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-zinc-50 {
  --tw-gradient-from: #fafafa var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(250 250 250 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-purple-600 {
  --tw-gradient-to: rgb(147 51 234 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #9333ea var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-rose-300 {
  --tw-gradient-to: rgb(253 164 175 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #fda4af var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-rose-600 {
  --tw-gradient-to: rgb(225 29 72 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #e11d48 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-slate-50 {
  --tw-gradient-to: rgb(248 250 252 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f8fafc var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-stone-100 {
  --tw-gradient-to: rgb(245 245 244 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f5f5f4 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-violet-600\/25 {
  --tw-gradient-to: rgb(124 58 237 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(124 58 237 / 0.25) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-violet-700 {
  --tw-gradient-to: rgb(109 40 217 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #6d28d9 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-zinc-100 {
  --tw-gradient-to: rgb(244 244 245 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f4f4f5 var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-blue-700 {
  --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);
}
.to-blue-900 {
  --tw-gradient-to: #1e3a8a var(--tw-gradient-to-position);
}
.to-brand-600 {
  --tw-gradient-to: hsl(var(--brand-600) / 1) var(--tw-gradient-to-position);
}
.to-brand-800 {
  --tw-gradient-to: hsl(var(--brand-800) / 1) var(--tw-gradient-to-position);
}
.to-emerald-800 {
  --tw-gradient-to: #065f46 var(--tw-gradient-to-position);
}
.to-indigo-600 {
  --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position);
}
.to-orange-400 {
  --tw-gradient-to: #fb923c var(--tw-gradient-to-position);
}
.to-orange-500 {
  --tw-gradient-to: #f97316 var(--tw-gradient-to-position);
}
.to-red-600 {
  --tw-gradient-to: #dc2626 var(--tw-gradient-to-position);
}
.to-rose-400 {
  --tw-gradient-to: #fb7185 var(--tw-gradient-to-position);
}
.to-slate-300 {
  --tw-gradient-to: #cbd5e1 var(--tw-gradient-to-position);
}
.to-slate-800 {
  --tw-gradient-to: #1e293b var(--tw-gradient-to-position);
}
.to-slate-900 {
  --tw-gradient-to: #0f172a var(--tw-gradient-to-position);
}
.to-teal-700 {
  --tw-gradient-to: #0f766e var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-violet-100\/40 {
  --tw-gradient-to: rgb(237 233 254 / 0.4) var(--tw-gradient-to-position);
}
.to-violet-600\/0 {
  --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);
}
.to-zinc-200 {
  --tw-gradient-to: #e4e4e7 var(--tw-gradient-to-position);
}
.fill-amber-400 {
  fill: #fbbf24;
}
.fill-current {
  fill: currentColor;
}
.fill-gray-100 {
  fill: #f3f4f6;
}
.fill-gray-200 {
  fill: #e5e7eb;
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.p-0 {
  padding: 0px;
}
.p-0\.5 {
  padding: 0.125rem;
}
.p-1 {
  padding: 0.25rem;
}
.p-1\.5 {
  padding: 0.375rem;
}
.p-10 {
  padding: 2.5rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-2\.5 {
  padding: 0.625rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-3\.5 {
  padding: 0.875rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-8 {
  padding: 2rem;
}
.p-\[18px\] {
  padding: 18px;
}
.p-\[22px\] {
  padding: 22px;
}
.p-\[3px\] {
  padding: 3px;
}
.\!px-6 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
.\!py-2\.5 {
  padding-top: 0.625rem !important;
  padding-bottom: 0.625rem !important;
}
.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-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-28 {
  padding-top: 7rem;
  padding-bottom: 7rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-36 {
  padding-top: 9rem;
  padding-bottom: 9rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-7 {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-9 {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}
.py-\[15px\] {
  padding-top: 15px;
  padding-bottom: 15px;
}
.pb-0 {
  padding-bottom: 0px;
}
.pb-0\.5 {
  padding-bottom: 0.125rem;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-16 {
  padding-bottom: 4rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-20 {
  padding-bottom: 5rem;
}
.pb-24 {
  padding-bottom: 6rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-32 {
  padding-bottom: 8rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-5 {
  padding-bottom: 1.25rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-\[88px\] {
  padding-bottom: 88px;
}
.pl-1 {
  padding-left: 0.25rem;
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-6 {
  padding-left: 1.5rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pl-9 {
  padding-left: 2.25rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-2\.5 {
  padding-right: 0.625rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pr-3\.5 {
  padding-right: 0.875rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-7 {
  padding-right: 1.75rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pt-0 {
  padding-top: 0px;
}
.pt-0\.5 {
  padding-top: 0.125rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-12 {
  padding-top: 3rem;
}
.pt-16 {
  padding-top: 4rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-20 {
  padding-top: 5rem;
}
.pt-28 {
  padding-top: 7rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-3\.5 {
  padding-top: 0.875rem;
}
.pt-32 {
  padding-top: 8rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-8 {
  padding-top: 2rem;
}
.pt-\[72px\] {
  padding-top: 72px;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.align-top {
  vertical-align: top;
}
.font-mono {
  font-family: var(--font-mono), monospace;
}
.font-sans {
  font-family: var(--font-sans), system-ui, sans-serif;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-7xl {
  font-size: 4.5rem;
  line-height: 1;
}
.text-\[10\.5px\] {
  font-size: 10.5px;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11\.5px\] {
  font-size: 11.5px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12\.5px\] {
  font-size: 12.5px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13\.5px\] {
  font-size: 13.5px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[14\.5px\] {
  font-size: 14.5px;
}
.text-\[14px\] {
  font-size: 14px;
}
.text-\[15px\] {
  font-size: 15px;
}
.text-\[16px\] {
  font-size: 16px;
}
.text-\[17px\] {
  font-size: 17px;
}
.text-\[18px\] {
  font-size: 18px;
}
.text-\[21px\] {
  font-size: 21px;
}
.text-\[22px\] {
  font-size: 22px;
}
.text-\[26px\] {
  font-size: 26px;
}
.text-\[34px\] {
  font-size: 34px;
}
.text-\[40px\] {
  font-size: 40px;
}
.text-\[42px\] {
  font-size: 42px;
}
.text-\[7px\] {
  font-size: 7px;
}
.text-\[8px\] {
  font-size: 8px;
}
.text-\[9\.5px\] {
  font-size: 9.5px;
}
.text-\[9px\] {
  font-size: 9px;
}
.text-\[clamp\(11px\2c 1\.4vw\2c 13px\)\] {
  font-size: clamp(11px, 1.4vw, 13px);
}
.text-\[clamp\(13px\2c 1\.6vw\2c 16px\)\] {
  font-size: clamp(13px, 1.6vw, 16px);
}
.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-extrabold {
  font-weight: 800;
}
.font-light {
  font-weight: 300;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.normal-case {
  text-transform: none;
}
.italic {
  font-style: italic;
}
.ordinal {
  --tw-ordinal: ordinal;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.slashed-zero {
  --tw-slashed-zero: slashed-zero;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.proportional-nums {
  --tw-numeric-spacing: proportional-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-6 {
  line-height: 1.5rem;
}
.leading-\[0\.98\] {
  line-height: 0.98;
}
.leading-\[1\.02\] {
  line-height: 1.02;
}
.leading-\[1\.04\] {
  line-height: 1.04;
}
.leading-\[1\.05\] {
  line-height: 1.05;
}
.leading-\[1\.08\] {
  line-height: 1.08;
}
.leading-loose {
  line-height: 2;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[-0\.01em\] {
  letter-spacing: -0.01em;
}
.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}
.tracking-\[0\.15em\] {
  letter-spacing: 0.15em;
}
.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
.tracking-\[0\.22em\] {
  letter-spacing: 0.22em;
}
.tracking-\[0\.25em\] {
  letter-spacing: 0.25em;
}
.tracking-\[0\.2em\] {
  letter-spacing: 0.2em;
}
.tracking-\[0\.3em\] {
  letter-spacing: 0.3em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-\[\#0f172a\] {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.text-\[\#475569\] {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.text-\[\#64748b\] {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.text-\[\#94a3b8\] {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-\[\#a78bfa\] {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}
.text-\[color\:var\(--b\)\] {
  color: var(--b);
}
.text-\[color\:var\(--b-ink\)\] {
  color: var(--b-ink);
}
.text-\[color\:var\(--b2\)\] {
  color: var(--b2);
}
.text-\[color\:var\(--brand\)\] {
  color: var(--brand);
}
.text-\[color\:var\(--danger\)\] {
  color: var(--danger);
}
.text-\[color\:var\(--ink\)\] {
  color: var(--ink);
}
.text-\[color\:var\(--muted\)\] {
  color: var(--muted);
}
.text-\[color\:var\(--success-strong\)\] {
  color: var(--success-strong);
}
.text-\[color\:var\(--text-1\)\] {
  color: var(--text-1);
}
.text-\[color\:var\(--text-2\)\] {
  color: var(--text-2);
}
.text-\[color\:var\(--text-3\)\] {
  color: var(--text-3);
}
.text-\[color\:var\(--text-4\)\] {
  color: var(--text-4);
}
.text-\[color\:var\(--warning-strong\)\] {
  color: var(--warning-strong);
}
.text-\[rgba\(245\2c 245\2c 247\2c 0\.6\)\] {
  color: rgba(245,245,247,0.6);
}
.text-\[rgba\(245\2c 245\2c 247\2c 0\.62\)\] {
  color: rgba(245,245,247,0.62);
}
.text-\[var\(--b\2c \#7c3aed\)\] {
  color: var(--b,#7c3aed);
}
.text-\[var\(--b-ink\2c \#5b21b6\)\] {
  color: var(--b-ink,#5b21b6);
}
.text-\[var\(--b2\2c \#6d28d9\)\] {
  color: var(--b2,#6d28d9);
}
.text-\[var\(--body\2c \#475569\)\] {
  color: var(--body,#475569);
}
.text-\[var\(--brand\)\] {
  color: var(--brand);
}
.text-\[var\(--color-danger-fg\)\] {
  color: var(--color-danger-fg);
}
.text-\[var\(--color-info-fg\)\] {
  color: var(--color-info-fg);
}
.text-\[var\(--color-muted-fg\)\] {
  color: var(--color-muted-fg);
}
.text-\[var\(--color-success-bg\)\] {
  color: var(--color-success-bg);
}
.text-\[var\(--color-success-fg\)\] {
  color: var(--color-success-fg);
}
.text-\[var\(--color-warning-fg\)\] {
  color: var(--color-warning-fg);
}
.text-\[var\(--danger\)\] {
  color: var(--danger);
}
.text-\[var\(--danger-strong\)\] {
  color: var(--danger-strong);
}
.text-\[var\(--foreground\)\] {
  color: var(--foreground);
}
.text-\[var\(--info\)\] {
  color: var(--info);
}
.text-\[var\(--info-strong\)\] {
  color: var(--info-strong);
}
.text-\[var\(--ink\2c \#0f172a\)\] {
  color: var(--ink,#0f172a);
}
.text-\[var\(--muted\2c \#64748b\)\] {
  color: var(--muted,#64748b);
}
.text-\[var\(--primary\)\] {
  color: var(--primary);
}
.text-\[var\(--primary-fg\)\] {
  color: var(--primary-fg);
}
.text-\[var\(--success\)\] {
  color: var(--success);
}
.text-\[var\(--success-strong\)\] {
  color: var(--success-strong);
}
.text-\[var\(--text-1\)\] {
  color: var(--text-1);
}
.text-\[var\(--text-1\2c theme\(colors\.gray\.900\)\)\] {
  color: var(--text-1,#111827);
}
.text-\[var\(--text-2\)\] {
  color: var(--text-2);
}
.text-\[var\(--text-2\2c theme\(colors\.gray\.600\)\)\] {
  color: var(--text-2,#4b5563);
}
.text-\[var\(--text-2\2c theme\(colors\.gray\.700\)\)\] {
  color: var(--text-2,#374151);
}
.text-\[var\(--text-3\)\] {
  color: var(--text-3);
}
.text-\[var\(--text-3\2c theme\(colors\.gray\.500\)\)\] {
  color: var(--text-3,#6b7280);
}
.text-\[var\(--text-4\)\] {
  color: var(--text-4);
}
.text-\[var\(--violet-700\)\] {
  color: var(--violet-700);
}
.text-\[var\(--warning-strong\)\] {
  color: var(--warning-strong);
}
.text-amber-100 {
  --tw-text-opacity: 1;
  color: rgb(254 243 199 / var(--tw-text-opacity, 1));
}
.text-amber-200 {
  --tw-text-opacity: 1;
  color: rgb(253 230 138 / var(--tw-text-opacity, 1));
}
.text-amber-200\/80 {
  color: rgb(253 230 138 / 0.8);
}
.text-amber-200\/90 {
  color: rgb(253 230 138 / 0.9);
}
.text-amber-300 {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
.text-amber-400 {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.text-amber-700\/80 {
  color: rgb(180 83 9 / 0.8);
}
.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.text-blue-800 {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.text-blue-900 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}
.text-border {
  --tw-text-opacity: 1;
  color: hsl(var(--border) / var(--tw-text-opacity, 1));
}
.text-brand-200 {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-200) / var(--tw-text-opacity, 1));
}
.text-brand-300 {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-300) / var(--tw-text-opacity, 1));
}
.text-brand-400 {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-400) / var(--tw-text-opacity, 1));
}
.text-brand-600 {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-600) / var(--tw-text-opacity, 1));
}
.text-brand-700 {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-700) / var(--tw-text-opacity, 1));
}
.text-card-foreground {
  color: hsl(var(--card-foreground));
}
.text-cyan-600 {
  --tw-text-opacity: 1;
  color: rgb(8 145 178 / var(--tw-text-opacity, 1));
}
.text-destructive {
  color: hsl(var(--destructive));
}
.text-emerald-300 {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}
.text-emerald-400 {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}
.text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}
.text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}
.text-emerald-700 {
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}
.text-emerald-800 {
  --tw-text-opacity: 1;
  color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}
.text-emerald-900 {
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}
.text-foreground {
  color: hsl(var(--foreground));
}
.text-foreground\/90 {
  color: hsl(var(--foreground) / 0.9);
}
.text-fuchsia-600 {
  --tw-text-opacity: 1;
  color: rgb(192 38 211 / var(--tw-text-opacity, 1));
}
.text-gray-100 {
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}
.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}
.text-muted-foreground {
  color: hsl(var(--muted-foreground));
}
.text-muted-foreground\/70 {
  color: hsl(var(--muted-foreground) / 0.7);
}
.text-muted-foreground\/80 {
  color: hsl(var(--muted-foreground) / 0.8);
}
.text-orange-400 {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / var(--tw-text-opacity, 1));
}
.text-orange-600 {
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity, 1));
}
.text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}
.text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}
.text-pink-600 {
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity, 1));
}
.text-popover-foreground {
  color: hsl(var(--card-foreground));
}
.text-primary {
  color: hsl(var(--primary));
}
.text-primary-foreground {
  color: hsl(var(--primary-foreground));
}
.text-purple-600 {
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}
.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.text-red-300 {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-red-600\/80 {
  color: rgb(220 38 38 / 0.8);
}
.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}
.text-rose-300 {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}
.text-rose-400 {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}
.text-rose-500 {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}
.text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}
.text-rose-700 {
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}
.text-sky-600 {
  --tw-text-opacity: 1;
  color: rgb(2 132 199 / var(--tw-text-opacity, 1));
}
.text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / var(--tw-text-opacity, 1));
}
.text-slate-100 {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
.text-slate-300 {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}
.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.text-slate-800 {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}
.text-slate-900 {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.text-violet-100 {
  --tw-text-opacity: 1;
  color: rgb(237 233 254 / var(--tw-text-opacity, 1));
}
.text-violet-200 {
  --tw-text-opacity: 1;
  color: rgb(221 214 254 / var(--tw-text-opacity, 1));
}
.text-violet-300 {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}
.text-violet-400 {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}
.text-violet-500 {
  --tw-text-opacity: 1;
  color: rgb(139 92 246 / var(--tw-text-opacity, 1));
}
.text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}
.text-violet-700 {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / var(--tw-text-opacity, 1));
}
.text-violet-700\/80 {
  color: rgb(109 40 217 / 0.8);
}
.text-violet-800 {
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / var(--tw-text-opacity, 1));
}
.text-violet-900 {
  --tw-text-opacity: 1;
  color: rgb(76 29 149 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/30 {
  color: rgb(255 255 255 / 0.3);
}
.text-white\/35 {
  color: rgb(255 255 255 / 0.35);
}
.text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}
.text-white\/50 {
  color: rgb(255 255 255 / 0.5);
}
.text-white\/55 {
  color: rgb(255 255 255 / 0.55);
}
.text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}
.text-white\/65 {
  color: rgb(255 255 255 / 0.65);
}
.text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}
.text-white\/75 {
  color: rgb(255 255 255 / 0.75);
}
.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
.text-white\/85 {
  color: rgb(255 255 255 / 0.85);
}
.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
.text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}
.text-yellow-600 {
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / var(--tw-text-opacity, 1));
}
.text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}
.underline {
  text-decoration-line: underline;
}
.line-through {
  text-decoration-line: line-through;
}
.no-underline {
  text-decoration-line: none;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.underline-offset-4 {
  text-underline-offset: 4px;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.accent-\[var\(--brand\)\] {
  accent-color: var(--brand);
}
.accent-amber-600 {
  accent-color: #d97706;
}
.accent-brand-500 {
  accent-color: hsl(var(--brand-500) / 1);
}
.accent-brand-600 {
  accent-color: hsl(var(--brand-600) / 1);
}
.accent-emerald-600 {
  accent-color: #059669;
}
.accent-purple-600 {
  accent-color: #9333ea;
}
.accent-red-600 {
  accent-color: #dc2626;
}
.accent-sky-600 {
  accent-color: #0284c7;
}
.accent-violet-600 {
  accent-color: #7c3aed;
}
.opacity-0 {
  opacity: 0;
}
.opacity-10 {
  opacity: 0.1;
}
.opacity-100 {
  opacity: 1;
}
.opacity-20 {
  opacity: 0.2;
}
.opacity-30 {
  opacity: 0.3;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-5 {
  opacity: 0.05;
}
.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;
}
.opacity-\[\.45\] {
  opacity: .45;
}
.mix-blend-screen {
  mix-blend-mode: screen;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_0_1px_rgba\(124\2c 58\2c 237\2c 0\.15\)\2c 0_6px_16px_-6px_rgba\(124\2c 58\2c 237\2c 0\.4\)\] {
  --tw-shadow: 0 0 0 1px rgba(124,58,237,0.15),0 6px 16px -6px rgba(124,58,237,0.4);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color), 0 6px 16px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_0_12px_rgba\(0\2c 0\2c 0\2c 0\.5\)\] {
  --tw-shadow: 0 0 12px rgba(0,0,0,0.5);
  --tw-shadow-colored: 0 0 12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_3px_8px_rgba\(124\2c 58\2c 237\2c \.30\)\] {
  --tw-shadow: 0 3px 8px rgba(124,58,237,.30);
  --tw-shadow-colored: 0 3px 8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_4px_14px_rgba\(0\2c 0\2c 0\2c 0\.35\)\] {
  --tw-shadow: 0 4px 14px rgba(0,0,0,0.35);
  --tw-shadow-colored: 0 4px 14px 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-\[inset_3px_0_0_0_var\(--brand\)\] {
  --tw-shadow: inset 3px 0 0 0 var(--brand);
  --tw-shadow-colored: inset 3px 0 0 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);
}
.shadow-\[var\(--sh\2c 0_6px_24px_-10px_rgba\(15\2c 23\2c 42\2c 0\.14\)\)\] {
  --tw-shadow: var(--sh,0 6px 24px -10px rgba(15,23,42,0.14));
  --tw-shadow-colored: 6px 24px -10px 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-\[var\(--sh-sm\2c 0_1px_2px_rgba\(15\2c 23\2c 42\2c 0\.05\)\)\] {
  --tw-shadow: var(--sh-sm,0 1px 2px rgba(15,23,42,0.05));
  --tw-shadow-colored: 1px 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-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-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);
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[var\(--ring\)\] {
  --tw-shadow-color: var(--ring);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-\[var\(--shadow-1\)\] {
  --tw-shadow-color: var(--shadow-1);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-\[var\(--shadow-2\)\] {
  --tw-shadow-color: var(--shadow-2);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-\[var\(--shadow-3\)\] {
  --tw-shadow-color: var(--shadow-3);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-\[\2026\] {
  --tw-shadow-color: …;
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-black\/40 {
  --tw-shadow-color: rgb(0 0 0 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}
.shadow-card {
  --tw-shadow-color: hsl(var(--card));
  --tw-shadow: var(--tw-shadow-colored);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.ring-\[color\:var\(--warning-soft-strong\)\] {
  --tw-ring-color: var(--warning-soft-strong);
}
.ring-\[var\(--brand-soft\)\] {
  --tw-ring-color: var(--brand-soft);
}
.ring-blue-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.ring-brand-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--brand-400) / var(--tw-ring-opacity, 1));
}
.ring-brand-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--brand-500) / var(--tw-ring-opacity, 1));
}
.ring-brand-500\/40 {
  --tw-ring-color: hsl(var(--brand-500) / 0.4);
}
.ring-brand-500\/50 {
  --tw-ring-color: hsl(var(--brand-500) / 0.5);
}
.ring-brand-600 {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--brand-600) / var(--tw-ring-opacity, 1));
}
.ring-emerald-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity, 1));
}
.ring-gray-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1));
}
.ring-gray-300 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));
}
.ring-red-500 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}
.ring-violet-100 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity, 1));
}
.ring-violet-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(167 139 250 / var(--tw-ring-opacity, 1));
}
.ring-violet-400\/30 {
  --tw-ring-color: rgb(167 139 250 / 0.3);
}
.ring-white {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.ring-offset-1 {
  --tw-ring-offset-width: 1px;
}
.ring-offset-2 {
  --tw-ring-offset-width: 2px;
}
.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}
.ring-offset-white {
  --tw-ring-offset-color: #fff;
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-xl {
  --tw-blur: blur(24px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.\!invert {
  --tw-invert: invert(100%) !important;
  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) !important;
}
.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);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-\[2px\] {
  --tw-backdrop-blur: blur(2px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[background-color\2c border-color\2c color\] {
  transition-property: background-color,border-color,color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[background-color\2c color\2c transform\] {
  transition-property: background-color,color,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[background-color\2c transform\] {
  transition-property: background-color,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[box-shadow\2c border-color\] {
  transition-property: box-shadow,border-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[box-shadow\2c transform\] {
  transition-property: box-shadow,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[color\2c box-shadow\] {
  transition-property: color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[transform\2c box-shadow\] {
  transition-property: transform,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[width\] {
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-150 {
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@keyframes enter {

  from {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));
  }
}
@keyframes exit {

  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));
  }
}
.animate-in {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.fade-in {
  --tw-enter-opacity: 0;
}
.fade-in-0 {
  --tw-enter-opacity: 0;
}
.fade-out {
  --tw-exit-opacity: 0;
}
.zoom-in-95 {
  --tw-enter-scale: .95;
}
.zoom-out {
  --tw-exit-scale: 0;
}
.duration-150 {
  animation-duration: 150ms;
}
.duration-200 {
  animation-duration: 200ms;
}
.duration-300 {
  animation-duration: 300ms;
}
.duration-500 {
  animation-duration: 500ms;
}
.duration-700 {
  animation-duration: 700ms;
}
.ease-in-out {
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.\!running {
  animation-play-state: running !important;
}
.running {
  animation-play-state: running;
}
.paused {
  animation-play-state: paused;
}
.shadow-card    { box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); }
.shadow-card-md { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.\!dark .shadow-card    { box-shadow: 0 1px 3px rgba(0,0,0,0.3) !important; }
.dark .shadow-card    { box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.\!dark .shadow-card-md { box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important; }
.dark .shadow-card-md { box-shadow: 0 4px 16px rgba(0,0,0,0.4); }
/* Background grid sutil del módulo Ortodoncia patient-detail (mockup
     Claude Design). Radial dots slate-200/0.6 con spacing 22px. */
.grid-bg {
    background-image: radial-gradient(circle, rgb(226 232 240 / 0.6) 1px, transparent 1px);
    background-size: 22px 22px;
  }
.\!dark .grid-bg {
    background-image: radial-gradient(circle, rgb(51 65 85 / 0.4) 1px, transparent 1px) !important;
  }
.dark .grid-bg {
    background-image: radial-gradient(circle, rgb(51 65 85 / 0.4) 1px, transparent 1px);
  }
.animate-fade-up { animation: fadeUp 0.2s ease-out; }
.scrollbar-thin::-webkit-scrollbar       { width: 6px; height: 6px; }
.scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
.scrollbar-thin::-webkit-scrollbar-thumb {
    background: hsl(var(--muted-foreground) / 0.4);
    border-radius: 3px;
  }
.scrollbar-thin::-webkit-scrollbar-thumb:hover {
    background: hsl(var(--muted-foreground) / 0.7);
  }
/* Skip link — WCAG 2.4.1. Oculto fuera del viewport hasta recibir
     focus por teclado, donde se renderiza como botón flotante arriba
     izquierda con el color de marca. */
.mf-skip-link {
    position: fixed;
    top: -40px;
    left: 12px;
    z-index: 9999;
    padding: 10px 16px;
    background: var(--brand);
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    border-radius: 8px;
    text-decoration: none;
    box-shadow: 0 6px 24px -4px rgba(124, 58, 237, 0.45);
    transition: top 0.18s ease-out;
  }
.mf-skip-link:focus,
  .mf-skip-link:focus-visible {
    top: 12px;
    outline: 2px solid #fff;
    outline-offset: 2px;
  }
.\[appt\:ID\] {
  appt: ID;
}
.\[resultado\:INVENTADO\] {
  resultado: INVENTADO;
}
.\[resultado\:LE_GUSTO\] {
  resultado: LE GUSTO;
}
.\[reviews\:list\] {
  reviews: list;
}
.\[reviews\:respond\] {
  reviews: respond;
}

/* ════════════════════════════════════════════════════════════════════
   Laboratorios Dentales — animaciones globales + tokens del módulo.
   Reutiliza los tokens existentes (--text-*, --bg-*, --violet-*,
   --success/--warning/--danger) y solo agrega lo que no existía:
   el minimapa del mensajero y el gradiente del ETA hero.
   ════════════════════════════════════════════════════════════════════ */
@keyframes labRing {
  0%   { transform: scale(0.6); opacity: 0.7; }
  100% { transform: scale(2.4); opacity: 0; }
}
@keyframes labPulse {
  0%, 100% { box-shadow: 0 0 0 0 currentColor; opacity: 1; }
  50%      { box-shadow: 0 0 0 6px transparent; opacity: 0.55; }
}
@keyframes labShimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ════════════════════════════════════════════════════════════════════
   Claude Design — clases utility (fase 1)
   Sufijo "-new" en clases que colisionan con markup viejo. Las pages
   nuevas se estilizan con estas clases; las viejas siguen usando
   Tailwind + variables HSL arriba.
   ════════════════════════════════════════════════════════════════════ */

/* Card ------------------------------------------------------------ */
.card {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-1);
  position: relative;
  overflow: hidden;
}
.card__header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.card__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-1);
  font-family: var(--font-sans, system-ui, sans-serif);
}
.card__sub {
  font-size: 11px;
  color: var(--text-3);
  margin-top: 2px;
}
.card__body { padding: 18px; }

/* KPI ------------------------------------------------------------- */
.kpi {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-1);
  padding: 18px;
  position: relative;
  overflow: hidden;
  transition: box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
}
.kpi:hover {
  box-shadow: var(--shadow-2);
  transform: translateY(-1px);
}
.kpi__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.kpi__label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-3);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.kpi__icon {
  width: 34px;
  height: 34px;
  border-radius: var(--radius);
  background: var(--brand-soft);
  color: #c4b5fd;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
}
/* KPI hero — ÚNICO KPI del grupo con acento de marca (degradado "105") */
.kpi--hero .kpi__icon,
:root:not(.dark) .kpi--hero .kpi__icon {
  background: var(--brand-grad);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 3px 8px rgba(124, 58, 237, 0.30);
}
.kpi__value {
  font-family: var(--font-sans, system-ui, sans-serif);
  font-size: 28px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--text-1);
  line-height: 1.05;
}
.kpi__delta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  margin-top: 8px;
  font-weight: 600;
}
.kpi__delta--up   { color: var(--success); }
.kpi__delta--down { color: var(--danger); }
.kpi__delta-sub   { color: var(--text-3); margin-left: 4px; font-weight: 400; }
/* Flecha + porcentaje viajan juntos (antes eran hermanos sueltos del flex).
   Sin fondo por default: las ~290 tarjetas del panel se ven igual que siempre. */
.kpi__delta-pill  { display: inline-flex; align-items: center; gap: 4px; }

/* KPI con acento (opt-in vía prop `accent`) — sólo tiñe el chip del icono; el
   hero conserva el degradado de marca, que manda sobre cualquier acento. */
.kpi--accent:not(.kpi--hero) .kpi__icon {
  background: var(--kpi-accent-soft, var(--brand-soft));
  color: var(--kpi-accent, var(--brand));
  border-color: transparent;
}

/* Sparkline a pie de tarjeta: sangra hasta el borde (el .kpi recorta con
   overflow:hidden, así que respeta el radio de la esquina). */
.kpi__spark {
  margin: 14px -18px -18px;
  line-height: 0;
}

/* ── Fila de KPIs del home admin ──────────────────────────────────
   Acotado a .home-kpis: el resto del panel usa .kpi tal cual. */
.home-kpis .kpi {
  display: flex;
  flex-direction: column;
  padding-top: 20px; /* deja respirar la barra de acento */
}
.home-kpis .kpi::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--kpi-accent, var(--brand));
  opacity: 0.85;
}
.home-kpis .kpi--hero {
  border-color: var(--border-brand);
  /* Capa de fondo, no pseudo-elemento: un ::after se pintaría ENCIMA del
     número y del sparkline. */
  background:
    radial-gradient(120% 95% at 100% 0%, var(--brand-soft), transparent 62%),
    var(--bg-elev);
}
.home-kpis .kpi--hero::before {
  background: var(--brand-grad);
  opacity: 1;
}
.home-kpis .kpi__top    { margin-bottom: 10px; }
.home-kpis .kpi__label  { font-size: 11px; letter-spacing: 0.06em; }
.home-kpis .kpi__value  { font-size: clamp(25px, 2.1vw, 32px); }
.home-kpis .kpi__delta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 3px;
  margin-top: 10px;
  font-size: 12px;
}
.home-kpis .kpi__delta-pill {
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--success-soft);
  font-size: 11.5px;
  font-weight: 600;
}
.home-kpis .kpi__delta--down .kpi__delta-pill { background: var(--danger-soft); }
/* El "vs …" baja a su propia línea: cabe completo y deja de empujar al pill. */
.home-kpis .kpi__delta-sub {
  flex-basis: 100%;
  margin-left: 0;
  font-size: 11px;
  line-height: 1.3;
}
.home-kpis .kpi__spark {
  margin-top: auto;
  padding-top: 16px;
}

/* Badge (nuevo) --------------------------------------------------- */
.badge-new {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  padding: 0 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 1px solid transparent;
}
.badge-new__dot { width: 5px; height: 5px; border-radius: 50%; }
.badge-new--success { background: var(--success-soft); color: #6ee7b7; border-color: rgba(16,185,129,0.2); }
.badge-new--success .badge-new__dot { background: var(--success); }
.badge-new--warning { background: var(--warning-soft); color: #fcd34d; border-color: rgba(245,158,11,0.2); }
.badge-new--warning .badge-new__dot { background: var(--warning); }
.badge-new--danger  { background: var(--danger-soft);  color: #fca5a5; border-color: rgba(239,68,68,0.2); }
.badge-new--danger .badge-new__dot  { background: var(--danger); }
.badge-new--info    { background: var(--info-soft);    color: #93c5fd; border-color: rgba(59,130,246,0.2); }
.badge-new--info .badge-new__dot    { background: var(--info); }
.badge-new--brand   { background: var(--brand-soft);   color: #c4b5fd; border-color: rgba(124,58,237,0.2); }
.badge-new--brand .badge-new__dot   { background: var(--brand); }
.badge-new--neutral { background: rgba(255,255,255,0.04); color: var(--text-2); border-color: var(--border-soft); }

/* Avatar (nuevo) -------------------------------------------------- */
.avatar-new {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 600;
  color: #fff;
  font-family: var(--font-sans, system-ui, sans-serif);
  font-size: 11px;
  flex-shrink: 0;
  background: linear-gradient(135deg, #a78bfa, #7c3aed);
}
.avatar-new--sm { width: 24px; height: 24px; font-size: 10px; }
.avatar-new--lg { width: 64px; height: 64px; font-size: 20px; }
.avatar-new--xl { width: 80px; height: 80px; font-size: 24px; }

/* Button (nuevo) -------------------------------------------------- */
.btn-new {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  padding: 0 14px;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background var(--dur-1) var(--ease),
              color var(--dur-1) var(--ease),
              box-shadow var(--dur-1) var(--ease),
              transform var(--dur-1) var(--ease);
  white-space: nowrap;
}
.btn-new:active:not(:disabled) { transform: scale(.98); }
.btn-new--primary {
  background: var(--brand);
  color: #fff;
  box-shadow: var(--shadow-1);
}
.btn-new--primary:hover   { background: #6d28d9; box-shadow: var(--shadow-2); }
.btn-new--secondary {
  background: var(--bg-elev);
  color: var(--text-2);
  border-color: var(--border-soft);
  box-shadow: var(--shadow-1);
}
.btn-new--secondary:hover { background: var(--bg-hover); color: var(--text-1); }
.btn-new--ghost   { background: transparent; color: var(--text-2); }
.btn-new--ghost:hover     { background: var(--bg-hover); color: var(--text-1); }
.btn-new--danger  { background: var(--danger); color: #fff; box-shadow: var(--shadow-1); }
.btn-new--danger:hover    { background: #b91c1c; box-shadow: var(--shadow-2); }
.btn-new--sm { height: 32px; font-size: 12.5px; padding: 0 12px; border-radius: var(--radius-sm); }
.btn-new:disabled { opacity: 0.45; cursor: not-allowed; }
/* Ring tokenizado sin capa: las variantes --primary/--secondary/--danger
   (unlayered) pisan el box-shadow del :focus-visible en @layer, dejando el
   ring invisible. Esta regla lo restaura para todas las variantes. */
.btn-new:focus-visible { box-shadow: var(--ring); }

/* Tag ------------------------------------------------------------- */
.tag-new {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  background: rgba(255,255,255,0.04);
  color: var(--text-2);
  border: 1px solid var(--border-soft);
}

/* Table ----------------------------------------------------------- */
.table-new { width: 100%; border-collapse: collapse; font-size: 12px; }
.table-new th {
  text-align: left;
  font-weight: 600;
  color: var(--text-3);
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-soft);
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--bg-elev-2);
}
.table-new td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-soft);
  color: var(--text-1);
  vertical-align: middle;
}
.table-new tbody tr { transition: background .12s; }
.table-new tbody tr:hover { background: var(--bg-hover); }
.table-new tbody tr:last-child td { border-bottom: none; }

/* CRM de ventas (/admin/crm) ------------------------------------- */
/* El nombre del prospecto siempre fue un enlace a su ficha, pero no lo
   parecía: sin subrayado y con el cursor de "arrastrar" de la tarjeta
   encima. Se subraya al pasar por encima. Va aquí y no en un style inline
   porque :hover no se puede escribir inline. */
.crm-tarjeta-nombre:hover { text-decoration: underline; text-underline-offset: 2px; }
/* El KPI que además filtra. Sin foco visible, un div[role=button] es
   inalcanzable con teclado a ciegas. */
.crm-kpi-boton:focus-visible { box-shadow: var(--ring); }

/* Input ----------------------------------------------------------- */
.input-new {
  width: 100%;
  background: var(--bg-elev);
  color: var(--text-1);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  height: 34px;
  transition: all .15s;
  outline: none;
}
.input-new:hover { border-color: var(--border-strong); }
.input-new:focus {
  border-color: rgba(124,58,237,0.5);
  box-shadow: 0 0 0 3px rgba(124,58,237,0.15);
}
.input-new::-moz-placeholder { color: var(--text-4); }
.input-new::placeholder { color: var(--text-4); }

/* Tabs ------------------------------------------------------------ */
.tabs-new {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--border-soft);
}
.tab-new {
  padding: 10px 14px;
  font-size: 12px;
  color: var(--text-3);
  font-weight: 500;
  cursor: pointer;
  position: relative;
  border: none;
  background: transparent;
  transition: color .15s;
}
.tab-new:hover { color: var(--text-1); }
.tab-new--active { color: var(--text-1); }
.tab-new--active::after {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: -1px;
  height: 2px;
  background: var(--brand);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 8px var(--brand);
}

/* Segmented control ---------------------------------------------- */
.segment-new {
  display: inline-flex;
  gap: 2px;
  background: var(--bg-elev-2);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 3px;
}
.segment-new__btn {
  border: none;
  background: transparent;
  color: var(--text-2);
  font-size: 12.5px;
  font-weight: 500;
  height: 28px;
  padding: 0 13px;
  border-radius: 7px;
  cursor: pointer;
  transition: background var(--dur-1) var(--ease), color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);
}
.segment-new__btn:hover { color: var(--text-1); }
.segment-new__btn--active { background: rgba(255,255,255,0.06); color: var(--text-1); font-weight: 600; }

/* Skeleton -------------------------------------------------------- */
.skel-new {
  background: linear-gradient(90deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.06) 50%, rgba(255,255,255,0.03) 100%);
  background-size: 200% 100%;
  animation: shimmer-new 1.6s infinite;
  border-radius: 4px;
  display: block;
}
@keyframes shimmer-new {
  0%   { background-position:  200% 0 }
  100% { background-position: -200% 0 }
}
@media (prefers-reduced-motion: reduce) {
  .skel-new { animation: none; }
}

/* Sidebar --------------------------------------------------------- */
.sidebar-new {
  border-right: 1px solid var(--border-soft);
  background: rgba(10,10,15,0.6);
  backdrop-filter: blur(8px);
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: sticky;
  top: 0;
  height: 100vh;
  width: clamp(180px, 14vw, 232px);
  flex-shrink: 0;
}
.sidebar-new--collapsed { width: 68px; padding: 14px 8px; }
@media (max-width: 1280px) {
  .sidebar-new { width: 196px; padding: 12px 8px; }
}
.sidebar-new__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px 18px;
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 12px;
}
.sidebar-new__logo {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
  display: grid;
  place-items: center;
  box-shadow: 0 0 20px rgba(124,58,237,0.4), inset 0 1px 0 rgba(255,255,255,0.2);
  flex-shrink: 0;
  color: #fff;
  font-weight: 700;
}
.sidebar-new__brandname {
  font-family: var(--font-sans, system-ui, sans-serif);
  font-weight: 600;
  font-size: 14px;
  color: var(--text-1);
  letter-spacing: -0.01em;
}
.sidebar-new__brandsub {
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: 0.02em;
}

.nav-section-new {
  padding: 12px 10px 4px;
  font-size: 10px;
  color: var(--text-4);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
}
.nav-item-new {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 8px;
  color: var(--text-2);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .15s;
  position: relative;
  text-decoration: none;
}
.nav-item-new:hover { background: var(--bg-hover); color: var(--text-1); }
.nav-item-new--active {
  background: var(--brand-soft);
  color: #fff;
  border-color: rgba(124,58,237,0.25);
  box-shadow: 0 0 20px rgba(124,58,237,0.15), inset 0 0 0 1px rgba(124,58,237,0.1);
}
.nav-item-new--active::before {
  content: '';
  position: absolute;
  left: -13px;
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 16px;
  background: var(--brand);
  border-radius: 2px;
  box-shadow: 0 0 8px var(--brand);
}
.nav-item-new__count {
  margin-left: auto;
  background: rgba(255,255,255,0.06);
  color: var(--text-2);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-family: var(--font-mono, monospace);
  font-weight: 500;
}
.nav-item-new__dot {
  margin-left: auto;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 6px var(--success);
}

/* Topbar ---------------------------------------------------------- */
.topbar-new {
  height: 52px;
  border-bottom: 1px solid var(--border-soft);
  display: flex;
  align-items: center;
  gap: clamp(10px, 1vw, 16px);
  padding: 0 clamp(12px, 1.5vw, 24px);
  background: rgba(10,10,15,0.6);
  backdrop-filter: blur(8px);
  position: sticky;
  top: 0;
  z-index: 5;
}
.topbar-new__crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--text-3);
}
.topbar-new__crumb--current { color: var(--text-1); font-weight: 500; }
.topbar-new__search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 6px 10px;
  width: 260px;
  color: var(--text-3);
  font-size: 12px;
  cursor: text;
}
.topbar-new__search kbd {
  margin-left: auto;
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  background: rgba(255,255,255,0.06);
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid var(--border-soft);
  color: var(--text-3);
}
.icon-btn-new {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-2);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all .15s;
  position: relative;
}
.icon-btn-new:hover {
  background: var(--bg-elev-2);
  color: var(--text-1);
  border-color: var(--border-strong);
}
.icon-btn-new__dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 6px var(--brand);
}

/* Search field --------------------------------------------------- */
.search-field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 0 10px;
  height: 34px;
  width: 260px;
  transition: all .15s;
}
.search-field:focus-within {
  border-color: rgba(124,58,237,0.5);
  box-shadow: 0 0 0 3px rgba(124,58,237,0.15);
}
.search-field svg { color: var(--text-3); flex-shrink: 0; }
.search-field input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text-1);
  font-size: 12px;
}
.search-field input::-moz-placeholder { color: var(--text-4); }
.search-field input::placeholder { color: var(--text-4); }

/* Pagination ----------------------------------------------------- */
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-top: 1px solid var(--border-soft);
}
.pagination__info { font-size: 11px; color: var(--text-3); }
.pagination__pages { display: flex; gap: 4px; align-items: center; }
.pagination__btn {
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  color: var(--text-2);
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-family: var(--font-mono, monospace);
}
.pagination__btn:hover:not(:disabled) { background: var(--bg-elev-2); color: var(--text-1); }
.pagination__btn--active {
  background: var(--brand-soft);
  color: #fff;
  border-color: rgba(124,58,237,0.3);
}
.pagination__btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* Tab count suffix (para .tab-new) -------------------------------- */
.tab__count {
  margin-left: 6px;
  padding: 1px 6px;
  background: rgba(255,255,255,0.06);
  border-radius: 4px;
  font-size: 10px;
  font-family: var(--font-mono, monospace);
  color: var(--text-3);
  font-weight: 500;
}
.tab-new--active .tab__count { color: var(--text-2); }

/* mono utility ---------------------------------------------------- */
.mono { font-family: var(--font-mono, monospace); }

/* Identificadores técnicos de verdad (claves de API, secretos de webhook,
   contraseñas temporales, tokens de portal) — la letra de máquina que
   sobrevive incluso con Instrument Sans en el resto del panel (WS1-T6). Ver
   el comentario de `--font-mono-tecnico` en tipografia-panel.tsx. */
.mono-tecnico { font-family: var(--font-mono-tecnico, var(--font-mono, monospace)); }

/* Switch --------------------------------------------------------- */
.switch {
  position: relative;
  width: 36px;
  height: 20px;
  border-radius: 10px;
  /* OFF: token sólido + anillo INTERIOR. El anillo va por box-shadow y no por
     `border`: con box-sizing:border-box un borde real encoge la caja de
     posicionamiento y descuadra la perilla absoluta (top/left 2px). */
  background: var(--switch-off);
  box-shadow: inset 0 0 0 1px var(--switch-off-ring);
  cursor: pointer;
  transition: background .15s, box-shadow .15s;
  border: none;
  flex-shrink: 0;
}
.switch--on {
  background: var(--brand);
  box-shadow: 0 0 12px rgba(124,58,237,0.3);
}
.switch__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
  transition: transform .2s;
}
.switch--on .switch__thumb { transform: translateX(16px); }
.switch:disabled { opacity: 0.4; cursor: not-allowed; }

/* Vertical nav (settings tabs sidebar) --------------------------- */
.vnav-item {
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.vnav-item:hover { background: var(--bg-hover); color: var(--text-1); }
.vnav-item--active {
  background: var(--brand-soft);
  color: #fff;
  border-color: rgba(124,58,237,0.25);
}

/* Modal ----------------------------------------------------------- */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5,5,10,0.72);
  backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  z-index: 100;
  padding: 24px;
  animation: fadeIn .2s ease-out;
}
@media (max-width: 640px) {
  .modal-overlay { padding: 12px; }
  .modal { max-height: 94vh; }
}
.modal {
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 24px 60px -12px rgba(0,0,0,0.6);
  animation: slideUp .25s cubic-bezier(0.16, 1, 0.3, 1);
}
.modal--wide { max-width: 680px; }
.modal__header {
  padding: 18px 22px;
  border-bottom: 1px solid var(--border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal__title {
  font-size: 15px;
  font-weight: 600;
  font-family: var(--font-sans, system-ui, sans-serif);
  color: var(--text-1);
}
.modal__body { padding: 22px; }
.modal__footer {
  padding: 14px 22px;
  border-top: 1px solid var(--border-soft);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  background: var(--bg-elev-2);
}
@keyframes fadeIn  { from { opacity: 0 } to { opacity: 1 } }
@keyframes slideUp { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* Field (form) --------------------------------------------------- */
.field-new { display: flex; flex-direction: column; gap: 6px; }
.field-new__label {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-2);
  letter-spacing: 0.02em;
}
.field-new__label .req { color: #c4b5fd; margin-left: 2px; }

.form-section__title {
  font-size: 11px;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.form-section__rule { flex: 1; height: 1px; background: var(--border-soft); }

/* List row ------------------------------------------------------- */
.list-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border-soft);
  transition: background .12s;
}
.list-row:last-child { border-bottom: none; }
.list-row:hover { background: var(--bg-hover); }

/* User chip (sidebar footer) ------------------------------------- */
.user-chip-new {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  cursor: pointer;
  transition: background .15s;
  width: 100%;
  color: var(--text-1);
}
.user-chip-new:hover { background: var(--bg-elev-2); }
.user-chip-new__name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-1);
  line-height: 1.2;
}
.user-chip-new__role { font-size: 10px; color: var(--text-3); line-height: 1.2; }

/* ════════════════════════════════════════════════════════════════════
   Landing page — DaleControl dark theme
   ──────────────────────────────────────────────────────────────────── */

.hero-mesh {
  background:
    radial-gradient(ellipse at 20% 50%, rgba(124, 58, 237, 0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(99, 102, 241, 0.08) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 80%, rgba(20, 184, 166, 0.06) 0%, transparent 40%),
    #0B0F1E;
}

.section-alt {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(99, 102, 241, 0.04) 0%, transparent 60%),
    #0E1229;
}

.card-dark {
  background: #111631;
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: 1.25rem;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-dark:hover {
  border-color: rgba(99, 102, 241, 0.25);
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 30px rgba(124, 58, 237, 0.05);
}

.spec-tab {
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}
.spec-tab::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #7C3AED, #6366F1);
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: inherit;
}
.spec-tab.active::before { opacity: 1; }
.spec-tab.active {
  color: white;
  box-shadow: 0 8px 30px rgba(124, 58, 237, 0.35);
}
.spec-tab > * { position: relative; z-index: 1; }

.pricing-glow { position: relative; }
.pricing-glow::before {
  content: '';
  position: absolute;
  inset: -1px;
  background: linear-gradient(135deg, #7C3AED, #6366F1, #14B8A6);
  border-radius: 1.35rem;
  z-index: -1;
}
.pricing-glow::after {
  content: '';
  position: absolute;
  inset: -1px;
  background: linear-gradient(135deg, #7C3AED, #6366F1, #14B8A6);
  border-radius: 1.35rem;
  z-index: -2;
  filter: blur(20px);
  opacity: 0.4;
}

.whatsapp-gradient {
  background: linear-gradient(135deg, #059669 0%, #14B8A6 50%, #06B6D4 100%);
  border-radius: 1.5rem;
}

.cta-gradient {
  background:
    linear-gradient(135deg, rgba(124, 58, 237, 0.9), rgba(99, 102, 241, 0.9)),
    radial-gradient(ellipse at 30% 50%, rgba(124, 58, 237, 0.3), transparent),
    #0B0F1E;
}

.testimonial-dark {
  background: #111631;
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: 1.25rem;
  transition: all 0.3s ease;
}
.testimonial-dark:hover {
  border-color: rgba(124, 58, 237, 0.3);
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
}

.bento-dark {
  background: #111631;
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: 1.5rem;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.bento-dark:hover {
  border-color: rgba(99, 102, 241, 0.25);
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.step-number {
  background: linear-gradient(135deg, #7C3AED, #6366F1);
  box-shadow: 0 8px 20px rgba(124, 58, 237, 0.3);
}

.btn-purple {
  background: linear-gradient(135deg, #7C3AED, #6366F1);
  transition: all 0.3s ease;
}
.btn-purple:hover {
  box-shadow: 0 8px 30px rgba(124, 58, 237, 0.4);
  transform: translateY(-1px);
}

.btn-outline-dark {
  background: transparent;
  border: 1px solid rgba(148, 163, 184, 0.3);
  transition: all 0.3s ease;
}
.btn-outline-dark:hover {
  border-color: #7C3AED;
  background: rgba(124, 58, 237, 0.1);
}

.logo-item {
  opacity: 0.4;
  transition: opacity 0.3s ease;
}
.logo-item:hover { opacity: 0.8; }

.divider-glow {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.2), transparent);
}

.glass-dark {
  background: rgba(17, 22, 49, 0.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(99, 102, 241, 0.15);
}

.gradient-text-purple {
  background: linear-gradient(135deg, #A78BFA, #818CF8);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.gradient-text-teal {
  background: linear-gradient(135deg, #5EEAD4, #2DD4BF);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
}
.orb-purple { background: rgba(124, 58, 237, 0.15); }
.orb-teal   { background: rgba(20, 184, 166, 0.1);  }
.orb-indigo { background: rgba(99, 102, 241, 0.1);  }

/* ═══════════════════════════════════════════════════════════════════
   LIGHT MODE OVERRIDES — contraste para textos + badges
   ═══════════════════════════════════════════════════════════════════ */

/* Badges: en light mode los colores pastel no contrastan — texto más oscuro */
:root:not(.dark) .badge-new--success { color: #047857; }
:root:not(.dark) .badge-new--warning { color: #b45309; }
:root:not(.dark) .badge-new--danger  { color: #b91c1c; }
:root:not(.dark) .badge-new--info    { color: #1d4ed8; }
:root:not(.dark) .badge-new--brand   { color: #6d28d9; }
:root:not(.dark) .badge-new--neutral { color: var(--text-2); background: rgba(15,10,30,0.04); }

/* KPI icon: en light mode fondo morado tenue + color brand */
:root:not(.dark) .kpi__icon {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: rgba(124,58,237,0.15);
}

/* Nav item activo: en light mode el texto debe ser brand (no blanco) */
:root:not(.dark) .nav-item-new--active {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: rgba(124,58,237,0.2);
  box-shadow: 0 0 12px rgba(124,58,237,0.08), inset 0 0 0 1px rgba(124,58,237,0.08);
}

/* Sidebar + topbar: fondo blanco translúcido en light */
:root:not(.dark) .sidebar-new {
  background: rgba(255,255,255,0.7);
}
:root:not(.dark) .topbar-new {
  background: rgba(255,255,255,0.7);
}

/* Primary button shadow suave para light */
:root:not(.dark) .btn-new--primary {
  box-shadow: 0 0 0 1px rgba(124,58,237,0.3), 0 4px 12px -4px rgba(124,58,237,0.3);
}

/* Ghost button hover en light */
:root:not(.dark) .btn-new--ghost:hover {
  background: var(--bg-hover);
}

/* Cards en light: sombra del sistema (shadow-1; hover del .kpi sube a 2) */
:root:not(.dark) .card,
:root:not(.dark) .kpi {
  box-shadow: var(--shadow-1);
}
:root:not(.dark) .kpi:hover {
  box-shadow: var(--shadow-2);
}

/* Modal en light: sombra más notoria */
:root:not(.dark) .modal {
  box-shadow: 0 20px 50px -10px rgba(15,10,30,0.25), 0 8px 20px -8px rgba(15,10,30,0.15);
}

/* Table hover row en light */
:root:not(.dark) .table-new tbody tr:hover {
  background: var(--bg-hover);
}

/* Input placeholder en light más legible */
:root:not(.dark) .input-new::-moz-placeholder {
  color: var(--text-3);
}
:root:not(.dark) .input-new::placeholder {
  color: var(--text-3);
}

/* Avatar border en light (para destacarse sobre card blanco) */
:root:not(.dark) .avatar-new {
  box-shadow: 0 0 0 1px rgba(15,10,30,0.06);
}

/* Tag-new en light */
:root:not(.dark) .tag-new {
  background: var(--bg-elev-2);
  color: var(--text-2);
  border-color: var(--border-soft);
}
:root:not(.dark) .tag-new:hover {
  background: var(--brand-soft);
  color: var(--brand);
  border-color: rgba(124,58,237,0.2);
}

/* User chip en light */
:root:not(.dark) .user-chip-new:hover {
  background: var(--bg-hover);
}

/* Segment button activo en light */
:root:not(.dark) .segment-new__btn--active {
  color: var(--text-1);
  background: var(--bg-elev);
  box-shadow: var(--shadow-1);
  font-weight: 600;
}

/* Form section rule en light */
:root:not(.dark) .form-section__rule {
  background: var(--border-soft);
}

/* Scrollbar más visible en light */
:root:not(.dark) .scrollbar-thin::-webkit-scrollbar-thumb {
  background: rgba(15,10,30,0.18);
}
:root:not(.dark) .scrollbar-thin::-webkit-scrollbar-thumb:hover {
  background: rgba(15,10,30,0.32);
}

/* Skeleton shimmer — invisible con rgba(255,255,255,.03) en light */
:root:not(.dark) .skel-new {
  background: linear-gradient(90deg, rgba(15,10,30,0.04) 0%, rgba(15,10,30,0.08) 50%, rgba(15,10,30,0.04) 100%);
}

/* Counts (nav badge, tab, kbd) con fondo visible en light */
:root:not(.dark) .nav-item-new__count,
:root:not(.dark) .tab__count,
:root:not(.dark) .topbar-new__search kbd {
  background: rgba(15,10,30,0.06);
  color: var(--text-2);
}

/* Progress track en light (usado en varios componentes inline) */
:root:not(.dark) .progress-track {
  background: rgba(15,10,30,0.06);
}

/* Icon button (ghost icon) en light mejor contraste de fondo al hover */
:root:not(.dark) .icon-btn-new:hover {
  background: var(--bg-hover);
  color: var(--text-1);
}

/* ═══════════════════════════════════════════════════════════════════
   LANDING THEME — tokens aislados para landing pública (NO dashboard)
   Scope: cualquier elemento descendiente de .landing-theme
   ═══════════════════════════════════════════════════════════════════ */

.landing-theme {
  /* Dark por default */
  --ld-bg: #0a0a0f;
  --ld-bg-2: #0f0f16;
  --ld-fg: #f5f5f7;
  --ld-fg-muted: rgba(245,245,247,0.65);
  --ld-brand: #7c3aed;
  --ld-brand-light: #a78bfa;
  --ld-border: rgba(255,255,255,0.08);
  --ld-app-bg: #0c0c12;
  --ld-app-sidebar: #0a0a10;
  --ld-app-card: rgba(255,255,255,0.02);
  --ld-app-border: rgba(255,255,255,0.06);
  --ld-app-active: rgba(124,58,237,0.15);

  --ld-accent-dental: #a78bfa;
  --ld-accent-medical: #34d399;
  --ld-accent-mental: #38bdf8;
  --ld-accent-wellness: #fbbf24;

  --ld-success: #34d399;
  --ld-warning: #fbbf24;
  --ld-danger: #ef4444;
  --ld-info: #38bdf8;

  /* Aliases que los componentes del design ref usan (shared.jsx, etc.) */
  --bg: var(--ld-bg);
  --fg: var(--ld-fg);
  --fg-muted: var(--ld-fg-muted);
  --brand: var(--ld-brand);
  --brand-light: var(--ld-brand-light);
  --border: var(--ld-border);
  --app-bg: var(--ld-app-bg);
  --app-sidebar: var(--ld-app-sidebar);
  --app-card: var(--ld-app-card);
  --app-border: var(--ld-app-border);
  --app-active: var(--ld-app-active);

  background: var(--ld-bg);
  color: var(--ld-fg);
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

.landing-theme[data-mode="light"] {
  /* Jerarquía slate (misma familia que la landing v2: ink/body/muted) */
  --ld-bg: #f7f8fb;
  --ld-bg-2: #ffffff;
  --ld-fg: #0f172a;
  --ld-fg-muted: #475569;
  --ld-border: rgba(15,23,42,0.1);
  /* En claro el acento "light" debe OSCURECER para ser legible como link/logo */
  --ld-brand-light: #6d28d9;
  --ld-app-bg: #ffffff;
  --ld-app-sidebar: #fafafa;
  --ld-app-card: rgba(10,10,15,0.015);
  --ld-app-border: rgba(10,10,15,0.06);
  --ld-app-active: rgba(124,58,237,0.1);
}

/* Evitar que .landing-theme herede los overrides globales de dark mode del dashboard */
.landing-theme input,
.landing-theme textarea,
.landing-theme select {
  background-color: transparent !important;
  color: inherit !important;
  border-color: var(--ld-border) !important;
}

/* En claro los campos van blancos sobre la tarjeta/fondo suave */
.landing-theme[data-mode="light"] input:not([type="checkbox"]):not([type="radio"]),
.landing-theme[data-mode="light"] textarea,
.landing-theme[data-mode="light"] select {
  background-color: #ffffff !important;
}
.landing-theme[data-mode="light"] input::-moz-placeholder, .landing-theme[data-mode="light"] textarea::-moz-placeholder {
  color: #94a3b8;
  opacity: 1;
}
.landing-theme[data-mode="light"] input::placeholder,
.landing-theme[data-mode="light"] textarea::placeholder {
  color: #94a3b8;
  opacity: 1;
}

/* Focus ring violeta accesible. Va en CSS porque el border-color !important
   de arriba anula cualquier intento inline de los componentes. */
.landing-theme input:not([type="checkbox"]):not([type="radio"]):focus,
.landing-theme textarea:focus,
.landing-theme select:focus {
  border-color: rgba(124,58,237,0.65) !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,0.16);
  outline: none;
}

/* Estado de error via aria-invalid (el border inline también muere con el !important) */
.landing-theme input[aria-invalid="true"],
.landing-theme textarea[aria-invalid="true"] {
  border-color: rgba(220,38,38,0.55) !important;
}
.landing-theme input[aria-invalid="true"]:focus,
.landing-theme textarea[aria-invalid="true"]:focus {
  border-color: rgba(220,38,38,0.7) !important;
  box-shadow: 0 0 0 3px rgba(220,38,38,0.12);
}

.landing-theme *::-moz-selection {
  background: rgba(124,58,237,0.4);
  color: #fff;
}

.landing-theme *::selection {
  background: rgba(124,58,237,0.4);
  color: #fff;
}

/* Animación de pulse para detectores IA en mockups */
@keyframes landing-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}
.landing-theme .ld-pulse {
  animation: landing-pulse 2s ease-in-out infinite;
}

/* Float up animation para hero cards */
@keyframes landing-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.landing-theme .ld-float {
  animation: landing-float 6s ease-in-out infinite;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .landing-theme .ld-pulse,
  .landing-theme .ld-float {
    animation: none;
  }
}

@keyframes cmdOverlayIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes cmdPanelIn {
  from { opacity: 0; transform: translate(-50%, -4px) scale(0.98); }
  to   { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  [data-cmd-palette-content],
  [data-cmd-palette-overlay] {
    animation: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Patient Context Bar — animaciones + responsive
   ═══════════════════════════════════════════════════════════════════ */

@keyframes mf-pulse-dot {
  0%, 100% {
    opacity: 1;
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.55);
  }
  50% {
    opacity: 0.75;
    box-shadow: 0 0 0 5px rgba(16, 185, 129, 0);
  }
}

@keyframes mf-pulse-dot-light {
  0%, 100% {
    opacity: 1;
    box-shadow: 0 0 0 0 rgba(5, 150, 105, 0.55);
  }
  50% {
    opacity: 0.75;
    box-shadow: 0 0 0 5px rgba(5, 150, 105, 0);
  }
}

:root:not(.dark) .mf-pulse-dot {
  animation: mf-pulse-dot-light 2s ease-in-out infinite;
}
.dark .mf-pulse-dot {
  animation: mf-pulse-dot 2s ease-in-out infinite;
}

@keyframes mf-context-bar-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mf-context-bar {
  animation: mf-context-bar-in 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Context Bar responsive */
@media (max-width: 639px) {
  .mf-ctx-bar__status,
  .mf-ctx-bar__sep,
  .mf-ctx-bar__meta,
  .mf-ctx-bar__allergy,
  .mf-ctx-bar__actions-desktop {
    display: none !important;
  }
  .mf-ctx-bar__actions-mobile {
    display: block !important;
  }
}
@media (min-width: 640px) and (max-width: 899px) {
  .mf-ctx-bar__actions-desktop {
    gap: 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mf-pulse-dot { animation: none !important; }
  .mf-context-bar { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   Sidebar v2 — animaciones
   ═══════════════════════════════════════════════════════════════════ */

.mf-sidebar-section-body {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
.mf-sidebar-section-body[data-collapsed="true"] {
  grid-template-rows: 0fr;
}
.mf-sidebar-section-body > .mf-sidebar-section-inner {
  overflow: hidden;
  min-height: 0;
}

.mf-sidebar-section-chevron {
  transition: transform 0.18s ease;
}
.mf-sidebar-section-chevron[data-collapsed="true"] {
  transform: rotate(-90deg);
}

@keyframes mf-sidebar-slide-in {
  from { transform: translateX(-100%); }
  to   { transform: translateX(0); }
}
@keyframes mf-sidebar-overlay-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.mf-sidebar-mobile-panel {
  animation: mf-sidebar-slide-in 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}
.mf-sidebar-mobile-overlay {
  animation: mf-sidebar-overlay-in 0.2s ease-out;
}

.mf-sidebar-item {
  position: relative;
}
.mf-sidebar-item--active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 20px;
  margin-top: -10px;
  background: var(--brand-grad-v);
  border-radius: 99px;
}
.mf-sidebar--collapsed .mf-sidebar-item--active::before {
  left: 0;
}

/* Contador del nav (Variante A) — pill --brand-soft; texto AA en ambos temas */
.mf-nav-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 99px;
  background: var(--brand-soft);
  color: #6d28d9; /* brand-700 sobre brand-soft light */
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.dark .mf-nav-count { color: #c4b5fd; } /* violet-300 sobre brand-soft dark */
.mf-sidebar-item--active .mf-nav-count { background: rgba(124, 58, 237, 0.18); }

.mf-sidebar-item-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 4px rgba(124, 58, 237, 0.6);
}

/* Dark/light override del color del item activo — WCAG AA */
:root:not(.dark) .mf-sidebar-item--active {
  color: #6d28d9 !important; /* brand-700, 5.23:1 sobre brand-soft light */
}
.dark .mf-sidebar-item--active {
  color: #c4b5fd !important; /* violet-300, 8.54:1 sobre brand-soft dark */
}

@media (prefers-reduced-motion: reduce) {
  .mf-sidebar-section-body,
  .mf-sidebar-section-chevron,
  .mf-sidebar-mobile-panel,
  .mf-sidebar-mobile-overlay {
    animation: none !important;
    transition: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Trial Pill — animaciones + tokens + responsive
   ═══════════════════════════════════════════════════════════════════ */

@keyframes mf-trial-pill-in {
  from { opacity: 0; transform: translateY(-2px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes mf-trial-pill-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(-2px); }
}

.mf-trial-pill {
  animation: mf-trial-pill-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.mf-trial-pill[data-dismissing="true"] {
  animation: mf-trial-pill-out 0.18s cubic-bezier(0.4, 0, 1, 1) forwards;
}

@keyframes mf-trial-pill-nudge {
  0%, 100% { transform: translateX(0); }
  25%      { transform: translateX(-1px); }
  75%      { transform: translateX(1px); }
}
.mf-trial-pill[data-urgency="critical"] {
  animation:
    mf-trial-pill-in 0.2s cubic-bezier(0.16, 1, 0.3, 1),
    mf-trial-pill-nudge 0.4s ease-in-out 0.3s 1;
}

@media (prefers-reduced-motion: reduce) {
  .mf-trial-pill,
  .mf-trial-pill[data-dismissing="true"],
  .mf-trial-pill[data-urgency="critical"] {
    animation: none !important;
  }
}

/* ─── Trial Pill — colores accent por modo (WCAG AA en los 4 estados) ─── */
:root:not(.dark) {
  --trial-accent-calm:    #6d28d9;
  --trial-accent-warning: #b45309;
  --trial-accent-danger:  #b91c1c;
}
.dark {
  --trial-accent-calm:    #c4b5fd;
  --trial-accent-warning: #fbbf24;
  --trial-accent-danger:  #f87171;
}

/* ─── Trial Pill — label responsive switches ─── */
.mf-trial-pill__label-full { display: inline; }
.mf-trial-pill__label-compact,
.mf-trial-pill__label-min { display: none; }

@media (max-width: 1023.98px) {
  .mf-trial-pill__label-full { display: none !important; }
  .mf-trial-pill__label-compact { display: inline !important; }
  .mf-trial-pill__badge { display: none !important; }
}

@media (max-width: 639.98px) {
  .mf-trial-pill__label-compact { display: none !important; }
  .mf-trial-pill__label-min { display: inline !important; }
  .mf-trial-pill { padding: 0 8px !important; gap: 4px !important; }
}

/* ─── Trial Pill — CTA mini responsive ─── */

/* En mobile <640px: ocultar el CTA y el divider; pill queda solo con label min */
@media (max-width: 639.98px) {
  .mf-trial-pill__cta,
  .mf-trial-pill__divider {
    display: none !important;
  }
  .mf-trial-pill {
    padding-right: 8px !important;
  }
}

/* En tablet 640-1023px: CTA visible pero "Activar plan" label se oculta,
   queda solo la flecha ↗ — más compacto */
@media (min-width: 640px) and (max-width: 1023.98px) {
  .mf-trial-pill__cta-label {
    display: none !important;
  }
  .mf-trial-pill__cta {
    padding: 0 8px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   EmptyStateNew — fade-in al montar
   ═══════════════════════════════════════════════════════════════════ */

@keyframes mf-empty-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mf-empty {
  animation: mf-empty-in 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: reduce) {
  .mf-empty {
    animation: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   Home por rol — grids responsive (Fase 3)
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 1023.98px) {
  .mf-home-receptionist-grid,
  .mf-home-doctor-grid,
  .mf-home-admin-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ============================================================
 * Marketplace · Polish dark-mode
 * Keyframe usado por <FloatingCart /> para animar el badge de count
 * cuando cambia. React re-monta el span vía key={prices.length} y
 * dispara la animación. Respeta motion-safe (usuarios con
 * prefers-reduced-motion no la ven).
 * ============================================================ */

@keyframes mp-cart-pop {
  0%   { transform: scale(0.6); }
  60%  { transform: scale(1.3); }
  100% { transform: scale(1); }
}

/* ============================================================
 * PEDIATRICS MODULE
 * Spec: docs/marketplace/research/odontopediatria/SPEC.md §2, §3, §4.D
 * Todos los colores via CSS vars; cero hex crudos.
 * ============================================================ */

/* Token nuevo: danger fuerte para CAMBRA "extremo" */
:root        { --danger-strong: #991b1b; }
.dark        { --danger-strong: #dc2626; }

/* Drawer (patrón global del módulo) ----------------------------- */
.drawer-overlay {
  position: fixed; inset: 0;
  background: rgba(5, 5, 10, 0.4);
  backdrop-filter: blur(4px);
  z-index: 100;
  animation: pedDrawerFadeIn 0.18s ease-out;
}
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: clamp(320px, 32vw, 480px);
  background: var(--bg-elev);
  border-left: 1px solid var(--border-strong);
  box-shadow: -16px 0 40px -8px rgba(0, 0, 0, 0.3);
  display: flex; flex-direction: column;
  outline: none;
  z-index: 101;
  animation: pedDrawerSlideIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
.drawer:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.drawer--sm { width: clamp(300px, 24vw, 360px); }
.drawer--lg { width: clamp(420px, 44vw, 640px); }
@media (max-width: 640px) {
  .drawer, .drawer--sm, .drawer--lg { width: 100vw; }
}
.drawer__header {
  padding: 16px 22px;
  border-bottom: 1px solid var(--border-soft);
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
}
.drawer__title-block { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.drawer__title    { font-size: 15px; font-weight: 600; color: var(--text-1); margin: 0; }
.drawer__subtitle { font-size: 12px; color: var(--text-2); margin: 0; }
.drawer__close {
  width: 32px; height: 32px;
  display: inline-grid; place-items: center;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}
.drawer__close:hover { background: var(--bg-elev-2); color: var(--text-1); }
.drawer__close:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.drawer__body { flex: 1; overflow-y: auto; padding: 22px; }
.drawer__footer {
  padding: 14px 22px;
  border-top: 1px solid var(--border-soft);
  display: flex; gap: 8px; justify-content: flex-end;
  background: rgba(0, 0, 0, 0.02);
}
.dark .drawer__footer { background: rgba(0, 0, 0, 0.2); }

.drawer__loading {
  position: absolute; inset: 0;
  background: rgba(5, 5, 10, 0.4);
  backdrop-filter: blur(2px);
  display: grid; place-items: center;
  border-radius: inherit;
}
.drawer__spinner { color: var(--brand); animation: pedSpin 800ms linear infinite; }

@keyframes pedDrawerSlideIn {
  from { transform: translateX(100%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}
@keyframes pedDrawerFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pedSpin { to { transform: rotate(360deg); } }

/* Modal full-screen (consentimientos) -------------------------- */
.modal--full { max-width: 980px; max-height: 92vh; }

/* Frankl pill (chart dot + table) ------------------------------ */
.frankl-pill {
  width: 24px; height: 24px; border-radius: 50%;
  display: inline-grid; place-items: center;
  font-family: var(--font-mono, ui-monospace, monospace);
  font-weight: 600; font-size: 11px;
  color: #fff;
}
.frankl-pill--1 { background: var(--danger);  box-shadow: 0 0 6px rgba(220, 38, 38, 0.4); }
.frankl-pill--2 { background: var(--warning); box-shadow: 0 0 6px rgba(217, 119, 6, 0.4); }
.frankl-pill--3 { background: var(--info);    box-shadow: 0 0 6px rgba(37,  99, 235, 0.4); }
.frankl-pill--4 { background: var(--success); box-shadow: 0 0 6px rgba(5,  150, 105, 0.4); }

/* CAMBRA chip (con pulse para "extremo") ----------------------- */
.cambra-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.cambra-chip__dot {
  width: 8px; height: 8px; border-radius: 50%;
}
.cambra-chip--bajo     { background: var(--success-soft); color: var(--success); }
.cambra-chip--bajo .cambra-chip__dot     { background: var(--success); box-shadow: 0 0 6px rgba(5,150,105,0.45); }
.cambra-chip--moderado { background: var(--warning-soft); color: var(--warning); }
.cambra-chip--moderado .cambra-chip__dot { background: var(--warning); box-shadow: 0 0 6px rgba(217,119,6,0.45); }
.cambra-chip--alto     { background: var(--danger-soft);  color: var(--danger); }
.cambra-chip--alto .cambra-chip__dot     { background: var(--danger);  box-shadow: 0 0 6px rgba(220,38,38,0.45); }
.cambra-chip--extremo  { background: var(--danger-soft);  color: var(--danger-strong); animation: pedPulseDangerStrong 2s ease-in-out infinite; }
.cambra-chip--extremo .cambra-chip__dot  { background: var(--danger-strong); box-shadow: 0 0 6px rgba(153,27,27,0.55); }

@keyframes pedPulseDangerStrong {
  0%, 100% { box-shadow: 0 0 0 0   rgba(220, 38, 38, 0.5); }
  50%      { box-shadow: 0 0 0 6px rgba(220, 38, 38, 0); }
}

/* Eruption chart "needle" (línea vertical edad actual) ---------- */
.eruption-needle {
  stroke: var(--brand); stroke-width: 2;
  filter: drop-shadow(0 0 4px var(--brand));
  animation: pedAgeNeedleGlow 4s ease-in-out infinite;
}
@keyframes pedAgeNeedleGlow {
  0%, 100% { filter: drop-shadow(0 0 4px var(--brand)); }
  50%      { filter: drop-shadow(0 0 12px var(--brand)); }
}

/* Tooth highlight post-save ------------------------------------ */
.tooth--saved {
  animation: pedToothHighlight 0.6s ease-out;
}
@keyframes pedToothHighlight {
  0%   { fill: var(--success); filter: drop-shadow(0 0 8px var(--success)); }
  100% { fill: inherit;        filter: none; }
}

/* Pediatrics layout grid --------------------------------------- */
.pedi-shell { display: flex; flex-direction: column; gap: 12px; }
.pedi-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 18px;
}
@media (max-width: 1024px) {
  .pedi-grid { grid-template-columns: 1fr; }
}
.pedi-context-strip {
  position: sticky; top: 52px;
  z-index: 5;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  backdrop-filter: blur(6px);
  padding: 12px 18px;
  display: flex; gap: 22px; flex-wrap: wrap; align-items: center;
}
.pedi-context-strip__block {
  display: flex; flex-direction: column; gap: 2px;
  min-width: 0;
}
.pedi-context-strip__label {
  font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text-2);
}
.pedi-context-strip__value {
  font-size: 13px; font-weight: 600; color: var(--text-1);
}
.pedi-context-strip__actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }

.pedi-siderail { display: flex; flex-direction: column; gap: 14px; }
.pedi-siderail .pedi-card {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 14px;
}

.pedi-card { background: var(--bg-elev); border: 1px solid var(--border-soft); border-radius: 14px; padding: 14px; }
.pedi-card__title { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-2); margin: 0 0 8px; }

.pedi-section { display: flex; flex-direction: column; gap: 14px; }
.pedi-section__header { display: flex; align-items: center; justify-content: space-between; }
.pedi-section__title { font-size: 16px; font-weight: 600; color: var(--text-1); margin: 0; }

/* Charts del módulo (eruption, frankl, habits) ----------------- */
.ped-eruption-chart,
.ped-frankl-chart,
.ped-habits-timeline {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 14px;
}
.ped-eruption-chart__section-toggle {
  width: 100%;
  height: 26px;
  display: flex; align-items: center; gap: 6px;
  padding: 0 8px;
  background: var(--bg-elev-2);
  border: none;
  border-radius: 6px;
  font-size: 12px; font-weight: 600;
  color: var(--text-1);
  cursor: pointer;
  transition: background-color 150ms ease-out;
}
.ped-eruption-chart__section-toggle:hover { background: var(--bg-hover, var(--bg-elev-2)); }
.ped-eruption-chart__section-toggle:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.ped-eruption-chart__counter {
  margin-left: auto;
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 11px;
  color: var(--text-2);
}
.ped-eruption-chart__row:hover rect { opacity: 0.85; }
.ped-eruption-chart__legend {
  display: flex; flex-wrap: wrap; gap: 12px;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--border-soft);
  font-size: 11px; color: var(--text-2);
}
.ped-eruption-chart__legend-item { display: inline-flex; align-items: center; gap: 6px; }
.ped-eruption-chart__sw {
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 3px;
}

.ped-frankl-chart--empty {
  display: grid; place-items: center;
  font-size: 12px; color: var(--text-2);
}

.ped-habits-timeline__label {
  display: flex; align-items: center; gap: 8px;
  height: 100%;
  color: var(--text-1);
  font-size: 12px;
}
.ped-habits-timeline__label-name   { font-weight: 600; }
.ped-habits-timeline__label-status { font-size: 10px; color: var(--text-2); text-transform: capitalize; }

/* Odontograma --------------------------------------------------- */
.ped-odontogram {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 18px;
}
.ped-odontogram__toolbar {
  display: inline-flex;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 2px;
  margin-bottom: 18px;
  gap: 2px;
}
.ped-odontogram__tab {
  border: none;
  background: transparent;
  padding: 6px 14px;
  font-size: 12px; font-weight: 600;
  color: var(--text-2);
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}
.ped-odontogram__tab.is-active { background: var(--brand); color: #fff; }
.ped-odontogram__tab:not(.is-active):hover { background: var(--bg-elev-2); color: var(--text-1); }
.ped-odontogram__tab:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.ped-odontogram__quadrants { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.ped-odontogram__row { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: center; }
.ped-odontogram__separator {
  width: 100%; max-width: 480px;
  height: 1px;
  background: var(--border-soft);
}
.ped-odontogram__midline {
  width: 1px;
  height: 32px;
  background: var(--brand);
  opacity: 0.5;
  margin: 0 6px;
}
.ped-odontogram__hint { margin-top: 12px; font-size: 11px; color: var(--text-2); text-align: center; }

.ped-tooth {
  display: inline-grid;
  place-items: center;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: transform 150ms ease-out, box-shadow 150ms ease-out;
}
.ped-tooth:hover { transform: scale(1.08); filter: drop-shadow(0 0 12px var(--brand)); }
.ped-tooth:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 8px; }

/* Cards del módulo --------------------------------------------- */
.pedi-card__empty   { font-size: 12px; color: var(--text-2); margin: 0; }
.pedi-card__title-row { display: flex; align-items: center; justify-content: space-between; }

.pedi-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-1);
  border-radius: 8px;
  font-size: 12px; font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease-out, border-color 150ms ease-out;
}
.pedi-btn:hover { background: var(--bg-elev-2); border-color: var(--border-strong); }
.pedi-btn:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.pedi-btn--brand { background: var(--brand); color: #fff; border-color: var(--brand); }
.pedi-btn--brand:hover { background: var(--brand); filter: brightness(1.05); }
.pedi-btn--xs { padding: 4px 8px; font-size: 11px; }

.pedi-tutor-card__main { display: flex; gap: 10px; align-items: center; margin: 6px 0 10px; }
.pedi-tutor-card__avatar {
  width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--brand-soft), var(--brand));
  color: #fff;
  font-weight: 600; font-size: 12px;
}
.pedi-tutor-card__name   { font-size: 13px; font-weight: 600; color: var(--text-1); }
.pedi-tutor-card__role   { font-size: 11px; color: var(--text-2); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pedi-tutor-card__ine    { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; padding: 1px 6px; border-radius: 999px; font-size: 10px; }
.pedi-tutor-card__ine--ok      { background: var(--success-soft); color: var(--success); }
.pedi-tutor-card__ine--pending { background: var(--warning-soft); color: var(--warning); }
.pedi-tutor-card__contact { display: flex; flex-direction: column; gap: 4px; font-size: 11px; }
.pedi-tutor-card__contact a { color: var(--text-2); display: inline-flex; align-items: center; gap: 6px; }
.pedi-tutor-card__contact a:hover { color: var(--brand); }
.pedi-tutor-card__actions { display: flex; gap: 6px; margin-top: 10px; }
.pedi-tutor-card__badge   { background: var(--bg-elev-2); color: var(--text-2); font-size: 10px; padding: 1px 6px; border-radius: 999px; }

.pedi-risk-card__meta { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 0; padding: 0; font-size: 12px; }
.pedi-risk-card__meta div { display: flex; justify-content: space-between; }
.pedi-risk-card__meta dt { color: var(--text-2); }
.pedi-risk-card__meta dd { color: var(--text-1); margin: 0; font-weight: 500; }

.pedi-alerts-card__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.pedi-alerts-card__list li { font-size: 12px; color: var(--text-1); display: flex; align-items: center; gap: 6px; }
.pedi-alerts-card__sep { margin-top: 14px; }

.pedi-maintainer-card__main { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0; color: var(--brand); }
.pedi-maintainer-card__name { font-size: 13px; font-weight: 600; color: var(--text-1); }
.pedi-maintainer-card__meta { font-size: 11px; color: var(--text-2); }
.pedi-maintainer-card__progress { margin-top: 8px; }
.pedi-maintainer-card__bar { height: 6px; background: var(--bg-elev-2); border-radius: 999px; overflow: hidden; }
.pedi-maintainer-card__fill { height: 100%; background: var(--brand); }
.pedi-maintainer-card__progress-meta { display: flex; justify-content: space-between; font-size: 10px; color: var(--text-2); margin-top: 4px; }
.pedi-maintainer-card__action { margin-top: 10px; width: 100%; justify-content: center; }

.pedi-sealant-card__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}
.pedi-sealant-card__cell {
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 8px;
  font-size: 11px;
  display: flex; flex-direction: column; gap: 4px;
  background: var(--bg-elev);
}
.pedi-sealant-card__cell--ok     { border-color: var(--success); }
.pedi-sealant-card__cell--warn   { border-color: var(--warning); }
.pedi-sealant-card__cell--danger { border-color: var(--danger); }
.pedi-sealant-card__cell--empty  { opacity: 0.7; }
.pedi-sealant-card__fdi      { font-family: var(--font-mono, ui-monospace, monospace); font-size: 11px; color: var(--text-2); }
.pedi-sealant-card__status   { display: flex; align-items: center; gap: 4px; font-weight: 600; text-transform: capitalize; }
.pedi-sealant-card__material { color: var(--text-2); font-size: 10px; }
.pedi-sealant-card__missing  { color: var(--text-2); font-style: italic; }

.pedi-frank-sparkline-card svg { display: block; margin: 8px 0; }
.pedi-frank-sparkline-card__last { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-2); }

.pedi-consent-pending-card { border-color: var(--warning); background: var(--warning-soft); }
.pedi-consent-pending-card .pedi-card__title { color: var(--warning); display: flex; align-items: center; gap: 6px; }
.pedi-consent-pending-card__list { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-direction: column; gap: 6px; }
.pedi-consent-pending-card__list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--text-1); }

/* Forms del módulo --------------------------------------------- */
.pedi-form { display: flex; flex-direction: column; gap: 16px; }
.pedi-form__field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-2); }
.pedi-form__field span { font-weight: 500; }
.pedi-form__field input,
.pedi-form__field select,
.pedi-form__field textarea {
  padding: 8px 10px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-1);
  border-radius: 8px;
  font-size: 13px;
  font-family: inherit;
  transition: border-color 150ms ease-out;
}
.pedi-form__field input:focus,
.pedi-form__field select:focus,
.pedi-form__field textarea:focus {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
  border-color: var(--brand);
}
.pedi-form__hint { font-size: 11px; color: var(--text-2); margin: 4px 0 0; }
.pedi-form__hint--err { color: var(--danger); }

.pedi-form__fieldset { border: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.pedi-form__fieldset legend {
  font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--text-2); padding: 0; margin-bottom: 4px;
}

.pedi-form__pillgroup { display: flex; gap: 6px; flex-wrap: wrap; }
.pedi-form__pillgroup--wrap { gap: 6px; }
.pedi-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-1);
  font-size: 12px; font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease-out, border-color 150ms ease-out;
}
.pedi-pill:hover { background: var(--bg-elev-2); }
.pedi-pill.is-active { background: var(--brand); color: #fff; border-color: var(--brand); }
.pedi-pill:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.pedi-form__franklgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.pedi-frankl-option {
  display: flex; flex-direction: column; gap: 2px;
  padding: 12px;
  border: 2px solid var(--border-soft);
  background: var(--bg-elev);
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  transition: border-color 150ms ease-out, background-color 150ms ease-out;
}
.pedi-frankl-option__digit {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 22px; font-weight: 700;
  color: var(--text-1);
}
.pedi-frankl-option__label { font-size: 12px; font-weight: 600; color: var(--text-1); }
.pedi-frankl-option__hint  { font-size: 10px; color: var(--text-2); }
.pedi-frankl-option:hover  { border-color: var(--border-strong); }
.pedi-frankl-option.is-active.pedi-frankl-option--1 { border-color: var(--danger);  background: var(--danger-soft); }
.pedi-frankl-option.is-active.pedi-frankl-option--2 { border-color: var(--warning); background: var(--warning-soft); }
.pedi-frankl-option.is-active.pedi-frankl-option--3 { border-color: var(--info);    background: var(--info-soft); }
.pedi-frankl-option.is-active.pedi-frankl-option--4 { border-color: var(--success); background: var(--success-soft); }
.pedi-frankl-option:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.pedi-form__venhamlist { display: flex; flex-direction: column; gap: 6px; }
.pedi-form__venhamlist .pedi-pill { width: 100%; justify-content: flex-start; }
.pedi-form__monodigit {
  font-family: var(--font-mono, ui-monospace, monospace);
  width: 18px; display: inline-block; text-align: center;
  background: var(--bg-elev-2);
  padding: 1px 4px;
  border-radius: 4px;
  font-size: 11px;
  color: var(--text-2);
}
.pedi-pill.is-active .pedi-form__monodigit { background: rgba(255, 255, 255, 0.2); color: #fff; }

.pedi-checkbox {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  font-size: 12px;
  cursor: pointer;
  background: var(--bg-elev);
  transition: background-color 150ms ease-out, border-color 150ms ease-out;
}
.pedi-checkbox:hover { background: var(--bg-elev-2); }
.pedi-checkbox.is-checked { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); }
.pedi-checkbox input[type="checkbox"] { accent-color: var(--brand); }
.pedi-form__checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
@media (max-width: 480px) {
  .pedi-form__checklist { grid-template-columns: 1fr; }
}
.pedi-form__row-checks { display: flex; gap: 8px; flex-wrap: wrap; }

.pedi-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .pedi-form__grid { grid-template-columns: 1fr; } }

.pedi-form__section {
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 12px;
  background: var(--bg-elev);
}
.pedi-form__section summary {
  font-size: 12px; font-weight: 600; cursor: pointer;
  color: var(--text-1);
  margin-bottom: 8px;
  list-style: none;
}
.pedi-form__section summary::-webkit-details-marker { display: none; }
.pedi-form__section summary::before { content: "▸ "; color: var(--text-2); }
.pedi-form__section[open] summary::before { content: "▾ "; }

.pedi-form__teethgrid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 4px;
}
@media (max-width: 600px) {
  .pedi-form__teethgrid { grid-template-columns: repeat(5, 1fr); }
}
.pedi-tooth-toggle {
  height: 32px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-2);
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 11px;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}
.pedi-tooth-toggle:hover { background: var(--bg-elev-2); }
.pedi-tooth-toggle.is-active { background: var(--brand); color: #fff; border-color: var(--brand); }
.pedi-tooth-toggle:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.pedi-cambra-preview {
  margin-top: 16px;
  padding: 12px;
  background: var(--bg-elev-2);
  border-radius: 10px;
  font-size: 12px;
  color: var(--text-1);
}
.pedi-cambra-preview p { margin: 6px 0; }
.pedi-cambra-preview__rationale { color: var(--text-2); font-size: 11px; }
.pedi-cambra-back { margin-top: 8px; align-self: flex-start; }

.pedi-tooth-drawer__tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }

/* Modals + signature pad ---------------------------------------- */
.ped-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(5, 5, 10, 0.6);
  backdrop-filter: blur(4px);
  z-index: 100;
  display: grid; place-items: center;
  padding: 16px;
  animation: pedDrawerFadeIn 0.18s ease-out;
}
.ped-modal {
  width: 100%;
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  border-radius: 16px;
  display: flex; flex-direction: column;
  max-height: 92vh;
  overflow: hidden;
  outline: none;
  animation: pedDrawerFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.ped-modal__header {
  padding: 16px 22px;
  border-bottom: 1px solid var(--border-soft);
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 12px;
}
.ped-modal__breadcrumb { font-size: 11px; color: var(--text-2); text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }
.ped-modal__title { font-size: 18px; font-weight: 600; color: var(--text-1); margin: 4px 0 2px; }
.ped-modal__sub   { font-size: 12px; color: var(--text-2); margin: 0; }
.ped-modal__close {
  width: 36px; height: 36px;
  display: inline-grid; place-items: center;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
}
.ped-modal__close:hover { background: var(--bg-elev-2); color: var(--text-1); }
.ped-modal__body { flex: 1; overflow-y: auto; padding: 22px; }
.ped-modal__footer {
  padding: 14px 22px;
  border-top: 1px solid var(--border-soft);
  display: flex; gap: 8px; justify-content: flex-end;
  background: rgba(0, 0, 0, 0.02);
}
.dark .ped-modal__footer { background: rgba(0, 0, 0, 0.2); }

.ped-consent-modal__legal {
  background: var(--bg-elev-2);
  padding: 14px 18px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-1);
  margin-bottom: 14px;
}
.ped-consent-modal__legal p { margin: 0 0 10px; }
.ped-consent-modal__legal p:last-child { margin: 0; }
.ped-consent-modal__assent { color: var(--warning); font-weight: 600; }
.ped-consent-modal__tabs   { display: flex; gap: 8px; margin: 6px 0 14px; }

.ped-signature-pad {
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--bg-elev);
  padding: 6px;
  display: flex; flex-direction: column; gap: 6px;
}
.ped-signature-pad__canvas {
  width: 100%;
  height: 200px;
  background: var(--bg);
  border-radius: 8px;
  cursor: crosshair;
  touch-action: none;
}
.ped-signature-pad__toolbar {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px; color: var(--text-2);
  padding: 0 6px;
}

.ped-evolution-grid { display: flex; flex-direction: column; gap: 18px; }
.ped-evolution-pair { border: 1px solid var(--border-soft); border-radius: 10px; padding: 12px; background: var(--bg-elev); }
.ped-evolution-pair h3 { font-size: 13px; font-weight: 600; color: var(--text-1); margin: 0 0 10px; }
.ped-evolution-pair__columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ped-evolution-pair img { width: 100%; height: 240px; -o-object-fit: cover; object-fit: cover; border-radius: 8px; background: var(--bg-elev-2); }
.ped-evolution-pair figcaption { font-size: 11px; color: var(--text-2); margin-top: 6px; text-align: center; }
.ped-evolution-pair__placeholder {
  height: 240px;
  border: 1px dashed var(--border-strong);
  border-radius: 8px;
  display: grid; place-items: center;
  color: var(--text-2);
  font-size: 12px;
}

/* Sections (sub-tabs) ------------------------------------------ */
.pedi-section__actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pedi-section__alert {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--warning-soft);
  color: var(--warning);
  font-size: 12px; font-weight: 500;
}

.pedi-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.pedi-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin-top: 8px;
}
.pedi-table th, .pedi-table td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--border-soft);
  color: var(--text-1);
}
.pedi-table th { font-weight: 600; color: var(--text-2); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
.pedi-table__mono { font-family: var(--font-mono, ui-monospace, monospace); }
.pedi-table__cap  { text-transform: capitalize; }

/* Sub-nav y context-strip extras ------------------------------- */
.pedi-subnav {
  display: flex; gap: 4px; flex-wrap: wrap;
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 14px;
}
.pedi-subnav__tab {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-2);
  font-size: 13px; font-weight: 500;
  cursor: pointer;
  transition: color 150ms ease-out, border-color 150ms ease-out;
}
.pedi-subnav__tab:hover { color: var(--text-1); }
.pedi-subnav__tab.is-active { color: var(--brand); border-bottom-color: var(--brand); }
.pedi-subnav__tab:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; border-radius: 6px 6px 0 0; }
.pedi-subnav__count {
  background: var(--bg-elev-2);
  color: var(--text-2);
  font-size: 10px; font-weight: 600;
  padding: 1px 6px;
  border-radius: 999px;
}
.pedi-subnav__tab.is-active .pedi-subnav__count { background: var(--brand-soft); color: var(--brand); }

.pedi-context-strip__mono { font-family: var(--font-mono, ui-monospace, monospace); }
.pedi-context-strip__cap  { text-transform: capitalize; }
.pedi-context-strip__pill { font-size: 10px; width: 18px; height: 18px; }
.pedi-context-strip__trend--up   { color: var(--success); }
.pedi-context-strip__trend--down { color: var(--danger); }

.pedi-main { display: flex; flex-direction: column; }

/* Lista de Odontopediatría (página index) ---------------------- */
.ped-list { display: flex; flex-direction: column; gap: 16px; max-width: 1280px; margin: 0 auto; }
.ped-list__header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  flex-wrap: wrap;
}
.ped-list__title { font-size: 22px; font-weight: 600; color: var(--text-1); margin: 0; letter-spacing: -0.01em; }
.ped-list__subtitle { font-size: 13px; color: var(--text-2); margin: 4px 0 0; }

.ped-list__toolbar {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 10px 14px;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 12px;
}
.ped-list__search {
  display: flex; align-items: center; gap: 8px;
  flex: 1; min-width: 220px;
  padding: 6px 10px;
  background: var(--bg);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  color: var(--text-2);
}
.ped-list__search input {
  flex: 1; background: transparent; border: none; outline: none;
  font-size: 13px; color: var(--text-1); font-family: inherit;
}
.ped-list__search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.ped-list__count { font-size: 12px; color: var(--text-2); margin-left: auto; }

.ped-list__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 1024px) { .ped-list__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ped-list__grid { grid-template-columns: 1fr; } }

.ped-list-card {
  display: flex; flex-direction: column; gap: 10px;
  padding: 14px;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: border-color 150ms ease-out, box-shadow 150ms ease-out, transform 150ms ease-out;
}
.ped-list-card:hover { border-color: var(--border-strong); box-shadow: 0 6px 18px -8px rgba(15,10,30,0.18); transform: translateY(-1px); }
.ped-list-card:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

.ped-list-card__header { display: flex; align-items: center; gap: 10px; }
.ped-list-card__avatar {
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--brand-soft), var(--brand));
  color: #fff; font-weight: 600; font-size: 13px;
  flex-shrink: 0;
}
.ped-list-card__title-block { min-width: 0; flex: 1; }
.ped-list-card__name { font-size: 14px; font-weight: 600; color: var(--text-1); }
.ped-list-card__meta { display: flex; gap: 6px; align-items: center; font-size: 11px; color: var(--text-2); flex-wrap: wrap; }
.ped-list-card__age { font-family: var(--font-mono, monospace); font-weight: 500; }
.ped-list-card__dot { color: var(--text-3); }
.ped-list-card__dentition { text-transform: capitalize; }

.ped-list-card__chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.ped-list-card__frankl-block { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-2); }
.ped-list-card__frankl-pill { width: 18px; height: 18px; font-size: 10px; }
.ped-list-card__missing-record {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 999px;
  background: var(--warning-soft); color: var(--warning);
  font-size: 10px; font-weight: 600;
}

.ped-list-card__rows { display: flex; flex-direction: column; gap: 4px; }
.ped-list-card__row {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; color: var(--text-2);
}

.ped-list__empty {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 60px 20px;
  background: var(--bg-elev);
  border: 1px dashed var(--border-strong);
  border-radius: 14px;
  text-align: center;
}
.ped-list__empty--soft { padding: 30px 20px; border-style: solid; }
.ped-list__empty-icon {
  width: 80px; height: 80px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--brand-soft);
  color: var(--brand);
}
.ped-list__empty h2 { font-size: 16px; font-weight: 600; color: var(--text-1); margin: 0; }
.ped-list__empty p { font-size: 13px; color: var(--text-2); margin: 0; max-width: 460px; }

/* Página dedicada de Odontopediatría -------------------------- */
.ped-detail { max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.ped-detail__topbar { display: flex; gap: 8px; align-items: center; }
.ped-detail__back { margin-right: auto; }
.ped-detail__header {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
}
.ped-detail__avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--brand-soft), var(--brand));
  color: #fff; font-weight: 600; font-size: 16px;
  flex-shrink: 0;
}
.ped-detail__name { font-size: 20px; font-weight: 600; color: var(--text-1); margin: 0; letter-spacing: -0.01em; }
.ped-detail__meta {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 12px; color: var(--text-2); margin: 4px 0 0;
}
.ped-detail__age { font-family: var(--font-mono, monospace); font-weight: 500; }
.ped-detail__sep { color: var(--text-3); }
.ped-detail__dentition { text-transform: capitalize; }

.pedi-shell--full-page { gap: 18px; }

/* Onboarding wizard (Nuevo paciente pediátrico) ---------------- */
.ped-onboarding { width: min(820px, 100vw); }
.ped-onboarding__stepper {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  border-bottom: 1px solid var(--border-soft);
  background: var(--bg-elev-2);
}
.ped-onboarding__step {
  display: flex; align-items: center; gap: 8px;
  flex: 1;
  font-size: 12px;
  color: var(--text-2);
}
.ped-onboarding__step::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border-soft);
  margin-left: 8px;
}
.ped-onboarding__step:last-child::after { display: none; }
.ped-onboarding__step-num {
  width: 22px; height: 22px;
  border-radius: 50%;
  display: inline-grid; place-items: center;
  border: 1px solid var(--border-strong);
  background: var(--bg-elev);
  color: var(--text-2);
  font-size: 11px; font-weight: 600;
  flex-shrink: 0;
}
.ped-onboarding__step-label { font-weight: 500; white-space: nowrap; }
.ped-onboarding__step.is-active .ped-onboarding__step-num {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}
.ped-onboarding__step.is-active .ped-onboarding__step-label { color: var(--text-1); font-weight: 600; }
.ped-onboarding__step.is-done .ped-onboarding__step-num {
  border-color: var(--success);
  background: var(--success);
  color: #fff;
}
.ped-onboarding__step.is-done .ped-onboarding__step-label { color: var(--success); }
.ped-onboarding__body { min-height: 340px; }
.ped-onboarding__footer { gap: 8px; flex-wrap: wrap; }

/* Endodontics module ------------------------------------------ */
.endo-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 1024px) { .endo-shell { grid-template-columns: 1fr; } }

.endo-mini-odo {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 16px;
  display: flex; flex-direction: column; gap: 12px;
}
.endo-mini-odo__header h3 { font-size: 13px; font-weight: 600; color: var(--text-1); margin: 0; }
.endo-mini-odo__header p  { font-size: 11px; color: var(--text-2); margin: 4px 0 0; }
.endo-mini-odo__rows { display: flex; flex-direction: column; gap: 10px; }
.endo-mini-odo__separator { height: 1px; border-top: 1px dashed var(--border-soft); }
.endo-mini-odo__row { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.endo-mini-odo__tooth {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 4px 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 120ms, border-color 120ms;
}
.endo-mini-odo__tooth:hover { background: var(--bg-elev-2); }
.endo-mini-odo__tooth.is-active { border-color: var(--brand); background: var(--brand-soft); }
.endo-mini-odo__tooth:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.endo-mini-odo__dot {
  width: 18px; height: 22px;
  border-radius: 6px;
  display: block;
}
.endo-mini-odo__fdi {
  font-size: 9px;
  font-family: var(--font-mono, ui-monospace, monospace);
  color: var(--text-2);
}
.endo-mini-odo__legend {
  list-style: none; padding: 0; margin: 8px 0 0;
  display: flex; flex-direction: column; gap: 4px;
  font-size: 11px; color: var(--text-2);
}
.endo-mini-odo__legend li { display: flex; align-items: center; gap: 6px; }
.endo-mini-odo__swatch { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

.endo-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.endo-empty {
  background: var(--bg-elev);
  border: 1px dashed var(--border-strong);
  border-radius: 14px;
  padding: 60px 24px;
  text-align: center;
  color: var(--text-2);
}
.endo-empty h2 { font-size: 16px; font-weight: 600; color: var(--text-1); margin: 0 0 6px; }
.endo-empty p  { font-size: 13px; margin: 0; }

.endo-center { display: flex; flex-direction: column; gap: 16px; }
.endo-section {
  background: var(--bg-elev);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 18px;
}
.endo-section__placeholder { font-size: 12px; color: var(--text-3); margin: 0; font-style: italic; }
.endo-section__eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text-2); margin: 0;
}
.endo-section__title { font-size: 18px; font-weight: 600; color: var(--text-1); margin: 4px 0 2px; letter-spacing: -0.01em; }
.endo-section__sub { font-size: 13px; color: var(--text-2); margin: 0; }

.endo-diagnosis-card__header {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap;
}
.endo-diagnosis-card__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.endo-diagnosis-card__meta {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
  margin: 16px 0 0; padding: 12px 0 0;
  border-top: 1px solid var(--border-soft);
  font-size: 12px;
}
.endo-diagnosis-card__meta dt { color: var(--text-2); margin: 0; }
.endo-diagnosis-card__meta dd { color: var(--text-1); margin: 2px 0 0; font-weight: 500; }

.endo-diagnosis-card__vitality {
  margin-top: 16px; padding-top: 16px;
  border-top: 1px solid var(--border-soft);
}
.endo-diagnosis-card__vitality h3 {
  font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--text-2); margin: 0 0 8px;
}

.endo-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.endo-table th, .endo-table td {
  padding: 6px 8px; text-align: left;
  border-bottom: 1px solid var(--border-soft);
  color: var(--text-1);
}
.endo-table th {
  font-size: 10px; font-weight: 600; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--text-2);
}
.endo-table__mono { font-family: var(--font-mono, monospace); }

.endo-result-pill {
  display: inline-flex; align-items: center;
  padding: 2px 8px;
  font-size: 11px; font-weight: 600;
  border-radius: 999px;
}
.endo-result-pill--positivo      { background: var(--success-soft); color: var(--success); }
.endo-result-pill--negativo      { background: var(--bg-elev-2);    color: var(--text-2); }
.endo-result-pill--exagerado     { background: var(--danger-soft);  color: var(--danger); }
.endo-result-pill--diferido      { background: var(--warning-soft); color: var(--warning); }
.endo-result-pill--sin_respuesta { background: var(--bg-elev-2);    color: var(--text-3); }

.endo-canal-map__header {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  flex-wrap: wrap; margin-bottom: 14px;
}
.endo-canal-map__viewport {
  position: relative;
  background: var(--bg-elev-2);
  border-radius: 10px;
  padding: 16px;
  display: grid; place-items: center;
  min-height: 380px;
}
.endo-canal-map__svg svg {
  width: clamp(200px, 36vw, 320px);
  height: auto;
  display: block;
}
.endo-canal-map__tooltip {
  position: absolute;
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 11px; font-weight: 500;
  color: var(--text-1);
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
  z-index: 10;
}
.endo-canal-map__legend {
  display: flex; flex-wrap: wrap; gap: 12px;
  list-style: none; padding: 0; margin: 14px 0 0;
  font-size: 11px; color: var(--text-2);
}
.endo-canal-map__legend li { display: inline-flex; align-items: center; gap: 6px; }
.endo-canal-map__sw { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

.endo-tooth-timeline__header { margin-bottom: 12px; }
.endo-tooth-timeline__list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 6px;
  position: relative;
}
.endo-tooth-timeline__item { position: relative; }
.endo-tooth-timeline__btn {
  width: 100%;
  display: flex; align-items: flex-start; gap: 10px;
  padding: 10px 12px;
  background: var(--bg-elev-2);
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background-color 150ms, border-color 150ms;
}
.endo-tooth-timeline__btn:hover { background: var(--bg-hover, var(--bg-elev-2)); border-color: var(--border-strong); }
.endo-tooth-timeline__btn:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.endo-tooth-timeline__icon {
  width: 26px; height: 26px;
  display: inline-grid; place-items: center;
  border-radius: 6px;
  flex-shrink: 0;
  color: var(--text-2);
  background: var(--bg-elev);
}
.endo-tooth-timeline__item--info    .endo-tooth-timeline__icon { background: var(--info-soft);    color: var(--info); }
.endo-tooth-timeline__item--success .endo-tooth-timeline__icon { background: var(--success-soft); color: var(--success); }
.endo-tooth-timeline__item--warning .endo-tooth-timeline__icon { background: var(--warning-soft); color: var(--warning); }
.endo-tooth-timeline__item--danger  .endo-tooth-timeline__icon { background: var(--danger-soft);  color: var(--danger); }

.endo-tooth-timeline__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.endo-tooth-timeline__date  { font-size: 11px; color: var(--text-2); font-family: var(--font-mono, monospace); }
.endo-tooth-timeline__label { font-size: 13px; color: var(--text-1); font-weight: 500; }
.endo-tooth-timeline__detail{ font-size: 11px; color: var(--text-3); }

.endo-wizard { width: min(960px, 100vw); }
.endo-wizard__irrigants {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 8px;
}
.endo-wizard__irrigant-row {
  display: grid;
  grid-template-columns: 32px 1fr 100px 80px 32px;
  gap: 8px;
  align-items: center;
}
@media (max-width: 640px) {
  .endo-wizard__irrigant-row { grid-template-columns: 1fr; }
}
.endo-wizard__irrigant-row input {
  padding: 6px 10px;
  border: 1px solid var(--border-soft);
  background: var(--bg-elev);
  color: var(--text-1);
  border-radius: 6px;
  font-size: 12px;
  font-family: inherit;
}
.endo-wizard__irrigant-row input:focus {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
  border-color: var(--brand);
}
.endo-wizard__irrigant-order {
  display: inline-grid; place-items: center;
  background: var(--brand-soft);
  color: var(--brand);
  font-size: 11px; font-weight: 600;
  border-radius: 6px;
  height: 30px;
}

.endo-consent__legal {
  white-space: pre-wrap;
  font-family: var(--font-sans, ui-sans-serif, system-ui), sans-serif;
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-1);
  background: var(--bg-elev-2);
  border-radius: 10px;
  padding: 16px 20px;
  max-height: 50vh;
  overflow-y: auto;
  margin-bottom: 14px;
}

.endo-retreatment-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--warning-soft);
  color: var(--warning);
  font-size: 11px; font-weight: 600;
}
.endo-retreatment-badge__reason,
.endo-retreatment-badge__difficulty {
  color: var(--text-2);
  font-weight: 500;
}

.endo-success-chart__header { margin-bottom: 12px; }

.endo-pending__header { margin-bottom: 12px; }
.endo-pending__chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px;
  font-size: 11px; font-weight: 600;
  background: var(--info-soft); color: var(--info);
  border-radius: 999px;
}
.endo-pending__overdue { color: var(--danger); font-weight: 600; }
.endo-pending__row--alert { background: var(--danger-soft); }
.endo-pending__alert {
  display: inline-flex; align-items: center; gap: 4px;
  margin-left: 8px;
  padding: 1px 6px;
  font-size: 10px; font-weight: 600;
  background: var(--danger);
  color: #fff;
  border-radius: 4px;
}

.endo-radiograph-grid__images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 640px) {
  .endo-radiograph-grid__images { grid-template-columns: 1fr; }
}
.endo-radiograph-grid__images figure {
  margin: 0;
  background: var(--bg-elev-2);
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  overflow: hidden;
}
.endo-radiograph-grid__images img {
  width: 100%;
  aspect-ratio: 1;
  -o-object-fit: contain;
     object-fit: contain;
  background: #000;
  display: block;
}
.endo-radiograph-grid__images figcaption {
  padding: 8px 10px;
  display: flex; justify-content: space-between;
  font-size: 11px;
  color: var(--text-2);
}
.endo-radiograph-grid__images figcaption strong { color: var(--text-1); font-weight: 600; }

.endo-index { max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.endo-index__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.endo-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.endo-kpi {
  background: var(--bg-elev-2);
  border-radius: 10px;
  padding: 12px 16px;
}
.endo-kpi__label { font-size: 11px; color: var(--text-2); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.endo-kpi__value {
  font-family: var(--font-mono, monospace);
  font-size: 22px; font-weight: 700;
  color: var(--text-1);
  margin-top: 4px;
}
.endo-kpi__suffix { font-size: 14px; color: var(--text-2); margin-left: 2px; }
.endo-kpi--success .endo-kpi__value { color: var(--success); }
.endo-kpi--info    .endo-kpi__value { color: var(--info); }
.endo-kpi--warning .endo-kpi__value { color: var(--warning); }

/* Animaciones reducidas */
@media (prefers-reduced-motion: reduce) {
  .drawer, .drawer-overlay,
  .cambra-chip--extremo, .eruption-needle, .tooth--saved,
  .drawer__spinner, .ped-tooth, .ped-modal-overlay, .ped-modal {
    animation: none !important;
    transition: none !important;
  }
}

/* ====
   Importar mi clinica - wizard de migracion (WS2-T3)
   Componentes propios (prefijo .imp-) sobre los tokens del panel.
   Light/Dark salen solos por variables; reusa .btn-new/.badge-new/
   .table-new/.switch/.modal*. Sin colores hardcodeados por tema.
   ==== */
.imp-title { font-size: 19px; font-weight: 600; color: var(--text-1); margin: 0 0 4px; letter-spacing: -0.01em; }
.imp-sub   { font-size: 13px; color: var(--text-2); margin: 0 0 20px; max-width: 60ch; }

.imp-head__sub { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.imp-foot { justify-content: flex-start; gap: 12px; }
.imp-foot__gap { width: 0; }
.imp-hint { flex: 1; font-size: 12px; color: var(--text-3); text-align: right; }

/* Step bar */
.imp-stepbar {
  display: flex; align-items: center; gap: 0;
  padding: 12px 22px; border-bottom: 1px solid var(--border-soft);
  background: var(--bg-elev); overflow-x: auto; scrollbar-width: none;
}
.imp-stepbar::-webkit-scrollbar { display: none; }
.imp-step { display: flex; align-items: center; gap: 8px; flex: none; }
.imp-step__num {
  width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
  font-size: 12px; font-weight: 600; border: 1px solid var(--border-strong);
  color: var(--text-3); background: var(--bg-elev);
}
.imp-step__lbl { font-size: 13px; color: var(--text-3); white-space: nowrap; }
.imp-step.is-done .imp-step__num { background: var(--brand-soft); border-color: var(--border-brand); color: var(--brand); }
.imp-step.is-current .imp-step__num { background: var(--brand); border-color: var(--brand); color: #fff; }
.imp-step.is-current .imp-step__lbl { color: var(--text-1); font-weight: 600; }
.imp-step__line { flex: 1; min-width: 14px; height: 1px; background: var(--border-soft); margin: 0 8px; }

/* Body + transicion de panel */
.imp-body { padding: 24px 26px; }
.imp-panel { animation: impFade 0.22s ease; }
@keyframes impFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Logo de origen */
.imp-logo { width: 36px; height: 36px; border-radius: 9px; flex: none; display: grid; place-items: center; font-weight: 600; font-size: 14px; color: #fff; }

/* Paso 1 */
.imp-src-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.imp-src-card {
  position: relative; border: 1px solid var(--border-soft); border-radius: var(--radius);
  background: var(--bg-elev); padding: 16px 14px; display: flex; flex-direction: column; gap: 10px;
  text-align: left; min-height: 96px; cursor: pointer; transition: border-color .12s, background .12s, box-shadow .12s;
}
.imp-src-card:hover { border-color: var(--border-brand); background: var(--brand-softer); }
.imp-src-card[aria-pressed="true"] { border-color: var(--brand); background: var(--brand-softer); box-shadow: 0 0 0 1px var(--brand); }
.imp-src-card:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.imp-src-card__nm { font-size: 14px; font-weight: 600; color: var(--text-1); }
.imp-src-card__meta { font-size: 12px; color: var(--text-3); margin-top: -4px; }
.imp-src-card__check { position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; border-radius: 50%; background: var(--brand); color: #fff; display: none; place-items: center; }
.imp-src-card[aria-pressed="true"] .imp-src-card__check { display: grid; }

/* Callout */
.imp-callout { display: flex; align-items: center; gap: 14px; border: 1px solid var(--border-brand); background: var(--brand-softer); border-radius: var(--radius); padding: 14px 16px; margin-top: 22px; }
.imp-callout__ic { width: 40px; height: 40px; border-radius: 10px; flex: none; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; }
.imp-callout__txt { min-width: 0; flex: 1; }
.imp-callout__txt b { font-weight: 600; color: var(--text-1); font-size: 13.5px; }
.imp-callout__txt p { color: var(--text-2); font-size: 13px; margin: 2px 0 0; }
.imp-callout .btn-new { flex: none; }
.imp-callout--ok { border-color: color-mix(in srgb, var(--success) 30%, transparent); background: var(--success-soft); margin-top: 0; }
.imp-callout--ok .imp-callout__ic { background: var(--success-soft); color: var(--success); }
.imp-callout--warn { border-color: color-mix(in srgb, var(--warning) 30%, transparent); background: var(--warning-soft); margin-top: 0; }
.imp-callout--warn .imp-callout__ic { background: var(--warning-soft); color: var(--warning); }

/* Paso 2 */
.imp-src-pill { display: inline-flex; align-items: center; gap: 9px; border: 1px solid var(--border-soft); border-radius: 999px; padding: 5px 14px 5px 6px; margin-bottom: 18px; background: var(--bg-elev-2); }
.imp-src-pill .imp-logo { width: 26px; height: 26px; border-radius: 7px; font-size: 12px; }
.imp-src-pill__nm { font-weight: 600; font-size: 13px; color: var(--text-1); }
.imp-steps { display: flex; flex-direction: column; }
.imp-step-row { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--border-soft); }
.imp-step-row:last-child { border-bottom: none; }
.imp-step-row__idx { width: 26px; height: 26px; border-radius: 50%; flex: none; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; font-size: 13px; font-weight: 600; }
.imp-step-row__body h4 { font-size: 14px; font-weight: 600; color: var(--text-1); margin: 0 0 2px; }
.imp-step-row__body p { color: var(--text-2); font-size: 13px; margin: 0; }
.imp-code { background: var(--bg-elev-2); border: 1px solid var(--border-soft); padding: 1px 6px; border-radius: 5px; font-size: 12.5px; font-family: var(--font-mono, ui-monospace, monospace); }
.imp-dl-card { display: flex; align-items: center; gap: 16px; border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 18px; background: var(--bg-elev-2); }
.imp-dl-card__ic { width: 46px; height: 46px; border-radius: 11px; flex: none; background: var(--success-soft); color: var(--success); display: grid; place-items: center; }
.imp-dl-card__body { flex: 1; min-width: 0; }
.imp-dl-card__body b { font-weight: 600; color: var(--text-1); }
.imp-dl-card__body p { color: var(--text-2); font-size: 13px; margin: 2px 0 0; }
.imp-dl-card .btn-new { flex: none; text-decoration: none; height: 36px; }
.imp-note { display: flex; gap: 12px; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--bg-elev-2); padding: 14px 16px; margin-top: 16px; }
.imp-note svg { color: var(--text-3); flex: none; margin-top: 1px; }
.imp-note p { font-size: 13px; color: var(--text-2); margin: 0; }

/* Paso 3 */
.imp-opt-list { display: flex; flex-direction: column; gap: 10px; }
.imp-opt { display: flex; align-items: center; gap: 14px; border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 14px 16px; background: var(--bg-elev); cursor: pointer; transition: border-color .12s, background .12s; }
.imp-opt:hover { border-color: var(--border-strong); }
.imp-opt.is-on { border-color: var(--border-brand); background: var(--brand-softer); }
.imp-opt:focus-within { border-color: var(--border-brand); }
.imp-opt__box { width: 22px; height: 22px; border-radius: 6px; flex: none; border: 1.5px solid var(--border-strong); background: var(--bg-elev); display: grid; place-items: center; color: #fff; transition: background .12s, border-color .12s; }
.imp-opt__box svg { opacity: 0; }
.imp-opt.is-on .imp-opt__box { background: var(--brand); border-color: var(--brand); }
.imp-opt.is-on .imp-opt__box svg { opacity: 1; }
.imp-opt__ic { width: 38px; height: 38px; border-radius: 9px; flex: none; background: var(--bg-elev-2); color: var(--text-2); display: grid; place-items: center; }
.imp-opt__info { flex: 1; min-width: 0; }
.imp-opt__nm { font-weight: 600; color: var(--text-1); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.imp-opt__meta { color: var(--text-3); font-size: 13px; margin-top: 1px; }
.imp-opt input { position: absolute; opacity: 0; width: 0; height: 0; }

/* Paso 4 */
.imp-dropzone { border: 1.5px dashed var(--border-strong); border-radius: var(--radius-lg); background: var(--bg-elev-2); padding: 40px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; transition: border-color .14s, background .14s; }
.imp-dropzone:hover { border-color: var(--border-brand); }
.imp-dropzone:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.imp-dz__ic { width: 56px; height: 56px; border-radius: 14px; margin-bottom: 8px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; }
.imp-dropzone h4 { font-size: 16px; font-weight: 600; color: var(--text-1); margin: 0; }
.imp-dropzone p { color: var(--text-2); font-size: 13px; margin: 0; }
.imp-dz__formats { color: var(--text-3); font-size: 12px; margin-top: 4px; }
.imp-dropzone.is-drag { border-color: var(--brand); background: var(--brand-soft); }
.imp-dropzone.is-drag .imp-dz__ic { background: var(--brand); color: #fff; }
.imp-dropzone.is-error { border-color: color-mix(in srgb, var(--danger) 35%, transparent); background: var(--danger-soft); }
.imp-dropzone.is-error .imp-dz__ic { background: var(--danger-soft); color: var(--danger); }
.imp-file-row { display: flex; align-items: center; gap: 14px; border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 14px 16px; background: var(--bg-elev); }
.imp-file-row__ic { width: 42px; height: 42px; border-radius: 10px; flex: none; background: var(--success-soft); color: var(--success); display: grid; place-items: center; }
.imp-file-row__body { flex: 1; min-width: 0; }
.imp-file-row__nm { font-weight: 600; color: var(--text-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imp-file-row__meta { color: var(--text-3); font-size: 13px; }
.imp-file-row__bar { height: 5px; border-radius: 999px; background: var(--bg-elev-2); margin-top: 7px; overflow: hidden; }
.imp-file-row__bar > i { display: block; height: 100%; background: var(--success); border-radius: 999px; }
.imp-inline-msg { display: flex; align-items: center; gap: 9px; color: var(--danger); font-size: 13px; margin-top: 12px; }
.imp-inline-msg.is-ok { color: var(--success); }
.imp-inline-msg svg { flex: none; }

/* Paso 5 */
.imp-sample { color: var(--text-3); font-size: 12px; margin-top: 2px; }
.imp-select { height: 36px; cursor: pointer; }
.imp-select[data-unmapped="true"] { border-color: color-mix(in srgb, var(--warning) 45%, transparent); background: var(--warning-soft); }
.imp-map-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-3); }
.imp-map-status.auto { color: var(--success); }
.imp-map-status svg { flex: none; }
.imp-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Paso 6 */
.imp-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.imp-stat-card { border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--bg-elev); padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.imp-stat-card__top { display: flex; align-items: center; gap: 9px; }
.imp-stat-card__ic { width: 30px; height: 30px; border-radius: 8px; flex: none; display: grid; place-items: center; }
.imp-stat-card__lbl { font-size: 13px; color: var(--text-2); }
.imp-stat-card__val { font-size: 28px; font-weight: 600; letter-spacing: -0.02em; }
.imp-stat-card.ok   .imp-stat-card__ic { background: var(--success-soft); color: var(--success); }
.imp-stat-card.err  .imp-stat-card__ic { background: var(--danger-soft);  color: var(--danger); }
.imp-stat-card.warn .imp-stat-card__ic { background: var(--warning-soft); color: var(--warning); }
.imp-stat-card.ok   .imp-stat-card__val { color: var(--success); }
.imp-stat-card.err  .imp-stat-card__val { color: var(--danger); }
.imp-stat-card.warn .imp-stat-card__val { color: var(--warning); }
.imp-review-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px 0 14px; }
.imp-switch-lbl { font-size: 13px; color: var(--text-1); }
.table-new tr.imp-row-err > td { background: var(--danger-soft); }
.table-new tr.imp-row-err:hover > td { background: var(--danger-soft); }
.table-new tr.imp-row-dup > td { background: var(--warning-soft); }
.table-new tr.imp-row-dup:hover > td { background: var(--warning-soft); }
.imp-tip { position: relative; display: inline-flex; }
.imp-tip__bubble { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); background: var(--text-1); color: var(--bg-elev); padding: 6px 10px; border-radius: 7px; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .12s; z-index: 5; box-shadow: 0 4px 16px rgba(0,0,0,.2); }
.imp-tip:hover .imp-tip__bubble, .imp-tip:focus-within .imp-tip__bubble { opacity: 1; }
.imp-tip:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 6px; }

/* Importando */
.imp-importing { text-align: center; padding: 28px 10px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.imp-spin { color: var(--brand); margin-bottom: 12px; }
.imp-progress { width: 100%; max-width: 440px; height: 8px; border-radius: 999px; background: var(--bg-elev-2); overflow: hidden; margin-top: 18px; }
.imp-progress > i { display: block; height: 100%; background: var(--brand); border-radius: 999px; transition: width .3s ease; }
.imp-progress-meta { display: flex; justify-content: space-between; width: 100%; max-width: 440px; margin-top: 8px; color: var(--text-3); font-size: 12px; }

/* Resultado */
.imp-result { text-align: center; padding: 12px 4px 4px; display: flex; flex-direction: column; align-items: center; }
.imp-seal { width: 72px; height: 72px; border-radius: 50%; margin-bottom: 16px; background: var(--success-soft); color: var(--success); display: grid; place-items: center; }
.imp-seal--brand { background: var(--brand-soft); color: var(--brand); }
.imp-result__title { font-size: 21px; font-weight: 600; color: var(--text-1); margin: 0; }
.imp-result__lead { color: var(--text-2); margin: 6px 0 0; max-width: 48ch; font-size: 13.5px; }
.imp-summary-row { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 22px 0; width: 100%; }
.imp-summary-pill { border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--bg-elev-2); padding: 12px 18px; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 130px; }
.imp-summary-pill__v { font-size: 22px; font-weight: 600; color: var(--text-1); letter-spacing: -0.02em; }
.imp-summary-pill__k { font-size: 12px; color: var(--text-3); }
.imp-report-line { display: flex; align-items: center; gap: 10px; width: 100%; border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent); background: var(--warning-soft); border-radius: var(--radius); padding: 12px 16px; color: var(--text-1); font-size: 13px; margin-bottom: 22px; }
.imp-report-line > svg { color: var(--warning); flex: none; }
.imp-report-line__link { display: inline-flex; align-items: center; gap: 6px; color: var(--brand); font-weight: 600; font-size: 13px; background: none; border: none; cursor: pointer; }
.imp-report-line__link:hover { text-decoration: underline; }
.imp-result__ctas { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

/* Asistida */
.imp-review-strip { display: flex; align-items: center; gap: 14px; width: 100%; border: 1px solid var(--border-brand); background: var(--brand-softer); border-radius: var(--radius); padding: 16px 18px; margin-top: 18px; text-align: left; }
.imp-review-strip__ic { width: 44px; height: 44px; border-radius: 11px; flex: none; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; }
.imp-review-strip b { font-weight: 600; color: var(--text-1); }
.imp-review-strip p { color: var(--text-2); font-size: 13px; margin: 2px 0 0; }
.imp-field { display: flex; flex-direction: column; gap: 6px; }
.imp-textarea { height: auto; min-height: 84px; padding: 10px 12px; resize: vertical; }

/* Loading paso 5 */
.imp-loading { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 48px 0; color: var(--text-2); font-size: 13px; }
.imp-spin-sm { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--brand-soft); border-top-color: var(--brand); animation: impSpin .8s linear infinite; flex: none; }
@keyframes impSpin { to { transform: rotate(360deg); } }

/* Progreso real de subida (paso 5 vista previa + Importando) */
.imp-upprog { display: flex; flex-direction: column; align-items: center; width: 100%; }
.imp-upprog--inline { padding: 44px 0; }
.imp-upprog__line { font-size: 14px; font-weight: 600; color: var(--text-1); text-align: center; }
.imp-upprog--inline .imp-upprog__line { font-size: 13px; }
.imp-upprog__ctx { margin-top: 3px; font-size: 12px; color: var(--text-3); text-align: center; }
.imp-upprog--proc { gap: 10px; }
.imp-upprog--proc .imp-spin { margin-bottom: 0; }
.imp-upprog--inline.imp-upprog--proc { padding: 44px 0; }
.imp-upprog__proc { font-size: 13px; color: var(--text-2); }

/* Error de vista previa (paso 5) — reemplaza el spinner eterno */
.imp-error { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 40px 16px; }
.imp-error__ic { color: var(--danger); }
.imp-error__title { margin: 6px 0 0; font-size: 15px; font-weight: 600; color: var(--text-1); }
.imp-error__desc { margin: 0; font-size: 13px; color: var(--text-3); max-width: 360px; }
.imp-error__btn { margin-top: 10px; }

/* Estado vacio (pagina Pacientes) */
.imp-empty { border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); background: var(--bg-elev); padding: 52px 28px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.imp-empty__glyph { width: 64px; height: 64px; border-radius: 16px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; margin-bottom: 8px; }
.imp-empty__title { font-size: 19px; font-weight: 600; color: var(--text-1); margin: 0; }
.imp-empty__desc { color: var(--text-2); max-width: 460px; margin: 0; font-size: 14px; }
.imp-empty__cta { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.imp-empty__hint { color: var(--text-3); font-size: 13px; margin-top: 2px; }

/* Responsive */
@media (max-width: 680px) {
  .imp-body { padding: 20px 16px; }
  .imp-stepbar { padding: 12px 16px; }
  .imp-stat-grid { grid-template-columns: 1fr; }
  .imp-src-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .imp-step__lbl { display: none; }
  .imp-step.is-current .imp-step__lbl { display: inline; }
  .imp-callout { flex-wrap: wrap; }
  .imp-callout .btn-new { width: 100%; }
  .imp-foot { flex-wrap: wrap; }
  .imp-foot .btn-new { flex: 1; justify-content: center; }
  .imp-hint { flex-basis: 100%; order: -1; text-align: left; }
}
@media (max-width: 420px) {
  .imp-src-grid { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .imp-panel { animation: none; }
  .imp-spin-sm { animation-duration: 1.6s; }
  .imp-progress > i { transition: none; }
}

/* Analytics (/admin/analytics): grid 2 columnas (contenido + panel lateral) que
   colapsa a 1 columna en móvil. Inline styles no permiten @media, por eso va aquí. */
.an-2col {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: 14px;
  align-items: start;
}
@media (max-width: 768px) {
  .an-2col { grid-template-columns: 1fr; }
}
.dark .hover\:bg-emerald-50:hover    { background-color: rgb(6 78 59 / 0.3)   !important; }
.dark .hover\:bg-amber-50:hover      { background-color: rgb(120 53 15 / 0.3) !important; }
.dark .hover\:bg-rose-50:hover       { background-color: rgb(136 19 55 / 0.3) !important; }
.marker\:text-violet-400 *::marker {
  color: rgb(167 139 250 );
}
.marker\:text-violet-400::marker {
  color: rgb(167 139 250 );
}
.file\:mr-3::file-selector-button {
  margin-right: 0.75rem;
}
.file\:rounded-lg::file-selector-button {
  border-radius: 0.75rem;
}
.file\:border-0::file-selector-button {
  border-width: 0px;
}
.file\:bg-muted::file-selector-button {
  background-color: hsl(var(--muted));
}
.file\:px-3::file-selector-button {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.file\:py-2::file-selector-button {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.file\:font-semibold::file-selector-button {
  font-weight: 600;
}
.file\:text-foreground::file-selector-button {
  color: hsl(var(--foreground));
}
.placeholder\:text-\[color\:var\(--text-4\)\]::-moz-placeholder {
  color: var(--text-4);
}
.placeholder\:text-\[color\:var\(--text-4\)\]::placeholder {
  color: var(--text-4);
}
.placeholder\:text-\[var\(--text-3\)\]::-moz-placeholder {
  color: var(--text-3);
}
.placeholder\:text-\[var\(--text-3\)\]::placeholder {
  color: var(--text-3);
}
.placeholder\:text-muted-foreground::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}
.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--muted-foreground));
}
.placeholder\:text-slate-400::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.placeholder\:text-slate-400::placeholder {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.first\:pt-0:first-child {
  padding-top: 0px;
}
.last\:mb-0:last-child {
  margin-bottom: 0px;
}
.last\:border-0:last-child {
  border-width: 0px;
}
.last\:pb-0:last-child {
  padding-bottom: 0px;
}
.focus-within\:shadow-\[var\(--ring\)\]:focus-within {
  --tw-shadow-color: var(--ring);
  --tw-shadow: var(--tw-shadow-colored);
}
.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
  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));
}
.hover\:-translate-y-1\.5:hover {
  --tw-translate-y: -0.375rem;
  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));
}
.hover\:-translate-y-\[3px\]:hover {
  --tw-translate-y: -3px;
  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));
}
.hover\:-translate-y-px:hover {
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  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));
}
.hover\:scale-110:hover {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-\[1\.03\]:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  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));
}
.hover\:border-\[color\:var\(--border-brand\)\]:hover {
  border-color: var(--border-brand);
}
.hover\:border-\[color\:var\(--v200\)\]:hover {
  border-color: var(--v200);
}
.hover\:border-\[var\(--border-brand\)\]:hover {
  border-color: var(--border-brand);
}
.hover\:border-\[var\(--border-strong\)\]:hover {
  border-color: var(--border-strong);
}
.hover\:border-blue-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-300:hover {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-300) / var(--tw-border-opacity, 1));
}
.hover\:border-brand-400:hover {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-400) / var(--tw-border-opacity, 1));
}
.hover\:border-emerald-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(110 231 183 / var(--tw-border-opacity, 1));
}
.hover\:border-foreground\/30:hover {
  border-color: hsl(var(--foreground) / 0.3);
}
.hover\:border-rose-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}
.hover\:border-slate-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}
.hover\:border-slate-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(100 116 139 / var(--tw-border-opacity, 1));
}
.hover\:border-slate-600:hover {
  --tw-border-opacity: 1;
  border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));
}
.hover\:border-violet-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(196 181 253 / var(--tw-border-opacity, 1));
}
.hover\:border-violet-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(167 139 250 / var(--tw-border-opacity, 1));
}
.hover\:border-violet-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
}
.hover\:border-opacity-50:hover {
  --tw-border-opacity: 0.5;
}
.hover\:bg-\[color\:var\(--bg-hover\)\]:hover {
  background-color: var(--bg-hover);
}
.hover\:bg-\[color\:var\(--brand-softer\)\]:hover {
  background-color: var(--brand-softer);
}
.hover\:bg-\[color\:var\(--danger\)\]:hover {
  background-color: var(--danger);
}
.hover\:bg-\[color\:var\(--danger-soft\)\]:hover {
  background-color: var(--danger-soft);
}
.hover\:bg-\[color\:var\(--danger-strong\)\]:hover {
  background-color: var(--danger-strong);
}
.hover\:bg-\[color\:var\(--tint2\)\]:hover {
  background-color: var(--tint2);
}
.hover\:bg-\[color\:var\(--v100\)\]:hover {
  background-color: var(--v100);
}
.hover\:bg-\[var\(--accent\)\]:hover {
  background-color: var(--accent);
}
.hover\:bg-\[var\(--bg-elev\2c theme\(colors\.gray\.100\)\)\]:hover {
  background-color: var(--bg-elev,#f3f4f6);
}
.hover\:bg-\[var\(--bg-elev\2c theme\(colors\.gray\.50\)\)\]:hover {
  background-color: var(--bg-elev,#f9fafb);
}
.hover\:bg-\[var\(--bg-hover\)\]:hover {
  background-color: var(--bg-hover);
}
.hover\:bg-\[var\(--brand-soft\)\]:hover {
  background-color: var(--brand-soft);
}
.hover\:bg-\[var\(--danger\)\]:hover {
  background-color: var(--danger);
}
.hover\:bg-\[var\(--danger-soft\)\]:hover {
  background-color: var(--danger-soft);
}
.hover\:bg-\[var\(--tint2\2c \#faf8ff\)\]:hover {
  background-color: var(--tint2,#faf8ff);
}
.hover\:bg-\[var\(--v100\2c \#ede9fe\)\]:hover {
  background-color: var(--v100,#ede9fe);
}
.hover\:bg-\[var\(--violet-700\)\]:hover {
  background-color: var(--violet-700);
}
.hover\:bg-amber-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}
.hover\:bg-amber-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-amber-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
}
.hover\:bg-black\/20:hover {
  background-color: rgb(0 0 0 / 0.2);
}
.hover\:bg-black\/60:hover {
  background-color: rgb(0 0 0 / 0.6);
}
.hover\:bg-black\/70:hover {
  background-color: rgb(0 0 0 / 0.7);
}
.hover\:bg-black\/75:hover {
  background-color: rgb(0 0 0 / 0.75);
}
.hover\:bg-black\/85:hover {
  background-color: rgb(0 0 0 / 0.85);
}
.hover\:bg-blue-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.hover\:bg-blue-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-50:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-50) / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-600:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-600) / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-600\/10:hover {
  background-color: hsl(var(--brand-600) / 0.1);
}
.hover\:bg-brand-600\/15:hover {
  background-color: hsl(var(--brand-600) / 0.15);
}
.hover\:bg-brand-700:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--brand-700) / var(--tw-bg-opacity, 1));
}
.hover\:bg-card\/10:hover {
  background-color: hsl(var(--card) / 0.1);
}
.hover\:bg-emerald-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}
.hover\:bg-emerald-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}
.hover\:bg-emerald-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}
.hover\:bg-emerald-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-50\/50:hover {
  background-color: rgb(249 250 251 / 0.5);
}
.hover\:bg-green-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.hover\:bg-green-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}
.hover\:bg-lime-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(101 163 13 / var(--tw-bg-opacity, 1));
}
.hover\:bg-muted:hover {
  background-color: hsl(var(--muted));
}
.hover\:bg-muted\/10:hover {
  background-color: hsl(var(--muted) / 0.1);
}
.hover\:bg-muted\/20:hover {
  background-color: hsl(var(--muted) / 0.2);
}
.hover\:bg-muted\/30:hover {
  background-color: hsl(var(--muted) / 0.3);
}
.hover\:bg-muted\/40:hover {
  background-color: hsl(var(--muted) / 0.4);
}
.hover\:bg-muted\/50:hover {
  background-color: hsl(var(--muted) / 0.5);
}
.hover\:bg-muted\/60:hover {
  background-color: hsl(var(--muted) / 0.6);
}
.hover\:bg-muted\/80:hover {
  background-color: hsl(var(--muted) / 0.8);
}
.hover\:bg-orange-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}
.hover\:bg-orange-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
}
.hover\:bg-orange-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(194 65 12 / var(--tw-bg-opacity, 1));
}
.hover\:bg-primary\/90:hover {
  background-color: hsl(var(--primary) / 0.9);
}
.hover\:bg-red-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-950\/50:hover {
  background-color: rgb(69 10 10 / 0.5);
}
.hover\:bg-rose-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}
.hover\:bg-rose-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
}
.hover\:bg-sidebar-accent:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sidebar-accent) / var(--tw-bg-opacity, 1));
}
.hover\:bg-sidebar-accent\/60:hover {
  background-color: hsl(var(--sidebar-accent) / 0.6);
}
.hover\:bg-slate-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}
.hover\:bg-slate-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}
.hover\:bg-slate-50\/50:hover {
  background-color: rgb(248 250 252 / 0.5);
}
.hover\:bg-slate-800:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
.hover\:bg-violet-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1));
}
.hover\:bg-violet-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(221 214 254 / var(--tw-bg-opacity, 1));
}
.hover\:bg-violet-50\/40:hover {
  background-color: rgb(245 243 255 / 0.4);
}
.hover\:bg-violet-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-violet-500\/35:hover {
  background-color: rgb(139 92 246 / 0.35);
}
.hover\:bg-violet-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(109 40 217 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}
.hover\:bg-white\/15:hover {
  background-color: rgb(255 255 255 / 0.15);
}
.hover\:bg-white\/20:hover {
  background-color: rgb(255 255 255 / 0.2);
}
.hover\:bg-white\/25:hover {
  background-color: rgb(255 255 255 / 0.25);
}
.hover\:bg-white\/\[0\.05\]:hover {
  background-color: rgb(255 255 255 / 0.05);
}
.hover\:bg-white\/\[0\.08\]:hover {
  background-color: rgb(255 255 255 / 0.08);
}
.hover\:bg-white\/\[0\.12\]:hover {
  background-color: rgb(255 255 255 / 0.12);
}
.hover\:bg-yellow-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
}
.hover\:text-\[\#f5f5f7\]:hover {
  --tw-text-opacity: 1;
  color: rgb(245 245 247 / var(--tw-text-opacity, 1));
}
.hover\:text-\[color\:var\(--b2\)\]:hover {
  color: var(--b2);
}
.hover\:text-\[color\:var\(--danger\)\]:hover {
  color: var(--danger);
}
.hover\:text-\[color\:var\(--text-1\)\]:hover {
  color: var(--text-1);
}
.hover\:text-\[color\:var\(--violet-700\)\]:hover {
  color: var(--violet-700);
}
.hover\:text-\[var\(--brand\)\]:hover {
  color: var(--brand);
}
.hover\:text-\[var\(--danger\)\]:hover {
  color: var(--danger);
}
.hover\:text-\[var\(--text-1\)\]:hover {
  color: var(--text-1);
}
.hover\:text-\[var\(--text-1\2c theme\(colors\.gray\.900\)\)\]:hover {
  color: var(--text-1,#111827);
}
.hover\:text-amber-600:hover {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-300:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-300) / var(--tw-text-opacity, 1));
}
.hover\:text-brand-600:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-600) / var(--tw-text-opacity, 1));
}
.hover\:text-emerald-600:hover {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}
.hover\:text-foreground:hover {
  color: hsl(var(--foreground));
}
.hover\:text-gray-500:hover {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-900:hover {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.hover\:text-muted-foreground:hover {
  color: hsl(var(--muted-foreground));
}
.hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.hover\:text-red-700:hover {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.hover\:text-rose-500:hover {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}
.hover\:text-rose-600:hover {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}
.hover\:text-rose-700:hover {
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}
.hover\:text-slate-200:hover {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}
.hover\:text-slate-700:hover {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.hover\:text-slate-900:hover {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}
.hover\:text-violet-200:hover {
  --tw-text-opacity: 1;
  color: rgb(221 214 254 / var(--tw-text-opacity, 1));
}
.hover\:text-violet-700:hover {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / var(--tw-text-opacity, 1));
}
.hover\:text-violet-800:hover {
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / var(--tw-text-opacity, 1));
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
.hover\:opacity-100:hover {
  opacity: 1;
}
.hover\:opacity-70:hover {
  opacity: 0.7;
}
.hover\:opacity-80:hover {
  opacity: 0.8;
}
.hover\:opacity-90:hover {
  opacity: 0.9;
}
.hover\:shadow-\[var\(--sh\2c 0_6px_24px_-10px_rgba\(15\2c 23\2c 42\2c 0\.14\)\)\]:hover {
  --tw-shadow: var(--sh,0 6px 24px -10px rgba(15,23,42,0.14));
  --tw-shadow-colored: 6px 24px -10px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-md:hover {
  --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);
}
.hover\:shadow-\[var\(--shadow-2\)\]:hover {
  --tw-shadow-color: var(--shadow-2);
  --tw-shadow: var(--tw-shadow-colored);
}
.hover\:brightness-105:hover {
  --tw-brightness: brightness(1.05);
  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);
}
.hover\:brightness-110:hover {
  --tw-brightness: brightness(1.1);
  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);
}
.hover\:brightness-95:hover {
  --tw-brightness: brightness(.95);
  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);
}
.hover\:file\:bg-muted\/70::file-selector-button:hover {
  background-color: hsl(var(--muted) / 0.7);
}
.focus\:border-\[color\:var\(--v200\)\]:focus {
  border-color: var(--v200);
}
.focus\:border-\[var\(--border-brand\)\]:focus {
  border-color: var(--border-brand);
}
.focus\:border-\[var\(--brand\)\]:focus {
  border-color: var(--brand);
}
.focus\:border-border:focus {
  --tw-border-opacity: 1;
  border-color: hsl(var(--border) / var(--tw-border-opacity, 1));
}
.focus\:border-brand-500:focus {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-500) / var(--tw-border-opacity, 1));
}
.focus\:border-brand-600:focus {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-600) / var(--tw-border-opacity, 1));
}
.focus\:border-primary:focus {
  border-color: hsl(var(--primary));
}
.focus\:border-violet-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(139 92 246 / var(--tw-border-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-\[var\(--brand-soft\)\]:focus {
  --tw-ring-color: var(--brand-soft);
}
.focus\:ring-\[var\(--primary\)\]:focus {
  --tw-ring-color: var(--primary);
}
.focus\:ring-amber-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity, 1));
}
.focus\:ring-blue-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}
.focus\:ring-brand-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--brand-500) / var(--tw-ring-opacity, 1));
}
.focus\:ring-brand-500\/40:focus {
  --tw-ring-color: hsl(var(--brand-500) / 0.4);
}
.focus\:ring-brand-600\/20:focus {
  --tw-ring-color: hsl(var(--brand-600) / 0.2);
}
.focus\:ring-emerald-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity, 1));
}
.focus\:ring-ring:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--primary) / var(--tw-ring-opacity, 1));
}
.focus\:ring-violet-200:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity, 1));
}
.focus\:ring-violet-300:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity, 1));
}
.focus\:ring-violet-500\/40:focus {
  --tw-ring-color: rgb(139 92 246 / 0.4);
}
.focus\:ring-offset-1:focus {
  --tw-ring-offset-width: 1px;
}
.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:opacity-100:focus-visible {
  opacity: 1;
}
.focus-visible\:shadow-\[var\(--ring\)\]:focus-visible {
  --tw-shadow-color: var(--ring);
  --tw-shadow: var(--tw-shadow-colored);
}
.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-inset:focus-visible {
  --tw-ring-inset: inset;
}
.focus-visible\:ring-\[var\(--brand\)\]:focus-visible {
  --tw-ring-color: var(--brand);
}
.focus-visible\:ring-brand-500:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--brand-500) / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-brand-500\/60:focus-visible {
  --tw-ring-color: hsl(var(--brand-500) / 0.6);
}
.focus-visible\:ring-ring:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--primary) / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-violet-500\/60:focus-visible {
  --tw-ring-color: rgb(139 92 246 / 0.6);
}
.focus-visible\:ring-white:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-white\/20:focus-visible {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}
.focus-visible\:ring-white\/60:focus-visible {
  --tw-ring-color: rgb(255 255 255 / 0.6);
}
.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:ring-offset-red-600:focus-visible {
  --tw-ring-offset-color: #dc2626;
}
.focus-visible\:\[box-shadow\:var\(--ring\)\]:focus-visible {
  box-shadow: var(--ring);
}
.active\:scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-\[\.98\]:active {
  --tw-scale-x: .98;
  --tw-scale-y: .98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-\[0\.97\]:active {
  --tw-scale-x: 0.97;
  --tw-scale-y: 0.97;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-\[0\.98\]:active {
  --tw-scale-x: 0.98;
  --tw-scale-y: 0.98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:scale-\[0\.99\]:active {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:brightness-95:active {
  --tw-brightness: brightness(.95);
  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);
}
.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:cursor-wait:disabled {
  cursor: wait;
}
.disabled\:no-underline:disabled {
  text-decoration-line: none;
}
.disabled\:opacity-30:disabled {
  opacity: 0.3;
}
.disabled\:opacity-40:disabled {
  opacity: 0.4;
}
.disabled\:opacity-45:disabled {
  opacity: 0.45;
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:opacity-60:disabled {
  opacity: 0.6;
}
.disabled\:opacity-70:disabled {
  opacity: 0.7;
}
.disabled\:opacity-\[\.45\]:disabled {
  opacity: .45;
}
.group:hover .group-hover\:translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:rotate-6 {
  --tw-rotate: 6deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:bg-black\/25 {
  background-color: rgb(0 0 0 / 0.25);
}
.group:hover .group-hover\:bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}
.group:hover .group-hover\:bg-slate-900\/30 {
  background-color: rgb(15 23 42 / 0.3);
}
.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}
.peer:focus-visible ~ .peer-focus-visible\:shadow-\[var\(--ring\)\] {
  --tw-shadow-color: var(--ring);
  --tw-shadow: var(--tw-shadow-colored);
}
.data-\[disabled\]\:pointer-events-none[data-disabled] {
  pointer-events: none;
}
.data-\[state\=open\]\:bg-accent[data-state="open"] {
  background-color: hsl(var(--accent));
}
.data-\[state\=open\]\:bg-secondary[data-state="open"] {
  background-color: hsl(var(--muted));
}
.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  transition-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  transition-duration: 500ms;
}
.data-\[state\=open\]\:animate-in[data-state="open"] {
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}
.data-\[state\=closed\]\:animate-out[data-state="closed"] {
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}
.data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
  --tw-exit-opacity: 0;
}
.data-\[state\=open\]\:fade-in-0[data-state="open"] {
  --tw-enter-opacity: 0;
}
.data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
  --tw-exit-scale: .95;
}
.data-\[state\=open\]\:zoom-in-95[data-state="open"] {
  --tw-enter-scale: .95;
}
.data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
  --tw-enter-translate-y: -0.5rem;
}
.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
  --tw-enter-translate-x: 0.5rem;
}
.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
  --tw-enter-translate-x: -0.5rem;
}
.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
  --tw-enter-translate-y: 0.5rem;
}
.data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
  --tw-exit-translate-y: 100%;
}
.data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
  --tw-exit-translate-x: -100%;
}
.data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
  --tw-exit-translate-x: 100%;
}
.data-\[state\=closed\]\:slide-out-to-top[data-state="closed"] {
  --tw-exit-translate-y: -100%;
}
.data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
  --tw-enter-translate-y: 100%;
}
.data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
  --tw-enter-translate-x: -100%;
}
.data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
  --tw-enter-translate-x: 100%;
}
.data-\[state\=open\]\:slide-in-from-top[data-state="open"] {
  --tw-enter-translate-y: -100%;
}
.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  animation-duration: 300ms;
}
.data-\[state\=open\]\:duration-500[data-state="open"] {
  animation-duration: 500ms;
}
@media (prefers-reduced-motion: no-preference) {

  .motion-safe\:animate-\[mp-cart-pop_300ms_cubic-bezier\(0\.34\2c 1\.56\2c 0\.64\2c 1\)_forwards\] {
    animation: mp-cart-pop 300ms cubic-bezier(0.34,1.56,0.64,1) forwards;
  }

  @keyframes pulse {

    50% {
      opacity: .5;
    }
  }

  .motion-safe\:animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }

  .motion-safe\:transition-shadow {
    transition-property: box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }

  .motion-safe\:duration-200 {
    transition-duration: 200ms;
  }

  .motion-safe\:animate-in {
    animation-name: enter;
    animation-duration: 150ms;
    --tw-enter-opacity: initial;
    --tw-enter-scale: initial;
    --tw-enter-rotate: initial;
    --tw-enter-translate-x: initial;
    --tw-enter-translate-y: initial;
  }

  .motion-safe\:fade-in {
    --tw-enter-opacity: 0;
  }

  .motion-safe\:zoom-in-95 {
    --tw-enter-scale: .95;
  }

  .motion-safe\:duration-200 {
    animation-duration: 200ms;
  }

  .motion-safe\:hover\:-translate-y-0\.5:hover {
    --tw-translate-y: -0.125rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .motion-safe\:hover\:-translate-y-px:hover {
    --tw-translate-y: -1px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .group:hover .motion-safe\:group-hover\:scale-\[1\.03\] {
    --tw-scale-x: 1.03;
    --tw-scale-y: 1.03;
    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));
  }
}
@media (prefers-reduced-motion: reduce) {

  .motion-reduce\:animate-none {
    animation: none;
  }

  .motion-reduce\:transition-none {
    transition-property: none;
  }

  .motion-reduce\:active\:scale-100:active {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
}
.dark\:border:is(.dark *) {
  border-width: 1px;
}
.dark\:border-\[\#3A3450\]:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(58 52 80 / var(--tw-border-opacity, 1));
}
.dark\:border-amber-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(180 83 9 / var(--tw-border-opacity, 1));
}
.dark\:border-amber-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(146 64 14 / var(--tw-border-opacity, 1));
}
.dark\:border-amber-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(120 53 15 / var(--tw-border-opacity, 1));
}
.dark\:border-amber-900\/60:is(.dark *) {
  border-color: rgb(120 53 15 / 0.6);
}
.dark\:border-blue-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(29 78 216 / var(--tw-border-opacity, 1));
}
.dark\:border-blue-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));
}
.dark\:border-brand-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: hsl(var(--brand-800) / var(--tw-border-opacity, 1));
}
.dark\:border-emerald-500:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(16 185 129 / var(--tw-border-opacity, 1));
}
.dark\:border-emerald-500\/30:is(.dark *) {
  border-color: rgb(16 185 129 / 0.3);
}
.dark\:border-emerald-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
}
.dark\:border-gray-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
}
.dark\:border-gray-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}
.dark\:border-green-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(21 128 61 / var(--tw-border-opacity, 1));
}
.dark\:border-orange-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(124 45 18 / var(--tw-border-opacity, 1));
}
.dark\:border-purple-500:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(168 85 247 / var(--tw-border-opacity, 1));
}
.dark\:border-red-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
}
.dark\:border-red-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(153 27 27 / var(--tw-border-opacity, 1));
}
.dark\:border-red-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(127 29 29 / var(--tw-border-opacity, 1));
}
.dark\:border-rose-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(159 18 57 / var(--tw-border-opacity, 1));
}
.dark\:border-rose-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(136 19 55 / var(--tw-border-opacity, 1));
}
.dark\:border-sky-500:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(14 165 233 / var(--tw-border-opacity, 1));
}
.dark\:border-slate-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));
}
.dark\:border-slate-700\/40:is(.dark *) {
  border-color: rgb(51 65 85 / 0.4);
}
.dark\:border-slate-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(30 41 59 / var(--tw-border-opacity, 1));
}
.dark\:border-slate-800\/40:is(.dark *) {
  border-color: rgb(30 41 59 / 0.4);
}
.dark\:border-violet-500:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
}
.dark\:border-violet-500\/30:is(.dark *) {
  border-color: rgb(139 92 246 / 0.3);
}
.dark\:border-violet-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(109 40 217 / var(--tw-border-opacity, 1));
}
.dark\:border-violet-700\/40:is(.dark *) {
  border-color: rgb(109 40 217 / 0.4);
}
.dark\:border-violet-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(91 33 182 / var(--tw-border-opacity, 1));
}
.dark\:bg-\[\#241F32\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(36 31 50 / var(--tw-bg-opacity, 1));
}
.dark\:bg-\[\#3A3450\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(58 52 80 / var(--tw-bg-opacity, 1));
}
.dark\:bg-amber-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(146 64 14 / var(--tw-bg-opacity, 1));
}
.dark\:bg-amber-900\/10:is(.dark *) {
  background-color: rgb(120 53 15 / 0.1);
}
.dark\:bg-amber-900\/20:is(.dark *) {
  background-color: rgb(120 53 15 / 0.2);
}
.dark\:bg-amber-900\/30:is(.dark *) {
  background-color: rgb(120 53 15 / 0.3);
}
.dark\:bg-amber-900\/40:is(.dark *) {
  background-color: rgb(120 53 15 / 0.4);
}
.dark\:bg-amber-950\/20:is(.dark *) {
  background-color: rgb(69 26 3 / 0.2);
}
.dark\:bg-amber-950\/30:is(.dark *) {
  background-color: rgb(69 26 3 / 0.3);
}
.dark\:bg-amber-950\/40:is(.dark *) {
  background-color: rgb(69 26 3 / 0.4);
}
.dark\:bg-blue-900\/40:is(.dark *) {
  background-color: rgb(30 58 138 / 0.4);
}
.dark\:bg-blue-950\/20:is(.dark *) {
  background-color: rgb(23 37 84 / 0.2);
}
.dark\:bg-blue-950\/30:is(.dark *) {
  background-color: rgb(23 37 84 / 0.3);
}
.dark\:bg-blue-950\/40:is(.dark *) {
  background-color: rgb(23 37 84 / 0.4);
}
.dark\:bg-emerald-500\/10:is(.dark *) {
  background-color: rgb(16 185 129 / 0.1);
}
.dark\:bg-emerald-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(6 95 70 / var(--tw-bg-opacity, 1));
}
.dark\:bg-emerald-900\/10:is(.dark *) {
  background-color: rgb(6 78 59 / 0.1);
}
.dark\:bg-emerald-900\/20:is(.dark *) {
  background-color: rgb(6 78 59 / 0.2);
}
.dark\:bg-emerald-900\/30:is(.dark *) {
  background-color: rgb(6 78 59 / 0.3);
}
.dark\:bg-emerald-900\/40:is(.dark *) {
  background-color: rgb(6 78 59 / 0.4);
}
.dark\:bg-emerald-950\/20:is(.dark *) {
  background-color: rgb(2 44 34 / 0.2);
}
.dark\:bg-emerald-950\/30:is(.dark *) {
  background-color: rgb(2 44 34 / 0.3);
}
.dark\:bg-emerald-950\/40:is(.dark *) {
  background-color: rgb(2 44 34 / 0.4);
}
.dark\:bg-gray-700:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.dark\:bg-gray-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.dark\:bg-gray-800\/40:is(.dark *) {
  background-color: rgb(31 41 55 / 0.4);
}
.dark\:bg-gray-900:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
}
.dark\:bg-gray-900\/40:is(.dark *) {
  background-color: rgb(17 24 39 / 0.4);
}
.dark\:bg-green-900\/30:is(.dark *) {
  background-color: rgb(20 83 45 / 0.3);
}
.dark\:bg-green-900\/40:is(.dark *) {
  background-color: rgb(20 83 45 / 0.4);
}
.dark\:bg-neutral-700:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(64 64 64 / var(--tw-bg-opacity, 1));
}
.dark\:bg-neutral-800\/50:is(.dark *) {
  background-color: rgb(38 38 38 / 0.5);
}
.dark\:bg-orange-900\/30:is(.dark *) {
  background-color: rgb(124 45 18 / 0.3);
}
.dark\:bg-orange-900\/40:is(.dark *) {
  background-color: rgb(124 45 18 / 0.4);
}
.dark\:bg-orange-950\/40:is(.dark *) {
  background-color: rgb(67 20 7 / 0.4);
}
.dark\:bg-purple-900\/30:is(.dark *) {
  background-color: rgb(88 28 135 / 0.3);
}
.dark\:bg-red-900\/30:is(.dark *) {
  background-color: rgb(127 29 29 / 0.3);
}
.dark\:bg-red-900\/40:is(.dark *) {
  background-color: rgb(127 29 29 / 0.4);
}
.dark\:bg-red-900\/60:is(.dark *) {
  background-color: rgb(127 29 29 / 0.6);
}
.dark\:bg-red-950\/40:is(.dark *) {
  background-color: rgb(69 10 10 / 0.4);
}
.dark\:bg-rose-900\/20:is(.dark *) {
  background-color: rgb(136 19 55 / 0.2);
}
.dark\:bg-rose-900\/30:is(.dark *) {
  background-color: rgb(136 19 55 / 0.3);
}
.dark\:bg-rose-900\/40:is(.dark *) {
  background-color: rgb(136 19 55 / 0.4);
}
.dark\:bg-rose-950\/30:is(.dark *) {
  background-color: rgb(76 5 25 / 0.3);
}
.dark\:bg-sky-900\/30:is(.dark *) {
  background-color: rgb(12 74 110 / 0.3);
}
.dark\:bg-sky-900\/40:is(.dark *) {
  background-color: rgb(12 74 110 / 0.4);
}
.dark\:bg-slate-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
}
.dark\:bg-slate-700:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}
.dark\:bg-slate-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
.dark\:bg-slate-800\/40:is(.dark *) {
  background-color: rgb(30 41 59 / 0.4);
}
.dark\:bg-slate-800\/50:is(.dark *) {
  background-color: rgb(30 41 59 / 0.5);
}
.dark\:bg-slate-900:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}
.dark\:bg-slate-900\/40:is(.dark *) {
  background-color: rgb(15 23 42 / 0.4);
}
.dark\:bg-slate-950:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
}
.dark\:bg-slate-950\/30:is(.dark *) {
  background-color: rgb(2 6 23 / 0.3);
}
.dark\:bg-slate-950\/60:is(.dark *) {
  background-color: rgb(2 6 23 / 0.6);
}
.dark\:bg-slate-950\/70:is(.dark *) {
  background-color: rgb(2 6 23 / 0.7);
}
.dark\:bg-slate-950\/80:is(.dark *) {
  background-color: rgb(2 6 23 / 0.8);
}
.dark\:bg-violet-400:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(167 139 250 / var(--tw-bg-opacity, 1));
}
.dark\:bg-violet-500:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}
.dark\:bg-violet-500\/\[0\.06\]:is(.dark *) {
  background-color: rgb(139 92 246 / 0.06);
}
.dark\:bg-violet-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1));
}
.dark\:bg-violet-900\/10:is(.dark *) {
  background-color: rgb(76 29 149 / 0.1);
}
.dark\:bg-violet-900\/20:is(.dark *) {
  background-color: rgb(76 29 149 / 0.2);
}
.dark\:bg-violet-900\/30:is(.dark *) {
  background-color: rgb(76 29 149 / 0.3);
}
.dark\:bg-violet-900\/40:is(.dark *) {
  background-color: rgb(76 29 149 / 0.4);
}
.dark\:bg-violet-950\/30:is(.dark *) {
  background-color: rgb(46 16 101 / 0.3);
}
.dark\:bg-yellow-900\/30:is(.dark *) {
  background-color: rgb(113 63 18 / 0.3);
}
.dark\:bg-yellow-900\/40:is(.dark *) {
  background-color: rgb(113 63 18 / 0.4);
}
.dark\:from-amber-600:is(.dark *) {
  --tw-gradient-from: #d97706 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.dark\:from-red-700:is(.dark *) {
  --tw-gradient-from: #b91c1c var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(185 28 28 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.dark\:from-slate-700:is(.dark *) {
  --tw-gradient-from: #334155 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.dark\:from-violet-700:is(.dark *) {
  --tw-gradient-from: #6d28d9 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.dark\:from-violet-900\/10:is(.dark *) {
  --tw-gradient-from: rgb(76 29 149 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 29 149 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.dark\:via-purple-700:is(.dark *) {
  --tw-gradient-to: rgb(126 34 206 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #7e22ce var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.dark\:via-rose-700:is(.dark *) {
  --tw-gradient-to: rgb(190 18 60 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #be123c var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.dark\:via-slate-800:is(.dark *) {
  --tw-gradient-to: rgb(30 41 59 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.dark\:to-indigo-700:is(.dark *) {
  --tw-gradient-to: #4338ca var(--tw-gradient-to-position);
}
.dark\:to-orange-600:is(.dark *) {
  --tw-gradient-to: #ea580c var(--tw-gradient-to-position);
}
.dark\:to-red-700:is(.dark *) {
  --tw-gradient-to: #b91c1c var(--tw-gradient-to-position);
}
.dark\:to-slate-600:is(.dark *) {
  --tw-gradient-to: #475569 var(--tw-gradient-to-position);
}
.dark\:to-violet-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(76 29 149 / 0.2) var(--tw-gradient-to-position);
}
.dark\:text-\[color\:var\(--violet-400\)\]:is(.dark *) {
  color: var(--violet-400);
}
.dark\:text-\[var\(--violet-300\)\]:is(.dark *) {
  color: var(--violet-300);
}
.dark\:text-amber-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 230 138 / var(--tw-text-opacity, 1));
}
.dark\:text-amber-200\/70:is(.dark *) {
  color: rgb(253 230 138 / 0.7);
}
.dark\:text-amber-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}
.dark\:text-amber-300\/90:is(.dark *) {
  color: rgb(252 211 77 / 0.9);
}
.dark\:text-amber-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}
.dark\:text-amber-500:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.dark\:text-blue-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(191 219 254 / var(--tw-text-opacity, 1));
}
.dark\:text-blue-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}
.dark\:text-blue-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.dark\:text-brand-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-300) / var(--tw-text-opacity, 1));
}
.dark\:text-brand-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: hsl(var(--brand-400) / var(--tw-text-opacity, 1));
}
.dark\:text-emerald-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 250 229 / var(--tw-text-opacity, 1));
}
.dark\:text-emerald-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(167 243 208 / var(--tw-text-opacity, 1));
}
.dark\:text-emerald-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}
.dark\:text-emerald-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}
.dark\:text-gray-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.dark\:text-gray-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.dark\:text-gray-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.dark\:text-gray-500:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.dark\:text-gray-700:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.dark\:text-green-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 239 172 / var(--tw-text-opacity, 1));
}
.dark\:text-green-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}
.dark\:text-orange-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 186 116 / var(--tw-text-opacity, 1));
}
.dark\:text-orange-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / var(--tw-text-opacity, 1));
}
.dark\:text-purple-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(216 180 254 / var(--tw-text-opacity, 1));
}
.dark\:text-red-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(254 202 202 / var(--tw-text-opacity, 1));
}
.dark\:text-red-200\/70:is(.dark *) {
  color: rgb(254 202 202 / 0.7);
}
.dark\:text-red-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.dark\:text-red-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.dark\:text-rose-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}
.dark\:text-rose-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}
.dark\:text-sky-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(125 211 252 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-500:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}
.dark\:text-slate-600:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}
.dark\:text-violet-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(221 214 254 / var(--tw-text-opacity, 1));
}
.dark\:text-violet-200\/70:is(.dark *) {
  color: rgb(221 214 254 / 0.7);
}
.dark\:text-violet-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}
.dark\:text-violet-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / var(--tw-text-opacity, 1));
}
.dark\:text-yellow-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 224 71 / var(--tw-text-opacity, 1));
}
.dark\:text-yellow-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}
.dark\:ring-gray-600:is(.dark *) {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1));
}
.dark\:ring-gray-700:is(.dark *) {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity, 1));
}
.dark\:ring-violet-900\/30:is(.dark *) {
  --tw-ring-color: rgb(76 29 149 / 0.3);
}
.dark\:ring-offset-gray-900:is(.dark *) {
  --tw-ring-offset-color: #111827;
}
.dark\:ring-offset-slate-900:is(.dark *) {
  --tw-ring-offset-color: #0f172a;
}
.dark\:hover\:border-violet-700:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(109 40 217 / var(--tw-border-opacity, 1));
}
.dark\:hover\:bg-amber-900\/20:hover:is(.dark *) {
  background-color: rgb(120 53 15 / 0.2);
}
.dark\:hover\:bg-amber-900\/30:hover:is(.dark *) {
  background-color: rgb(120 53 15 / 0.3);
}
.dark\:hover\:bg-amber-950\/40:hover:is(.dark *) {
  background-color: rgb(69 26 3 / 0.4);
}
.dark\:hover\:bg-blue-900\/30:hover:is(.dark *) {
  background-color: rgb(30 58 138 / 0.3);
}
.dark\:hover\:bg-brand-900\/20:hover:is(.dark *) {
  background-color: hsl(var(--brand-900) / 0.2);
}
.dark\:hover\:bg-brand-950\/40:hover:is(.dark *) {
  background-color: hsl(var(--brand-950) / 0.4);
}
.dark\:hover\:bg-card:hover:is(.dark *) {
  background-color: hsl(var(--card));
}
.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *) {
  background-color: rgb(6 78 59 / 0.2);
}
.dark\:hover\:bg-emerald-900\/50:hover:is(.dark *) {
  background-color: rgb(6 78 59 / 0.5);
}
.dark\:hover\:bg-emerald-950\/30:hover:is(.dark *) {
  background-color: rgb(2 44 34 / 0.3);
}
.dark\:hover\:bg-gray-800:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.dark\:hover\:bg-gray-800\/40:hover:is(.dark *) {
  background-color: rgb(31 41 55 / 0.4);
}
.dark\:hover\:bg-orange-950\/40:hover:is(.dark *) {
  background-color: rgb(67 20 7 / 0.4);
}
.dark\:hover\:bg-red-900\/20:hover:is(.dark *) {
  background-color: rgb(127 29 29 / 0.2);
}
.dark\:hover\:bg-red-900\/30:hover:is(.dark *) {
  background-color: rgb(127 29 29 / 0.3);
}
.dark\:hover\:bg-red-950\/40:hover:is(.dark *) {
  background-color: rgb(69 10 10 / 0.4);
}
.dark\:hover\:bg-rose-950\/30:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.3);
}
.dark\:hover\:bg-rose-950\/40:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}
.dark\:hover\:bg-slate-700:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}
.dark\:hover\:bg-slate-800:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}
.dark\:hover\:bg-slate-800\/40:hover:is(.dark *) {
  background-color: rgb(30 41 59 / 0.4);
}
.dark\:hover\:bg-slate-800\/60:hover:is(.dark *) {
  background-color: rgb(30 41 59 / 0.6);
}
.dark\:hover\:bg-violet-900\/50:hover:is(.dark *) {
  background-color: rgb(76 29 149 / 0.5);
}
.dark\:hover\:bg-zinc-800:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(39 39 42 / var(--tw-bg-opacity, 1));
}
.dark\:hover\:text-\[color\:var\(--violet-300\)\]:hover:is(.dark *) {
  color: var(--violet-300);
}
.dark\:hover\:text-red-300:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.dark\:hover\:text-slate-200:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}
.dark\:hover\:text-violet-300:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}
.dark\:focus\:ring-offset-slate-900:focus:is(.dark *) {
  --tw-ring-offset-color: #0f172a;
}
@media (min-width: 640px) {

  .sm\:-left-8 {
    left: -2rem;
  }

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

  .sm\:left-6 {
    left: 1.5rem;
  }

  .sm\:right-6 {
    right: 1.5rem;
  }

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

  .sm\:-m-6 {
    margin: -1.5rem;
  }

  .sm\:ml-auto {
    margin-left: auto;
  }

  .sm\:block {
    display: block;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:inline-flex {
    display: inline-flex;
  }

  .sm\:hidden {
    display: none;
  }

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

  .sm\:h-\[360px\] {
    height: 360px;
  }

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

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

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

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

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

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

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

  .sm\:max-w-\[65\%\] {
    max-width: 65%;
  }

  .sm\:max-w-lg {
    max-width: 32rem;
  }

  .sm\:max-w-sm {
    max-width: 24rem;
  }

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

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

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

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

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-start {
    align-items: flex-start;
  }

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

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

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

  .sm\:gap-5 {
    gap: 1.25rem;
  }

  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:rounded-3xl {
    border-radius: 1.5rem;
  }

  .sm\:rounded-\[2rem\] {
    border-radius: 2rem;
  }

  .sm\:border-r {
    border-right-width: 1px;
  }

  .sm\:p-3 {
    padding: 0.75rem;
  }

  .sm\:p-4 {
    padding: 1rem;
  }

  .sm\:p-5 {
    padding: 1.25rem;
  }

  .sm\:p-6 {
    padding: 1.5rem;
  }

  .sm\:p-8 {
    padding: 2rem;
  }

  .sm\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .sm\:px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .sm\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

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

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

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

  .sm\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .sm\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .sm\:pr-8 {
    padding-right: 2rem;
  }

  .sm\:pt-36 {
    padding-top: 9rem;
  }

  .sm\:pt-40 {
    padding-top: 10rem;
  }

  .sm\:pt-6 {
    padding-top: 1.5rem;
  }

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

  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

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

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

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

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

  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 768px) {

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

  .md\:col-span-5 {
    grid-column: span 5 / span 5;
  }

  .md\:block {
    display: block;
  }

  .md\:flex {
    display: flex;
  }

  .md\:inline-flex {
    display: inline-flex;
  }

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

  .md\:hidden {
    display: none;
  }

  .md\:w-72 {
    width: 18rem;
  }

  .md\:w-80 {
    width: 20rem;
  }

  .md\:w-full {
    width: 100%;
  }

  .md\:min-w-\[240px\] {
    min-width: 240px;
  }

  .md\:max-w-\[380px\] {
    max-width: 380px;
  }

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

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

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

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

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

  .md\:grid-cols-\[260px_1fr\] {
    grid-template-columns: 260px 1fr;
  }

  .md\:grid-cols-\[280px_1fr\] {
    grid-template-columns: 280px 1fr;
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:flex-col {
    flex-direction: column;
  }

  .md\:items-end {
    align-items: flex-end;
  }

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

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

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

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

  .md\:border-r {
    border-right-width: 1px;
  }

  .md\:border-slate-100 {
    --tw-border-opacity: 1;
    border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
  }

  .md\:pl-\[12px\] {
    padding-left: 12px;
  }

  .md\:pr-4 {
    padding-right: 1rem;
  }

  .md\:pr-\[10px\] {
    padding-right: 10px;
  }

  .md\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

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

  .md\:text-\[40px\] {
    font-size: 40px;
  }

  .dark\:md\:border-slate-800:is(.dark *) {
    --tw-border-opacity: 1;
    border-color: rgb(30 41 59 / var(--tw-border-opacity, 1));
  }
}
@media (min-width: 1024px) {

  .lg\:sticky {
    position: sticky;
  }

  .lg\:top-4 {
    top: 1rem;
  }

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

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

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

  .lg\:mb-6 {
    margin-bottom: 1.5rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:inline {
    display: inline;
  }

  .lg\:\!flex {
    display: flex !important;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-\[430px\] {
    height: 430px;
  }

  .lg\:h-full {
    height: 100%;
  }

  .lg\:max-h-\[calc\(100vh-2rem\)\] {
    max-height: calc(100vh - 2rem);
  }

  .lg\:max-h-screen {
    max-height: 100vh;
  }

  .lg\:w-72 {
    width: 18rem;
  }

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

  .lg\:max-w-\[460px\] {
    max-width: 460px;
  }

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

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

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

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

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

  .lg\:grid-cols-\[0\.8fr_1\.2fr\] {
    grid-template-columns: 0.8fr 1.2fr;
  }

  .lg\:grid-cols-\[1\.05fr_0\.95fr\] {
    grid-template-columns: 1.05fr 0.95fr;
  }

  .lg\:grid-cols-\[1fr_280px\] {
    grid-template-columns: 1fr 280px;
  }

  .lg\:grid-cols-\[1fr_320px\] {
    grid-template-columns: 1fr 320px;
  }

  .lg\:grid-cols-\[220px_1fr_320px\] {
    grid-template-columns: 220px 1fr 320px;
  }

  .lg\:grid-cols-\[260px_1fr\] {
    grid-template-columns: 260px 1fr;
  }

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

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:gap-16 {
    gap: 4rem;
  }

  .lg\:self-start {
    align-self: flex-start;
  }

  .lg\:overflow-y-auto {
    overflow-y: auto;
  }

  .lg\:border-l {
    border-left-width: 1px;
  }

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

  .lg\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .lg\:pb-\[clamp\(12px\2c 2vw\2c 28px\)\] {
    padding-bottom: clamp(12px, 2vw, 28px);
  }

  .lg\:pl-4 {
    padding-left: 1rem;
  }

  .lg\:pt-0 {
    padding-top: 0px;
  }

  .lg\:pt-6 {
    padding-top: 1.5rem;
  }

  .lg\:pt-\[clamp\(12px\2c 2vw\2c 28px\)\] {
    padding-top: clamp(12px, 2vw, 28px);
  }

  .lg\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }
}
@media (min-width: 1280px) {

  .xl\:block {
    display: block;
  }

  .xl\:inline {
    display: inline;
  }

  .xl\:hidden {
    display: none;
  }

  .xl\:min-w-\[320px\] {
    min-width: 320px;
  }

  .xl\:max-w-\[560px\] {
    max-width: 560px;
  }

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

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

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

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

  .print\:hidden {
    display: none;
  }
}
.\[\&_svg\]\:pointer-events-none svg {
  pointer-events: none;
}
.\[\&_svg\]\:size-4 svg {
  width: 1rem;
  height: 1rem;
}
.\[\&_svg\]\:shrink-0 svg {
  flex-shrink: 0;
}


/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[3].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[3].use[2]!./node_modules/next/font/local/target.css?{"path":"src/fonts/menu.ts","import":"","arguments":[{"src":[{"path":"./instrument-sans-latin-var.woff2","weight":"400 700","style":"normal"}],"variable":"--font-menu","display":"swap","preload":false}],"variableName":"instrumentSans"} ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face {
font-family: '__instrumentSans_c26f80';
src: url(/_next/static/media/ae05c57c271ebcb0-s.woff2) format('woff2');
font-display: swap;
font-weight: 400 700;
font-style: normal;
}@font-face {font-family: '__instrumentSans_Fallback_c26f80';src: local("Arial");ascent-override: 93.97%;descent-override: 24.22%;line-gap-override: 0.00%;size-adjust: 103.22%
}.__className_c26f80 {font-family: '__instrumentSans_c26f80', '__instrumentSans_Fallback_c26f80';font-style: normal
}.__variable_c26f80 {--font-menu: '__instrumentSans_c26f80', '__instrumentSans_Fallback_c26f80'
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[3].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[3].use[2]!./node_modules/next/font/local/target.css?{"path":"src/fonts/menu.ts","import":"","arguments":[{"src":[{"path":"./material-symbols-rounded-menu.woff2","style":"normal"}],"variable":"--font-iconos-menu","display":"block","preload":false,"adjustFontFallback":false}],"variableName":"materialSymbols"} ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@font-face {
font-family: '__materialSymbols_87c7fe';
src: url(/_next/static/media/35123daa59269a77.woff2) format('woff2');
font-display: block;
font-style: normal;
}.__className_87c7fe {font-family: '__materialSymbols_87c7fe';font-style: normal
}.__variable_87c7fe {--font-iconos-menu: '__materialSymbols_87c7fe'
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/dashboard/menu-dos-niveles/menu-dos-niveles.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ═══════════════════════════════════════════════════════════════════
   Menú de dos niveles (diseño aprobado por Rafael, captura del 15-sep-2026).
   Los colores del diseño viven aquí como tokens --m2-*, con su versión oscura.
   Fuera de este archivo no hay hex: los componentes solo usan las clases.
   ═══════════════════════════════════════════════════════════════════ */

.menu-dos-niveles_tokens__JrcRp {
  --m2-n1-fondo: #f4f3f8;
  --m2-n2-fondo: #ffffff;
  --m2-borde: #ebeaf0;
  --m2-texto: #1a1826;
  --m2-texto-2: #464357;
  --m2-texto-3: #858295;
  --m2-hover: rgba(26, 24, 38, 0.05);
  --m2-activo: #4d3fc6;
  --m2-activo-texto: #ffffff;
  --m2-tarjeta: #ffffff;
  --m2-tarjeta-borde: #eae8f0;
  --m2-tarjeta-hover: #fbfaff;
  --m2-sombra: 0 1px 2px rgba(26, 24, 38, 0.05);
  --m2-cta-fondo: #1a1826;
  --m2-cta-texto: #ffffff;
  --m2-iniciales-fondo: #e6e9ff;
  --m2-iniciales-texto: #4d3fc6;
  --m2-buscador-fondo: #f4f3f8;
  --m2-contador-fondo: #fec766;
  --m2-contador-texto: #5a3b00;
  --m2-soporte: var(--success-strong, #059669);
  --m2-foco: 0 0 0 2px var(--m2-activo);
  font-family: var(--font-menu), system-ui, sans-serif;
}

.dark .menu-dos-niveles_tokens__JrcRp {
  --m2-n1-fondo: #0d0a17;
  --m2-n2-fondo: #121020;
  --m2-borde: rgba(255, 255, 255, 0.07);
  --m2-texto: #edecf3;
  --m2-texto-2: #b6b3c4;
  --m2-texto-3: #7f7c90;
  --m2-hover: rgba(255, 255, 255, 0.05);
  --m2-activo: #6252e2;
  --m2-tarjeta: #19162a;
  --m2-tarjeta-borde: rgba(255, 255, 255, 0.07);
  --m2-tarjeta-hover: #1f1b33;
  --m2-sombra: none;
  --m2-cta-fondo: #edecf3;
  --m2-cta-texto: #14101f;
  --m2-iniciales-fondo: rgba(98, 82, 226, 0.22);
  --m2-iniciales-texto: #cbc5ff;
  --m2-buscador-fondo: rgba(255, 255, 255, 0.05);
}

/* ── Íconos (Material Symbols Rounded, ligaduras) ─────────────────── */

.menu-dos-niveles_icono__qN_lF {
  font-family: var(--font-iconos-menu);
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  width: 1em;
  height: 1em;
  overflow: hidden;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  flex-shrink: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 20;
}

.menu-dos-niveles_iconoRelleno__SebWj {
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 20;
}

/* ── Contenedor de escritorio: barra estrecha + segundo nivel ─────── */

.menu-dos-niveles_raiz__TPZnk {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-shrink: 0;
  z-index: 30;
}

@media (max-width: 1023.98px) {
  .menu-dos-niveles_raiz__TPZnk {
    display: none;
  }
}

.menu-dos-niveles_nivel1__n0sYR {
  width: clamp(228px, 13vw, 250px);
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 18px 12px 12px;
  background: var(--m2-n1-fondo);
  border-right: 1px solid var(--m2-borde);
  color: var(--m2-texto);
  overflow: hidden;
}

.menu-dos-niveles_nivel1__n0sYR[data-encogido="true"] {
  width: 68px;
  padding-inline: 10px;
}

/* ── Marca ────────────────────────────────────────────────────────── */

.menu-dos-niveles_marca__NLI7q {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 0 14px 2px;
  min-height: 44px;
}

.menu-dos-niveles_nivel1__n0sYR[data-encogido="true"] .menu-dos-niveles_marca__NLI7q {
  flex-direction: column;
  gap: 8px;
  padding-left: 0;
}

.menu-dos-niveles_logoCuadro__e5L8H {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--m2-activo);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.menu-dos-niveles_logoTexto__Fkpi4 {
  flex: 1;
  min-width: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.3px;
  line-height: 1;
  white-space: nowrap;
  color: var(--m2-texto);
}

.menu-dos-niveles_logoTexto__Fkpi4 b {
  font-weight: 700;
  color: var(--m2-activo);
}

.menu-dos-niveles_botonIcono___dTsw {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--m2-texto-3);
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}

@media (hover: hover) {
  .menu-dos-niveles_botonIcono___dTsw:hover {
    background: var(--m2-hover);
    color: var(--m2-texto);
  }
}

.menu-dos-niveles_botonIcono___dTsw:focus-visible,
.menu-dos-niveles_item__qct9C:focus-visible,
.menu-dos-niveles_filaAdmin__kEQPd:focus-visible,
.menu-dos-niveles_tarjeta__7n8pN:focus-visible,
.menu-dos-niveles_nuevaCita__uu98n:focus-visible,
.menu-dos-niveles_buscar__e7udP:focus-visible,
.menu-dos-niveles_hamburguesa__jx5Le:focus-visible {
  outline: none;
  box-shadow: var(--m2-foco);
}

/* ── Tarjetas (clínica y usuario) ─────────────────────────────────── */

.menu-dos-niveles_tarjeta__7n8pN {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 8px 9px 10px;
  margin: 0;
  background: var(--m2-tarjeta);
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 12px;
  box-shadow: var(--m2-sombra);
  color: var(--m2-texto);
  font: inherit;
  text-align: left;
  cursor: default;
  transition: background 0.12s;
}

button.menu-dos-niveles_tarjeta__7n8pN {
  cursor: pointer;
}

@media (hover: hover) {
  button.menu-dos-niveles_tarjeta__7n8pN:hover {
    background: var(--m2-tarjeta-hover);
  }
}

.menu-dos-niveles_tarjetaClinica__Rkx_t {
  margin-bottom: 12px;
}

.menu-dos-niveles_tarjetaCompacta__cIXFZ {
  justify-content: center;
  padding: 6px 0;
}

.menu-dos-niveles_iniciales__3hGyA {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--m2-iniciales-fondo);
  color: var(--m2-iniciales-texto);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.menu-dos-niveles_avatar__fpqYX {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--m2-activo);
  color: var(--m2-activo-texto);
  font-size: 12px;
  font-weight: 700;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.menu-dos-niveles_tarjetaTextos__7T22C {
  flex: 1;
  min-width: 0;
}

.menu-dos-niveles_tarjetaNombre__Q8iYM {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--m2-texto);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.menu-dos-niveles_tarjetaSub__YADOW {
  font-size: 11px;
  line-height: 1.3;
  color: var(--m2-texto-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.menu-dos-niveles_tarjetaFlecha__E32Mg {
  color: var(--m2-texto-3);
  font-size: 18px;
}

/* ── Nueva cita ───────────────────────────────────────────────────── */

.menu-dos-niveles_nuevaCita__uu98n {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 40px;
  margin-bottom: 12px;
  border: 0;
  border-radius: 10px;
  background: var(--m2-cta-fondo);
  color: var(--m2-cta-texto);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.14);
  transition: opacity 0.12s;
}

@media (hover: hover) {
  .menu-dos-niveles_nuevaCita__uu98n:hover {
    opacity: 0.9;
  }
}

.menu-dos-niveles_nuevaCita__uu98n .menu-dos-niveles_icono__qN_lF {
  font-size: 18px;
}

/* ── Opciones ─────────────────────────────────────────────────────── */

.menu-dos-niveles_navegacion__ws79G {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.menu-dos-niveles_item__qct9C {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 38px;
  padding: 0 10px;
  margin: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--m2-texto-2);
  font: inherit;
  font-size: 13.5px;
  font-weight: 500;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}

@media (hover: hover) {
  .menu-dos-niveles_item__qct9C:hover {
    background: var(--m2-hover);
    color: var(--m2-texto);
  }
}

.menu-dos-niveles_itemActivo__hDwhv,
.menu-dos-niveles_itemActivo__hDwhv:hover {
  background: var(--m2-activo);
  color: var(--m2-activo-texto);
  font-weight: 600;
}

.menu-dos-niveles_nivel1__n0sYR[data-encogido="true"] .menu-dos-niveles_item__qct9C {
  justify-content: center;
  padding: 0;
}

.menu-dos-niveles_itemSegundo__OGXPq {
  min-height: clamp(34px, 4vh, 44px);
}

/* ── Opción realzada (Saldo IA) ─────────────────────────────────────
   Solo el icono, en el morado de marca: la fila es como las demás (el halo
   que llevaba lo quitó Rafael). `--brand` es el mismo token que usaba el
   halo. En la fila activa el fondo ya es ese morado, así que ahí el icono
   vuelve al color del texto para no desaparecer. */
.menu-dos-niveles_iconoRealzado__GGag1 {
  color: var(--brand);
}

.menu-dos-niveles_itemActivo__hDwhv .menu-dos-niveles_iconoRealzado__GGag1 {
  color: inherit;
}

.menu-dos-niveles_itemTexto__c5iiJ {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.menu-dos-niveles_iconoSoporte__hHlYy {
  color: var(--m2-soporte);
}

.menu-dos-niveles_contador__9EWFj {
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  border-radius: 99px;
  background: var(--m2-contador-fondo);
  color: var(--m2-contador-texto);
  font-size: 11px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

.menu-dos-niveles_puntoConsulta__ZRos7 {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--success, #10b981);
  box-shadow: 0 0 0 3px var(--success-soft, rgba(16, 185, 129, 0.18));
  flex-shrink: 0;
}

.menu-dos-niveles_itemActivo__hDwhv .menu-dos-niveles_puntoConsulta__ZRos7 {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.16);
}

.menu-dos-niveles_puntoEncogido__FSJQ1 {
  position: absolute;
  top: 7px;
  right: 11px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--m2-contador-fondo);
}

.menu-dos-niveles_puntoEncogido__FSJQ1[data-consulta="true"] {
  background: var(--success, #10b981);
}

.menu-dos-niveles_candado__E_kUK {
  font-size: 16px;
  opacity: 0.75;
}

.menu-dos-niveles_proximamente__8ahK_ {
  cursor: not-allowed;
  opacity: 0.55;
}

@media (hover: hover) {
  .menu-dos-niveles_proximamente__8ahK_:hover {
    background: transparent;
    color: var(--m2-texto-2);
  }
}

.menu-dos-niveles_etiquetaProximamente__W2i25 {
  flex-shrink: 0;
  padding: 1.5px 6px;
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 99px;
  color: var(--m2-texto-3);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ── Administración (fila del primer nivel) ───────────────────────── */

.menu-dos-niveles_separador__wtnZA {
  height: 1px;
  margin: 12px 4px;
  background: var(--m2-borde);
  flex-shrink: 0;
}

.menu-dos-niveles_filaAdmin__kEQPd {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 38px;
  padding: 0 8px 0 10px;
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 10px;
  background: var(--m2-tarjeta);
  box-shadow: var(--m2-sombra);
  color: var(--m2-texto);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.12s;
}

@media (hover: hover) {
  .menu-dos-niveles_filaAdmin__kEQPd:hover {
    background: var(--m2-tarjeta-hover);
  }
}

.menu-dos-niveles_filaAdmin__kEQPd .menu-dos-niveles_icono__qN_lF {
  color: var(--m2-activo);
}

.menu-dos-niveles_filaAdminActiva__T9qIw,
.menu-dos-niveles_filaAdminActiva__T9qIw:hover {
  background: var(--m2-activo);
  border-color: transparent;
  color: var(--m2-activo-texto);
}

.menu-dos-niveles_filaAdminActiva__T9qIw .menu-dos-niveles_icono__qN_lF,
.menu-dos-niveles_filaAdminActiva__T9qIw .menu-dos-niveles_tarjetaFlecha__E32Mg {
  color: var(--m2-activo-texto);
}

.menu-dos-niveles_nivel1__n0sYR[data-encogido="true"] .menu-dos-niveles_filaAdmin__kEQPd {
  justify-content: center;
  padding: 0;
}

/* ── Pie ──────────────────────────────────────────────────────────── */

.menu-dos-niveles_pie__A8yN9 {
  margin-top: auto;
  padding-top: 12px;
  flex-shrink: 0;
}

/* ── Segundo nivel ────────────────────────────────────────────────── */

.menu-dos-niveles_nivel2__S1ATa {
  width: clamp(248px, 15.5vw, 300px);
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 14px 12px 12px;
  background: var(--m2-n2-fondo);
  border-right: 1px solid var(--m2-borde);
  color: var(--m2-texto);
}

/* Por debajo de 1280 px el segundo nivel no empuja la pantalla: se abre encima,
   para no dejar el área de trabajo en 560 px. */
@media (max-width: 1279.98px) {
  .menu-dos-niveles_nivel2__S1ATa {
    position: absolute;
    top: 0;
    left: 100%;
    height: 100vh;
    box-shadow: 16px 0 36px -14px rgba(15, 10, 30, 0.24);
  }
}

.menu-dos-niveles_n2Cabecera__eEfBz {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  padding: 0 0 12px 8px;
}

.menu-dos-niveles_n2Titulo__0wDPK {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.1px;
  color: var(--m2-texto);
}

.menu-dos-niveles_buscador__mKG79 {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 10px;
  margin-bottom: 4px;
  border-radius: 9px;
  background: var(--m2-buscador-fondo);
  color: var(--m2-texto-3);
  flex-shrink: 0;
}

.menu-dos-niveles_buscador__mKG79:focus-within {
  box-shadow: var(--m2-foco);
}

.menu-dos-niveles_buscador__mKG79 .menu-dos-niveles_icono__qN_lF {
  font-size: 18px;
}

.menu-dos-niveles_buscador__mKG79 input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--m2-texto);
  font: inherit;
  font-size: 13px;
}

.menu-dos-niveles_buscador__mKG79 input::-moz-placeholder {
  color: var(--m2-texto-3);
}

.menu-dos-niveles_buscador__mKG79 input::placeholder {
  color: var(--m2-texto-3);
}

.menu-dos-niveles_buscador__mKG79 input::-webkit-search-cancel-button {
  display: none;
}

/* globals.css pinta TODO input en oscuro con !important; este va sobre su caja. */
.dark .menu-dos-niveles_buscador__mKG79 input {
  background-color: transparent !important;
  border-color: transparent !important;
  color: var(--m2-texto) !important;
}

.dark .menu-dos-niveles_buscador__mKG79 input::-moz-placeholder {
  color: var(--m2-texto-3) !important;
}

.dark .menu-dos-niveles_buscador__mKG79 input::placeholder {
  color: var(--m2-texto-3) !important;
}

.menu-dos-niveles_n2Nav__4B7VE {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  padding-bottom: 8px;
}

.menu-dos-niveles_grupo__gAazQ {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.menu-dos-niveles_grupoTitulo__xG63z {
  margin: 0;
  padding: 16px 10px 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m2-texto-3);
}

.menu-dos-niveles_grupo__gAazQ:first-child .menu-dos-niveles_grupoTitulo__xG63z {
  padding-top: 10px;
}

.menu-dos-niveles_sinResultados__qsRYT {
  margin: 0;
  padding: 16px 10px;
  font-size: 13px;
  color: var(--m2-texto-3);
}

/* ── Teléfono y tableta: cajón ────────────────────────────────────── */

.menu-dos-niveles_velo__gWSo_ {
  position: fixed;
  inset: 0;
  z-index: 49;
  background: rgba(5, 5, 10, 0.55);
  backdrop-filter: blur(4px);
}

.menu-dos-niveles_cajon__1jWhz {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 50;
  width: min(300px, 86vw);
  display: flex;
  flex-direction: column;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px));
  background: var(--m2-n1-fondo);
  color: var(--m2-texto);
  box-shadow: 4px 0 24px -4px rgba(15, 10, 30, 0.2);
  overflow: hidden;
}

.menu-dos-niveles_cajon__1jWhz[data-vista="admin"] {
  background: var(--m2-n2-fondo);
}

.menu-dos-niveles_cajon__1jWhz .menu-dos-niveles_item__qct9C,
.menu-dos-niveles_cajon__1jWhz .menu-dos-niveles_filaAdmin__kEQPd {
  min-height: 44px;
}

.menu-dos-niveles_cajon__1jWhz .menu-dos-niveles_botonIcono___dTsw {
  width: 40px;
  height: 40px;
}

/* ── Desplegables (se abren en un portal, fuera del menú) ─────────── */

.menu-dos-niveles_desplegable___RNfB {
  min-width: 210px;
  padding: 4px;
  outline: none;
  z-index: 60;
  background: var(--m2-tarjeta);
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 12px;
  box-shadow: 0 20px 50px -10px rgba(15, 10, 30, 0.25), 0 8px 20px -8px rgba(15, 10, 30, 0.15);
  color: var(--m2-texto);
}

/* Radix enfoca la caja del desplegable al abrirlo; el anillo de foco global
   ([tabindex]:focus-visible) la rodeaba entera. El foco visible ya lo lleva la
   opción resaltada. Clase doble para ganarle en especificidad, no en orden. */
.menu-dos-niveles_desplegable___RNfB.menu-dos-niveles_desplegable___RNfB:focus-visible {
  outline: none;
  box-shadow: 0 20px 50px -10px rgba(15, 10, 30, 0.25), 0 8px 20px -8px rgba(15, 10, 30, 0.15);
}

.menu-dos-niveles_desplegableItem__OrqNr {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--m2-texto);
  cursor: pointer;
  outline: none;
  text-decoration: none;
}

.menu-dos-niveles_desplegableItem__OrqNr[data-highlighted] {
  background: var(--m2-hover);
}

.menu-dos-niveles_desplegableItem__OrqNr.menu-dos-niveles_desplegableItem__OrqNr:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--m2-activo);
}

.menu-dos-niveles_desplegableItem__OrqNr .menu-dos-niveles_icono__qN_lF {
  font-size: 18px;
  color: var(--m2-texto-3);
}

.menu-dos-niveles_desplegablePeligro__EbWJ8,
.menu-dos-niveles_desplegablePeligro__EbWJ8 .menu-dos-niveles_icono__qN_lF {
  color: var(--danger, #dc2626);
}

.menu-dos-niveles_desplegableSeparador__nngeD {
  height: 1px;
  margin: 4px 0;
  background: var(--m2-borde);
}

/* El desplegable de sedes es el de siempre (sidebar.tsx) y trae su fuente en
   línea como var(--font-sans): aquí se la redirige a la del menú. */
.menu-dos-niveles_clinicasDesplegable___cPor {
  --font-sans: var(--font-menu);
}

.menu-dos-niveles_tooltip__HvgJg {
  z-index: 60;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--m2-tarjeta);
  border: 1px solid var(--m2-tarjeta-borde);
  box-shadow: 0 6px 20px -4px rgba(15, 10, 30, 0.18);
  color: var(--m2-texto);
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Barra superior ───────────────────────────────────────────────── */

.menu-dos-niveles_barra__7HlhT {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 56px;
  padding: 0 clamp(12px, 1.6vw, 24px);
  background: var(--m2-n2-fondo);
  border-bottom: 1px solid var(--m2-borde);
  color: var(--m2-texto);
}

.menu-dos-niveles_hamburguesa__jx5Le {
  display: none;
  place-items: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 10px;
  background: var(--m2-tarjeta);
  color: var(--m2-texto-2);
  cursor: pointer;
}

.menu-dos-niveles_migas__gjfJU {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--m2-texto-3);
  white-space: nowrap;
  overflow: hidden;
}

.menu-dos-niveles_migas__gjfJU > span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.menu-dos-niveles_migas__gjfJU .menu-dos-niveles_icono__qN_lF {
  font-size: 16px;
}

.menu-dos-niveles_migaActual__2ax2_ {
  color: var(--m2-texto);
  font-weight: 600;
}

.menu-dos-niveles_buscar__e7udP {
  display: flex;
  align-items: center;
  gap: 8px;
  width: clamp(240px, 22vw, 380px);
  height: 34px;
  margin-left: auto;
  padding: 0 8px 0 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: var(--m2-buscador-fondo);
  color: var(--m2-texto-3);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  flex-shrink: 1;
  min-width: 0;
}

@media (hover: hover) {
  .menu-dos-niveles_buscar__e7udP:hover {
    border-color: var(--m2-tarjeta-borde);
  }
}

.menu-dos-niveles_buscar__e7udP .menu-dos-niveles_icono__qN_lF {
  font-size: 18px;
}

.menu-dos-niveles_buscarTexto__SXeN3 {
  flex: 1;
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.menu-dos-niveles_kbd__YKe8_ {
  flex-shrink: 0;
  padding: 2px 6px;
  border: 1px solid var(--m2-tarjeta-borde);
  border-radius: 5px;
  background: var(--m2-tarjeta);
  color: var(--m2-texto-3);
  font-family: var(--font-mono, ui-monospace), monospace;
  font-size: 10.5px;
  line-height: 1.3;
}

.menu-dos-niveles_derecha__BCbTn {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

@media (max-width: 1023.98px) {
  .menu-dos-niveles_hamburguesa__jx5Le {
    display: grid;
  }
  .menu-dos-niveles_migas__gjfJU,
  .menu-dos-niveles_derecha__BCbTn {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .menu-dos-niveles_buscar__e7udP {
    width: 40px;
    height: 40px;
    padding: 0;
    justify-content: center;
    border-color: var(--m2-tarjeta-borde);
  }
  .menu-dos-niveles_buscarTexto__SXeN3,
  .menu-dos-niveles_kbd__YKe8_ {
    display: none;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/dashboard/layout-rediseno/avisos.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/
/* ═══════════════════════════════════════════════════════════════════
   LOS AVISOS (toasts) con la ropa del rediseño (ws1-t2, hallazgo 20).

   El <Toaster> de react-hot-toast vive en el layout RAÍZ, por encima de
   /dashboard y sin saber de clínicas, y pinta cada aviso con `style` en
   línea. La caja del aviso lleva sus colores en `toastOptions.style`
   (`avisos.tsx`, leyendo `--m2-*`); aquí solo va lo que un `style` en
   línea no alcanza: el contenedor (que monta CLASES_MENU para que los
   avisos —que cuelgan del <body>— tengan los tokens del menú) y el texto.

   NO declara tokens propios. Solo se aplica con el interruptor
   `menu-dos-niveles` encendido para la clínica de la sesión; apagado, el
   <Toaster> de siempre se pinta con sus props de siempre, byte por byte.
   ═══════════════════════════════════════════════════════════════════ */

/* El contenedor fijo de react-hot-toast: solo hereda tokens y letra. */
.avisos_contenedor__2l9Jr {
  color: var(--m2-texto);
}

/* Cada aviso. Las cifras («3 citas movidas», «$1,250») con ancho fijo. */
.avisos_aviso__4OhZo {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.avisos_aviso__4OhZo > div[role="status"] {
  margin: 4px 8px;
}

