html {
  .bg-success {
    color: white !important;
  }
}

.v-row + .v-row {
  margin-top: 0px;
}

.v-divider {
  opacity: 1;
  border-color: rgba(var(--v-theme-borderLight), 0.36);
}

.v-selection-control {
  flex: unset;
}

.v-overlay.v-snackbar {
  --v-layout-left: 0px !important;
  --v-layout-right: 0px !important;
}

.customizer-btn .icon {
  animation: progress-circular-rotate 1.4s linear infinite;
  transform-origin: center center;
  transition: all 0.2s ease-in-out;
}

.no-spacer {
  .v-list-item__spacer {
    display: none !important;
  }
}

@keyframes progress-circular-rotate {
  100% {
    transform: rotate(270deg);
  }
}

pre, code, .markdown pre, .markdown code, .release-notes pre, .release-notes code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", "Helvetica Neue", monospace;
  color: var(--astrbot-code-color);
}

// Dark mode global overrides
.v-theme--PurpleThemeDark {
  // Override code text color for dark mode
  --astrbot-code-color: rgb(var(--v-theme-on-surface-variant));

  // Soften flat primary buttons for dark mode
  .v-btn--variant-flat.bg-primary {
    background-color: rgba(var(--v-theme-primary), 0.85) !important;
  }

  // Timeline dots: use a muted version
  .v-timeline-item .v-timeline-divider__dot .v-timeline-divider__inner-dot {
    opacity: 0.85;
  }

  // Use a darker scrim for overlays and dialogs in dark mode.
  .v-overlay__scrim {
    background-color: rgba(var(--v-theme-background), 0.72) !important;
    opacity: 1 !important;
  }

  // Ensure dialog/card surfaces use the dark surface color
  .v-overlay__content > .v-card {
    background-color: rgb(var(--v-theme-surface)) !important;
  }

  // Links inside markdown - slightly muted
  .markdown-content a,
  .markstream-vue a {
    color: rgb(var(--v-theme-primary));
  }
}
