/*
 * Tutoritaliana – katalog kursów 4×4
 * Warstwa naprawcza dla redesignu 1.5.12.
 */

/* Paginacja nie może wrócić po ponownym wyrenderowaniu filtrów przez Tutor. */
.ti-course-shop-enhanced .tutor-pagination,
.ti-course-shop-enhanced .ti-course-catalog-pagination,
body .tutor-wrap .tutor-pagination.ti-katalog-pagination-hidden,
body .tutor-wrap nav.tutor-pagination.ti-katalog-pagination-hidden {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/*
 * W wersji 1.0.0 ten wrapper został omyłkowo potraktowany jak paginacja.
 * W rzeczywistości Tutor przechowuje w nim również listę kursów, dlatego
 * przywracamy go nawet wtedy, gdy stara wersja zostawiła style inline.
 */
.ti-course-shop-enhanced .tutor-pagination-wrapper-replaceable,
.course-archive-page.tutor-courses-wrap .tutor-pagination-wrapper-replaceable,
.tutor-course-archive-page .tutor-pagination-wrapper-replaceable,
.tutor-course-list-page .tutor-pagination-wrapper-replaceable {
	display: block !important;
	visibility: visible !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	margin: initial !important;
	padding: initial !important;
	overflow: visible !important;
}

/*
 * Wyszukiwarka 1.5.12: wyłączamy niestabilne pole-proxy i odsłaniamy
 * oryginalny formularz Tutor LMS. Dzięki temu AJAX może podmieniać listę
 * kursów bez usuwania aktywnego inputa i bez utraty fokusa.
 */
body .ti-course-catalog-search,
body .ti-course-catalog-search[hidden] {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

body .ti-course-search-source-wrap.ti-katalog-native-search-wrap,
body .ti-course-shop-enhanced .ti-course-search-wrap.ti-katalog-native-search-wrap {
	position: relative !important;
	inset: auto !important;
	clip: auto !important;
	clip-path: none !important;
	display: block !important;
	visibility: visible !important;
	width: 100% !important;
	max-width: 390px !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 8px 0 14px !important;
	padding: 0 !important;
	overflow: visible !important;
	white-space: normal !important;
	opacity: 1 !important;
	pointer-events: auto !important;
}

body .ti-course-search-source-wrap .ti-katalog-native-search-input,
body .ti-course-shop-enhanced .ti-katalog-native-search-input {
	display: block !important;
	visibility: visible !important;
	width: 100% !important;
	opacity: 1 !important;
	pointer-events: auto !important;
}

/* Po usunięciu proxy pasek zawiera już tylko natywne kontrolki slidera. */
body .ti-course-catalog-toolbar {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 10px !important;
}

body .ti-course-catalog-toolbar .ti-course-slider-controls {
	grid-column: auto !important;
	margin-left: auto !important;
}

@media (min-width: 1181px) {
	/*
	 * Pełna deklaracja gridu celowo ma większą specyficzność niż .tutor-grid-3.
	 * JS usuwa tę klasę, a CSS stanowi dodatkowe zabezpieczenie.
	 */
	body .ti-course-shop-enhanced .tutor-course-list.tutor-grid.ti-course-slider-track,
	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 {
		display: grid !important;
		grid-template-columns: repeat(4, calc(25% - 13.5px)) !important;
		grid-template-rows: repeat(4, minmax(0, auto)) !important;
		grid-auto-flow: column !important;
		grid-auto-columns: calc(25% - 13.5px) !important;
		column-gap: 18px !important;
		row-gap: 18px !important;
		align-items: stretch !important;
		align-content: start !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 4px 2px 18px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-behavior: smooth;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
		scrollbar-color: rgba(0, 90, 1, 0.42) transparent;
	}

	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 > .ti-katalog-course-cell,
	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 > .ti-course-slide {
		box-sizing: border-box !important;
		align-self: stretch !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0 !important;
		flex: none !important;
		scroll-snap-align: start;
	}

	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 > .ti-katalog-course-cell > .tutor-course-card,
	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 > .ti-katalog-course-cell.tutor-course-card {
		height: 100% !important;
	}
}

/* Na telefonie pozostaje układ 1×1 z poziomym przesuwaniem z wersji 1.5.12. */
@media (max-width: 1180px) {
	body .tutor-wrap .tutor-course-list.ti-katalog-grid-4x4 {
		display: flex !important;
		flex-flow: row nowrap !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
	}
}

/* Prezentacja kursu: Informacje, Recenzje i kompaktowe menu „Więcej”. */
body .tutor-course-details-tab,
body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs {
	overflow: visible !important;
}

body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs {
	display: grid !important;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.82fr) auto !important;
	grid-template-rows: minmax(0, auto) !important;
	align-items: stretch !important;
	gap: 6px !important;
	height: auto !important;
	min-height: 0 !important;
	padding: 4px !important;
}

body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-course-tab-primary {
	display: flex !important;
	position: relative !important;
	flex: none !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
}

body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-course-tab-primary > :is(a, button, [role="tab"]) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 42px !important;
	padding: 7px 10px !important;
	font-weight: 700 !important;
	font-style: italic !important;
	line-height: 1.18 !important;
	text-align: center !important;
}

