javascript:(function(){
	console.log('bookmarklet "meaningful-structure-tags" was called');
	document.querySelectorAll('.bookmarklet_notice_mst').forEach(el => el.remove());
	
	let color_green = '#186839';
	let bg_color_green = '#97e7b9';
	
	let color_red = '#71180e';
	let bg_color_red = '#f4aaa4';
	
	function run_bm_meaningful_structure_tags() {
		let elements = [
			{ selector: 'header', text: 'header' },
			{ selector: 'main', text: 'main' },
			{ selector: 'footer', text: 'footer' },
			{ selector: '[role="banner"]', text: 'role=banner' },
			{ selector: '[role="main"]', text: 'role=main' },
			{ selector: '[role="complementary"]', text: 'role=complementary' }
		];
		
		let quantity_header = 0;
		let quantity_main = 0;
		let quantity_footer = 0;
		let messages = [];
		elements.forEach(({ selector, color, text }) => {
			document.querySelectorAll(selector).forEach(element => {
				let rect = element.getBoundingClientRect();
				let overlay = document.createElement('div');
				
				overlay.className = 'bookmarklet_notice_mst bookmarklet_notice_mst_p';
				overlay.style.position = 'absolute';
				overlay.style.top = `${window.scrollY + rect.top}px`;
				overlay.style.left = `${window.scrollX + rect.left}px`;
				overlay.style.width = `${rect.width}px`;
				overlay.style.height = `${rect.height}px`;
				overlay.style.alignItems = 'center';
				overlay.style.justifyContent = 'center';
				overlay.style.zIndex = '9999';
				overlay.style.fontSize = '36px';
				overlay.style.fontWeight = 'bold';
				overlay.style.border = '4px dashed #211485';
				overlay.style.color = '#2c1bb1';
				overlay.style.textShadow = '2px 2px 1px #160d59';
				overlay.style.letterSpacing = '7px';
				overlay.innerHTML = text;
				
				let overlay_bg = document.createElement('div');
				overlay_bg.className = 'bookmarklet_notice_mst bookmarklet_notice_mst_p';
				overlay_bg.style.position = 'absolute';
				overlay_bg.style.top = `${window.scrollY + rect.top + 4}px`;
				overlay_bg.style.left = `${window.scrollX + rect.left + 4}px`;
				overlay_bg.style.width = `${rect.width}px`;
				overlay_bg.style.height = `${rect.height}px`;
				overlay_bg.style.backgroundColor = '#c3bcf5';
				overlay_bg.style.opacity = '0.4';
				
				document.body.appendChild(overlay);
				document.body.appendChild(overlay_bg);
				messages.push('✔️ Знайдено елемент "'+selector+'".');
				
				if (selector == 'header' || selector == '[role="banner"]') {
					quantity_header++;
				}
				
				if (selector == 'main' || selector == '[role="main"]') {
					quantity_main++;
				}
				
				if (selector == 'footer' || selector == '[role="complementary"]') {
					quantity_footer++;
				}
			});
		});
		
		if (messages.length == 0) {
			bm_meaningful_structure_tags_show_summary('warn', 'Відсутні структурні теги "header", "main", "footer" чи їхні аналоги. Ймовірно, це порушення.');
		} else {
			let status = 'good';
			
			if (quantity_header > 1) {
				status = 'bad';
				messages.unshift('❌ Більше одного header-а');
			}
			
			if (quantity_main > 1) {
				status = 'bad';
				messages.unshift('❌ Більше одного main-а');
			}
			
			if (quantity_footer > 1) {
				status = 'bad';
				messages.unshift('❌ Більше одного footer-а');
			}
			
			let text = messages.join('<br><br>');
			bm_meaningful_structure_tags_show_summary(status, text);
		}
	}
	
	function bm_meaningful_structure_tags_show_summary(status, text, color='#000', bg_color='#eee') {
		if (status == 'good') {
			color = color_green;
			bg_color = bg_color_green;
		} else if (status == 'bad') {
			color = color_red;
			bg_color = bg_color_red;
		} else if (status == 'warn') {
			color = '#825500';
			bg_color = '#fddb9b';
		}
		let statuses = {'good' : '✔️', 'bad' : '❌', 'warn' : '⚠️'};
		status = statuses[status] ?? statuses['warn'];
		let msg = document.createElement('div');
		msg.className = 'bookmarklet_notice_mst';
		msg.style.position = 'fixed';
		msg.style.top = '0';
		msg.style.right = '0';
		msg.style.fontWeight = 'bold';
		msg.style.padding = '10px';
		msg.style.zIndex = '10000';
		msg.style.color = color;
		msg.style.backgroundColor = bg_color;
		msg.innerHTML = `
		<div style="display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start">
			<style>
			.bookmarklet_notice_mst_p:hover {
				background-color: yellow !important;
				color: #000 !important;
				border: 4px dashed red !important;
				opacity: 0.5;
			}
			</style>
			<div>`+status+`</div>
			<div style="margin-left: 10px">`+text+`</div>
			<div style="margin-left: 10px">
				<span role="button" tabindex="0" aria-label="Видалити зі сторінки наслідки застосування букмарклета Області сторінки" onclick="document.querySelectorAll('.bookmarklet_notice_mst').forEach(el => el.remove());" style="cursor: pointer">✖</span>
			</div>
		</div>`;
		document.body.insertBefore(msg, document.body.firstChild);
	}
	
	setTimeout(function(){
		run_bm_meaningful_structure_tags();
	}, 200);
})();