.tw-hidden { display: none; }
.tw-flex    { display: flex; }

.tw-flex-row { flex-direction: row; }

.tw-visible { visibility: visible; }
.tw-invisible { visibility: hidden; }

.tw-opacity-0 { opacity: 0; }
.tw-opacity-100 { opacity: 1; }

.tw-absolute { position: absolute; }

.tw-align-start     { align-items: start }
.tw-align-center 	{ align-items: center }
.tw-align-end 		{ align-items: end }
.tw-justify-center	{ justify-content: center; }
.tw-justify-between { justify-content: space-between; }
.tw-justify-around	{ justify-content: space-around; }

.tw-flex-wrap { flex-wrap: wrap; }

.tw-w-0 { width: 0; }
.tw-w-16 { width: 4rem; }
.tw-w-40 { width: 10rem; }
.tw-w-56 { width: 14rem; }
.tw-w-full { width: 100%; }

.tw-w-fit{ width: fit-content; }
.tw-min-w-full{ min-width: 100%; }


.tw-h-fit{ height: fit-content; }

.tw-max-h-96 { max-height: 24rem; }

.tw-gap-1{ gap: 0.25rem; }
.tw-gap-2{ gap: 0.5rem; }
.tw-gap-4{ gap: 1rem; }
.tw-gap-6{ gap: 1.5rem; }

.tw-mt-10 { margin-top: 2.5rem; }

.tw-rounded-xl  { border-radius: 0.75rem; }
.tw-rounded-2xl { border-radius: 1rem; }

.tw-rounded-b-xl {
    border-bottom-right-radius: 0.75rem;
    border-bottom-left-radius: 0.75rem;
}

.tw-duration-300 { transition-duration: 220ms; }
.tw-duration-500 { transition-duration: 500ms; }

.tw-flex-1 { flex: 1 1 0%; }

.tw-cursor-pointer { cursor: pointer; }

.tw-bg-white	{ background-color: white; }
.tw-bg-gray-50	{ background-color: #fafafa; }
.tw-bg-gray-100	{ background-color: #f3f4f6; }
.tw-bg-gray-200	{ background-color: #E5E7EB; }
.tw-bg-gray-300	{ background-color: #D1D5DB; }

.tw-text-gray-400 	{ color: #9CA3AF; }

.tw-z-10 { z-index: 10; }

.tw-overflow-y-auto { overflow-y: auto; }
.tw-overflow-y-hidden { overflow-y: hidden; }

.tw-overflow-x-hidden{ overflow-x: hidden; }
.tw-overflow-x-auto{ overflow-x: auto; }

.tw-hover\:bg-gray-50:hover {
    /* --tw-bg-opacity: 1;
    background-color: rgba(249, 250, 251, var(--tw-bg-opacity)); */
    background-color: #f9fafb;    
}
  
.tw-hover\:bg-gray-100:hover {
    /* --tw-bg-opacity: 1;
    background-color: rgba(243, 244, 246, var(--tw-bg-opacity)); */
    background-color: #f3f4f6;
}
  
.tw-hover\:bg-gray-200:hover {
    /* --tw-bg-opacity: 1;
    background-color: rgba(229, 231, 235, var(--tw-bg-opacity)); */
    background-color: #e5e7eb;
}
  
.tw-hover\:bg-gray-300:hover {
    /* --tw-bg-opacity: 1;
    background-color: rgba(209, 213, 219, var(--tw-bg-opacity)); */
    background-color: #d1d5db;
}
  
.tw-hover\:bg-gray-400:hover {
    /* --tw-bg-opacity: 1;
    background-color: rgba(156, 163, 175, var(--tw-bg-opacity)); */
    background-color: #9ca3af;
}
  
.tw-hover\:bg-gray-500:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(107, 114, 128, var(--tw-bg-opacity));
}
  
.tw-hover\:bg-gray-600:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(75, 85, 99, var(--tw-bg-opacity));
}
  
.tw-hover\:bg-gray-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(55, 65, 81, var(--tw-bg-opacity));
}
  
.tw-hover\:bg-gray-800:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(31, 41, 55, var(--tw-bg-opacity));
}
  
.tw-hover\:bg-gray-900:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(17, 24, 39, var(--tw-bg-opacity));
}
  

@media (min-width: 640px) {    
    .sm\:tw-hidden { display: none; }
    .sm\:tw-flex { display: flex; }
    .sm\:tw-w-fit{ width: fit-content; }
    .sm\:tw-flex-1 { flex: 1 1 0%; }

    /* .sm\:container {} */
}

@media (min-width: 768px) {
    .md\:tw-hidden { display: none; }
    .md\:tw-block { display: block; }
    .md\:tw-flex { display: flex; }

	.md\:tw-w-fit{ width: fit-content; }
    .md\:tw-max-w-sm { max-width: 24rem; }

    .md\:tw-flex-col { flex-direction: column; }
    
    .md\:tw-gap-4{ gap: 1rem; }
	.md\:tw-gap-6{ gap: 1.5rem; }
}

@media (min-width: 1024px) {
    .lg\:tw-hidden { display: none; }
    .lg\:tw-block { display: block; }
    .lg\:tw-flex { display: flex; }    
    
    .lg\:tw-opacity-100 { opacity: 1; }

    .lg\:tw-w-fit{ width: fit-content; }

    .lg\:tw-visible { visibility: visible; }
    .lg\:tw-invisible { visibility: hidden; }

    .lg\:tw-static { position: static; }
}