* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

::before, ::after {
	box-sizing: border-box;
}

html, body {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	overscroll-behavior-y: contain;
	overflow: hidden;
	position: fixed;
}

body {
	font-family: 'Roboto', sans-serif;
	color: #000000;
	font-size: 16px;
	line-height: 20px;
	font-weight: 400;
}

body.fixed {
	overflow: hidden;
}

.screen_demo {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.screen {
	display: none;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

a {
	color: inherit;
	text-decoration: none;
}

.hover_link {
	transition: color 0.3s ease;
}

img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	image-rendering: optimizeQuality;
    image-rendering: -webkit-optimize-contrast;
}

p:not(:last-child) {
	margin-bottom: 12px;
}

textarea {
	resize: none;
	height: 120px;
	outline: none;
	border: 0;
	background-color: rgba(246, 246, 246, 1);
	font-family: 'Roboto', sans-serif;
	font-weight: 400;
	font-size: 18px;
	line-height: 20px;
	width: 100%;
	&::placeholder {
		font-family: 'Roboto', sans-serif;
		font-weight: 400;
		font-size: 18px;
		line-height: 20px;
	}
}

.button, button {
	display: inline-block;
	transition: all 0.3s ease;
	text-align: center;
	border: 0;
	outline: none;
	cursor: pointer;
	padding: 10px 12px;
	border-radius: 48px;
	font-weight: 700;
	font-size: 14px;
	line-height: 16px;
	background-color: rgba(223, 231, 255, 1);
	color: rgba(14, 52, 223, 1);
	&.icon_button {
		padding-left: 32px;
		position: relative;
		&::before {
			position: absolute;
			content: "";
			width: 16px;
			height: 16px;
			left: 12px;
			top: 50%;
			transform: translateY(-50%);
		}
		&.filter_button::before {
			background: url(../icons/filter.svg) center / contain no-repeat;
		}
		&.add_point::before {
			background: url(../icons/add.svg) center / contain no-repeat;
		}
	}
	&.big_button {
		padding: 14px 20px;
		display: block;
		font-size: 18px;
		line-height: 20px;
		width: 100%;
	}
	&.disabled {
		cursor: default;
		background-color: rgba(246, 246, 246, 1);
		color: #BCBCBC;
	}
	&:disabled {
		cursor: default;
		background-color: rgba(246, 246, 246, 1);
		color: #BCBCBC;
	}
}

.map {
	width: 100%;
	height: 100%;
}

header {
	position: fixed;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	z-index: 2;
	width: 480px;
}

nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px;
	border-radius: 0 0 28px 28px;
	background-color: #ffffff;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
}

.wrap_filter {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	padding: 24px 4px 24px 12px;
	border-radius: 0 0 28px 28px;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	background-color: #ffffff;
	z-index: 1;
	display: none;
}

.filter_content {
	margin-bottom: 24px;
}

.filter {
	margin-bottom: 16px;
}

.title {
	padding: 10px 8px;
	font-weight: 700;
	font-size: 18px;
	line-height: 20px;
}

.row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px;
	min-height: 48px;
	&:not(:last-child) {
		border-bottom: 1px solid rgba(236, 236, 236, 1);
	}
	& .name {
		margin-right: 12px;
		&.slide_text {
			font-weight: 700;
			color: rgba(14, 52, 223, 1);
			cursor: pointer;
		}
	}
	& .val {
		font-weight: 700;
	}
}

.selector {
	width: 44px;
	height: 32px;
	min-width: 44px;
	cursor: pointer;
	position: relative;
	background-color: rgba(246, 246, 246, 1);
	transition: background 0.3s ease;
	border-radius: 48px;
	&::before {
		position: absolute;
		content: "";
		width: 24px;
		height: 24px;
		border-radius: 50%;
		background-color: #ffffff;
		top: 50%;
		transform: translateY(-50%);
		box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
		left: 4px;
		transition: left 0.3s ease;
	}
	&.active {
		background-color: rgba(14, 52, 223, 1);
		&::before {
			left: calc(100% - 28px);
		}
	}
}

.filter_list {
	& .name {
		padding-left: 52px;
		display: flex;
		align-items: center;
		min-height: 32px;
		&.icon_1 {
			background: url(../icons/icon_1.svg) left 8px center / contain no-repeat;
			background-size: 32px 32px;
		}
		&.icon_2 {
			background: url(../icons/icon_2.svg) left 8px center / contain no-repeat;
			background-size: 32px 32px;
		}
		&.icon_3 {
			background: url(../icons/icon_3.svg) left 8px center / contain no-repeat;
			background-size: 32px 32px;
		}
	}
}

