/**
 * Job listing sidebar filters: job alerts placement + salary from/to.
 */

/* Job alerts at the bottom of the sidebar */
.listin-filters-sidebar .job-alerts-sec {
	margin-top: 20px;
	margin-bottom: 12px;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	background-color: #fff;
	overflow: hidden;
}

.listin-filters-sidebar .job-alerts-sec .email-me-top,
.listin-filters-sidebar .job-alerts-sec .jobsearch-search-filter-wrap {
	float: none;
	width: 100%;
	margin: 0;
	border: 0;
	box-shadow: none;
}

.listin-filters-sidebar .job-alerts-sec .email-jobs-top,
.listin-filters-sidebar .job-alerts-sec .jobsearch-typo-wrap .email-jobs-top {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 12px 16px !important;
	background-color: #fff !important;
	color: #0d3b5e !important;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	text-transform: none;
	border: 0;
	border-radius: 0;
}

.listin-filters-sidebar .job-alerts-sec .email-jobs-top i,
.listin-filters-sidebar .job-alerts-sec .jobsearch-typo-wrap .email-jobs-top i {
	margin-right: 8px;
	color: #0a65fc !important;
}

.listin-filters-sidebar .job-alerts-sec .jobsearch-search-filter-wrap {
	padding: 0 !important;
}

.listin-filters-sidebar .job-alerts-sec .jobsearch-search-filter-wrap .job-alert-container-top {
	padding: 0 16px 16px;
}

/* Filter cards: contain floated header/body (fixes collapsed 16px height bug) */
.listin-filters-sidebar .jobsearch-search-filter-wrap {
	display: flow-root;
	float: none;
	width: 100%;
	box-sizing: border-box;
}

.listin-filters-sidebar .jobsearch-search-filter-wrap .jobsearch-fltbox-title,
.listin-filters-sidebar .jobsearch-search-filter-wrap .jobsearch-checkbox-toggle {
	float: none;
	width: 100%;
}

.listin-filters-sidebar .jobsearch-search-filter-wrap.jobsearch-remove-padding {
	padding-bottom: 0;
}

/* Salary filter: expanded by default */
.listin-filters-sidebar .jobsearch-filter-responsive-wrap:has(.rework-salary-range-inputs) > .jobsearch-search-filter-wrap {
	padding-bottom: inherit;
}

.listin-filters-sidebar .jobsearch-filter-responsive-wrap:has(.rework-salary-range-inputs) > .jobsearch-search-filter-wrap.jobsearch-remove-padding {
	padding-bottom: inherit;
}

.listin-filters-sidebar .jobsearch-filter-responsive-wrap:has(.rework-salary-range-inputs) .jobsearch-checkbox-toggle {
	display: block !important;
}

