/**
 * shadcn-rails Base Styles — Indo Platform Dark Theme
 *
 * Custom override of shadcn's default base.css, mapped to our
 * design system tokens defined in app/assets/tailwind/application.css.
 *
 * We only keep animations and utility classes here. The actual color
 * theming is handled by our Tailwind @theme block. Components are
 * customized directly in their Ruby files to use our design tokens.
 */

/* ============================================
   Animations (used by dialog, accordion, etc.)
   ============================================ */

@keyframes accordion-down {
  from { height: 0; }
  to { height: var(--radix-accordion-content-height, auto); }
}

@keyframes accordion-up {
  from { height: var(--radix-accordion-content-height, auto); }
  to { height: 0; }
}

@keyframes collapsible-down {
  from { height: 0; }
  to { height: var(--radix-collapsible-content-height, auto); }
}

@keyframes collapsible-up {
  from { height: var(--radix-collapsible-content-height, auto); }
  to { height: 0; }
}

@keyframes progress-indeterminate {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes zoom-in {
  from { transform: scale(0.95); }
  to { transform: scale(1); }
}

@keyframes zoom-out {
  from { transform: scale(1); }
  to { transform: scale(0.95); }
}

@keyframes slide-in-from-top {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

@keyframes slide-in-from-bottom {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

@keyframes slide-in-from-left {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

@keyframes slide-in-from-right {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

@keyframes slide-out-to-top {
  from { transform: translateY(0); }
  to { transform: translateY(-100%); }
}

@keyframes slide-out-to-bottom {
  from { transform: translateY(0); }
  to { transform: translateY(100%); }
}

@keyframes slide-out-to-left {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}

@keyframes slide-out-to-right {
  from { transform: translateX(0); }
  to { transform: translateX(100%); }
}

/* ============================================
   Animation Utility Classes
   ============================================ */

.animate-accordion-down {
  animation: accordion-down 0.2s ease-out;
}

.animate-accordion-up {
  animation: accordion-up 0.2s ease-out;
}

.animate-collapsible-down {
  animation: collapsible-down 0.2s ease-out;
}

.animate-collapsible-up {
  animation: collapsible-up 0.2s ease-out;
}

.animate-progress-indeterminate {
  animation: progress-indeterminate 1.5s ease-in-out infinite;
}

.animate-in {
  animation-duration: 150ms;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}

.animate-out {
  animation-duration: 150ms;
  animation-timing-function: ease-in;
  animation-fill-mode: both;
}

.fade-in-0 { animation-name: fade-in; }
.fade-out-0 { animation-name: fade-out; }
.zoom-in-95 { animation-name: zoom-in; }
.zoom-out-95 { animation-name: zoom-out; }
.slide-in-from-top-2 { animation-name: slide-in-from-top; }
.slide-in-from-bottom-2 { animation-name: slide-in-from-bottom; }
.slide-in-from-left-2 { animation-name: slide-in-from-left; }
.slide-in-from-right-2 { animation-name: slide-in-from-right; }
.slide-out-to-top { animation-name: slide-out-to-top; }
.slide-out-to-bottom { animation-name: slide-out-to-bottom; }
.slide-out-to-left { animation-name: slide-out-to-left; }
.slide-out-to-right { animation-name: slide-out-to-right; }

/* ============================================
   Scrollbar Utilities
   ============================================ */

.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* ============================================
   Portal Styles (dialog, sheet overlays)
   ============================================ */

.shadcn-dialog-portal,
.shadcn-sheet-portal {
  position: fixed;
  inset: 0;
  z-index: 50;
}
