


.generative-ai-parent {
	width: 100%;
	height: 100%;

	background: rgba(173, 216, 230, 0.3);
	animation: none;

	/* padding: 16px; */
}
.generative-ai-parent.no-entries {
	background: linear-gradient(
		45deg,
		rgba(255, 182, 193, 0.3),
		rgba(173, 216, 230, 0.3),
		rgba(221, 160, 221, 0.3),
		rgba(255, 218, 185, 0.3)
	);
	background-size: 400% 400%;
	animation: gradientShift 10s ease infinite;
}

.generative-ai-parent .content-holder {
	padding-bottom: 250px !important;
}


.generative-ai-parent .text-box-holder {
	position: absolute;
	
	padding: 16px;
	width: calc(100% - 32px);
	max-width: 800px;

	left: 50%;

	border: 1px solid var(--nice-dropdown-border-color);
	border-radius: 12px;
	background-color: rgba(255, 255, 255, .8);

	z-index: 5;
	
	
	bottom: 10px;
	transform: translateY(0) translateX(-50%);

	transition: bottom 0.5s ease, transform 0.5s ease, border 0.5s ease;
}
.generative-ai-parent .text-box-holder.has-new-session-message {
	border-top-right-radius: 0;
	border-top-left-radius: 0;
}

.generative-ai-parent.no-entries .text-box-holder {
	bottom: 50%;
	transform: translateY(50%) translateX(-50%);
}

.generative-ai-parent .text-box-holder .textarea-holder {
	border: 1px solid #ccc;
    border-radius: 8px;
    width: 100%;
}
.generative-ai-parent .text-box-holder textarea {
	width: 100%;
    width: 100%;
    padding: 8px;
    border: none;
	 border-radius: 8px;
    background: rgba(255, 255, 255, .8);
    display: block;
    /* overflow: hidden; */
	resize: none;
	overflow-y: auto;
    line-height: 1.5rem;
}


.generative-ai-parent .ai-entry {
	margin-bottom: 24px;
}

.generative-ai-parent .ai-entry .prompt-bubble {
	background-color: var(--post-grey-background-lightgrey);
	padding: 16px;
	border-radius: 8px;

	margin-bottom: 4px;
	margin-left: 64px;

	position: relative;
}
.generative-ai-parent .ai-entry .prompt-bubble .text {
	color: #333;
	user-select: text;
}
.generative-ai-parent .ai-entry .prompt-bubble.has-source {
	min-height: 132px;
}
.generative-ai-parent .ai-entry .prompt-bubble.has-source .text {
	padding-left: 116px;
}
.generative-ai-parent .ai-entry .prompt-bubble .source-image {
	display: none;

	cursor: pointer;

	border-radius: 8px;

	position: absolute;
	top: 16px;
	left: 16px;
	height: 100px;
	width: 100px;

	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}
.generative-ai-parent .ai-entry .prompt-bubble.has-source .source-image {
	display: block;
}
.generative-ai-parent .ai-entry .button-holder {
	text-align: right;
	margin: 12px;
	margin-top: 0;
}
.generative-ai-parent .ai-entry .button-holder .retry-btn {
	display: inline-block;
	padding-left: 24px;

	background-image: url('../images/icons/arrow-90deg-down.svg');
	background-size: 12px;
	background-position: 4px center;
	background-repeat: no-repeat;

	cursor: pointer;
}

.generative-ai-parent .ai-entry .image-holder {

}

.generative-ai-parent .ai-entry .image-holder .ai-image,
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder {
	position: relative;
	display: inline-block;
	border: 1px solid #fefefe;
	border-radius: 8px;
	margin: 2px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;

	overflow: hidden;

	cursor: pointer;
}

.generative-ai-parent .ai-entry .image-holder .load-more-placeholder {
	border: 1px solid var(--nice-dropdown-border-color);
	transition: background-color 0.25s ease;
}
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder:hover {
	background-color: rgba(255, 255, 255, .5);
}
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder .holder {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder .icon {
	display: block;
	height: 48px;
	width: 100%;
	margin-bottom: 24px;
	background-image: url('../images/icons/arrow-clockwise.svg');
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;

	transition: transform 0.25s ease;
}
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder:hover .icon {
	transform: rotate(45deg);
}
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder .text {
	display: block;
	font-size: 16px;
	line-height: 24px;
	text-align: center;
	width: 100%;
}

.generative-ai-parent .ai-entry .image-holder .ai-image.square,
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder.square {
	width: 400px;
	height: 400px;
}

.generative-ai-parent .ai-entry .image-holder .ai-image.portrait,
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder.portrait {
	width: 225px;
	height: 400px;
}

.generative-ai-parent .ai-entry .image-holder .ai-image.landscape,
.generative-ai-parent .ai-entry .image-holder .load-more-placeholder.landscape {
	width: 400px;
	height: 225px;
}

.generative-ai-parent .ai-entry .image-holder .ai-image.loading {
	background: linear-gradient(
		110deg,
		#c4f5ec 0%,
		#9bc9c6 25%,
		#7ec1d0 50%,
		#a6f7e5 75%,
		#ac9ccc 100%
	);
	background-size: 200% 200%;
	/* animation: vibrantPulse 2s ease-in-out infinite; */
	position: relative;
}


.generative-ai-parent .ai-entry .image-holder .ai-image.loading::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.4),
		transparent
	);
	animation: shimmer2 1.5s infinite;
}