.wrap_menu {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	max-height: 100vh;
	overflow: hidden;
	background-color: #ffffff;
	border-radius: 0 0 28px 28px;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	padding: 24px 4px 24px 12px;
	z-index: 1;
	display: none;
	& .big_title {
		padding-right: 50px;
	}
	& .menu_section {
		margin-bottom: 24px;
		& .row:not(.file_container) {
			border-bottom: 1px solid rgba(236, 236, 236, 1);
		}
	}
	& .wrap_type_selector {
		padding: 0 8px;
		margin-bottom: 8px;
	}
	& .type_selector {
		display: flex;
		padding: 8px;
		background-color: rgba(246, 246, 246, 1);
		border-radius: 12px;
		font-size: 14px;
		line-height: 16px;
	}
	& .item_selector {
		flex: 1;
		text-align: center;
		padding: 44px 4px 8px 4px;
		cursor: pointer;
		position: relative;
		border-radius: 8px;
		transition: all 0.3s ease;
		&::before {
			position: absolute;
			content: "";
			width: 32px;
			height: 32px;
			top: 8px;
			left: 50%;
			transform: translateX(-50%);
		}
		&:not(:last-child) {
			margin-right: 4px;
		}
		&.type_1::before {
			background: url(../icons/icon_1.svg) center / contain no-repeat;
		}
		&.type_2::before {
			background: url(../icons/icon_2.svg) center / contain no-repeat;
		}
		&.type_3::before {
			background: url(../icons/icon_3.svg) center / contain no-repeat;
		}
		&.active {
			background-color: #ffffff;
			box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
		}
		&.type_4 {
			padding-top: 36px;
			&::before {
				width: 24px;
				height: 24px;
				background: url(../icons/location.svg) center / contain no-repeat;
			}
		}
		&.type_5 {
			padding-top: 36px;
			&::before {
				width: 24px;
				height: 24px;
				background: url(../icons/map.svg) center / contain no-repeat;
			}
		}
	}
	& .close {
		position: absolute;
		width: 40px;
		height: 40px;
		cursor: pointer;
		background: #ffffff url(../icons/close.svg) center / contain no-repeat;
		background-size: 16px 16px;
		box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
		top: 12px;
		right: 12px;
		border-radius: 12px;
		overflow: hidden;
		z-index: 1;
	}
}

.scroll_wrap {
	max-height: calc(100vh - 48px);
	overflow: hidden;
	overflow-y: auto;
	padding-right: 8px;
}

.authorization_menu {
	text-align: center;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	max-height: 100vh;
	overflow: hidden;
	background-color: #ffffff;
	border-radius: 0 0 28px 28px;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	padding: 24px 4px 12px 12px;
	z-index: 1;
	display: none;
	& .button {
		margin-bottom: 8px;
	}
}

.big_title {
	font-size: 24px;
	line-height: 28px;
	font-weight: 600;
	margin-bottom: 24px;
	padding: 0 8px;
}

.footnote_authorization {
	font-size: 14px;
	line-height: 16px;
	margin-bottom: 24px;
}

.copyright {
	display: block;
	padding: 10px 8px;
	text-align: center;
}

.logo {
	display: block;
	flex-grow: 1;
	height: 44px;
	background: url(../icons/logo_new.svg) center / contain	no-repeat;
}

