/* ========================================================================
   MineJobs modern contact/application forms
   Compatible with MineJobs Messenger / live-chat buttons
   ===================================================================== */

:root {
	--mjform-primary: #0e6bff;
	--mjform-primary-2: #3d8bff;
	--mjform-text: #111827;
	--mjform-muted: #7b8798;
	--mjform-border: #dde6f5;
	--mjform-soft: #f6f8fc;
	--mjform-soft-2: #eef4ff;
	--mjform-danger: #d64040;
	--mjform-success: #15834f;
	--mjform-shadow: 0 26px 70px rgba(15, 23, 42, .22);
	--mjform-shadow-soft: 0 14px 36px rgba(14, 107, 255, .08);
}

/* Bootstrap modals: apply job, employer message, messenger/send-message variants */
#applyJobModal .modal-dialog,
#employerMsgModal .modal-dialog,
.memberModalLogin .modal-dialog,
.mj-msg-modal .modal-dialog,
.minejobs-message-modal .modal-dialog,
.minejobs-chat-modal .modal-dialog {
	width: min(420px, calc(100vw - 28px));
	max-width: 420px;
	margin: 7vh auto;
}

#applyJobModal .modal-content,
#employerMsgModal .modal-content,
.memberModalLogin .modal-content,
.mj-msg-modal .modal-content,
.minejobs-message-modal .modal-content,
.minejobs-chat-modal .modal-content {
	position: relative;
	border: 0 !important;
	border-radius: 22px !important;
	background: #fff !important;
	box-shadow: var(--mjform-shadow) !important;
	overflow: hidden;
	direction: rtl;
}

#applyJobModal .modal-header,
#employerMsgModal .modal-header,
.memberModalLogin .modal-header,
.mj-msg-modal .modal-header,
.minejobs-message-modal .modal-header,
.minejobs-chat-modal .modal-header {
	position: relative;
	padding: 18px 20px 10px !important;
	border: 0 !important;
	background: #fff;
}

#applyJobModal .modal-header:after,
#employerMsgModal .modal-header:after,
.mj-msg-modal .modal-header:after,
.minejobs-message-modal .modal-header:after,
.minejobs-chat-modal .modal-header:after {
	content: '';
	display: block;
	height: 1px;
	margin-top: 12px;
	background: linear-gradient(90deg, transparent, var(--mjform-border), transparent);
}

#applyJobModal .modal-title,
#employerMsgModal .modal-title,
.memberModalLogin .modal-title,
.mj-msg-modal .modal-title,
.minejobs-message-modal .modal-title,
.minejobs-chat-modal .modal-title {
	margin: 0;
	color: var(--mjform-text);
	font-size: 15px;
	line-height: 1.5;
	font-weight: 950;
	text-align: center !important;
}

#applyJobModal .close,
#employerMsgModal .close,
.memberModalLogin .close,
.mj-msg-modal .close,
.minejobs-message-modal .close,
.minejobs-chat-modal .close {
	position: absolute;
	inset-inline-end: 14px;
	top: 13px;
	z-index: 3;
	width: 30px;
	height: 30px;
	border-radius: 11px;
	background: var(--mjform-soft) !important;
	color: #7d889a !important;
	opacity: 1 !important;
	font-size: 18px;
	line-height: 30px;
	text-shadow: none;
	transition: .18s ease;
}

#applyJobModal .close:hover,
#employerMsgModal .close:hover,
.memberModalLogin .close:hover,
.mj-msg-modal .close:hover,
.minejobs-message-modal .close:hover,
.minejobs-chat-modal .close:hover {
	background: #eaf1ff !important;
	color: var(--mjform-primary) !important;
}

#applyJobModal .modal-body,
#employerMsgModal .modal-body,
.memberModalLogin .modal-body,
.mj-msg-modal .modal-body,
.minejobs-message-modal .modal-body,
.minejobs-chat-modal .modal-body {
	padding: 16px 20px 20px !important;
}

/* Compact top card in modals/forms */
#applyJobModal .modal-body:before,
#employerMsgModal .modal-body:before {
	display: none;
}

/* Form structure */
#apply_job_form,
#contact_company_form,
.resume-contact,
.mj-msg-contact-form-card,
.mj-msg-form,
.minejobs-message-form,
.minejobs-chat-form {
	direction: rtl;
}

#apply_job_form .form-group,
#contact_company_form .form-group,
.resume-contact .form-group,
.mj-msg-form .form-group,
.minejobs-message-form .form-group,
.minejobs-chat-form .form-group {
	margin: 0 0 13px !important;
	padding: 0 !important;
}

