.tp-users-login-form label,
.tp-users-register-form label,
.tp-users-profile-form label {
	display: block;
	text-align: left;
	text-justify: left;
}

.tp-password-requirements {
	display: block;
	margin-top: 6px;
	font-size: 0.9em;
	line-height: 1.4;
	color: #555;
	text-align: left;
}

.tp-users-profile-form {
	width: 100%;
	color: #3f485a;
}

.tp-profile-layout {
	display: grid;
	grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
	min-height: 640px;
	border: 1px solid #dfe4ea;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.tp-profile-sidebar {
	padding: 28px 26px;
	border-right: 1px solid #dfe4ea;
	background: #fbfcfd;
}

.tp-profile-main {
	padding: 28px 26px;
}

.tp-profile-sidebar h2,
.tp-profile-section h2 {
	margin: 0 0 24px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: #333c4f;
}

.tp-profile-section + .tp-profile-section {
	margin-top: 28px;
}

.tp-profile-photo-card {
	position: relative;
	aspect-ratio: 1 / 0.85;
	margin-bottom: 16px;
	border-radius: 8px;
	background: #f0ded9;
	overflow: hidden;
}

.tp-profile-photo-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tp-profile-photo-card--pending {
	outline: 3px solid rgba(80, 125, 190, 0.22);
}

.tp-profile-photo-preview-status {
	position: absolute;
	left: 14px;
	bottom: 14px;
	padding: 6px 10px;
	border-radius: 999px;
	background: rgba(34, 43, 58, 0.78);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.tp-profile-remove-photo {
	position: absolute;
	top: 22px;
	right: 22px;
	display: grid !important;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	max-width: 44px;
	max-height: 44px;
	aspect-ratio: 1 / 1;
	place-items: center;
	box-sizing: border-box;
	border-radius: 999px;
	background: rgba(76, 65, 63, 0.32);
	color: #fff;
	cursor: pointer;
	border: 0;
	padding: 0;
	margin: 0;
	line-height: 1;
	appearance: none;
	-webkit-appearance: none;
}

.tp-profile-remove-photo[hidden] {
	display: none !important;
}

.tp-profile-remove-photo span[aria-hidden="true"] {
	font-size: 30px;
	line-height: 1;
}

.tp-profile-upload-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 16px;
	border: 1px solid #d7dde5;
	border-radius: 6px;
	background: #fff;
	font-weight: 700;
	font-size: 14px;
	color: #3f485a;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(20, 30, 45, 0.04);
}

.tp-profile-file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.tp-profile-password-panel {
	display: grid;
	gap: 18px;
	margin-top: 34px;
}

.tp-profile-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 22px;
}

.tp-profile-field {
	min-width: 0;
}

.tp-profile-field--full {
	grid-column: 1 / -1;
}

.tp-profile-field label {
	display: block;
	margin-bottom: 10px;
	padding-left: 14px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: #697386;
}

.tp-profile-field .input-text,
.tp-profile-field input[type="text"],
.tp-profile-field input[type="email"],
.tp-profile-field input[type="url"],
.tp-profile-field input[type="number"],
.tp-profile-field input[type="password"],
.tp-profile-field textarea {
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 11px 14px;
	border: 1px solid #d7dde5;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(20, 30, 45, 0.04);
	color: #566174;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.tp-profile-field textarea {
	min-height: 150px;
	resize: vertical;
}

.tp-profile-field input:focus,
.tp-profile-field textarea:focus {
	border-color: #8aa4c8;
	box-shadow: 0 0 0 3px rgba(80, 125, 190, 0.14);
	outline: none;
}

.tp-profile-field input:disabled {
	background: #fbfcfd;
	color: #7d8797;
	cursor: not-allowed;
}

.tp-profile-actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 28px;
}

.tp-profile-actions .button {
	min-height: 46px;
	padding: 10px 22px;
	border-radius: 6px;
	font-weight: 700;
}

@media (max-width: 860px) {
	.tp-profile-layout {
		grid-template-columns: 1fr;
	}

	.tp-profile-sidebar {
		border-right: 0;
		border-bottom: 1px solid #dfe4ea;
	}
}

@media (max-width: 640px) {
	.tp-profile-layout {
		border-radius: 0;
		border-right: 0;
		border-left: 0;
	}

	.tp-profile-sidebar,
	.tp-profile-main {
		padding: 22px 16px;
	}

	.tp-profile-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.tp-profile-actions {
		justify-content: stretch;
	}

	.tp-profile-actions .button {
		width: 100%;
	}
}
