/**
 * File input preview frame (thumbnail cards) – modern UI overrides
 * Targets .krajee-default.file-preview-frame and children
 */
.krajee-default.file-preview-frame {
	position: relative;
	margin: 0.5rem;
	padding: 0;
	float: left;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: visible;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	background: #fff;
	text-align: left;
	transition: box-shadow 0.2s, border-color 0.2s;
}

.krajee-default.file-preview-frame:not(.file-preview-error):hover {
	border-color: #d1d5db;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.krajee-default.file-preview-frame .kv-file-content {
	width: 213px;
	height: 160px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f9fafb;
	padding: 0.5rem;
	position: relative;
}

.krajee-default.file-preview-frame .kv-file-content img.file-preview-image {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain;
	border-radius: 6px;
}

.krajee-default.file-preview-frame .file-thumbnail-footer {
	height: auto;
	min-height: auto;
	padding: 0.5rem 0.75rem 0.6rem;
	border-top: 1px solid #f3f4f6;
	background: #fff;
	position: relative;
}

.krajee-default.file-preview-frame .file-footer-caption {
	display: block;
	text-align: left;
	padding: 0;
	margin: 0 0 0.5rem 0;
	font-size: 0.8125rem;
	color: #374151;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.krajee-default.file-preview-frame .file-caption-info {
	font-weight: 500;
	color: #111827;
}

.krajee-default.file-preview-frame .file-size-info {
	font-size: 0.75rem;
	color: #6b7280;
	margin-top: 0.15rem;
}

.krajee-default.file-preview-frame .file-size-info samp {
	font-family: inherit;
	background: transparent;
	padding: 0;
	font-size: inherit;
}

.krajee-default.file-preview-frame .file-actions {
	position: relative;
	clear: both;
	margin-top: 0.35rem;
}

.krajee-default.file-preview-frame .file-footer-buttons {
	float: none;
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.krajee-default.file-preview-frame .file-footer-buttons .btn {
	width: 1.75rem;
	height: 1.75rem;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	font-size: 0.875rem;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.krajee-default.file-preview-frame .file-footer-buttons .kv-file-remove {
	border-color: #fecaca;
	color: #dc2626;
	background: #fff;
}

.krajee-default.file-preview-frame .file-footer-buttons .kv-file-remove:hover {
	background: #fee2e2;
	border-color: #dc2626;
	color: #dc2626;
}

.krajee-default.file-preview-frame .file-footer-buttons .kv-file-zoom {
	border-color: #e5e7eb;
	color: #4b5563;
	background: #fff;
}

.krajee-default.file-preview-frame .file-footer-buttons .kv-file-zoom:hover {
	background: #f5f5f5;
	border-color: #7a1f1f;
	color: #7a1f1f;
}

.krajee-default.file-preview-frame .file-drag-handle {
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	width: 1.5rem;
	height: 1.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
	color: #9ca3af;
	cursor: grab;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid #e5e7eb;
	transition: color 0.2s, background 0.2s;
	z-index: 2;
}

.krajee-default.file-preview-frame .file-drag-handle:hover {
	color: #7a1f1f;
	background: #fff;
}

.krajee-default.file-preview-frame .file-drag-handle:active {
	cursor: grabbing;
}

.krajee-default.file-preview-frame .file-thumb-progress {
	top: 50%;
	left: 0.75rem;
	right: 0.75rem;
	transform: translateY(-50%);
}

.krajee-default.file-preview-frame .file-thumb-progress .progress {
	height: 6px;
	border-radius: 3px;
	overflow: hidden;
	background: #e5e7eb;
}

.krajee-default.file-preview-frame .file-thumb-progress .progress-bar {
	height: 6px;
	font-size: 0;
}

.krajee-default.file-preview-frame .clearfix {
	display: block;
	clear: both;
	height: 0;
	overflow: hidden;
}

/* Sortable ghost */
.krajee-default.file-preview-frame.kvsortable-ghost {
	opacity: 0.7;
	background: #f0f4ff;
	border: 2px dashed #7a1f1f;
}

/* Error state */
.krajee-default.file-preview-frame.file-preview-error {
	border-color: #fecaca;
	background: #fef2f2;
}

@media (max-width: 575px) {
	.krajee-default.file-preview-frame {
		margin: 0.5rem 0;
		float: none;
		display: block;
	}
	.krajee-default.file-preview-frame .kv-file-content {
		width: 100%;
		min-height: 160px;
		max-height: 200px;
	}
}
