/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Alert/alert.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Alert. Colores y fondos: --color-* (tema en :root).
 */
.fs-alert {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 300;
  border-width: 1px;
  border-style: solid;
  border-radius: 0.5rem;
  padding: 1rem;
  color: var(--color-foreground, #131615);
}

.fs-alert--success {
  border-color: var(--color-success, #2e9e5b);
  background-color: color-mix(
    in srgb,
    var(--color-success, #2e9e5b) 30%,
    transparent
  );
}

.fs-alert--info {
  border-color: var(--color-info, #1e73ae);
  background-color: color-mix(
    in srgb,
    var(--color-info, #1e73ae) 30%,
    transparent
  );
}

.fs-alert--warning {
  border-color: var(--color-warning, #e6a100);
  background-color: color-mix(
    in srgb,
    var(--color-warning, #e6a100) 30%,
    transparent
  );
}

.fs-alert--error {
  border-color: var(--color-error, #d64545);
  background-color: color-mix(
    in srgb,
    var(--color-error, #d64545) 30%,
    transparent
  );
}

/* Velo bajo el contenido; mismo radio que el contenedor .relative padre */
.fs-alert__scrim {
  position: absolute;
  inset: 0;
  border-radius: 0.25rem;
  z-index: 0;
  pointer-events: none;
  background-color: color-mix(
    in srgb,
    var(--color-background, #fff) 70%,
    transparent
  );
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Button/button.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Button / ButtonPill: estilos colocalizados. Colores vía --color-* (globals :root o tema futuro).
 */
.fs-button {
  display: inline-block;
  box-sizing: border-box;
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem;
  border-radius: 0.375rem;
  text-align: center;
  min-width: max-content;
  white-space: nowrap;
  border: 1px solid transparent;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
  cursor: pointer;
}

.fs-button:disabled,
.fs-button:disabled:hover,
.fs-button:disabled:active {
  cursor: not-allowed;
}

.fs-button:active:not(:disabled) {
  transform: scale(0.9);
  box-shadow: inset 0 2px 4px rgb(0 0 0 / 0.12);
}

.fs-button--size-md {
  min-height: var(--control-height-md, 2.25rem);
}

/* Contained */
.fs-button--contained-primary {
  background-color: var(--color-primary, #1e73ae);
  color: var(--color-background, #ffffff);
}
.fs-button--contained-primary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}

.fs-button--contained-secondary {
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #ffffff);
}
.fs-button--contained-secondary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}

.fs-button--contained-danger {
  background-color: var(--color-error, #d64545);
  color: var(--color-background, #ffffff);
}
.fs-button--contained-danger:hover:not(:disabled) {
  background-color: color-mix(
    in srgb,
    var(--color-error, #d64545) 80%,
    var(--color-background, #ffffff) 20%
  );
}

/* Outlined & text */
.fs-button--outlined {
  background-color: transparent;
  color: var(--color-foreground, #131615);
  border-color: var(--color-foreground, #131615);
}
.fs-button--outlined:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
  color: var(--color-background, #ffffff);
  border-color: var(--color-accent, #02578b);
}

.fs-button--outlined-secondary {
  background-color: transparent;
  color: var(--color-secondary, #00deef);
  border-color: var(--color-secondary, #00deef);
}
.fs-button--outlined-secondary:hover:not(:disabled) {
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #ffffff);
  border-color: var(--color-secondary, #00deef);
}

.fs-button--text {
  background-color: transparent;
  color: var(--color-primary, #1e73ae);
  border-color: transparent;
}
.fs-button--text:hover:not(:disabled) {
  transform: scale(1.1);
}
.fs-button--text:active:not(:disabled) {
  transform: scale(0.9);
  box-shadow: none;
}

/* Button group (segmented) */
.fs-button-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: stretch;
  max-width: 100%;
}

.fs-button-group .fs-button-group__item {
  position: relative;
  border-radius: 0;
  margin-left: -1px;
}

.fs-button-group .fs-button-group__item:first-child {
  margin-left: 0;
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
}

.fs-button-group .fs-button-group__item:last-child {
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}

.fs-button-group .fs-button-group__item:focus-visible {
  z-index: 1;
}

.fs-button-group .fs-button-group__item--selected {
  z-index: 1;
}

.fs-button-group.fs-button-group--compact .fs-button-group__item.fs-button {
  box-sizing: border-box;
  height: 1.375rem;
  min-height: 1.375rem;
  max-height: 1.375rem;
  padding: 0 0.4375rem;
  font-size: 0.625rem;
  line-height: 1.375rem;
  font-weight: 500;
}

.fs-button-group.fs-button-group--compact .fs-button-group__item.fs-button svg {
  height: 0.6875rem;
  width: 0.6875rem;
}

.fs-button-group.fs-button-group--compact .fs-button-group__item:first-child {
  border-top-left-radius: 0.1875rem;
  border-bottom-left-radius: 0.1875rem;
}

.fs-button-group.fs-button-group--compact .fs-button-group__item:last-child {
  border-top-right-radius: 0.1875rem;
  border-bottom-right-radius: 0.1875rem;
}

/* Pills: incluyen padding (ButtonPill no aplica clases de tamaño) */
.fs-pill {
  display: inline-block;
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.25rem;
  border-radius: 9999px;
  text-align: center;
  min-width: max-content;
  white-space: nowrap;
  border: 1px solid transparent;
  padding: 0.5rem 1rem;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
  cursor: pointer;
}

.fs-pill:active:not(:disabled) {
  transform: scale(0.9);
  box-shadow: inset 0 2px 4px rgb(0 0 0 / 0.12);
}

.fs-pill--primary {
  background-color: var(--color-primary, #1e73ae);
  color: var(--color-background, #ffffff);
}
.fs-pill--primary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}

.fs-pill--secondary {
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #ffffff);
}
.fs-pill--secondary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}

/* Antes faltaba en globals: variante pill outlined (alineada a .fs-button--outlined) */
.fs-pill--outlined {
  background-color: transparent;
  color: var(--color-foreground, #131615);
  border-color: var(--color-foreground, #131615);
}
.fs-pill--outlined:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
  color: var(--color-background, #ffffff);
  border-color: var(--color-accent, #02578b);
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Badge/badge.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Badge — colores solo vía --color-*.
 */
.fs-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
}

.fs-badge--primary {
  background-color: var(--color-primary, #1e73ae);
  color: var(--color-background, #fff);
}
.fs-badge--secondary {
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #fff);
}
.fs-badge--success {
  background-color: var(--color-success, #2e9e5b);
  color: var(--color-background, #fff);
}
.fs-badge--error {
  background-color: var(--color-error, #d64545);
  color: var(--color-background, #fff);
}
.fs-badge--warning {
  background-color: var(--color-warning, #e6a100);
  color: var(--color-foreground, #131615);
}
.fs-badge--info {
  background-color: var(--color-info, #1e73ae);
  color: var(--color-background, #fff);
}

.fs-badge--primary-outlined {
  border: 1px solid var(--color-primary, #1e73ae);
  color: var(--color-primary, #1e73ae);
  background-color: transparent;
}
.fs-badge--secondary-outlined {
  border: 1px solid var(--color-secondary, #00deef);
  color: var(--color-secondary, #00deef);
  background-color: transparent;
}
.fs-badge--success-outlined {
  border: 1px solid var(--color-success, #2e9e5b);
  color: var(--color-success, #2e9e5b);
  background-color: transparent;
}
.fs-badge--error-outlined {
  border: 1px solid var(--color-error, #d64545);
  color: var(--color-error, #d64545);
  background-color: transparent;
}
.fs-badge--warning-outlined {
  border: 1px solid var(--color-warning, #e6a100);
  color: var(--color-warning, #e6a100);
  background-color: transparent;
}
.fs-badge--info-outlined {
  border: 1px solid var(--color-info, #1e73ae);
  color: var(--color-info, #1e73ae);
  background-color: transparent;
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Switch/switch.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Switch on/off. `density="compact"` alinea al TextField inline (~2rem de alto).
 */

.fs-switch__track {
  --fs-switch-track-w: 2.5rem;
  --fs-switch-track-h: 1.5rem;
  --fs-switch-thumb: 1rem;
  --fs-switch-pad: 0.25rem;
  --fs-switch-inset: 4px;

  position: relative;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  width: var(--fs-switch-track-w);
  height: var(--fs-switch-track-h);
  border-radius: 9999px;
  cursor: pointer;
  transition: box-shadow 0.2s ease;
  box-shadow: inset 0 0 0 var(--fs-switch-inset) color-mix(in srgb, var(--color-border) 70%, transparent);
  background: var(--color-background, #fff);
}

.fs-switch__track--disabled {
  pointer-events: none;
  cursor: not-allowed;
}

.fs-switch__thumb {
  position: absolute;
  top: var(--fs-switch-pad);
  left: var(--fs-switch-pad);
  width: var(--fs-switch-thumb);
  height: var(--fs-switch-thumb);
  border-radius: 9999px;
  border-width: 1px;
  border-style: solid;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.fs-switch__track--checked .fs-switch__thumb {
  transform: translateX(
    calc(var(--fs-switch-track-w) - var(--fs-switch-thumb) - (2 * var(--fs-switch-pad)))
  );
}

/* ~18×28px — encaja en fila compact inline (Logo KaiPrinters) */
.fs-switch__track--compact {
  --fs-switch-track-w: 1.75rem;
  --fs-switch-track-h: 1.125rem;
  --fs-switch-thumb: 0.75rem;
  --fs-switch-pad: 0.1875rem;
  --fs-switch-inset: 3px;
}

.fs-switch__root {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.25rem;
  cursor: pointer;
  user-select: none;
}

.fs-switch__root--compact {
  margin-top: 0;
  gap: 0.375rem;
}

.fs-switch__root--disabled {
  cursor: not-allowed;
}

.fs-switch__label {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--color-muted-foreground, #7a8280);
}

.fs-switch__root--compact .fs-switch__label {
  font-size: 0.8125rem;
}

/* off | track | on (p. ej. unidad stock vs venta en tarjetas de inventario) */
.fs-switch__dual {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.fs-switch__dual--compact {
  gap: 0.375rem;
}

.fs-switch__dual-option {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25;
}

.fs-switch__dual--compact .fs-switch__dual-option {
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.01em;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/IconButton/icon-button.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * IconButton: estados hover/active con --color-* (misma idea que Button: sin depender
 * de utilidades / opacity de Tailwind sobre variables hexa).
 */
.fs-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 0.25rem;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  line-height: 0;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.fs-icon-button:focus-visible {
  outline: 2px solid var(--color-accent, #02578b);
  outline-offset: 2px;
}

.fs-icon-button:disabled,
.fs-icon-button:disabled:hover,
.fs-icon-button:disabled:active {
  cursor: not-allowed;
}

/* Primary (relleno) */
.fs-icon-button--primary {
  background-color: var(--color-primary, #1e73ae);
  color: var(--color-background, #ffffff);
  border-color: transparent;
}
.fs-icon-button--primary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}
.fs-icon-button--primary:active:not(:disabled) {
  background-color: var(--color-primary, #1e73ae);
  filter: brightness(0.92);
}

/* Secondary (relleno) */
.fs-icon-button--secondary {
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #ffffff);
  border-color: transparent;
}
.fs-icon-button--secondary:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}
.fs-icon-button--secondary:active:not(:disabled) {
  filter: brightness(0.95);
}

/* Primary circle (relleno, circular) */
.fs-icon-button--primary-circle {
  border-radius: 9999px;
  background-color: var(--color-primary, #1e73ae);
  color: var(--color-background, #ffffff);
  border-color: transparent;
}
.fs-icon-button--primary-circle:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}
.fs-icon-button--primary-circle:active:not(:disabled) {
  background-color: var(--color-primary, #1e73ae);
  filter: brightness(0.92);
}

/* Secondary circle (relleno, circular) */
.fs-icon-button--secondary-circle {
  border-radius: 9999px;
  background-color: var(--color-secondary, #00deef);
  color: var(--color-background, #ffffff);
  border-color: transparent;
}
.fs-icon-button--secondary-circle:hover:not(:disabled) {
  background-color: var(--color-accent, #02578b);
}
.fs-icon-button--secondary-circle:active:not(:disabled) {
  filter: brightness(0.95);
}

/* Text: icono primary, sin borde; hover solo cambia color a active */
.fs-icon-button--text {
  background-color: transparent;
  color: var(--color-primary, #1e73ae);
  border-color: transparent;
}
.fs-icon-button--text:hover:not(:disabled) {
  background-color: transparent;
  color: var(--color-active, #02578b);
}
.fs-icon-button--text:active:not(:disabled) {
  background-color: transparent;
  color: var(--color-active, #02578b);
  opacity: 0.88;
}

/* Action (toolbars, grids, cards): normal primary, hover accent; activo (ruta) secondary */
.fs-icon-button--action {
  background-color: transparent;
  color: var(--color-primary, #1e73ae);
  border-color: transparent;
}
.fs-icon-button--action:hover:not(:disabled) {
  color: var(--color-accent, #02578b);
  background-color: transparent;
}
.fs-icon-button--action:active:not(:disabled) {
  color: var(--color-accent, #02578b);
  background-color: transparent;
  opacity: 0.88;
}
/* Activo: elemento que representa la ruta/estado actual (aria-current). */
.fs-icon-button--action[aria-current="page"],
.fs-icon-button--action[aria-current="true"],
.fs-icon-button--action[data-active="true"] {
  color: var(--color-secondary, #00deef);
}
.fs-icon-button--action[aria-current="page"]:hover:not(:disabled),
.fs-icon-button--action[aria-current="true"]:hover:not(:disabled),
.fs-icon-button--action[data-active="true"]:hover:not(:disabled) {
  color: var(--color-secondary, #00deef);
}

/* Neutral: icono foreground, hover suave */
.fs-icon-button--neutral {
  background-color: transparent;
  color: var(--color-foreground, #131615);
  border-color: transparent;
}
.fs-icon-button--neutral:hover:not(:disabled) {
  background-color: var(--color-hover, #f1f1f1);
}
.fs-icon-button--neutral:active:not(:disabled) {
  background-color: color-mix(
    in srgb,
    var(--color-foreground, #131615) 8%,
    var(--color-background, #ffffff) 92%
  );
}

/* Outlined */
.fs-icon-button--outlined {
  background-color: transparent;
  color: var(--color-primary, #1e73ae);
  border-color: var(--color-primary, #1e73ae);
}
.fs-icon-button--outlined:hover:not(:disabled) {
  background-color: color-mix(
    in srgb,
    var(--color-primary, #1e73ae) 10%,
    var(--color-background, #ffffff) 90%
  );
}
.fs-icon-button--outlined:active:not(:disabled) {
  background-color: color-mix(
    in srgb,
    var(--color-primary, #1e73ae) 18%,
    var(--color-background, #ffffff) 82%
  );
}

/** Sin resalte hover/active (p. ej. top bar POS). */
.fs-icon-button--no-hover:hover:not(:disabled),
.fs-icon-button--no-hover:active:not(:disabled) {
  background-color: transparent;
  filter: none;
  opacity: 1;
}
.fs-icon-button--text.fs-icon-button--no-hover:hover:not(:disabled),
.fs-icon-button--text.fs-icon-button--no-hover:active:not(:disabled) {
  color: var(--color-primary, #1e73ae);
}

@keyframes fs-icon-button-spin {
  to {
    transform: rotate(360deg);
  }
}

.fs-icon-button__icon--loading {
  animation: fs-icon-button-spin 0.8s linear infinite;
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/DotProgress/dot-progress.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Puntos de progreso; colores vía props o --color-primary / --color-neutral.
 */
@keyframes fs-dot-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.3);
    opacity: 1;
  }
}

.fs-dot-progress__dot {
  transform: translateY(0);
}

.fs-dot-progress__dot--pulse {
  animation: fs-dot-pulse 1s infinite ease-in-out;
}

@keyframes fs-dot-wave {
  0%,
  55%,
  100% {
    transform: translateY(0);
  }
  25% {
    transform: translateY(-70%);
  }
}

.fs-dot-progress__dot--wave {
  animation: fs-dot-wave 1.05s infinite ease-in-out;
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Toast/toast.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Toast (floating snackbar). Surface glass + semantic accent.
 * Colores: --color-* (tema en :root).
 */

@keyframes fs-toast-slide-in {
  from {
    transform: translateX(1.25rem);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fs-toast-slide-out {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(1.25rem);
    opacity: 0;
  }
}

.fs-toast-viewport {
  position: fixed;
  top: 5rem;
  right: 1rem;
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: min(100vw - 2rem, 24rem);
  pointer-events: none;
}

@media (max-width: 639px) {
  .fs-toast-viewport {
    top: calc(env(safe-area-inset-top, 0px) + 0.75rem);
    right: 0.75rem;
  }
}

.fs-toast-viewport > * {
  pointer-events: auto;
}

.fs-toast {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-width: 17.5rem;
  padding: 0.875rem 0.75rem 0.875rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--color-border, #e5e7eb) 90%, transparent);
  background-color: color-mix(in srgb, var(--color-background, #fff) 95%, transparent);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  box-shadow:
    0 10px 15px -3px rgb(0 0 0 / 0.08),
    0 4px 6px -4px rgb(0 0 0 / 0.06);
  color: var(--color-foreground, #131615);
  overflow: hidden;
}

.fs-toast::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  border-radius: 0.75rem 0 0 0.75rem;
  background-color: currentColor;
  opacity: 1;
}

.fs-toast--entering {
  animation: fs-toast-slide-in 0.28s ease-out forwards;
}

.fs-toast--exiting {
  animation: fs-toast-slide-out 0.22s ease-in forwards;
}

.fs-toast__icon {
  flex-shrink: 0;
  margin-top: 0.125rem;
  width: 1.25rem;
  height: 1.25rem;
}

.fs-toast__body {
  flex: 1;
  min-width: 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  word-break: break-word;
}

.fs-toast__close {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  margin: -0.25rem -0.125rem -0.25rem 0;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--color-secondary, #6b7280);
  cursor: pointer;
}

.fs-toast__close:hover {
  background-color: color-mix(in srgb, var(--color-foreground, #131615) 6%, transparent);
  color: var(--color-foreground, #131615);
}

.fs-toast__close:focus-visible {
  outline: 2px solid var(--color-primary, #2563eb);
  outline-offset: 1px;
}

.fs-toast--success {
  color: var(--color-success, #2e9e5b);
}

.fs-toast--success .fs-toast__body,
.fs-toast--success .fs-toast__close {
  color: var(--color-foreground, #131615);
}

.fs-toast--info {
  color: var(--color-info, #1e73ae);
}

.fs-toast--info .fs-toast__body,
.fs-toast--info .fs-toast__close {
  color: var(--color-foreground, #131615);
}

.fs-toast--warning {
  color: var(--color-warning, #e6a100);
}

.fs-toast--warning .fs-toast__body,
.fs-toast--warning .fs-toast__close {
  color: var(--color-foreground, #131615);
}

.fs-toast--error {
  color: var(--color-error, #d64545);
}

.fs-toast--error .fs-toast__body,
.fs-toast--error .fs-toast__close {
  color: var(--color-foreground, #131615);
}

@media (prefers-reduced-motion: reduce) {
  .fs-toast--entering,
  .fs-toast--exiting {
    animation: none;
  }

  .fs-toast--exiting {
    opacity: 0;
  }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/TextField/textfield.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * TextField y agrupación de formulario. Colores: --color-* (tema en globals :root).
 */
.fs-text-field {
  --tf-surface: var(--color-background, #fff);
  position: relative;
  width: 100%;
}

.fs-text-field__control {
  --tf-surface: var(--color-background, #fff);
  --tf-label-border: var(--color-border, #a5c2c2);
}

.fs-text-field__control:focus-within {
  --tf-label-border: var(--color-primary, #1e73ae);
}

/* Variante contrast: el campo vive sobre una barra primary. */
.fs-text-field__control--contrast {
  --tf-surface: var(--color-primary, #1e73ae);
  --tf-label-border: var(--color-background, #fff);
}

/* Deshabilitado / solo lectura: el label comparte el fondo muted del input. */
.fs-text-field__control--muted {
  --tf-surface: color-mix(in srgb, var(--color-muted, #cfeef0) 50%, var(--color-background, #fff));
}

/* Label flotante uniforme: máscara con la superficie real del control (--tf-surface). */
.fs-text-field__floating-label {
  background-color: var(--tf-surface, var(--color-background, #fff));
}

/* Shell de Select/AutoComplete: mismo fondo y superficie del label que TextField. */
.fs-text-field__combo-shell {
  --tf-surface: var(--color-background, #fff);
  --tf-label-border: var(--color-border, #a5c2c2);
  box-sizing: border-box;
  background-color: var(--tf-surface);
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    box-shadow 0.2s ease;
}

.fs-text-field__combo-shell:focus-within {
  --tf-label-border: var(--color-primary, #1e73ae);
}

.fs-text-field__combo-shell:has(.fs-text-field__control--muted),
.fs-text-field__combo-shell.fs-text-field__combo-shell--muted {
  --tf-surface: color-mix(in srgb, var(--color-muted, #cfeef0) 50%, var(--color-background, #fff));
  background-color: var(--tf-surface);
}

.fs-text-field__combo-shell .fs-text-field__control:not(.fs-text-field__control--muted) {
  --tf-surface: inherit;
  --tf-label-border: inherit;
}

/* Altura estándar alineada con Button md (~36px). Labels flotantes sin cambios. */
.fs-control-height-md {
  box-sizing: border-box;
  height: var(--control-height-md, 2.25rem);
  min-height: var(--control-height-md, 2.25rem);
}

.fs-control-min-height-md {
  box-sizing: border-box;
  min-height: var(--control-height-md, 2.25rem);
}

/* Sin shorthand `padding` aquí: si no, pisa el padding-left de Tailwind (pl-9) y el texto tapa al icono. */
.fs-text-field__input {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--control-height-md, 2.25rem);
  min-width: 180px;
  border-radius: 0.375rem;
  border: 1px solid var(--color-border, #a5c2c2);
  background-color: var(--color-background, #fff);
  color: var(--color-foreground, #131615);
  font-size: 0.875rem;
  line-height: 1.25rem;
  padding-top: var(--control-padding-y-md, 0.5rem);
  padding-bottom: var(--control-padding-y-md, 0.5rem);
  padding-right: 0.75rem;
  /* padding-left: clases pl-* en el componente */
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

/**
 * Compact: misma altura visual que NumberStepper (input `py-1` + `text-sm` → ~h-8 / 2rem).
 * border-box: altura total del control incluye borde 1px.
 */
.fs-text-field__input.fs-text-field__input--compact {
  box-sizing: border-box;
  height: 2rem;
  min-height: 2rem;
  max-height: 2rem;
  min-width: 0;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.8125rem;
  line-height: 1.25rem;
}

.fs-text-field__input.fs-text-field__input--compact::placeholder,
.fs-text-field__input.fs-text-field__input--compact::-webkit-input-placeholder,
.fs-text-field__input.fs-text-field__input--compact::-moz-placeholder {
  font-size: 0.8125rem;
  line-height: 1.125rem;
}

.fs-text-field__input:focus {
  outline: none;
  border-color: var(--color-primary, #1e73ae);
  box-shadow: none;
}

/* Comboboxes (Select/AutoComplete): el borde va en el contenedor; el input no debe duplicar marco. */
.fs-text-field__input.fs-text-field__input--borderless {
  border: none;
  box-shadow: none;
  background-color: transparent;
}

.fs-text-field__input.fs-text-field__input--borderless:focus {
  border: none;
  box-shadow: none;
  outline: none;
}

/**
 * Trigger de Select compact: el borde del contenedor padre (`h-8`).
 * Quita altura fija 2rem del input compact para que no rompa border-box ni el centrado vertical.
 */
.fs-text-field__input.fs-text-field__input--compact.fs-text-field__input--borderless.fs-text-field__input--autocomplete-trigger {
  height: auto;
  min-height: 0;
  max-height: none;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1.25rem;
}

/* Mismo aspecto de placeholder en input y textarea (incl. Firefox opacity). */
.fs-text-field__input::placeholder {
  color: var(--color-muted-foreground, #7a8280);
  opacity: 1;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.fs-text-field__input::-webkit-input-placeholder {
  color: var(--color-muted-foreground, #7a8280);
  line-height: 1.25rem;
}
.fs-text-field__input::-moz-placeholder {
  color: var(--color-muted-foreground, #7a8280);
  opacity: 1;
  line-height: 1.25rem;
}

/**
 * Icono nativo del calendario (type=date): en dark el SO suele pintarlo negro.
 * Usamos máscara + --color-secondary (mismo criterio que adornos text-secondary).
 */
.fs-text-field__input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 1;
  width: 1.25rem;
  height: 1.25rem;
  margin-inline-end: 0.125rem;
  background-color: var(--color-secondary, #00deef);
  background-image: none;
  color: transparent;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.fs-text-field__input[type="date"]:disabled::-webkit-calendar-picker-indicator {
  background-color: var(--color-muted, #cfeef0);
  cursor: not-allowed;
}

.fs-text-field__icon {
  pointer-events: none;
  position: absolute;
  left: 0.75rem;
  top: 50%;
  z-index: 1;
  transform: translateY(-50%);
}

.fs-text-field__icon--end {
  pointer-events: none;
  position: absolute;
  right: 0.75rem;
  top: 50%;
  z-index: 1;
  transform: translateY(-50%);
}

.fs-text-field__password-toggle {
  position: absolute;
  right: 0.25rem;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
}

/** Contenedor de acciones al final del input (p. ej. limpiar monto); `pointer-events: auto` para poder clicar. */
.fs-text-field__end-adornment {
  position: absolute;
  right: 0.25rem;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  pointer-events: auto;
}

/* Campo o grupo con margen inferior (formularios base) */
.fs-form-group {
  margin-bottom: 1rem;
}

/**
 * CompactInsetField (`density="compact"` + `labelLayout="inline"`):
 * label + input dentro del mismo borde, ancho completo.
 */
.fs-text-field.fs-text-field--inline {
  width: 100%;
  min-width: 0;
}

.fs-text-field__inline-shell {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: 2rem;
  border-radius: 0.375rem;
  border: 1px solid var(--color-border, #a5c2c2);
  background-color: var(--color-background, #fff);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.fs-text-field__inline-shell:focus-within {
  outline: none;
  border-color: var(--color-primary, #1e73ae);
  box-shadow: none;
}

.fs-text-field__inline-shell .fs-text-field__input:focus,
.fs-text-field__inline-shell .fs-text-field__input:focus-visible {
  border: none;
  box-shadow: none;
  outline: none;
}

.fs-text-field__inline-shell.fs-text-field__inline-shell--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.fs-text-field__inline-leading {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding: 0 0.375rem 0 0.5rem;
}

.fs-text-field__inline-body {
  display: flex;
  flex: 1 1 0%;
  min-width: 0;
  align-items: stretch;
}

.fs-text-field__inline-body--disabled {
  opacity: 0.5;
  pointer-events: none;
}

.fs-text-field__inline-label {
  flex: 0 0 auto;
  align-self: center;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25rem;
  letter-spacing: 0.01em;
  text-align: left;
  white-space: nowrap;
  color: var(--color-muted-foreground, #7a8280);
  border-right: 1px solid var(--color-border, #a5c2c2);
}

.fs-text-field--inline .fs-text-field__control {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  align-items: center;
}

.fs-text-field--inline .fs-text-field__input.fs-text-field__input--inline-inset,
:has(> .fs-text-field__inline-label) .fs-text-field__input.fs-text-field__input--compact {
  border: none;
  box-shadow: none;
  background-color: transparent;
  height: 100%;
  min-height: 0;
  max-height: none;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.25rem;
  color: var(--color-foreground, #131615);
}

.fs-text-field--inline .fs-text-field__input.fs-text-field__input--inline-inset::placeholder,
:has(> .fs-text-field__inline-label) .fs-text-field__input.fs-text-field__input--compact::placeholder {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--color-muted-foreground, #7a8280);
}

.fs-text-field--inline .fs-text-field__input.fs-text-field__input--inline-inset:read-only:not(:disabled) {
  color: var(--color-foreground, #131615);
  -webkit-text-fill-color: var(--color-foreground, #131615);
  opacity: 1;
}

.fs-text-field--inline .fs-text-field__input.fs-text-field__input--inline-inset:focus,
.fs-text-field--inline .fs-text-field__input.fs-text-field__input--inline-inset:focus-visible {
  border: none;
  box-shadow: none;
  outline: none;
}

.fs-text-field--inline .fs-text-field__end-adornment {
  right: 0.375rem;
  z-index: 20;
  gap: 0;
}

.fs-inline-combo-shell:focus-within {
  outline: none;
  border-color: var(--color-primary, #1e73ae);
  box-shadow: none;
}

.fs-inline-combo-shell .fs-text-field__input:focus,
.fs-inline-combo-shell .fs-text-field__input:focus-visible {
  border: none;
  box-shadow: none;
  outline: none;
}

/** Select inline con altura default, alineado con TextField estándar. */
.fs-inline-combo-shell--default .fs-text-field__input.fs-text-field__input--borderless {
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  max-height: none;
  padding-top: var(--control-padding-y-md, 0.5rem);
  padding-bottom: var(--control-padding-y-md, 0.5rem);
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.fs-inline-combo-shell--default
  .fs-text-field__input.fs-text-field__input--borderless.fs-text-field__input--autocomplete-trigger {
  height: 100%;
  min-height: 0;
  max-height: none;
  padding-top: var(--control-padding-y-md, 0.5rem);
  padding-bottom: var(--control-padding-y-md, 0.5rem);
}

.fs-text-field__inline-label--default {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/DropdownList/dropdown.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Contenedor Select/Autocomplete y lista desplegable. Colores: --color-*.
 */
.fs-dropdown-container {
  position: relative;
  width: 100%;
}

.fs-dropdown__list {
  margin: 0;
  list-style: none;
  padding: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 50;
  max-height: 14rem; /* max-h-56 */
  width: 100%;
  min-width: 0;
  overflow-y: auto;
  overflow-x: hidden;
  border-radius: 0.375rem;
  border: 1px solid var(--color-border, #c1c1c2);
  background-color: var(--color-background, #fff);
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  text-align: left;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--color-foreground, #131615);
}

/* Portal: asegurar capa encima (posición fija la fija el componente) */
.fs-dropdown__list--portal {
  z-index: 10000;
}

.fs-dropdown__option {
  cursor: pointer;
  user-select: none;
  border: 0;
  border-color: transparent;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.375;
  color: var(--color-foreground, #131615);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: color 0.15s ease, background-color 0.15s ease;
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/NumberStepper/number-stepper.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
/* Ocultar spin nativo; coherente con TextField (tema en Tailwind) */
input.fs-number-stepper__input[type='number']::-webkit-inner-spin-button,
input.fs-number-stepper__input[type='number']::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input.fs-number-stepper__input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Misma altura que TextField compact (2rem) cuando no hay label/icono (tablas, filas densas). */
[data-stepper-single-row='true'] .fs-number-stepper__input {
  box-sizing: border-box;
  height: 2rem;
  min-height: 2rem;
  max-height: 2rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  line-height: 1.25rem;
}

[data-stepper-single-row='true'] button {
  align-self: stretch;
  padding-top: 0;
  padding-bottom: 0;
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Dialog/dialog.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Superficie del diálogo: usa --color-background (no blanco fijo).
 */
.fs-dialog__paper {
  background-color: var(--color-background, #fff);
  border-radius: 0.5rem;
  box-shadow:
    0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
}

/** Encabezado fijo en columna flex: no se encoge y queda por encima del scroll (mapas, z-index). */
.fs-dialog__header {
  flex-shrink: 0;
  position: relative;
  z-index: 20;
  background-color: var(--color-background, #fff);
}

.fs-dialog__header.fs-dialog__header--transparent {
  background-color: transparent;
}

/** Cuerpo con scroll en paper: min-height 0 evita el bug de flex+overflow. */
.fs-dialog__body--paper {
  min-height: 0;
}

/**
 * Fila de botones: bloque independiente del cuerpo y de la franja de alertas.
 * No anidar `alertArea` aquí; en el DOM son hermanos bajo `.fs-dialog__paper`.
 */
.fs-dialog__actions {
  flex-shrink: 0;
  width: 100%;
  background-color: var(--color-background, #fff);
}

/** Avisos/errores fijos entre cuerpo y la fila de acciones (no scroll con `paper`). */
.fs-dialog__alert-area {
  flex-shrink: 0;
  width: 100%;
  background-color: var(--color-background, #fff);
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!../../kai-ui/src/components/PrintDialog/PrintDialog.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
.PrintDialog_printContainer__SrV60 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-height: 70vh;
  overflow-y: auto;
}

.PrintDialog_printContent__seb82 {
  flex: 1;
  padding: 1.5rem;
  background-color: #ffffff;
}

.PrintDialog_actions__W0BrA {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 1rem;
}

.PrintDialog_extraActions__F_1Y7 {
  margin-right: auto;
  display: inline-flex;
  align-items: center;
}

/* Estilos para impresión */
@media print {
  .PrintDialog_printContainer__SrV60 {
    max-height: none;
    overflow: visible;
  }

  .PrintDialog_printContent__seb82 {
    border: none;
    padding: 0;
    background-color: transparent;
    page-break-inside: avoid;
  }

  .PrintDialog_actions__W0BrA {
    display: none;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/DataGrid/components/toolbar.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************/
.fs-data-grid-toolbar__icon--active {
  color: var(--color-primary, #1e73ae) !important;
}

.fs-data-grid-toolbar__icon--inactive {
  color: var(--color-secondary, #00deef) !important;
}


/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!../../kai-ui/src/components/DataGrid/components/Header.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************/
.Header_desktopGrid__MDPhp {
  display: none;
  width: 100%;
  column-gap: 0.5rem;
  row-gap: 0.5rem;
}

.Header_toolbarZoneDesktop__fhbPI {
  display: flex;
  min-width: 0;
  align-items: center;
  align-self: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.Header_mobileStack__4g_Fb {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.Header_toolbarZoneMobile__Y0hVB {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
}

.Header_mobileActions__Z8TYI {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
}

@media (min-width: 768px) {
  .Header_desktopGrid__MDPhp {
    display: grid;
  }

  .Header_mobileStack__4g_Fb {
    display: none;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[5].use[3]!../../kai-ui/src/components/DataGrid/dataGridChrome.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************/
/** Borde sutil compartido: col headers (bottom), filas (bottom), footer (top). */
.dataGridChrome_subtleLineBottom__2PaHl {
  border-bottom: 1px solid color-mix(in srgb, var(--color-border) 55%, transparent);
}

.dataGridChrome_subtleLineTop__yD_IC {
  border-top: 1px solid color-mix(in srgb, var(--color-border) 55%, transparent);
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Tabs/tabs.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Tabs (navegación por enlaces). Inactivo: muted + borde hover con --color-border.
 */
.fs-tabs__link {
  display: inline-flex;
  align-items: center;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.fs-tabs__link--inactive {
  border-bottom-color: transparent;
  color: var(--color-muted-foreground, #7a8280);
}
.fs-tabs__link--inactive:hover {
  border-bottom-color: var(--color-border, #a5c2c2);
  color: var(--color-foreground, #131615);
}

.fs-tabs__link--active {
  border-bottom-color: var(--color-primary, #1e73ae);
  color: var(--color-primary, #1e73ae);
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Cards/cards.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Módulo Cards: estilos viven junto a los componentes (no en app/globals.css).
 * Colores: variables --color-* del tema (mismas que tailwind.config.ts / :root de la app).
 */
.fs-card {
  background-color: var(--color-background, #fff);
  border: 1px solid
    color-mix(in srgb, var(--color-border, #a5c2c2) 70%, transparent);
  border-radius: 0.5rem;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  overflow: hidden;
}

/* Modo legado: cuerpo con padding */
.fs-card--legacy {
  padding: 1rem;
  overflow: visible;
}

.fs-card--clickable {
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.fs-card--clickable:hover {
  background-color: color-mix(
    in srgb,
    var(--color-neutral, #f3f4f6) 45%,
    var(--color-background, #fff)
  );
}

/** Centro / ítem seleccionado (p. ej. tesorería · centros de efectivo). */
.fs-card.fs-card--border-secondary {
  border-color: var(--color-secondary, #00deef);
}

.fs-card__header {
  padding: 1rem 1rem 0.75rem 1rem;
}

.fs-card__title {
  color: var(--color-foreground);
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 600;
}
.fs-card__subtitle {
  margin-top: 0.125rem;
  color: var(--color-muted-foreground);
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.fs-card__header-text {
  min-width: 0;
  flex: 1 1 auto;
}
.fs-card__header-end {
  flex-shrink: 0;
}

.fs-card__content {
  padding: 1rem;
}

.fs-card__actions {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid
    color-mix(in srgb, var(--color-border, #a5c2c2) 70%, transparent);
  padding: 0.75rem 1rem 1rem 1rem;
  flex-shrink: 0;
}

/** Pie de acciones integrado (p. ej. tesorería): sin separador superior, icono al inicio. */
.fs-card__actions.fs-card__actions--embedded {
  border-top: none;
  justify-content: flex-start;
  padding-top: 0.25rem;
}

/** Card que llena la celda de una grilla: el cuerpo crece y el pie de acciones queda abajo. */
.fs-card.fs-card--fill-height {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.fs-card.fs-card--fill-height .fs-card__content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.fs-statistics-card__label {
  margin-bottom: 0.5rem;
  color: var(--color-muted-foreground);
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.fs-statistics-card__value {
  font-size: 1.875rem;
  line-height: 2.25rem;
  font-weight: 700;
}
.fs-statistics-card__value--primary { color: var(--color-primary); }
.fs-statistics-card__value--success { color: var(--color-success); }
.fs-statistics-card__value--info { color: var(--color-info); }
.fs-statistics-card__value--warning { color: var(--color-warning); }

.fs-statistics-card__hint {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: var(--color-muted-foreground);
  opacity: 0.9;
}

/** Métrica compacta (p. ej. fila de tesorería). */
.fs-card.fs-card--legacy.fs-statistics-card--compact {
  padding: 0.5rem 0.625rem;
}
.fs-statistics-card--compact .fs-statistics-card__label {
  margin-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
}
.fs-statistics-card--compact .fs-statistics-card__value {
  font-size: 1.25rem;
  line-height: 1.5rem;
}
.fs-statistics-card--compact .fs-statistics-card__hint {
  margin-top: 0.25rem;
  font-size: 0.6875rem;
  line-height: 0.875rem;
}

/**
 * Tarjeta seleccionable en tesorería (centro de efectivo, cuenta bancaria, etc.).
 * Selección: fondo celeste claro vía color-mix (Tailwind bg-secondary/10 no aplica sobre var CSS).
 */
.fs-treasury-pick-card,
.fs-cash-hub-card {
  border: 1px solid color-mix(in srgb, var(--color-border, #a5c2c2) 70%, transparent);
  background-color: var(--color-background, #fff);
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease;
}

.fs-treasury-pick-card:not(.fs-treasury-pick-card--selected):hover,
.fs-cash-hub-card:not(.fs-cash-hub-card--selected):hover {
  border-color: color-mix(in srgb, var(--color-secondary, #00deef) 60%, var(--color-border, #a5c2c2));
}

.fs-treasury-pick-card--selected,
.fs-cash-hub-card--selected {
  border-color: color-mix(in srgb, var(--color-secondary, #00deef) 40%, var(--color-border, #a5c2c2));
  background-color: color-mix(
    in srgb,
    var(--color-secondary, #00deef) 10%,
    var(--color-background, #fff)
  );
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Stepper/stepper.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
/* Stepper de flujo (wizard): transiciones suaves en indicadores */
.fs-stepper__dot {
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.15s ease;
}

.fs-stepper__dot:not(:disabled):hover {
  transform: scale(1.05);
}

.fs-stepper__dot:focus-visible {
  outline: 2px solid hsl(var(--ring, 212 100% 50%) / 0.5);
  outline-offset: 2px;
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/RangeSlider/range-slider.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * RangeSlider (dual thumb). Colores: --color-border, --color-primary, --color-background.
 */
.fs-range-slider {
  position: relative;
  display: flex;
  height: 2rem;
  width: 100%;
  align-items: center;
}

.fs-range-slider__track {
  position: absolute;
  right: 0;
  left: 0;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--color-border, #a5c2c2);
}

.fs-range-slider__fill {
  position: absolute;
  top: 0;
  height: 0.5rem;
  border-radius: 9999px;
  background-color: color-mix(
    in srgb,
    var(--color-primary, #1e73ae) 45%,
    transparent
  );
}

.fs-range-slider__thumb {
  position: absolute;
  top: 50%;
  width: 1rem;
  height: 1rem;
  margin: 0;
  padding: 0;
  border: 2px solid var(--color-primary, #1e73ae);
  background-color: var(--color-background, #fff);
  border-radius: 9999px;
  cursor: grab;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  appearance: none;
}

.fs-range-slider__thumb:focus-visible {
  outline: 2px solid var(--color-primary, #1e73ae);
  outline-offset: 2px;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/Skeleton/skeleton.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************/
@keyframes fs-skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

.fs-skeleton {
  --fs-skeleton-base: color-mix(in srgb, var(--fs-foreground) 4%, var(--fs-background));
  --fs-skeleton-mid: color-mix(in srgb, var(--fs-foreground) 7%, var(--fs-background));
  --fs-skeleton-highlight: color-mix(in srgb, var(--fs-background) 55%, white 45%);

  position: relative;
  overflow: hidden;
  background-color: var(--fs-skeleton-base);
  background-image: linear-gradient(
    105deg,
    var(--fs-skeleton-base) 0%,
    var(--fs-skeleton-base) 38%,
    var(--fs-skeleton-highlight) 50%,
    var(--fs-skeleton-mid) 62%,
    var(--fs-skeleton-base) 100%
  );
  background-size: 220% 100%;
  animation: fs-skeleton-shimmer 1.75s ease-in-out infinite;
  opacity: 0.92;
}

@media (prefers-color-scheme: dark) {
  .fs-skeleton {
    --fs-skeleton-base: color-mix(in srgb, var(--fs-foreground) 6%, var(--fs-surface));
    --fs-skeleton-mid: color-mix(in srgb, var(--fs-foreground) 10%, var(--fs-surface));
    --fs-skeleton-highlight: color-mix(in srgb, var(--fs-surface) 40%, white 12%);
    opacity: 0.88;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fs-skeleton {
    animation: none;
    background-image: none;
    background-color: var(--fs-skeleton-base);
  }
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/node_modules/leaflet/dist/leaflet.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************/
/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(/_next/static/media/layers.ef6db872.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(/_next/static/media/layers-2x.9859cd12.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(/_next/static/media/marker-icon.d577052a.png);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!../../kai-ui/src/components/LocationPicker/location-picker.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Cursors y anims del mapa; cursor SVG usa trazo fijo */
.leaflet-container {
  cursor: crosshair !important;
}

.leaflet-container.cursor-crosshair {
  cursor: crosshair !important;
}

.leaflet-container.cursor-grabbing,
.leaflet-container.leaflet-drag-target {
  cursor: grabbing !important;
}

.leaflet-container.cursor-default {
  cursor: default !important;
}

.leaflet-marker-icon {
  transition: transform 0.2s ease-out, filter 0.2s ease-out;
  cursor: grab !important;
}

.leaflet-marker-icon:hover {
  transform: scale(1.1);
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
}

.leaflet-marker-dragging .leaflet-marker-icon,
.leaflet-marker-icon.leaflet-marker-draggable:active {
  cursor: grabbing !important;
  transform: scale(1.2) translateY(-10px);
  filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.4));
  transition: none;
}

.leaflet-marker-dragging .leaflet-marker-shadow {
  opacity: 0.6;
  transform: scale(1.3);
}

@keyframes marker-fly-in {
  0% {
    transform: translateY(-200px) scale(0.5);
    opacity: 0;
    filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.5));
  }
  60% {
    transform: translateY(10px) scale(1.1);
    opacity: 1;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.4));
  }
  80% {
    transform: translateY(-5px) scale(1);
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
  }
}

@keyframes marker-shadow-fly-in {
  0% {
    transform: scale(0.3);
    opacity: 0;
  }
  60% {
    transform: scale(1.2);
    opacity: 0.4;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.leaflet-marker-icon.marker-fly-in {
  animation: marker-fly-in 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.leaflet-marker-shadow.marker-fly-in {
  animation: marker-shadow-fly-in 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.location-picker-targeting {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='8' fill='none' stroke='%23184367' stroke-width='2'/%3E%3Cline x1='16' y1='4' x2='16' y2='12' stroke='%23184367' stroke-width='2'/%3E%3Cline x1='16' y1='20' x2='16' y2='28' stroke='%23184367' stroke-width='2'/%3E%3Cline x1='4' y1='16' x2='12' y2='16' stroke='%23184367' stroke-width='2'/%3E%3Cline x1='20' y1='16' x2='28' y2='16' stroke='%23184367' stroke-width='2'/%3E%3Ccircle cx='16' cy='16' r='2' fill='%23184367'/%3E%3C/svg%3E")
    16 16,
    crosshair;
}