#apply_job_form .control-label,
#contact_company_form .control-label,
.resume-contact label,
.mj-msg-form label,
.minejobs-message-form label,
.minejobs-chat-form label {
	display: block;
	margin: 0 0 8px;
	color: var(--mjform-text);
	font-size: 12px;
	line-height: 1.6;
	font-weight: 900;
	text-align: right;
}

#apply_job_form .form-control,
#apply_job_form input[type="text"],
#apply_job_form input[type="email"],
#apply_job_form input[type="url"],
#apply_job_form input[type="tel"],
#apply_job_form select,
#apply_job_form textarea,
#contact_company_form .form-control,
#contact_company_form input[type="text"],
#contact_company_form input[type="email"],
#contact_company_form textarea,
.resume-contact input[type="text"],
.resume-contact input[type="email"],
.resume-contact textarea,
.mj-msg-form input,
.mj-msg-form select,
.mj-msg-form textarea,
.minejobs-message-form input,
.minejobs-message-form select,
.minejobs-message-form textarea,
.minejobs-chat-form input,
.minejobs-chat-form select,
.minejobs-chat-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px !important;
	border: 1px solid var(--mjform-border) !important;
	border-radius: 14px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--mjform-text) !important;
	font-size: 13px;
	font-weight: 700;
	outline: none !important;
	transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

#apply_job_form textarea,
#contact_company_form textarea,
.resume-contact textarea,
.mj-msg-form textarea,
.minejobs-message-form textarea,
.minejobs-chat-form textarea {
	min-height: 132px;
	resize: vertical;
	background: #f7f9fd !important;
}

#apply_job_form input:focus,
#apply_job_form select:focus,
#apply_job_form textarea:focus,
#contact_company_form input:focus,
#contact_company_form textarea:focus,
.resume-contact input:focus,
.resume-contact textarea:focus,
.mj-msg-form input:focus,
.mj-msg-form select:focus,
.mj-msg-form textarea:focus,
.minejobs-message-form input:focus,
.minejobs-message-form select:focus,
.minejobs-message-form textarea:focus,
.minejobs-chat-form input:focus,
.minejobs-chat-form select:focus,
.minejobs-chat-form textarea:focus {
	border-color: rgba(14,107,255,.55) !important;
	box-shadow: 0 0 0 4px rgba(14,107,255,.08) !important;
	background: #fff !important;
}

#apply_job_form .row {
	margin-left: -6px;
	margin-right: -6px;
}

#apply_job_form .row > [class*="col-"] {
	padding-left: 6px;
	padding-right: 6px;
}

#apply_job_form .form-control-flat,
#contact_company_form .form-control-flat {
	position: relative;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

#apply_job_form .form-control-file {
	position: relative;
	display: flex !important;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 !important;
	border: 1px dashed var(--mjform-border) !important;
	border-radius: 14px !important;
	background: #f8fbff !important;
	overflow: hidden;
}

#apply_job_form .form-control-file input[type="text"] {
	border: 0 !important;
	background: transparent !important;
	padding-inline-start: 12px !important;
}

#apply_job_form .form-control-file-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 104px;
	min-height: 46px;
	margin: 0;
	border-radius: 12px;
	background: #eef4ff;
	color: var(--mjform-primary);
	font-size: 12px;
	font-weight: 900;
}

#apply_job_form .help-block {
	margin: 6px 0 0;
	color: var(--mjform-muted);
	font-size: 11px;
	line-height: 1.7;
}

#apply_job_form .noo-ajax-result,
#contact_company_form .noo-ajax-result,
.resume-contact .notice,
.mj-msg-form .noo-ajax-result,
.minejobs-message-form .noo-ajax-result {
	padding: 10px 12px !important;
	border-radius: 14px;
	background: var(--mjform-soft);
	border: 1px solid var(--mjform-border);
	color: var(--mjform-muted);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.8;
}

#apply_job_form .jform-error,
#contact_company_form .jform-error,
.resume-contact .jform-error,
.mj-msg-form .jform-error,
.minejobs-message-form .jform-error {
	display: block;
	margin-top: 6px;
	color: var(--mjform-danger);
	font-size: 11px;
	font-weight: 800;
}

/* Actions */
#apply_job_form .modal-actions,
#contact_company_form .modal-actions,
.resume-contact .modal-actions,
.mj-msg-form .modal-actions,
.minejobs-message-form .modal-actions,
.minejobs-chat-form .modal-actions,
.mj-msg-contact-form-card .mj-msg-contact-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	margin-top: 16px;
}

#apply_job_form .btn-primary,
#contact_company_form .btn-primary,
.resume-contact button,
.mj-msg-open-btn,
.mj-msg-contact-start,
.mj-msg-form .btn-primary,
.minejobs-message-form .btn-primary,
.minejobs-chat-form .btn-primary,
.minejobs-message-form button[type="submit"],
.minejobs-chat-form button[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, var(--mjform-primary), var(--mjform-primary-2)) !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 950;
	box-shadow: 0 14px 28px rgba(14, 107, 255, .22) !important;
	text-decoration: none !important;
	transition: transform .16s ease, box-shadow .16s ease;
}