/* Salary filter: from/to inputs first, period toggle below */
.jobsearch-checkbox-toggle:has(.rework-salary-range-inputs) {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.jobsearch-checkbox-toggle:has(.rework-salary-range-inputs) .rework-salary-range-inputs {
	order: 1;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 10px;
	width: 100%;
	float: none;
	padding: 0;
	margin: 0 0 4px;
}

/* Override wp-jobsearch .salary-input { float:left; width:50%; padding-left:10px } */
.rework-salary-range-inputs.salary-input,
.rework-salary-range-inputs.salary-input-fordev {
	float: none;
	width: 100%;
	padding-left: 0;
}

.rework-salary-range-inputs .min-salary,
.rework-salary-range-inputs .max-salary {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 1 0;
	min-width: 0;
	float: none;
	width: auto;
	padding: 0 !important;
	margin: 0;
}

.rework-salary-range-inputs .max-salary {
	padding-left: 0 !important;
	padding-top: 0;
}

/* Override wp-jobsearch .salary-input span (absolute right label) */
.rework-salary-range-inputs .min-salary span,
.rework-salary-range-inputs .max-salary span {
	display: none !important;
}

.rework-salary-range-inputs input[type="number"] {
	display: block;
	width: 100%;
	height: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.2;
	box-sizing: border-box;
	margin: 0;
}

.rework-salary-range-inputs input[type="number"]:focus {
	border-color: #1869ba;
	outline: none;
}

.rework-salary-range-inputs--error input[type="number"] {
	border-color: #d63638;
}

.rework-salary-range-inputs.rework-salary-range-inputs--error::after {
	content: "Значение «От» не может быть больше «До»";
	display: block;
	width: 100%;
	margin-top: 6px;
	font-size: 12px;
	color: #d63638;
	order: 3;
}

.jobsearch-checkbox-toggle:has(.rework-salary-range-inputs) .jobsearch-salary-types-filter {
	order: 2;
	float: none;
	width: 100%;
	margin: 0 0 6px;
	padding-top: 4px;
	padding-bottom: 22px;
}

/* Salary period toggles: space from filter card bottom edge */
.listin-filters-sidebar .jobsearch-search-filter-wrap:has(.jobsearch-salary-types-filter) {
	padding-bottom: 22px !important;
}

.listin-filters-sidebar .jobsearch-search-filter-wrap:has(.jobsearch-salary-types-filter).jobsearch-remove-padding {
	padding-bottom: 22px !important;
}

.listin-filters-sidebar .jobsearch-search-filter-wrap:has(.jobsearch-salary-types-filter) .jobsearch-checkbox-toggle {
	padding-bottom: 22px;
}

.listin-filters-sidebar .jobsearch-salary-types-filter {
	margin-bottom: 0;
	padding-bottom: 22px;
}

/* Hide legacy preset salary buckets */
.rework-salary-range-inputs ~ .salarytypes-rangelist-con,
.rework-salary-range-inputs ~ ul.jobsearch-checkbox {
	display: none !important;
}

/* Location "Обновить" — redundant on mobile; apply via "Готово" drawer close */
@media (max-width: 991px) {
	.listin-filters-sidebar .onsubmit-apilocs-con {
		display: none !important;
	}
}

/* ============================================================
   Mobile filter drawer (/vakansii/ and all job listings ≤991px)
   ============================================================ */
@media (max-width: 991px) {
	.listin-filters-sidebar {
		position: fixed;
		left: -100%;
		top: 0;
		display: flex;
		flex-direction: column;
		width: min(360px, 92vw) !important;
		max-width: 92vw;
		height: 100dvh;
		padding: 0 !important;
		margin: 0;
		background-color: #fff;
		z-index: 10000;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		box-shadow: 4px 0 24px rgba(0, 0, 0, 0.14);
		transition: left 0.35s ease, opacity 0.35s ease, visibility 0.35s ease;
		-webkit-overflow-scrolling: touch;
	}

	.listin-filters-sidebar.active-filters-con {
		left: 0;
		opacity: 1;
		visibility: visible;
	}

	.listin-filters-sidebar.rework-mob-filters-dragging {
		transition: none !important;
		will-change: transform;
	}

	.listin-filters-sidebar.rework-mob-filters-swiping {
		transition: transform 0.26s ease, opacity 0.26s ease !important;
	}

	.rework-mob-filters-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-shrink: 0;
		gap: 12px;
		padding: calc(12px + env(safe-area-inset-top, 0px)) 16px 12px;
		border-bottom: 1px solid #e8ecef;
		background: #fff;
		touch-action: none;
	}

	.rework-mob-filters-title {
		margin: 0;
		font-size: 18px;
		font-weight: 600;
		line-height: 1.2;
		color: #0d3b5e;
	}

	.rework-mob-filters-done {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		padding: 8px 16px;
		border: 0;
		border-radius: 10px;
		background-color: #0a65fc;
		color: #fff;
		font-size: 15px;
		font-weight: 600;
		cursor: pointer;
		white-space: nowrap;
	}

	.rework-mob-filters-done:focus {
		outline: 2px solid #0a65fc;
		outline-offset: 2px;
	}

	.rework-mob-filters-body {
		flex: 1;
		overflow-x: hidden;
		overflow-y: auto;
		padding: 12px 16px calc(24px + env(safe-area-inset-bottom, 0px));
		-webkit-overflow-scrolling: touch;
		touch-action: pan-y;
		overscroll-behavior-y: contain;
	}

	.mobfiltrs-openrbtn-con {
		display: block !important;
		position: fixed !important;
		right: 16px !important;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		height: auto !important;
		transform: none !important;
		z-index: 9999 !important;
		pointer-events: none;
	}

	.mobfiltrs-openrbtn-con a.open-listin-mobfiltrs,
	.mobfiltrs-openrbtn-con button.open-listin-mobfiltrs {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 52px;
		height: 52px;
		min-width: 52px;
		padding: 0 !important;
		border: 0;
		border-radius: 50% !important;
		background-color: #0a65fc !important;
		color: #fff !important;
		float: none !important;
		font-size: 22px;
		cursor: pointer;
		box-shadow: 0 6px 20px rgba(10, 101, 252, 0.4);
		pointer-events: auto;
	}

	.mobfiltrs-openrbtn-con a.open-listin-mobfiltrs .fa,
	.mobfiltrs-openrbtn-con button.open-listin-mobfiltrs .fa {
		font-size: 22px;
		line-height: 1;
	}

	.jobsearch-mob-filters-backdrop {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 9998;
		background: rgba(13, 59, 94, 0.45);
		-webkit-tap-highlight-color: transparent;
		touch-action: none;
	}

	.jobsearch-mob-filters-backdrop.rework-mob-filters-backdrop-fading {
		transition: opacity 0.26s ease;
	}

	body.jobsearch-mob-filters-open {
		overflow: hidden;
		overscroll-behavior: none;
	}

	body.jobsearch-mob-filters-open .jobsearch-mob-filters-backdrop {
		display: block;
	}

	body.jobsearch-mob-filters-open .mobfiltrs-openrbtn-con {
		display: none;
	}

	.listin-filters-sidebar .jobsearch-filter-responsive-wrap {
		width: 100% !important;
		margin-bottom: 0;
	}

	.listin-filters-sidebar .jobsearch-search-filter-wrap {
		float: none;
		width: 100%;
		padding: 0 14px 14px;
		margin-bottom: 12px !important;
		border: 1px solid #e8ecef;
		border-radius: 12px;
		box-shadow: none;
		background-color: #fff;
	}

	.listin-filters-sidebar .jobsearch-search-filter-wrap.jobsearch-remove-padding {
		padding-bottom: 0;
	}

	.listin-filters-sidebar .jobsearch-fltbox-title {
		float: none;
		width: 100%;
	}

	.listin-filters-sidebar .jobsearch-fltbox-title a {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: 10px 0;
		font-size: 15px;
		font-weight: 600;
		color: #0d3b5e;
		line-height: 1.3;
	}

	.listin-filters-sidebar .jobsearch-checkbox-toggle .jobsearch-checkbox {
		display: block !important;
		float: none;
		width: 100%;
		margin: 0;
	}

	.listin-filters-sidebar .jobsearch-checkbox li {
		display: flex !important;
		align-items: center;
		width: 100% !important;
		min-height: 44px;
		margin-bottom: 4px;
		gap: 8px;
	}

	.listin-filters-sidebar .jobsearch-checkbox li label {
		flex: 1;
		min-width: 0;
		overflow-wrap: anywhere;
		line-height: 1.35;
	}

	.listin-filters-sidebar .no-filter-counts input[type="radio"] + label,
	.listin-filters-sidebar .jobsearch-checkbox input[type="radio"] + label,
	.listin-filters-sidebar .jobsearch-checkbox input[type="checkbox"] + label {
		display: flex !important;
		align-items: center;
		width: auto !important;
		box-sizing: border-box;
	}

	.listin-filters-sidebar .jobsearch-checkbox li .filter-post-count {
		flex-shrink: 0;
		margin-left: auto;
	}

	.listin-filters-sidebar [class*="jobsearch-column-"] {
		width: 100% !important;
		float: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.listin-filters-sidebar .jobsearch-row,
	.listin-filters-sidebar .jobsearch-employer-profile-form {
		display: block !important;
	}

	.listin-filters-sidebar .jobsearch-search-box input[type="text"],
	.listin-filters-sidebar .jobsearch-profile-select select,
	.listin-filters-sidebar .jobsearch-apiloc-ac-input input[type="text"],
	.listin-filters-sidebar .rework-salary-range-inputs input[type="number"] {
		height: 44px;
		min-height: 44px;
		border-radius: 8px;
		font-size: 15px;
	}

	.listin-filters-sidebar .onsubmit-apilocs-con a,
	.listin-filters-sidebar .depdrpdwn-form-submitbtn {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		margin-top: 10px;
		border-radius: 10px;
		font-size: 15px;
		font-weight: 600;
	}

	.listin-filters-sidebar .jobsearch-salary-types-filter {
		float: none;
		width: 100%;
		margin-bottom: 6px;
		padding-bottom: 22px;
	}

	.listin-filters-sidebar .jobsearch-salary-types-filter ul {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.listin-filters-sidebar .jobsearch-salary-types-filter ul li {
		float: none;
		flex: 1 1 calc(50% - 4px);
		min-width: 0;
		width: auto !important;
		margin: 0;
	}

	.listin-filters-sidebar .salary-type-radio input[type="radio"] + label {
		width: 100%;
		min-height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 8px;
	}
}

@media (min-width: 992px) {
	.rework-mob-filters-header {
		display: none !important;
	}

	.rework-mob-filters-body {
		padding: 0;
		overflow: visible;
	}
}
