/* ===== Traventia UI — Modais (usa data-tv="modal", ver traventia-ui.js) ===== */

.tv-modal-overlay {
	position: fixed;
	inset: 0;
	background: var(--tv-overlay);
	z-index: var(--tv-z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--tv-space-4);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--tv-transition-base), visibility var(--tv-transition-base);
}

.tv-modal-overlay[data-open="true"] { opacity: 1; visibility: visible; }

.tv-modal {
	background: var(--tv-surface);
	border-radius: var(--tv-radius-lg);
	max-width: 480px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: var(--tv-shadow-xl);
	transform: scale(0.97);
	transition: transform var(--tv-transition-base);
}

.tv-modal-overlay[data-open="true"] .tv-modal { transform: scale(1); }

.tv-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--tv-space-6);
	border-bottom: 1px solid var(--tv-border);
}

.tv-modal-close {
	background: none;
	border: none;
	cursor: pointer;
	font-size: var(--tv-text-xl);
	color: var(--tv-text-muted);
	line-height: 1;
	padding: var(--tv-space-1);
}

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

.tv-modal-footer {
	padding: var(--tv-space-6);
	border-top: 1px solid var(--tv-border);
	display: flex;
	justify-content: flex-end;
	gap: var(--tv-space-3);
}