/* ===== Traventia UI — Inputs ===== */

.tv-input,
.tv-select,
.tv-textarea {
	width: 100%;
	font-family: var(--tv-font);
	font-size: var(--tv-text-base);
	color: var(--tv-text);
	background: var(--tv-surface);
	border: 1px solid var(--tv-border);
	border-radius: var(--tv-radius-md);
	padding: 12px 16px;
	transition: border-color var(--tv-transition-fast), box-shadow var(--tv-transition-fast);
}

.tv-input:hover,
.tv-select:hover,
.tv-textarea:hover { border-color: var(--tv-border-strong); }

.tv-input:focus,
.tv-select:focus,
.tv-textarea:focus {
	outline: none;
	border-color: var(--tv-primary);
	box-shadow: 0 0 0 3px var(--tv-primary-light);
}

.tv-input::placeholder,
.tv-textarea::placeholder { color: var(--tv-text-muted); }

.tv-textarea { resize: vertical; min-height: 100px; }

.tv-input-error { border-color: var(--tv-error); }
.tv-input-error:focus { box-shadow: 0 0 0 3px var(--tv-error-bg); }

.tv-field { display: flex; flex-direction: column; gap: var(--tv-space-2); }

.tv-field-label { font-size: var(--tv-text-sm); font-weight: var(--tv-font-semibold); }

.tv-field-hint { font-size: var(--tv-text-xs); color: var(--tv-text-muted); }

.tv-field-error { font-size: var(--tv-text-xs); color: var(--tv-error); }

.tv-checkbox-group { display: flex; flex-wrap: wrap; gap: var(--tv-space-3); }

.tv-checkbox-option {
	display: inline-flex;
	align-items: center;
	gap: var(--tv-space-2);
	font-size: var(--tv-text-sm);
	font-weight: var(--tv-font-normal);
	padding: 8px 14px;
	border: 1px solid var(--tv-border);
	border-radius: var(--tv-radius-full);
	cursor: pointer;
	transition: border-color var(--tv-transition-fast), background-color var(--tv-transition-fast);
}

.tv-checkbox-option:has(input:checked) {
	border-color: var(--tv-primary);
	background: var(--tv-primary-light);
}