/* ── Forms ── */
.form-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.form-label {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--muted-foreground);
}

.form-input {
	width: 100%;
	padding: 0.75rem 1rem;
	background: var(--input-bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	font-size: 1rem;
	outline: none;
	transition: box-shadow var(--transition), border-color var(--transition);
}
.form-input:focus {
	box-shadow: 0 0 0 3px var(--primary-light);
	border-color: var(--primary);
}

.form-input.has-icon-right { padding-right: 2.75rem; }
.form-input.has-icon-left  { padding-left: 2.75rem; }

.input-wrap {
	position: relative;
}
.input-wrap .input-icon {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: var(--muted-foreground);
	pointer-events: none;
}
.input-wrap .input-icon-right { right: 0.75rem; }
.input-wrap .input-icon-left  { left: 0.75rem; }

.form-select {
	width: 100%;
	padding: 0.75rem 2.75rem 0.75rem 2.75rem;
	background: var(--input-bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	font-size: 1rem;
	outline: none;
	appearance: none;
	cursor: pointer;
	transition: box-shadow var(--transition), border-color var(--transition);
}
.form-select:focus {
	box-shadow: 0 0 0 3px var(--primary-light);
	border-color: var(--primary);
}

.select-wrap {
	position: relative;
}
.select-wrap .chevron-icon {
	position: absolute;
	left: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--muted-foreground);
	pointer-events: none;
}

textarea.form-input {
	min-height: 120px;
	resize: vertical;
}

.form-error {
	font-size: 0.75rem;
	color: var(--destructive);
	margin-top: 0.25rem;
}

.form-grid {
	display: grid;
	gap: 1rem;
}
@media (min-width: 640px) { .form-grid-2 { grid-template-columns: repeat(2, 1fr); } }
.form-grid .col-span-2 { grid-column: span 2; }
@media (max-width: 639px) { .form-grid .col-span-2 { grid-column: span 1; } }