#apply_job_form .btn-primary:hover,
#contact_company_form .btn-primary:hover,
.resume-contact button:hover,
.mj-msg-open-btn:hover,
.mj-msg-contact-start:hover,
.mj-msg-form .btn-primary:hover,
.minejobs-message-form .btn-primary:hover,
.minejobs-chat-form .btn-primary:hover,
.minejobs-message-form button[type="submit"]:hover,
.minejobs-chat-form button[type="submit"]:hover {
	transform: translateY(-1px);
	box-shadow: 0 18px 34px rgba(14, 107, 255, .26) !important;
}

#applyJobModal .btn-default,
#applyJobModal .btn-secondary,
#employerMsgModal .btn-default,
#employerMsgModal .btn-secondary,
.mj-msg-form .btn-default,
.minejobs-message-form .btn-default,
.minejobs-chat-form .btn-default {
	min-height: 48px;
	padding: 12px 18px !important;
	border-radius: 14px !important;
	border: 1px solid var(--mjform-border) !important;
	background: #fff !important;
	color: var(--mjform-text) !important;
	font-size: 13px;
	font-weight: 900;
}

/* Company contact card converted to messenger */
.noo-company-contact.minejobs-company-messenger-contact {
	margin: 22px 0;
	direction: rtl;
}

.noo-company-contact.minejobs-company-messenger-contact .noo-company-contact-title {
	display: none;
}

.mj-msg-contact-form-card {
	position: relative;
	padding: 22px;
	border-radius: 24px;
	border: 1px solid var(--mjform-border);
	background: #fff;
	box-shadow: var(--mjform-shadow-soft);
	overflow: hidden;
}

.mj-msg-contact-form-card:before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, transparent, var(--mjform-primary), transparent);
}

.mj-msg-contact-form-card h3 {
	margin: 0 0 8px;
	color: var(--mjform-text);
	font-size: 18px;
	font-weight: 950;
}

.mj-msg-contact-form-card p {
	margin: 0 0 16px;
	color: var(--mjform-muted);
	font-size: 13px;
	line-height: 1.95;
	font-weight: 700;
}

.mj-msg-notice {
	padding: 13px 15px;
	border-radius: 16px;
	border: 1px solid #f0d49c;
	background: #fff8e6;
	color: #8a5d00;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.9;
}

/* Employer application details modal */
#employerMsgModal .application-message,
#employerMsgModal .employer-message {
	padding: 14px 15px;
	border-radius: 18px;
	border: 1px solid var(--mjform-border);
	background: var(--mjform-soft);
	line-height: 1.95;
}

#employerMsgModal .application-message p,
#employerMsgModal .employer-message p {
	margin: 0;
	color: var(--mjform-text);
	font-size: 13px;
	line-height: 1.95;
}

#employerMsgModal .custom-fields {
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

#employerMsgModal .custom-fields li {
	margin: 8px 0 0;
	padding: 10px 12px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--mjform-border);
	color: var(--mjform-text);
	font-size: 12px;
	font-weight: 800;
}

.minejobs-application-modal-resume {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-top: 14px;
	padding: 14px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--mjform-border);
}

.minejobs-application-modal-resume__icon {
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: var(--mjform-soft-2);
	color: var(--mjform-primary);
	font-size: 18px;
}

.minejobs-application-modal-resume strong {
	display: block;
	margin: 0 0 7px;
	color: var(--mjform-text);
	font-size: 13px;
	font-weight: 950;
}

.minejobs-application-resume-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 34px;
	padding: 7px 11px;
	border-radius: 999px;
	background: var(--mjform-soft-2);
	border: 1px solid #cfe0ff;
	color: var(--mjform-primary) !important;
	font-size: 12px;
	font-weight: 900;
	line-height: 1.5;
	text-decoration: none !important;
	white-space: normal;
}

.minejobs-application-resume-link:hover {
	background: #e8f1ff;
	color: #075bd9 !important;
}

.minejobs-application-resume-link--compact,
.minejobs-application-resume-link--attachment {
	margin: 4px 3px;
	min-width: 34px;
}