body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-course-tab-overflow-source,
body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-hide-duplicate-course-more,
body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-katalog-native-more-hidden {
	display: none !important;
}

body .tutor-course-details-tab .ti-course-tabs-more {
	display: block !important;
	position: relative !important;
	flex: none !important;
	width: auto !important;
	min-width: 104px !important;
	margin: 0 !important;
	overflow: visible !important;
}

body .tutor-course-details-tab .ti-course-tabs-more-toggle {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 7px !important;
	width: 100% !important;
	min-height: 42px !important;
	padding: 7px 12px !important;
	color: #173e1a !important;
	font: inherit !important;
	font-weight: 700 !important;
	font-style: italic !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	cursor: pointer;
}

body .tutor-course-details-tab .ti-course-tabs-more-toggle::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 160ms ease;
}

body .tutor-course-details-tab .ti-course-tabs-more.is-open .ti-course-tabs-more-toggle::after {
	transform: translateY(2px) rotate(225deg);
}

body .tutor-course-details-tab .ti-course-tabs-more:is(.is-active, .is-open) .ti-course-tabs-more-toggle,
body .tutor-course-details-tab .ti-course-tabs-more-toggle:hover,
body .tutor-course-details-tab .ti-course-tabs-more-toggle:focus-visible {
	color: #fff !important;
	background: #006400 !important;
}

body .tutor-course-details-tab .ti-course-tabs-more-menu {
	display: grid !important;
	position: absolute !important;
	z-index: 10050 !important;
	top: calc(100% + 8px) !important;
	right: 0 !important;
	left: auto !important;
	gap: 5px !important;
	width: min(250px, calc(100vw - 40px)) !important;
	height: auto !important;
	margin: 0 !important;
	padding: 8px !important;
	list-style: none !important;
	background: #fdecdc !important;
	border: 1px solid rgba(0, 90, 1, 0.28) !important;
	border-radius: 15px !important;
	box-shadow: 0 12px 32px rgba(27, 46, 28, 0.18) !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-5px);
	transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

body .tutor-course-details-tab .ti-course-tabs-more.is-open .ti-course-tabs-more-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

body .tutor-course-details-tab .ti-course-tabs-more-menu button {
	display: flex !important;
	align-items: center !important;
	width: 100% !important;
	min-height: 40px !important;
	padding: 8px 12px !important;
	color: #c63d1d !important;
	font: inherit !important;
	font-weight: 700 !important;
	font-style: italic !important;
	text-align: left !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 10px !important;
	cursor: pointer;
}

body .tutor-course-details-tab .ti-course-tabs-more-menu button:is(:hover, :focus-visible, .is-active) {
	color: #fff !important;
	background: #c63d1d !important;
}

@media (max-width: 520px) {
	body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.8fr) 88px !important;
	}

	body .tutor-course-details-tab .ti-course-tabs-more {
		min-width: 88px !important;
	}

	body .tutor-course-details-tab .tutor-nav.ti-compact-course-tabs > .ti-course-tab-primary > :is(a, button, [role="tab"]),
	body .tutor-course-details-tab .ti-course-tabs-more-toggle {
		padding-inline: 7px !important;
		font-size: 13px !important;
	}
}

