/** Variables locales (si no están en el tema global) */
$button-transition: all 0.2s ease;
$button-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
	0 2px 2px 0 rgba(0, 0, 0, 0.14),
	0 1px 5px 0 rgba(0, 0, 0, 0.12);
$button-shadow-hover: 0 2px 4px -1px rgba(0, 0, 0, 0.2),
	0 4px 5px 0 rgba(0, 0, 0, 0.14),
	0 1px 10px 0 rgba(0, 0, 0, 0.12);
$button-shadow-active: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
	0 8px 10px 1px rgba(0, 0, 0, 0.14),
	0 3px 14px 2px rgba(0, 0, 0, 0.12);

/* Mixins */
@mixin button-base {
	border-radius: var(--ds-theme-button-border-radius, 6px);
	padding: var(--ds-theme-button-padding, 20px 32px);
	display: var(--ds-theme-button-display, inline-flex);
	justify-content: var(--ds-theme-button-justify-content, center);
	align-items: var(--ds-theme-button-align-items, center);
	gap: var(--ds-theme-button-gap, 10px);
	transition: $button-transition;
	font-size: var(--ds-theme-button-font-size, 16px);
	font-weight: var(--ds-theme-button-font-weight, 500);
}

@mixin button-shadow {
	box-shadow: $button-shadow;
	transition: box-shadow 0.2s;

	&:hover {
		box-shadow: $button-shadow-hover;
	}

	&:active {
		box-shadow: $button-shadow-active;
	}
}

@mixin button-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

@mixin icon-color($color) {
	filter: $color;
}

@mixin button-severity($color, $hover-color) {
	background: $color;
	border-color: $color;
	color: var(--ds-theme-text-inverse);

	&:hover {
		background: $hover-color !important;
		opacity: 0.8 !important;
	}
}

@mixin button-size($padding) {
	display: inline-flex !important;
	padding: $padding !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 10px !important;
	height: auto !important;
	font-size: var(--ds-theme-button-font-size, 16px);
}

/* Estilos base para botones */
.p-button {
	@include button-base;
}

/* Estilos para tamaños de botones */
.p-button.p-button-sm {
	@include button-size(0.5rem 1rem);
	font-size: 0.875rem !important;
}

.p-button.p-button-md {
	@include button-size(0.75rem 1.5rem);
	font-size: 1rem !important;
}

.p-button.p-button-lg {
	@include button-size(1rem 2rem);
	font-size: 1.125rem !important;
}

/* Estilos para botones primarios */
.p-button.p-button-primary {
	background: var(--ds-theme-button-primary-background) !important;
	border: 1px solid var(--ds-theme-button-primary-border);
	font-size: var(--ds-theme-button-font-size) !important;
	font-weight: var(--ds-theme-button-font-weight);
	font-family: var(--ds-theme-font-family, Montserrat);

	&:hover,
	&:focus,
	&:active {
		background: var(--ds-theme-button-primary-background-hover);
		border-color: var(--ds-theme-button-primary-border);
	}

	&:disabled {
		background: var(--ds-theme-button-disabled-background);
		border-color: var(--ds-theme-button-disabled-border);
		color: var(--ds-theme-button-disabled-text);
		@include button-disabled;
	}
}

/* Estilos para botones secundarios */
.p-button.p-button-secondary {
	background: var(--ds-theme-button-secondary-background);
	border: 1px solid var(--ds-theme-button-secondary-border);
	color: var(--ds-theme-button-secondary-text);
	font-family: var(--ds-theme-font-family, Montserrat);
	font-size: var(--ds-theme-button-font-size);
	font-weight: var(--ds-theme-button-font-weight);

	&:hover,
	&:active {
		background: var(--ds-theme-button-secondary-background-muted);
	}

	&:focus {
		background: var(--ds-theme-button-secondary-background-muted);
		box-shadow: 0 0 0 2px var(--ds-theme-button-secondary-border) !important;
	}

	&:disabled {
		background: var(--ds-theme-button-disabled-background);
		color: var(--ds-theme-button-disabled-text);
		border: 1px solid var(--ds-theme-button-disabled-border);
		@include button-disabled;
	}
}

.p-button.p-button-secondary.p-button-text {
	&:focus {
		outline: 0px !important;
		box-shadow: none !important;
	}
}

