/* ===== Traventia UI — Cards ===== */

.tv-card {
	background: var(--tv-surface);
	border: 1px solid var(--tv-border);
	border-radius: var(--tv-radius-lg);
	overflow: hidden;
	transition: box-shadow var(--tv-transition-base), transform var(--tv-transition-base);
}

.tv-card-hover:hover {
	box-shadow: var(--tv-shadow-lg);
	transform: translateY(-3px);
}

.tv-card-body { padding: var(--tv-space-6); }

.tv-card-media { position: relative; aspect-ratio: 4 / 3; background: var(--tv-surface-alt); overflow: hidden; }

.tv-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(10, 9, 7, 0.35) 100%);
	pointer-events: none;
}

.tv-card-media-badge { position: absolute; top: 12px; left: 12px; }

.tv-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--tv-transition-slow); }

.tv-card-hover:hover .tv-card-media img { transform: scale(1.04); }

.tv-card-title { font-size: var(--tv-text-lg); font-weight: var(--tv-font-semibold); margin: 0 0 var(--tv-space-1); }

.tv-card-subtitle { font-size: var(--tv-text-sm); color: var(--tv-text-muted); margin: 0; }

.tv-card-footer {
	padding: var(--tv-space-4) var(--tv-space-6);
	border-top: 1px solid var(--tv-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tv-space-3);
}

/* Estatística (usado nos cards do topo do Dashboard) */
.tv-stat-card {
	background: var(--tv-surface);
	border: 1px solid var(--tv-border);
	border-radius: var(--tv-radius-lg);
	padding: var(--tv-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--tv-space-2);
}

.tv-stat-card-label { font-size: var(--tv-text-sm); color: var(--tv-text-muted); }
.tv-stat-card-value { font-size: var(--tv-text-3xl); font-weight: var(--tv-font-bold); }
.tv-stat-card-hint { font-size: var(--tv-text-xs); color: var(--tv-text-muted); }