/**
 * Buttons
 */
.fc-btn,
.fc-portal-cta,
.fc-captain-dashboard button[type="submit"],
.fc-captain-portal button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--fc-space-2);
	min-height: var(--fc-touch-min);
	padding: 0.625rem 1.1rem;
	border: 1px solid transparent;
	border-radius: var(--fc-radius-md);
	background: var(--fc-color-deep-blue);
	color: var(--fc-color-text-inverse);
	font-family: inherit;
	font-size: var(--fc-text-small);
	font-weight: var(--fc-weight-semibold);
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition:
		background-color var(--fc-duration) var(--fc-ease),
		border-color var(--fc-duration) var(--fc-ease),
		color var(--fc-duration) var(--fc-ease),
		box-shadow var(--fc-duration) var(--fc-ease),
		transform var(--fc-duration-fast) var(--fc-ease);
}

.fc-btn:hover,
.fc-portal-cta:hover {
	background: var(--fc-color-ocean-navy);
	color: var(--fc-color-text-inverse);
}

.fc-btn:focus-visible,
.fc-portal-cta:focus-visible,
.fc-btn-icon:focus-visible {
	outline: 3px solid var(--fc-color-focus);
	outline-offset: 2px;
}

.fc-btn:active {
	transform: translateY(1px);
}

.fc-btn:disabled,
.fc-btn[aria-disabled="true"],
.fc-portal-cta:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

.fc-btn--primary { background: var(--fc-color-deep-blue); color: var(--fc-color-text-inverse); }
.fc-btn--secondary {
	background: var(--fc-color-surface);
	color: var(--fc-color-ocean-navy);
	border-color: var(--fc-color-border-strong);
}
.fc-btn--secondary:hover {
	background: var(--fc-color-light-sand);
	color: var(--fc-color-ocean-navy);
}

.fc-btn--ghost {
	background: transparent;
	color: var(--fc-color-deep-blue);
	border-color: transparent;
}
.fc-btn--ghost:hover {
	background: var(--fc-color-light-sand);
	color: var(--fc-color-ocean-navy);
}

.fc-btn--danger {
	background: var(--fc-color-danger);
	color: var(--fc-color-text-inverse);
}
.fc-btn--danger:hover { background: var(--fc-color-danger-hover); }

.fc-btn--seafoam {
	background: var(--fc-color-seafoam);
	color: var(--fc-color-text-inverse);
}

.fc-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--fc-touch-min);
	height: var(--fc-touch-min);
	padding: 0;
	border: 1px solid var(--fc-color-border);
	border-radius: var(--fc-radius-md);
	background: var(--fc-color-surface);
	color: var(--fc-color-slate);
	cursor: pointer;
}

.fc-btn-icon:hover {
	background: var(--fc-color-light-sand);
	color: var(--fc-color-ocean-navy);
}

.fc-btn--loading {
	position: relative;
	pointer-events: none;
}

.fc-btn--loading::after {
	content: "";
	width: 1rem;
	height: 1rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: var(--fc-radius-full);
	animation: fc-spin var(--fc-duration-slow) linear infinite;
}

.fc-btn--sm {
	min-height: 2.25rem;
	padding: 0.4rem 0.85rem;
}

.fc-btn--block {
	width: 100%;
}