.map {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

.wrap_text {
	display: none;
	padding: 14px 16px 10px 16px;
	background-color: rgba(246, 246, 246, 1);
	border-radius: 12px;
	width: 100%;
}

.file_container {
	display: block;
	& .item_file {
		display: flex;
		margin: 0 8px 10px 0	;
		& .span {
			word-break: break-word;
            max-width: calc(100% - 16px);
            display: block;
            margin-right: 4px;
		}
		& .del {
			cursor: pointer;
            width: 12px;
            height: 12px;
            background: url(../icons/close.svg) center / contain no-repeat;
			margin-top: 4px;
		}
	}
	& input[type="file"] {
		display: none;
	}
	& .wrap_file {
		width: 100%;
		padding-top: 4px;
	}
	& .name {
		cursor: pointer;
		font-weight: 700;
		color: rgba(14, 52, 223, 1);
		display: block;
		margin-right: 0;
	}
}

.footer_nav {
	display: none;
	position: fixed;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 480px;
	background-color: #ffffff;
	border-radius: 28px 28px 0 0;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	z-index: 2;
	padding: 12px;
	text-align: center;
	font-size: 14px;
	line-height: 16px;
	& .button {
		margin-bottom: 8px;
	}
}

.success_popup {
	display: none;
	position: fixed;
	z-index: 1;
	left: 50%;
	transform: translateX(-50%);
	bottom: 8px;
	padding: 12px 16px;
	border-radius: 28px;
	background-color: #ffffff;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
}

.test_point {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 28px;
	height: 28px;
	cursor: pointer;
	background: #98BE00 url(../icons/icon_1_small.svg) center / contain no-repeat;
	background-size: 16px 16px;
	border: 2px solid #ffffff;
	border-radius: 50%;
}

.point_popup {
	display: none;
	position: fixed;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	background-color: #ffffff;
	border-radius: 28px 28px 0 0;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	max-height: calc(100vh - 116px);
	overflow: hidden;
	width: 480px;
	padding: 24px 0 24px 12px;
	z-index: 2;
	& .scroll_wrap {
		max-height: calc(100vh - 164px);
		padding-right: 12px;
	}
	& .header_popup {
		display: flex;
		align-items: center;
		margin-bottom: 24px;
		padding: 8px;
	}
	& .name {
		margin-right: 12px;
		width: calc(100% - 60px);
		& span {
			display: block;
			margin-bottom: 4px;
			font-weight: 700;
		}
	}
	& .icon {
		width: 48px;
		height: 48px;
	}
	& .big_title {
		margin-bottom: 12px;
	}
	& .slide_content {
		padding-left: 8px;
		padding-right: 8px;
		margin-bottom: 24px;
		& .text {
			margin-bottom: 12px;
			overflow: hidden;
			text-overflow: ellipsis;
			display: -moz-box;
			display: -webkit-box;
			line-clamp: 5;
			box-orient: vertical;
			-moz-box-orient: vertical;
			-webkit-line-clamp: 5;
			-webkit-box-orient: vertical;
			&.active {
				line-clamp: unset;
				-webkit-line-clamp: unset;
			}
		}
	}
	& .toggle_button {
		cursor: pointer;
		font-weight: 700;
		color: #0E34DF;
		display: none;
	}
	.gallery_wrap {
		margin-right: -12px;
		margin-left: -12px;
		padding-left: 12px;
		margin-bottom: 24px;
	}
	& .gallery {
		display: flex;
		flex-wrap: nowrap;
		cursor: col-resize;
	}
	& .item_gallery {
		width: 168px;
		height: 126px;
		min-width: 168px;
		margin-right: 4px;
		user-select: none;
		& img {
			display: block;
			object-fit: cover	;
		}
	}
	& .button {
		margin-bottom: 8px;
	}
	& .foontone_button {
		text-align: center;
	}
	& .success_point {
		border-radius: 12px;
		padding: 10px 20px;
		background-color: #E7FBF1;
		display: none;
	}
	& .text_success {
		text-align: center;
		position: relative;
		padding: 0 40px;
		&::before {
			position: absolute;
			content: "🎉";
			width: 36px;
			height: 36px;
			left: 0;
			top: 50%;
			transform: translateY(-50%);
			font-size: 36px;
			line-height: 36px;
		}
		&::after {
			position: absolute;
			content: "🎉";
			width: 36px;
			height: 36px;
			right: 0;
			top: 50%;
			transform: translateY(-50%);
			font-size: 36px;
			line-height: 36px;
		}
		& span {
			display: block;
			padding: 4px 0;
			font-weight: 700;
			font-size: 18px;
			line-height: 20px;
		}
	}
}

.point {
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 2px solid #ffffff;
	background-size: 16px 16px;
	background: var(--icon_image);
	background-size: 16px 16px;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	&.icon_1 {
		background-color: #98BE00;
	}
	&.icon_2 {
		background-color: #E56D1D;
	}
	&.icon_3 {
		background-color: #402C09;
	}
}

.cluster_icon {
	position: absolute;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ffffff;
	font-weight: 700;
	font-size: 14px;
	line-height: 16px;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	left: -20px;
	top: -40px;
}

.cookie {
	position: fixed;
	left: 8px;
	bottom: 8px;
	padding: 16px;
	background-color: #ffffff;
	box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
	border-radius: 12px;
	max-width: 248px;
	width: 248px;
	font-size: 14px;
	line-height: 16px;
	flex-direction: column;
	align-items: flex-start;
	display: none;
	& .text {
		margin-bottom: 12px;
		& a {
			color: rgba(14, 52, 223, 1);
		}
	}
}

.authorization_nav {
	position: fixed;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	top: 8px;
	right: 8px;
	z-index: 1;
	& .logout {
		border-radius: 12px;
		padding: 10px 16px;
		font-weight: 700;
		box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
		margin-right: 4px;
		background-color: #ffffff;
		display: none;
	}
	& .icon {
		width: 40px;
		height: 40px;
		border-radius: 12px;
		padding: 6px;
		background: #ffffff url(../icons/dog_icon.svg) center / contain no-repeat;
		background-size: 28px 28px;
		box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 2px 1px 0 rgba(0, 0, 0, 0.04);
		cursor: pointer;
	}
}

@media (min-width: 992px) {
    .scroll_wrap {
        &::-webkit-scrollbar-thumb {
            background: rgb(177, 176, 176);
            width: 4px;
            border-radius: 2px;
        }
        &::-webkit-scrollbar {
            background: transparent;
            width: 4px;
        }
    }
    button:not(:disabled), .button:not(.dissabled):hover {
        background-color: rgba(193, 209, 255, 1);
    }
    @-moz-document url-prefix() {
        .scroll_wrap {
            scrollbar-color: rgb(177, 176, 176) transparent;
        }
    }
}

@media (max-width: 992px) {
    header {
        width: 100%;
        top: unset;
        bottom: 0;
		transform: unset;
		left: 0;
    }
    nav {
        border-radius: 28px 28px 0 0;
        padding-bottom: 16px;
    }
    .wrap_menu {
		position: fixed;
        top: unset;
        bottom: 0;
        width: 100%;
        border-radius: 0;
        height: 100%;
    }
    .success_popup {
        bottom: 80px;
    }
    .wrap_filter {
		position: static;
        top: unset;
        border-radius: 28px 28px 0 0;
        max-height: 100%;
    }
    .scroll_wrap {
        max-height: 100%;
    }
    .authorization_menu {
		position: static;
        top: unset;
        bottom: 0;
        border-radius: 28px 28px 0 0;
        max-height: 100%;
    }
    .footer_nav {
        width: 100%;
    }
    .point_popup {
        width: 100%;
        max-height: 100%;
		position: static;
		transform: unset;
		& .scroll_wrap {
			max-height: 100%;
		}
    }
	.wrap_screen {
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		padding-top: 56px;
		display: none;
		flex-direction: column;
		justify-content: flex-end;
		z-index: 2;
	}
	.logo {
		background: url(../icons/logo_new_m.svg) center / contain	no-repeat;
	}
	.cookie {
		bottom: 80px;
		width: calc(100% - 16px);
		max-width: unset;
		flex-direction: row;
		align-items: center;
		& .text {
			margin-bottom: 0;
			margin-right: 8px;
			flex-grow: 1;
		}
	}
}

.user_info {
	margin-bottom: 15px;
	padding: 10px;
	background-color: rgba(246, 246, 246, 0.5);
	border-radius: 12px;
}

.user_info .big_title {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 5px;
}

.user_info .email {
	font-size: 14px;
	color: #666;
	margin-bottom: 5px;
}

.user_info .role {
	font-size: 12px;
	color: #888;
	text-transform: uppercase;
}

.logout_button {
	background-color: #dc3545 !important;
}

.logout_button:hover {
	background-color: #c82333 !important;
}

.filter .selector, .filter_list .row {
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.filter .selector:hover, .filter_list .row:hover {
	opacity: 0.7;
}

.filter_list .row.active {
	opacity: 0.5;
}

.icon_fixed svg {
	width: 20px;
	height: 20px;
	color: #28a745;
}

.filter_list .row.inactive {
	opacity: 0.3;
}

#point-address-manual {  
	width: 100%;
	padding: 10px 15px;
	border-radius: 8px;
	border: 1px solid #ddd;
	font-family: 'Roboto', sans-serif;
	font-size: 16px;
	outline: none;
	transition: border-color 0.3s ease;
}

#point-address-manual:focus {
	border-color: #007bff;
}