.generative-ai-parent .ai-entry .image-holder .ai-image.encodingError {
	background: none;
}
.generative-ai-parent .ai-entry .image-holder .ai-image.encodingError::after {
	content: '';
	position: absolute;

    top: calc(50% - 48px);
    left: calc(50% - 48px);
    width: 96px;
    height: 96px;

	opacity: 1;


	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	background-image: url('../images/icons/exclamation-diamond.svg');
	opacity: 0.5;
}
.generative-ai-parent .ai-entry .image-holder .ai-image.video:not(.encodingError)::after {
	content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 68px;
    height: 54px;
    background-image: url(../images/icons/play-btn.svg);
    background-repeat: no-repeat;
    background-size: 48px;
    background-position: center;
    background-color: rgba(255, 255, 255, .5);
    border-radius: 8px;
}
.generative-ai-parent .new-session-message {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: auto;
	padding: 4px 12px;
	color: var(--profile-darker-green);
	background-color: var(--profile-light-green-text);
	border: 1px solid var(--profile-dark-green);
	border-top-left-radius: 8px;
	border-top-right-radius: 8px;
}

.generative-ai-parent .new-session-message .spinner-border {
	opacity: 0.65;
}

.generative-ai-parent .new-session-message a,
.generative-ai-parent .new-session-message a:visited,
.generative-ai-parent .new-session-message a:hover,
.generative-ai-parent .new-session-message a:focus {
	color: var(--profile-darker-green);
	text-decoration: underline;
}



.generative-ai-parent .image-viewer {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;

	padding: 48px 16px 212px 16px;

	background-color: rgba(0, 0, 0, .95);

}

.generative-ai-parent .image-viewer .image-viewer-image {
	display: block;
	width: 100%;
	height: 100%;
	

	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

.generative-ai-parent .image-viewer .close-btn,
.generative-ai-parent .image-viewer .download-btn {
	position: absolute;
	top: 8px;
	
	width: 32px;
	height: 32px;

	
	
	background-position: center;
	background-repeat: no-repeat;

	cursor: pointer;

	transition: background-size 0.25s ease;

	z-index: 100;
}
.generative-ai-parent .image-viewer .close-btn {
	right: 8px;
	background-image: url('../images/icons/x-white.svg');
	background-size: 21px;
}
.generative-ai-parent .image-viewer .download-btn {
	right: 56px;
	background-size: 24px;
	background-image: url('../images/icons/download-white.svg');
}

.generative-ai-parent .image-viewer .close-btn:hover,
.generative-ai-parent .image-viewer .download-btn:hover {
	background-size: 85%;
}

.generative-ai-parent .text-box-holder .edit-choice-tabs {
	display: none;
}

.generative-ai-parent .text-box-holder.editing {
	padding-top: 0;
}
.generative-ai-parent .text-box-holder.editing .edit-choice-tabs {
	display: block;
}

.generative-ai-parent .text-box-holder .button-row {
	margin-top: 8px;
}
.generative-ai-parent .text-box-holder .button-row .nice-table {
	height: 2.5rem;
}
.generative-ai-parent .text-box-holder .button-row .col.model {
	padding-right: 4px;
}
.generative-ai-parent .text-box-holder .button-row .col.aspect {
	padding-right: 4px;
	padding-left: 0;
	max-width: 64px;
}
.generative-ai-parent .text-box-holder .button-row .col.button {
	padding-left: 0;
	max-width: 100px;
}
.generative-ai-parent .text-box-holder .button-row .col.button .btn {
	width: 100%;
	height: 2.5rem;
	padding: 2px 12px;
	margin: 0;
}


.generative-ai-parent .aspect-icon {
	display: block;
	width: 1.5rem;
	height: 1.5rem;

	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
.generative-ai-parent .aspect-icon.square {
	background-image: url('../images/icons/square.svg');
}
.generative-ai-parent .aspect-icon.portrait {
	background-image: url('../images/icons/portrait.svg');
}
.generative-ai-parent .aspect-icon.landscape {
	background-image: url('../images/icons/landscape.svg');
}