.minejobs-application-resume-link--compact span,
.minejobs-application-resume-link--attachment span {
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.member-manage-actions .minejobs-application-resume-link--compact {
	border-radius: 12px;
	padding: 8px 10px;
}

/* Chat/messenger floating or inline forms: keep neutral and modern */
[class*="mj-msg"] input[type="text"],
[class*="mj-msg"] input[type="email"],
[class*="mj-msg"] textarea,
[class*="minejobs-chat"] input[type="text"],
[class*="minejobs-chat"] input[type="email"],
[class*="minejobs-chat"] textarea {
	border-radius: 14px;
}

@media (max-width: 520px) {
	#applyJobModal .modal-dialog,
	#employerMsgModal .modal-dialog,
	.memberModalLogin .modal-dialog,
	.mj-msg-modal .modal-dialog,
	.minejobs-message-modal .modal-dialog,
	.minejobs-chat-modal .modal-dialog {
		width: calc(100vw - 22px);
		margin: 18px auto;
	}

	#applyJobModal .modal-body,
	#employerMsgModal .modal-body,
	.memberModalLogin .modal-body,
	.mj-msg-modal .modal-body,
	.minejobs-message-modal .modal-body,
	.minejobs-chat-modal .modal-body {
		padding: 14px 16px 18px !important;
	}

	#apply_job_form .row > [class*="col-"] {
		width: 100%;
		margin-bottom: 12px;
	}

	#apply_job_form .modal-actions,
	#contact_company_form .modal-actions,
	.resume-contact .modal-actions,
	.mj-msg-form .modal-actions,
	.minejobs-message-form .modal-actions,
	.minejobs-chat-form .modal-actions,
	.mj-msg-contact-form-card .mj-msg-contact-actions {
		grid-template-columns: 1fr;
	}

	#apply_job_form .btn-primary,
	#contact_company_form .btn-primary,
	.resume-contact button,
	.mj-msg-open-btn,
	.mj-msg-contact-start,
	.mj-msg-form .btn-primary,
	.minejobs-message-form .btn-primary,
	.minejobs-chat-form .btn-primary,
	.minejobs-message-form button[type="submit"],
	.minejobs-chat-form button[type="submit"] {
		width: 100%;
	}
}

.mj-msg-contact-form-card__top {
	margin-bottom: 16px;
	padding: 12px;
	border-radius: 18px;
	border: 1px solid var(--mjform-border);
	background: linear-gradient(180deg, #fff 0%, #fafcff 100%);
}

.mj-msg-contact-form-card__identity {
	display: flex;
	align-items: center;
	gap: 12px;
}

.mj-msg-contact-form-card__avatar {
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: #eef4ff;
	overflow: hidden;
}

.mj-msg-contact-form-card__avatar img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	border-radius: inherit;
}

.mj-msg-contact-form-card__identity strong {
	display: block;
	margin-bottom: 3px;
	color: var(--mjform-text);
	font-size: 14px;
	font-weight: 950;
}

.mj-msg-contact-form-card__identity small {
	display: block;
	color: var(--mjform-muted);
	font-size: 11px;
	line-height: 1.8;
	font-weight: 750;
}

/* Modern application modal extra structure */
.mj-apply-job-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	margin-bottom: 14px;
	border-radius: 16px;
	border: 1px solid var(--mjform-border);
	background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}

.mj-apply-job-card__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--mjform-border);
	overflow: hidden;
}

.mj-apply-job-card__logo img {
	max-width: 36px;
	max-height: 36px;
	object-fit: contain;
}

.mj-apply-job-card strong {
	display: block;
	color: var(--mjform-text);
	font-size: 13px;
	font-weight: 950;
	line-height: 1.7;
}

.mj-apply-job-card span {
	display: block;
	margin-top: 2px;
	color: var(--mjform-muted);
	font-size: 11px;
	font-weight: 800;
}

.mj-apply-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.mj-apply-grid--files {
	margin-top: 2px;
}

.mj-apply-form .form-group.required-field .control-label:after {
	content: ' *';
	color: var(--mjform-danger);
}

.mj-apply-file .form-control-file {
	display: grid !important;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 8px;
	align-items: center;
	min-height: 48px;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

.mj-apply-file .form-control-file-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	height: 44px;
	border-radius: 13px;
	background: var(--mjform-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}

.mj-apply-actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin-top: 14px !important;
}

.mj-apply-actions .btn-primary {
	width: 100%;
	min-height: 50px;
	border-radius: 16px !important;
	background: linear-gradient(135deg, var(--mjform-primary), var(--mjform-primary-2)) !important;
	box-shadow: 0 14px 30px rgba(14, 107, 255, .22) !important;
}

.mj-apply-empty {
	padding: 18px;
	border-radius: 18px;
	background: var(--mjform-soft);
	border: 1px dashed var(--mjform-border);
	text-align: center;
}

.mj-apply-empty h4 {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.9;
	font-weight: 900;
	color: var(--mjform-text);
}

@media (max-width: 520px) {
	.mj-apply-grid,
	.mj-apply-file .form-control-file {
		grid-template-columns: 1fr;
	}
}
