/* Demo Section Styles */
.demo-container {
	max-width: 800px;
	margin: 0 auto;
}

.demo-section {
	background: rgba(255, 255, 255, 0.1);
	padding: 30px;
	border-radius: 12px;
	margin-bottom: 30px;
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.demo-section h3 {
	color: #ffffff;
	margin-bottom: 20px;
	font-size: 1.5rem;
}

.form-group {
	margin-bottom: 20px;
}

.form-group label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #ffffff;
}

.form-group input[type="text"], 
.form-group input[type="file"] {
	width: 100%;
	padding: 12px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 8px;
	font-size: 1rem;
	background: rgba(255, 255, 255, 0.9);
	color: #333;
	transition: border-color 0.3s;
}

.form-group input[type="text"]:focus, 
.form-group input[type="file"]:focus {
	outline: none;
	border-color: #9bf1ff;
}

.demo-result {
	padding: 20px;
	border-radius: 8px;
	margin-top: 20px;
}

.demo-result.success {
	background: rgba(255, 255, 255, 0.15);
	color: #b8b8b8;
	border: 1px solid rgba(255, 255, 255, 0.15);
}

.demo-result.error {
	background: rgba(255, 255, 255, 0.15);
	color: #9d342d;
	border: 1px solid rgba(255, 255, 255, 0.15);
}

.image-preview {
	max-width: 100%;
	margin-top: 20px;
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.loading {
	text-align: center;
	padding: 20px;
}

.spinner {
	width: 40px;
	height: 40px;
	border: 4px solid rgba(255, 255, 255, 0.3);
	border-top: 4px solid #9bf1ff;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin: 0 auto 20px;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.api-key-display {
	background: rgba(255, 255, 255, 0.1);
	padding: 15px;
	border-radius: 8px;
	border-left: 4px solid #9bf1ff;
	font-family: monospace;
	word-break: break-all;
	margin-top: 10px;
	color: #ffffff;
}

.two-column {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 20px;
}

@media (max-width: 768px) {
	.two-column {
		grid-template-columns: 1fr;
	}
}

/* Tooltip Styles */
.tooltip-container {
	position: relative;
	display: inline-block;
}

.tooltip-icon {
	display: inline-block;
	width: 18px;
	height: 18px;
	background: rgba(255, 255, 255, 0.7);
	border-radius: 50%;
	text-align: center;
	line-height: 18px;
	margin-left: 8px;
	font-size: 12px;
	color: #333;
	cursor: pointer;
	transition: all 0.3s ease;
}

.tooltip-icon:hover {
	background: rgba(255, 255, 255, 0.9);
	transform: scale(1.1);
}

.tooltip-text {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	bottom: 125%;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(49, 36, 80, 0.8);
	color: #fff;
	padding: 12px 16px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1.4;
	white-space: nowrap;
	max-width: 300px;
	white-space: normal;
	width: 280px;
	z-index: 1000;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.tooltip-text::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: rgba(49, 36, 80, 0.8) transparent transparent transparent; 
}

.tooltip-container:hover .tooltip-text {
	visibility: visible;
	opacity: 1;
}

/* Fix for Primary Button Hover Effects */
.button.primary:hover {
	background-color: #f0f0f0 !important;
	border-color: #ddd !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.button.primary:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Drag and Drop Expansion Effects */
.file-input-container {
	transition: all 0.3s ease;
	position: relative;
}

.file-input-container.drag-over {
	transform: scale(1.02);
	background: rgba(155, 241, 255, 0.1) !important;
	border: 2px dashed rgba(155, 241, 255, 0.6) !important;
	border-radius: 12px;
	padding: 8px;
}

.file-input-container.drag-over::before {
	content: "📁 Drop your image here";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(155, 241, 255, 0.9);
	color: #312450;
	padding: 8px 16px;
	border-radius: 6px;
	font-size: 0.9em;
	font-weight: bold;
	pointer-events: none;
	z-index: 10;
	white-space: nowrap;
}

.retry-options {
    margin-top: 1rem;
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.retry-options button {
    min-width: 200px;
    margin: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.retry-options button i {
    font-size: 1rem;
}

.error-message {
    background: rgba(255, 0, 0, 0.1);
    border: 1px solid rgba(255, 0, 0, 0.2);
    padding: 1.5rem;
    border-radius: 0.5rem;
    margin: 1rem 0;
    color: #ff3333;
    text-align: center;
}

.error-message i {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    display: block;
}

.processing-state {
    text-align: center;
    padding: 2rem;
    background: rgba(108, 192, 74, 0.1);
    border: 1px solid rgba(108, 192, 74, 0.2);
    border-radius: 0.5rem;
    margin: 1rem 0;
}

.processing-state i {
    font-size: 2rem;
    color: #6cc04a;
    margin-bottom: 1rem;
    display: block;
}

.processing-note {
    color: #dadada;
    font-size: 0.9rem;
    margin-top: 0.5rem;
    font-style: italic;
}

/* Dark theme adjustments */
.dark-theme .error-message {
    background: rgba(255, 0, 0, 0.2);
    border-color: rgba(255, 0, 0, 0.3);
    color: #ff6666;
}

.dark-theme .processing-state {
    background: rgba(108, 192, 74, 0.2);
    border-color: rgba(108, 192, 74, 0.3);
}

.dark-theme .processing-note {
    color: #999;
}
