/* Fullscreen loading overlay — única fonte de estilo (central + web). */

.my-loading {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 999999999;
}

.my-loading > .loader {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: inline-block;
	position: absolute;
	left: calc(50vw - 36px);
	top: calc(50vh - 36px);
	border: 5px solid;
	border-color: #2277eb #2277eb transparent transparent;
	box-sizing: border-box;
	animation: kmkzy-loader-rotation 1s linear infinite;
}

.my-loading > .loader::after,
.my-loading > .loader::before {
	content: '';
	box-sizing: border-box;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	border: 5px solid;
	border-color: transparent transparent #4fc035 #4fc035;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	animation: kmkzy-loader-rotation-back 0.5s linear infinite;
	transform-origin: center center;
}

.my-loading > .loader::before {
	width: 48px;
	height: 48px;
	border-color: #d82400 #d82400 transparent transparent;
	animation: kmkzy-loader-rotation 1.5s linear infinite;
}

@keyframes kmkzy-loader-rotation {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

@keyframes kmkzy-loader-rotation-back {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(-360deg); }
}

.my-loading > .progress {
	position: absolute;
	left: calc(50vw - 15%);
	top: calc(50vh + 56px);
	width: 30%;
	height: 25px;
	border-radius: 13px;
	display: none;
}

.my-loading > .progress > .label {
	position: absolute;
	margin: auto;
	width: 100%;
	height: 25px;
	line-height: 25px;
	text-align: center;
	font-weight: bold;
	text-shadow: 0px 2px 2px rgb(255 255 255 / 60%);
}