/* Powielony link quizu w programie kursu – zostaje pierwszy egzemplarz. */
body .ti-katalog-duplicate-curriculum-item {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Wszystkie panele lekcji: Przegląd, Pliki, Komentarze i Notatki. */
body .tutor-lesson-content-tab .tutor-tabs-content > .ti-katalog-tab-panel-active {
	display: block !important;
	visibility: visible !important;
	width: 100% !important;
	height: auto !important;
	min-height: 120px !important;
	max-height: none !important;
	opacity: 1 !important;
	overflow: visible !important;
}

body .tutor-lesson-content-tab .tutor-tabs-content > .ti-katalog-tab-panel-inactive {
	display: none !important;
	visibility: hidden !important;
}

/*
 * Pogrubiona kursywa jest dziedziczona z możliwie wysokiego poziomu całej
 * platformy Tutor. Reguła potomna usuwa lokalne font-weight: 400/500 z Core,
 * a ikony pozostają w kroju wymaganym przez ich font lub SVG.
 */
body :is(
	.tutor-wrap,
	.tutor-dashboard,
	.tutor-course-single-content-wrapper,
	.tutor-course-details-page,
	.tutor-learning-sidebar,
	.tutor-modal,
	.tutor-popover
) {
	font-weight: 700 !important;
	font-style: italic !important;
}

body :is(
	.tutor-wrap,
	.tutor-dashboard,
	.tutor-course-single-content-wrapper,
	.tutor-course-details-page,
	.tutor-learning-sidebar,
	.tutor-modal,
	.tutor-popover
) :where(*) {
	font-weight: inherit !important;
	font-style: inherit !important;
}

body :is(
	.tutor-wrap,
	.tutor-dashboard,
	.tutor-course-single-content-wrapper,
	.tutor-course-details-page,
	.tutor-learning-sidebar,
	.tutor-modal,
	.tutor-popover
) :is(svg, svg *, [class^="tutor-icon-"], [class*=" tutor-icon-"], .tutor-icon, i) {
	font-weight: 400 !important;
	font-style: normal !important;
}

/* Widoczna i użyteczna lista Plików ćwiczeń także po mieszanej aktualizacji. */
body .tutor-lesson-exercise-files,
body .tutor-lesson-exercise-files > .tutor-grid {
	visibility: visible !important;
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
	opacity: 1 !important;
}

body .tutor-lesson-exercise-files > .tutor-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
	overflow: visible !important;
}

body .tutor-lesson-exercise-files .tutor-attachment-card {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	min-height: 82px !important;
	padding: 14px !important;
	background: #fdecdc !important;
	visibility: visible !important;
	opacity: 1 !important;
}

body .tutor-lesson-exercise-files .tutor-attachment-card-body {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}

body .tutor-lesson-exercise-files .tutor-attachment-card-title {
	overflow-wrap: anywhere !important;
}

body .tutor-lesson-exercise-files .ti-katalog-exercise-download {
	white-space: nowrap !important;
}

body .tutor-lesson-exercise-files .ti-katalog-exercise-empty {
	margin: 16px 0 0 !important;
	padding: 16px !important;
	border: 1px solid rgba(0, 90, 1, 0.24) !important;
	border-radius: 10px !important;
	background: #fdecdc !important;
	color: #174d1b !important;
}

@media (max-width: 767px) {
	body .tutor-lesson-exercise-files > .tutor-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body .tutor-lesson-exercise-files .tutor-attachment-card {
		align-items: flex-start !important;
		flex-wrap: wrap !important;
	}

	body .tutor-lesson-exercise-files .tutor-attachment-card-actions {
		width: 100% !important;
	}

	body .tutor-lesson-exercise-files .ti-katalog-exercise-download {
		width: 100% !important;
		justify-content: center !important;
	}
}

body .tutor-lesson-content-tab.ti-katalog-notes-active .ti-katalog-notes-panel {
	display: block !important;
	visibility: visible !important;
	width: 100% !important;
	height: auto !important;
	min-height: 140px !important;
	max-height: none !important;
	opacity: 1 !important;
	overflow: visible !important;
}

body .tutor-lesson-content-tab.ti-katalog-notes-active .tutor-learning-area-notes {
	display: block !important;
	visibility: visible !important;
	width: 100% !important;
	height: auto !important;
	min-height: 140px !important;
	opacity: 1 !important;
}

body .ti-katalog-notes-empty-state {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 14px !important;
	min-height: 140px !important;
	padding: 24px !important;
	color: #174d1b !important;
	background: #fdecdc !important;
	text-align: center !important;
}