/* Estilos para botones terciarios */
.p-button.p-button-tertiary,
.p-button.text {
	background: var(--ds-theme-button-tertiary-background);
	border: none;
	color: var(--ds-theme-button-tertiary-text);
	font-family: var(--ds-theme-font-family, Montserrat);
	font-size: var(--ds-theme-button-font-size);
	font-weight: var(--ds-theme-button-font-weight);

	&:hover,
	&:active {
		background: var(--ds-theme-button-tertiary-background);
		color: var(--ds-theme-text-primary);
	}

	&:focus {
		background: var(--ds-theme-button-tertiary-background);
		color: var(--ds-theme-button-tertiary-text);
	}

	&:disabled {
		background: var(--ds-theme-button-disabled-background);
		color: var(--ds-theme-button-disabled-text);
		border: 1px solid var(--ds-theme-button-disabled-border);
		@include button-disabled;
	}
}

/* Estilos para iconos */
.custom-svg-icon {
	width: 24px;
	height: 24px;
	margin: 0 0.5rem;
}

/* Estilos específicos para iconos según tipo de botón */
/* Iconos para botones primarios */
.p-button {
	&.p-component .p-button-label-with-icon .custom-svg-icon {
		@include icon-color(brightness(0) invert(1));
		/* Hace el icono blanco */
	}
}

/* Iconos para botones secundarios */
.p-button {
	&.p-button-secondary .p-button-label-with-icon .custom-svg-icon {
		@include icon-color(invert(48%) sepia(79%) saturate(2476%) hue-rotate(346deg) brightness(118%) contrast(119%));
		/* Hace el icono naranja */
	}
}

/* Iconos para botones terciarios */
.p-button {

	&.p-button-tertiary .p-button-label-with-icon .custom-svg-icon,
	&.text .p-button-label-with-icon .custom-svg-icon {
		@include icon-color(invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0%) contrast(100%));
		/* Hace el icono negro */
	}
}

.icon-left {
	margin-right: 0.5rem;
}

.icon-right {
	margin-left: 0.5rem;
}

.p-button-label-with-icon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

/* Mantener los estilos de PrimeReact para iconos y severities */
.p-button-icon-only {
	width: 2.357rem;
	padding: 0.5rem 0;

	&.p-button-rounded {
		height: 2.357rem;
		width: 2.357rem;
	}

	.p-button-icon-left,
	.p-button-icon-right {
		margin: 0;
	}
}

/* Severities de PrimeReact */
.p-button {
	&.p-button-success {
		background: var(--ds-feedback-success);
		border-color: var(--ds-feedback-success);
		color: var(--ds-theme-text-inverse);

		&:hover {
			background: var(--ds-feedback-success) !important;
			opacity: 0.8 !important;
		}
	}

	&.p-button-info {
		background: var(--ds-feedback-info);
		border-color: var(--ds-feedback-info);
		color: var(--ds-theme-text-inverse);

		&:hover {
			background: var(--ds-feedback-info) !important;
			opacity: 0.8 !important;
		}
	}

	&.p-button-warning {
		background: var(--ds-feedback-warning);
		border-color: var(--ds-feedback-warning);
		color: var(--ds-theme-text-inverse);

		&:hover {
			background: var(--ds-feedback-warning) !important;
			opacity: 0.8 !important;
		}
	}

	&.p-button-help {
		background: var(--ds-feedback-help);
		border-color: var(--ds-feedback-help);
		color: var(--ds-theme-text-inverse);

		&:hover {
			background: var(--ds-feedback-help) !important;
			opacity: 0.8 !important;
		}
	}

	&.p-button-danger {
		background: var(--ds-feedback-danger);
		border-color: var(--ds-feedback-danger);
		color: var(--ds-theme-text-inverse);

		&:hover {
			background: var(--ds-feedback-danger) !important;
			opacity: 0.8 !important;
		}
	}
}

/* Tamaños de botones */
.p-button {

	&.p-button-large,
	&[class*="p-button-large"],
	&.custom-button.p-button-large {
		@include button-size(20px 32px);
	}

	&.p-button-normal,
	&[class*="p-button-normal"],
	&.custom-button.p-button-normal {
		@include button-size(16px 32px);
	}

	&.p-button-medium,
	&[class*="p-button-medium"],
	&.custom-button.p-button-medium {
		@include button-size(14px 32px);
	}

	&.p-button-small,
	&[class*="p-button-small"],
	&.custom-button.p-button-small {
		@include button-size(12px 24px);
	}

	&.p-button-xs,
	&[class*="p-button-xs"],
	&.custom-button.p-button-xs {
		@include button-size(8px 24px);
	}
}

