/**
 * Forms
 */
.fc-field {
	display: flex;
	flex-direction: column;
	gap: var(--fc-space-2);
	margin-bottom: var(--fc-space-4);
}

.fc-label {
	font-size: var(--fc-text-small);
	font-weight: var(--fc-weight-semibold);
	color: var(--fc-color-ocean-navy);
}

.fc-help,
.fc-field-hint {
	font-size: var(--fc-text-caption);
	color: var(--fc-color-muted);
}

.fc-field-error {
	font-size: var(--fc-text-caption);
	color: var(--fc-color-danger);
}

.fc-input,
.fc-select,
.fc-textarea,
.fc-captain-dashboard input[type="text"],
.fc-captain-dashboard input[type="email"],
.fc-captain-dashboard input[type="password"],
.fc-captain-dashboard input[type="number"],
.fc-captain-dashboard input[type="search"],
.fc-captain-dashboard input[type="url"],
.fc-captain-dashboard select,
.fc-captain-dashboard textarea,
.fc-captain-portal input[type="text"],
.fc-captain-portal input[type="email"],
.fc-captain-portal input[type="password"],
.fc-captain-portal input[type="number"],
.fc-captain-portal input[type="search"],
.fc-captain-portal input[type="url"],
.fc-captain-portal select,
.fc-captain-portal textarea {
	width: 100%;
	max-width: 100%;
	min-height: var(--fc-touch-min);
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--fc-color-border);
	border-radius: var(--fc-radius-md);
	background: var(--fc-color-surface);
	color: var(--fc-color-text);
	font: inherit;
	line-height: var(--fc-leading-normal);
	transition:
		border-color var(--fc-duration) var(--fc-ease),
		box-shadow var(--fc-duration) var(--fc-ease);
}

.fc-textarea,
.fc-captain-dashboard textarea,
.fc-captain-portal textarea {
	min-height: 7rem;
	resize: vertical;
}

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

.fc-input:focus-visible,
.fc-select:focus-visible,
.fc-textarea:focus-visible,
.fc-captain-dashboard input:focus-visible,
.fc-captain-dashboard select:focus-visible,
.fc-captain-dashboard textarea:focus-visible,
.fc-captain-portal input:focus-visible,
.fc-captain-portal select:focus-visible,
.fc-captain-portal textarea:focus-visible {
	outline: 3px solid var(--fc-color-focus);
	outline-offset: 2px;
	border-color: var(--fc-color-deep-blue);
}

.fc-input[aria-invalid="true"],
.fc-field.is-invalid .fc-input {
	border-color: var(--fc-color-danger);
}

.fc-input--search {
	padding-inline-start: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%2364748b' stroke-width='1.75'%3E%3Ccircle cx='9' cy='9' r='6'/%3E%3Cpath d='M14 14l4 4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 0.7rem 50%;
}

.fc-check,
.fc-radio,
.fc-checkbox-row {
	display: flex;
	align-items: flex-start;
	gap: var(--fc-space-2);
	min-height: var(--fc-touch-min);
}

.fc-check input,
.fc-radio input,
.fc-checkbox-row input {
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.2rem;
	accent-color: var(--fc-color-deep-blue);
}

.fc-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--fc-space-3);
}

.fc-toggle__control {
	position: relative;
	width: 2.75rem;
	height: 1.55rem;
	border-radius: var(--fc-radius-full);
	background: var(--fc-color-border-strong);
	border: 0;
	cursor: pointer;
	transition: background-color var(--fc-duration) var(--fc-ease);
}

.fc-toggle__control::after {
	content: "";
	position: absolute;
	top: 0.15rem;
	left: 0.15rem;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: var(--fc-radius-full);
	background: var(--fc-color-surface);
	box-shadow: var(--fc-shadow-sm);
	transition: transform var(--fc-duration) var(--fc-ease);
}

.fc-toggle__control[aria-checked="true"],
.fc-toggle.is-on .fc-toggle__control {
	background: var(--fc-color-seafoam);
}

.fc-toggle__control[aria-checked="true"]::after,
.fc-toggle.is-on .fc-toggle__control::after {
	transform: translateX(1.2rem);
}

.fc-upload {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--fc-space-3);
	padding: var(--fc-space-5);
	border: 1px dashed var(--fc-color-border-strong);
	border-radius: var(--fc-radius-lg);
	background: var(--fc-color-bg);
}