body .ti-katalog-notes-empty-state p {
	margin: 0 !important;
	font-weight: 700 !important;
	font-style: italic !important;
}

/* Awaryjne otwarcie natywnego formularza Tutor Pro. */
body .tutor-lesson-note-form-wrapper.ti-katalog-note-form-open,
body .tutor-learning-area-note-form-wrapper.ti-katalog-note-form-open,
body [data-tutor-lesson-note-form].ti-katalog-note-form-open {
	display: block !important;
	position: fixed !important;
	z-index: 1000001 !important;
	top: max(16px, 12vh) !important;
	left: 50% !important;
	width: min(420px, calc(100vw - 32px)) !important;
	max-height: calc(100dvh - 32px) !important;
	overflow: auto !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: translateX(-50%) !important;
	pointer-events: auto !important;
}

/* Tutor 4.x: zawartość modala ma być nad tłem, a nie za nim. */
body .tutor-modal-backdrop,
body .tutor-modal-overlay {
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

body .tutor-modal.ti-katalog-modal-repaired {
	align-items: center !important;
	justify-content: center !important;
	z-index: 1000000 !important;
	opacity: 1 !important;
	visibility: visible !important;
}

body .tutor-modal.ti-katalog-modal-repaired > :is(.tutor-modal-content, .tutor-modal-window),
body .tutor-modal.ti-katalog-modal-repaired .tutor-modal-content {
	display: block !important;
	position: relative !important;
	z-index: 2 !important;
	visibility: visible !important;
	opacity: 1 !important;
	transform: none !important;
	pointer-events: auto !important;
}

body .tutor-modal.ti-katalog-modal-orphan {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

body .tutor-learning-area-footer a.ti-katalog-next-ready {
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	cursor: pointer !important;
}

@media (max-width: 767px) {
	/* Wszystkie endpointy lekcji, w tym Notatki, mieszczą się na ekranie. */
	body .tutor-lesson-content-tab .tutor-tabs-nav {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		align-items: stretch !important;
		gap: 8px !important;
		width: 100% !important;
		height: auto !important;
		padding: 12px !important;
		overflow: visible !important;
	}

	body .tutor-lesson-content-tab .tutor-tabs-nav .tutor-tabs-tab {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 5px !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		min-height: 46px !important;
		padding: 9px 6px !important;
		white-space: normal !important;
		text-align: center !important;
	}

	/* Neutralizacja dokowania całego kontenera przez snippet 1.5.12. */
	body.ti-elearning-no-widgets
		.ti-lesson-note-dock:not(#tutor-lesson-nav-take-note-btn):not(.tutor-btn) {
		position: relative !important;
		inset: auto !important;
		z-index: auto !important;
		width: auto !important;
		max-width: none !important;
		min-height: 0 !important;
		margin: 0 !important;
		transform: none !important;
	}

	/* Przycisk tworzenia notatki jest nad stopką Wstecz/Dalej, nie pod nią. */
	body #tutor-lesson-nav-take-note-btn,
	body #tutor-lesson-nav-take-note-btn.ti-lesson-note-dock {
		position: fixed !important;
		inset: auto 16px calc(104px + env(safe-area-inset-bottom)) auto !important;
		z-index: 99990 !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: auto !important;
		min-width: 48px !important;
		max-width: calc(100vw - 32px) !important;
		min-height: 48px !important;
		margin: 0 !important;
		padding: 10px 16px !important;
		border-radius: 999px !important;
		transform: none !important;
		pointer-events: auto !important;
	}

	body .tutor-course-single-content-wrapper.ti-mobile-learning-actions-fixed
		.tutor-course-topic-single-body {
		padding-bottom: calc(170px + env(safe-area-inset-bottom)) !important;
	}
}

/* Na pojedynczej stronie quizu może pozostać tylko pierwsze podsumowanie. */
body .ti-katalog-duplicate-quiz-summary {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Odtwarzacz kursu: w menu „Więcej” pozostają tylko używane sekcje. */
body .ti-katalog-hidden-learning-more-item {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* CookieYes: przycisk ponownego otwarcia zgód nie zasłania platformy LMS. */
body.ti-katalog-elearning-platform .cky-btn-revisit-wrapper {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}