/* Estilos para botón primary */
.p-button:not([class*="p-button-"]) {
	background: var(--ds-theme-button-primary-background) !important;
	border-color: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button:not([class*="p-button-"]):hover {
	background: var(--ds-theme-button-primary-background-hover) !important;
	border-color: var(--ds-theme-button-primary-background-hover) !important;
}

/* Estilos para secondary disabled */
.p-button.p-button-secondary:disabled {
	color: var(--ds-theme-button-secondary-background-muted, #ffc299);
	text-align: center;
	font-family: Montserrat;
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
}

/* Estilos para botones redondeados */
.p-button.p-button-rounded {
	border-radius: 50% !important;
	width: 2.357rem !important;
	height: 2.357rem !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: $button-transition !important;

	&:not(.p-button-icon-only) {
		border-radius: 2rem !important;
		width: auto !important;
		height: auto !important;
		padding: 0.5rem 1rem !important;

		.p-button-label {
			display: inline-block !important;
		}
	}

	.p-button-label {
		display: none !important;
	}
}

/* Colores de fondo para botones redondeados */
.p-button.p-button-rounded:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	background: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-text-inverse) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-secondary {
	background: var(--ds-theme-button-secondary-text) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-secondary:hover {
	background: var(--ds-theme-button-secondary-text) !important;
	color: var(--ds-theme-text-inverse) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-secondary:not(.p-button-icon-only) {
	background: var(--ds-theme-text-inverse) !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-secondary:not(.p-button-icon-only):hover {
	background: var(--ds-theme-button-secondary-background-muted) !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-success {
	background: var(--ds-feedback-success) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-success:hover {
	background: var(--ds-feedback-success) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-info {
	background: var(--ds-feedback-info) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-info:hover {
	background: var(--ds-feedback-info) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-warning {
	background: var(--ds-feedback-warning) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-warning:hover {
	background: var(--ds-feedback-warning) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-help {
	background: var(--ds-feedback-help) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-help:hover {
	background: var(--ds-feedback-help) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-danger {
	background: var(--ds-feedback-danger) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-danger:hover {
	background: var(--ds-feedback-danger) !important;
	opacity: 0.8 !important;
}

/* Estilos para botones raised */
.p-button.p-button-rounded.p-button-raised {
	@include button-shadow;
}

/* Estilos para botones outlined con rounded */
.p-button.p-button-rounded.p-button-outlined {
	background: transparent !important;
	border: 1px solid !important;
	transition: $button-transition !important;
}

/* Colores de borde y hover para botones outlined */
.p-button.p-button-rounded.p-button-outlined:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	border-color: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-button-primary-background) !important;
	background: transparent !important;
}

.p-button.p-button-rounded.p-button-outlined:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: var(--ds-theme-button-primary-background) !important;
	border-color: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-secondary {
	border-color: var(--ds-theme-button-secondary-border) !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-secondary:hover {
	background: var(--ds-theme-button-secondary-text) !important;
	border-color: var(--ds-theme-button-secondary-border) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-success {
	border-color: var(--ds-feedback-success) !important;
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-success:hover {
	background: var(--ds-feedback-success) !important;
	border-color: var(--ds-feedback-success) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-info {
	border-color: var(--ds-feedback-info) !important;
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-info:hover {
	background: var(--ds-feedback-info) !important;
	border-color: var(--ds-feedback-info) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-warning {
	border-color: var(--ds-feedback-warning) !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-warning:hover {
	background: var(--ds-feedback-warning) !important;
	border-color: var(--ds-feedback-warning) !important;
	color: var(--ds-theme-text-secondary) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-help {
	border-color: var(--ds-feedback-help) !important;
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-help:hover {
	background: var(--ds-feedback-help) !important;
	border-color: var(--ds-feedback-help) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-danger {
	border-color: var(--ds-feedback-danger) !important;
	color: var(--ds-feedback-danger) !important;
}

.p-button.p-button-rounded.p-button-outlined.p-button-danger:hover {
	background: var(--ds-feedback-danger) !important;
	border-color: var(--ds-feedback-danger) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-outlined:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	background: rgba(59, 130, 246, .04);
	border: 1px solid;
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-outlined:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: var(--ds-theme-button-primary-background) !important;
	border-color: var(--ds-theme-button-primary-background) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button.p-button-outlined.p-button-tertiary {
	border-color: var(--ds-theme-button-primary-background-hover) !important;
	color: var(--ds-theme-button-primary-background-hover) !important;
	border: 1px solid !important;
}

.p-button.p-button-outlined.p-button-tertiary:hover {
	background: var(--ds-theme-button-primary-background-hover) !important;
	border-color: var(--ds-theme-button-primary-background-hover) !important;
	color: var(--ds-theme-button-primary-background-hover) !important;
}

.p-button-outlined.p-button-success {
	background: transparent !important;
	border-color: var(--ds-feedback-success) !important;
	color: var(--ds-feedback-success) !important;
}

.p-button-outlined.p-button-success:hover {
	background: var(--ds-feedback-success) !important;
	border-color: var(--ds-feedback-success) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button-outlined.p-button-info {
	background: transparent !important;
	border-color: var(--ds-feedback-info) !important;
	color: var(--ds-feedback-info) !important;
}

.p-button-outlined.p-button-info:hover {
	background: var(--ds-feedback-info) !important;
	border-color: var(--ds-feedback-info) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button-outlined.p-button-warning {
	background: transparent !important;
	border-color: var(--ds-feedback-warning) !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button-outlined.p-button-warning:hover {
	background: var(--ds-feedback-warning) !important;
	border-color: var(--ds-feedback-warning) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button-outlined.p-button-help {
	background: transparent !important;
	border-color: var(--ds-feedback-help) !important;
	color: var(--ds-feedback-help) !important;
}

.p-button-outlined.p-button-help:hover {
	background: var(--ds-feedback-help) !important;
	border-color: var(--ds-feedback-help) !important;
	color: var(--ds-theme-text-inverse) !important;
}

.p-button-outlined.p-button-danger {
	background: transparent !important;
	border-color: var(--ds-feedback-danger) !important;
	color: var(--ds-feedback-danger) !important;
}

.p-button-outlined.p-button-danger:hover {
	background: var(--ds-feedback-danger) !important;
	border-color: var(--ds-feedback-danger) !important;
	color: var(--ds-theme-text-inverse) !important;
}

/* Estilos para botones raised invertidos */
.p-button.p-button-rounded.p-button-raised.p-button-inverted {
	@include button-shadow;
}

/* Colores invertidos para cada severity en botones raised */
.p-button.p-button-rounded.p-button-raised.p-button-inverted:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-secondary {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-success {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-info {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-warning {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-help {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-rounded.p-button-raised.p-button-inverted.p-button-danger {
	background: var(--ds-theme-text-inverse) !important;
	border: none !important;
	color: var(--ds-feedback-danger) !important;
}

/* Hover invertido */
.p-button.p-button-rounded.p-button-raised.p-button-inverted:hover {
	background: var(--ds-theme-text-inverse) !important;
	opacity: 0.9 !important;
}

/* Estilos para botones text con raised */
.p-button.p-button-rounded.p-button-text.p-button-raised {
	@include button-shadow;
}

/* Colores para cada severity en botones text Prime Icon */
.p-button.p-button-rounded.p-button-text.p-button-raised:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	background: transparent !important;
	border: none !important;
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-secondary {
	background: transparent !important;
	border: none !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-success {
	background: transparent !important;
	border: none !important;
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-info {
	background: transparent !important;
	border: none !important;
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-warning {
	background: transparent !important;
	border: none !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-help {
	background: transparent !important;
	border: none !important;
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-raised.p-button-danger {
	background: transparent !important;
	border: none !important;
	color: var(--ds-feedback-danger) !important;
}

/* Hover para botones text */
.p-button.p-button-rounded.p-button-text.p-button-raised:hover {
	background: rgba(0, 0, 0, 0.04) !important;
}

/* Estilos para botones text */
.p-button.p-button-rounded.p-button-text {
	background: transparent !important;
	border: 1px solid var(--ds-theme-button-tertiary-background) !important;
	box-shadow: none !important;
}

/* Colores para cada severity en botones text */
.p-button.p-button-rounded.p-button-text:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-rounded.p-button-text:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: rgba(0, 123, 255, 0.04) !important;
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-secondary {
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-secondary:hover {
	background: rgba(255, 159, 67, 0.04) !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-tertiary {
	background: var(--ds-theme-button-tertiary-background) !important;
	color: var(--ds-theme-text-secondary) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-tertiary:hover {
	color: var(--ds-theme-button-primary-background-hover) !important;
	background: var(--ds-theme-button-tertiary-background) !important;
	opacity: 0.8 !important;
}

.p-button.p-button-rounded.p-button-text.p-button-success {
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-success:hover {
	background: rgba(40, 167, 69, 0.04) !important;
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-info {
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-info:hover {
	background: rgba(23, 162, 184, 0.04) !important;
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-warning {
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-warning:hover {
	background: rgba(255, 193, 7, 0.04) !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-help {
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-help:hover {
	background: rgba(111, 66, 193, 0.04) !important;
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-danger {
	color: var(--ds-feedback-danger) !important;
}

.p-button.p-button-rounded.p-button-text.p-button-danger:hover {
	background: rgba(220, 53, 69, 0.04) !important;
	color: var(--ds-feedback-danger) !important;
}

/* Estilos para botones de icono */
.p-button.p-button-icon-only {
	border: 1px solid var(--ds-theme-button-icon-border) !important;
}

/* Estilos para botones terciarios */
.p-button.p-button-tertiary.p-button-icon-only {
	border: 1px solid var(--ds-theme-button-icon-border) !important;
}

/* Estilos para botones terciarios deshabilitados */
.p-button.p-button-tertiary:disabled {
	border: 1px solid var(--ds-theme-button-disabled-border) !important;
}

.p-button.p-button-tertiary.p-button-text:disabled {
	border: 1px solid var(--ds-theme-button-disabled-border) !important;
}

.p-button.p-button-tertiary.p-button-icon-only:disabled {
	border: 1px solid var(--ds-theme-button-disabled-border) !important;
}

/* Estilos para botones deshabilitados */
.p-button:disabled,
.p-button.p-button-text:disabled,
.p-button.p-button-icon-only:disabled {
	border: 1px solid var(--ds-theme-button-disabled-border) !important;
	@include button-disabled;
}

/* Estilos para botones redondeados con texto */
.p-button.p-button-rounded:not(.p-button-icon-only) {
	border-radius: 2rem !important;
	width: auto !important;
	height: auto !important;
	padding: 0.5rem 1rem !important;
}

.p-button.p-button-rounded:not(.p-button-icon-only) .p-button-label {
	display: inline-block !important;
}

/* Estilos para botones redondeados con icono */
.p-button.p-button-rounded.p-button-icon-only {
	border-radius: 50% !important;
	width: 2.357rem !important;
	height: 2.357rem !important;
	padding: 0 !important;
}

.p-button.p-button-rounded.p-button-icon-only .p-button-label {
	display: none !important;
}

/* Estilos para botones de texto */
.p-button.p-button-text {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Colores de texto según severity */
.p-button.p-button-text:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger) {
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-text:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: rgba(0, 123, 255, 0.04) !important;
	color: var(--ds-theme-button-primary-background) !important;
}

.p-button.p-button-text.p-button-secondary {
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-text.p-button-secondary:hover {
	background: rgba(255, 159, 67, 0.04) !important;
	color: var(--ds-theme-button-secondary-text) !important;
}

.p-button.p-button-text.p-button-tertiary:hover {
	background: rgba(0, 123, 255, 0.04) !important;
}

.p-button.p-button-text.p-button-success {
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-text.p-button-success:hover {
	background: rgba(40, 167, 69, 0.04) !important;
	color: var(--ds-feedback-success) !important;
}

.p-button.p-button-text.p-button-info {
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-text.p-button-info:hover {
	background: rgba(23, 162, 184, 0.04) !important;
	color: var(--ds-feedback-info) !important;
}

.p-button.p-button-text.p-button-warning {
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-text.p-button-warning:hover {
	background: rgba(255, 193, 7, 0.04) !important;
	color: var(--ds-feedback-warning) !important;
}

.p-button.p-button-text.p-button-help {
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-text.p-button-help:hover {
	background: rgba(111, 66, 193, 0.04) !important;
	color: var(--ds-feedback-help) !important;
}

.p-button.p-button-text.p-button-danger {
	color: var(--ds-feedback-danger) !important;
}

.p-button.p-button-text.p-button-danger:hover {
	background: rgba(220, 53, 69, 0.04) !important;
	color: var(--ds-feedback-danger) !important;
}

/* Estilos para botones raised */
.p-button.p-button-raised {
	@include button-shadow;
}

/* Hover para botones raised según severity */
.p-button.p-button-raised:not(.p-button-secondary):not(.p-button-tertiary):not(.p-button-success):not(.p-button-info):not(.p-button-warning):not(.p-button-help):not(.p-button-danger):hover {
	background: var(--ds-theme-button-primary-background) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-secondary:hover {
	background: var(--ds-theme-button-secondary-text) !important;
	color: var(--ds-theme-text-inverse) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-secondary:not(.p-button-icon-only):hover {
	background: var(--ds-theme-button-secondary-background-muted) !important;
	color: var(--ds-theme-button-secondary-text) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-tertiary {
	background: var(--ds-theme-button-tertiary-background) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-tertiary:hover {
	background: var(--ds-theme-button-tertiary-background) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-success:hover {
	background: var(--ds-feedback-success) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-info:hover {
	background: var(--ds-feedback-info) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-warning:hover {
	background: var(--ds-feedback-warning) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-help:hover {
	background: var(--ds-feedback-help) !important;
	box-shadow: $button-shadow-hover !important;
}

.p-button.p-button-raised.p-button-danger:hover {
	background: var(--ds-feedback-danger) !important;
	box-shadow: $button-shadow-hover !important;
}