/* Utility classes */
.block { display: block !important; }
.inline-block { display: inline-block !important; }
.inline { display: inline !important; }
.flex { display: flex !important; }
.inline-flex { display: inline-flex !important; }
.grid { display: grid !important; }
.hidden { display: none !important; }
.flex-row { flex-direction: row !important; }
.flex-col { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-nowrap { flex-wrap: nowrap !important; }
.items-start { align-items: flex-start !important; }
.items-center { align-items: center !important; }
.items-end { align-items: flex-end !important; }
.items-stretch { align-items: stretch !important; }
.justify-start { justify-content: flex-start !important; }
.justify-center { justify-content: center !important; }
.justify-end { justify-content: flex-end !important; }
.justify-between { justify-content: space-between !important; }
.justify-around { justify-content: space-around !important; }
.flex-1 { flex: 1 1 0% !important; }
.flex-auto { flex: 1 1 auto !important; }
.flex-none { flex: none !important; }
.m-0 { margin: 0; }
.m-auto { margin: auto !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.my-auto { margin-top: auto !important; margin-bottom: auto !important; }
.p-0 { padding: 0 !important; }
.p-sm { padding: var(--spacing-sm); }
.p-md { padding: var(--spacing-md) !important; }
.p-lg { padding: var(--spacing-lg) !important; }
.p-xl { padding: var(--spacing-xl) !important; }
.px-sm { padding-left: var(--spacing-sm) !important; padding-right: var(--spacing-sm) !important; }
.px-md { padding-left: var(--spacing-md) !important; padding-right: var(--spacing-md) !important; }
.px-lg { padding-left: var(--spacing-lg) !important; padding-right: var(--spacing-lg) !important; }
.py-sm { padding-top: var(--spacing-sm) !important; padding-bottom: var(--spacing-sm) !important; }
.py-md { padding-top: var(--spacing-md) !important; padding-bottom: var(--spacing-md) !important; }
.py-lg { padding-top: var(--spacing-lg) !important; padding-bottom: var(--spacing-lg) !important; }
.mt-sm { margin-top: var(--spacing-sm) !important; }
.mt-md { margin-top: var(--spacing-md) !important; }
.mt-lg { margin-top: var(--spacing-lg) !important; }
.mt-xl { margin-top: var(--spacing-xl) !important; }
.mb-sm { margin-bottom: var(--spacing-sm) !important; }
.mb-md { margin-bottom: var(--spacing-md) !important; }
.mb-lg { margin-bottom: var(--spacing-lg) !important; }
.mb-xl { margin-bottom: var(--spacing-xl) !important; }
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-justify { text-align: justify !important; }
.font-light { font-weight: var(--font-weight-light) !important; }
.font-normal { font-weight: var(--font-weight-normal) !important; }
.font-medium { font-weight: var(--font-weight-medium) !important; }
.font-semibold { font-weight: var(--font-weight-semibold) !important; }
.font-bold { font-weight: var(--font-weight-bold) !important; }
.text-xs { font-size: var(--font-size-xs); }
.text-sm { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-lg { font-size: var(--font-size-lg) !important; }
.text-xl { font-size: var(--font-size-xl) !important; }
.text-2xl { font-size: var(--font-size-2xl) !important; }
.text-3xl { font-size: var(--font-size-3xl) !important; }
.text-primary { color: var(--color-text-primary) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.text-muted { color: var(--color-text-muted) !important; }
.text-inverse { color: var(--color-text-inverse) !important; }
.text-accent { color: var(--color-accent) !important; }
.text-danger { color: var(--color-danger) !important; }
.text-warning { color: var(--color-warning) !important; }
.text-info { color: var(--color-info) !important; }
.bg-primary { background-color: var(--color-bg-primary) !important; }
.bg-secondary { background-color: var(--color-bg-secondary) !important; }
.bg-dark { background-color: var(--color-bg-dark) !important; }
.bg-accent { background-color: var(--color-accent) !important; }
.border { border: var(--border-width-thin) solid var(--color-border-light) !important; }
.border-t { border-top: var(--border-width-thin) solid var(--color-border-light) !important; }
.border-b { border-bottom: var(--border-width-thin) solid var(--color-border-light) !important; }
.border-l { border-left: var(--border-width-thin) solid var(--color-border-light) !important; }
.border-r { border-right: var(--border-width-thin) solid var(--color-border-light) !important; }
.rounded-sm { border-radius: var(--border-radius-sm) !important; }
.rounded-md { border-radius: var(--border-radius-md) !important; }
.rounded-lg { border-radius: var(--border-radius-lg) !important; }
.rounded-xl { border-radius: var(--border-radius-xl) !important; }
.rounded-full { border-radius: var(--border-radius-full) !important; }
.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-md { box-shadow: var(--shadow-md) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }
.shadow-xl { box-shadow: var(--shadow-xl) !important; }
.shadow-none { box-shadow: none !important; }
.relative { position: relative !important; }
.absolute { position: absolute !important; }
.fixed { position: fixed !important; }
.sticky { position: sticky !important; }
.overflow-hidden { overflow: hidden !important; }
.overflow-auto { overflow: auto !important; }
.overflow-scroll { overflow: scroll !important; }
.overflow-visible { overflow: visible !important; }
.w-full { width: 100% !important; }
.w-auto { width: auto !important; }
.h-full { height: 100% !important; }
.h-auto { height: auto !important; }
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0;
}
.focus-visible:focus-visible {
  outline: 2px solid var(--color-accent) !important;
  outline-offset: 2px !important;
}
.cursor-pointer { cursor: pointer !important; }
.cursor-default { cursor: default !important; }
.pointer-events-auto { pointer-events: auto !important; }
.transition-fast { transition: all var(--transition-fast) !important; }
.transition-normal { transition: all var(--transition-normal) !important; }
.transition-slow { transition: all var(--transition-slow) !important; }


.custom-scrollbar-base {
  scrollbar-width: thin !important;
  scrollbar-color: var(--scrollbar-thumb-bg) transparent !important;
}
.custom-scrollbar-webkit::-webkit-scrollbar {
  width: var(--scrollbar-width);
  height: var(--scrollbar-height) !important;
}
.custom-scrollbar-webkit::-webkit-scrollbar-track {
  background: var(--scrollbar-track-bg);
  border-radius: var(--border-radius-sm) !important;
}
.custom-scrollbar-webkit::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb-bg) !important;
  border-radius: var(--border-radius-sm) !important;
  border: var(--scrollbar-thumb-border) !important;
  transition: background 0.3s ease !important;
}
.custom-scrollbar-webkit::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover-bg) !important;
  border-color: var(--scrollbar-thumb-hover-border) !important;
}
.custom-scrollbar-webkit::-webkit-scrollbar-corner {
  background: transparent;
}
.custom-scrollbar {
  scrollbar-width: thin !important;
  scrollbar-color: var(--scrollbar-thumb-bg) transparent !important;
}
.custom-scrollbar::-webkit-scrollbar {
  width: var(--scrollbar-width);
  height: var(--scrollbar-height) !important;
}
.custom-scrollbar::-webkit-scrollbar-track {
  background: var(--scrollbar-track-bg);
  border-radius: var(--border-radius-sm) !important;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb-bg) !important;
  border-radius: var(--border-radius-sm) !important;
  border: var(--scrollbar-thumb-border) !important;
  transition: background 0.3s ease !important;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover-bg) !important;
}
.p-xs { padding: var(--space-xs) !important; }
.p-lg { padding: var(--space-lg) !important; }
.p-xl { padding: var(--space-xl) !important; }
.p-2xl { padding: var(--space-2xl) !important; }
.m-xs { margin: var(--space-xs) !important; }
.m-lg { margin: var(--space-lg) !important; }
.m-xl { margin: var(--space-xl) !important; }
.m-2xl { margin: var(--space-2xl) !important; }
.gap-xs { gap: var(--space-xs) !important; }
.gap-sm { gap: var(--space-sm) !important; }
.gap-md { gap: var(--space-md) !important; }
.gap-lg { gap: var(--space-lg) !important; }
.gap-xl { gap: var(--space-xl) !important; }
.gap-2xl { gap: var(--space-2xl) !important; }
.w-container { width: var(--container-fluid) !important; }
.w-content { width: var(--content-fluid) !important; }
.w-narrow { width: var(--narrow-fluid) !important; }
.w-wide { width: var(--wide-fluid) !important; }
.size-xs { width: var(--component-xs) !important; }
.size-sm { width: var(--component-sm) !important; }
.size-md { width: var(--component-md) !important; }
.size-lg { width: var(--component-lg) !important; }
.size-xl { width: var(--component-xl) !important; }
.no-print { display: none !important; }
.transition-instant { transition: var(--transition-instant) !important; }
.transition-quick { transition: var(--transition-quick) !important; }
.transition-standard { transition: var(--transition-standard) !important; }
.transition-smooth { transition: var(--transition-smooth) !important; }
.transition-fade { transition: var(--transition-fade) !important; }
.transition-transform { transition: var(--transition-transform) !important; }
.transition-colors { transition: var(--transition-colors) !important; }

/* Responsive Design - Media Queries */
@media (max-width: 640px) {
  .sm\:hidden { display: none !important; }
  .sm\:block { display: block !important; }
  .sm\:text-center { text-align: center !important; }
  .sm\:px-sm { padding-left: var(--spacing-sm) !important; padding-right: var(--spacing-sm) !important; }
}

@media (max-width: 768px) {
  .md\:hidden { display: none !important; }
  .md\:block { display: block !important; }
  .md\:flex { display: flex !important; }
}
