/* =====================================================================
   Поиск animiku
   =====================================================================
   Цвета берутся ТОЛЬКО из переменных темы (--body, --clr, --main,
   --main-text, --second-text, --active-2, --search-form, --line),
   поэтому светлая и тёмная темы работают сами собой.
   Радиусы 15px — как на главной и в расписании.
   ===================================================================== */

.ams {
	max-width: 1560px;
	margin: 0 auto;
	padding: 0 15px 60px;
	color: var(--main-text);
}

/* ── Вход в фильтр с других страниц ────────────────────────────── */
/* Ставится там, где раньше была старая панель из выпадающих списков:
   на главной и на страницах категорий. Сам фильтр живёт на своей
   странице, здесь только вход в него. */

.ams-filter-entry {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--clr, #232329);
	border-radius: 15px;
	color: var(--main-text, #fff);
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	padding: 14px 20px;
	margin: 0 0 18px;
	transition: background .15s ease;
}
.ams-filter-entry:hover { background: var(--main, #24242d); }
.ams-filter-entry svg { width: 18px; height: 18px; fill: var(--active-2, #68a5ff); flex: 0 0 18px; }
.ams-filter-entry--wide { display: flex; justify-content: center; }

/* ── Строка поиска ─────────────────────────────────────────────── */

.ams-head { padding: 20px 0 10px; }

.ams-searchbar {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--search-form);
	border: 1px solid transparent;
	border-radius: 15px;
	padding: 0 16px;
	height: 56px;
	transition: border-color .15s ease;
}
.ams-searchbar:focus-within { border-color: var(--active-2); }

.ams-searchbar-icon {
	width: 20px; height: 20px; flex: 0 0 20px;
	fill: var(--second-text); opacity: .8;
}

.ams-searchbar-input {
	flex: 1 1 auto;
	background: none;
	border: 0;
	outline: none;
	color: var(--main-text);
	font-size: 16px;
	height: 100%;
}
.ams-searchbar-input::placeholder { color: var(--second-text-2); opacity: .7; }

.ams-searchbar-clear {
	display: none;
	background: none; border: 0; cursor: pointer;
	padding: 6px; border-radius: 50%;
	color: var(--second-text);
}
.ams-searchbar-clear svg { width: 18px; height: 18px; display: block; }
.ams-searchbar-clear:hover { background: var(--clr); color: var(--main-text); }
.ams-searchbar.has-value .ams-searchbar-clear { display: block; }

/* ── Подсказки ─────────────────────────────────────────────────── */

.ams-suggest {
	position: absolute;
	top: calc(100% + 8px);
	left: 0; right: 0;
	z-index: 60;
	background: var(--clr);
	border-radius: 15px;
	box-shadow: 0 18px 40px var(--box-shadow-hover, #00000060);
	padding: 8px;
	max-height: 70vh;
	overflow-y: auto;
}
.ams-suggest[hidden] { display: none; }

/* В попапе шапки список встаёт в поток под формой: попап и так занимает
   весь экран, а абсолютное позиционирование там ловило бы обрезку. */
.ams-suggest--inline {
	position: static;
	box-shadow: none;
	margin-top: 10px;
	max-height: 60vh;
}

.ams-sg + .ams-sg { margin-top: 6px; border-top: 1px solid var(--main); padding-top: 6px; }
.ams-sg-title {
	font-size: 12px; text-transform: uppercase; letter-spacing: .04em;
	color: var(--second-text-2); padding: 6px 10px 4px;
}
.ams-sg-item {
	display: flex; align-items: center; gap: 10px;
	padding: 7px 10px; border-radius: 10px;
	color: var(--main-text); text-decoration: none;
}
.ams-sg-item:hover, .ams-sg-item.is-active { background: var(--main); }
.ams-sg-item img, .ams-sg-noimg {
	width: 32px; height: 44px; flex: 0 0 32px;
	object-fit: cover; border-radius: 6px; background: var(--main);
}
.ams-sg-name { flex: 1 1 auto; font-size: 14px; }
.ams-sg-meta { color: var(--second-text-2); font-size: 12px; white-space: nowrap; }
.ams-sg-empty { padding: 14px; color: var(--second-text-2); text-align: center; font-size: 14px; }

/* Защита от стилей темы: в попапе поиска кнопки внутри контейнера
   позиционируются абсолютно, и наши уезжали на иконку лупы. */
.ams-suggest button {
	position: static;
	float: none;
	margin: 0;
	width: auto;
	height: auto;
	transform: none;
	background: none;
}

/* История запросов (хранится в браузере) */
.ams-sg--history .ams-sg-title { display: flex; align-items: center; justify-content: space-between; }
.ams-sg-clear {
	background: none; border: 0; cursor: pointer;
	color: var(--active-2); font-size: 11px; text-transform: none; letter-spacing: 0;
	padding: 2px 4px;
}
.ams-sg-clear:hover { text-decoration: underline; }

.ams-sg-item--history { cursor: pointer; }
.ams-sg-clock {
	width: 18px; height: 18px; flex: 0 0 18px;
	color: var(--second-text-2); opacity: .8;
}
.ams-sg-remove {
	background: none; border: 0; cursor: pointer;
	color: var(--second-text-2); padding: 4px; border-radius: 50%;
	opacity: 0; transition: opacity .12s ease;
}
.ams-sg-remove svg { width: 14px; height: 14px; display: block; }
.ams-sg-item--history:hover .ams-sg-remove,
.ams-sg-item--history.is-active .ams-sg-remove { opacity: 1; }
.ams-sg-remove:hover { background: var(--clr); color: var(--main-text); }

/* ── Вкладки ───────────────────────────────────────────────────── */

.ams-head-row {
	display: flex; align-items: center; gap: 12px;
	margin-top: 14px; flex-wrap: wrap;
}

.ams-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.ams-tab {
	display: inline-flex; align-items: center; gap: 7px;
	background: var(--clr); border: 0; cursor: pointer;
	color: var(--second-text);
	padding: 9px 16px; border-radius: 12px;
	font-size: 14px; font-weight: 600;
}
.ams-tab:hover { color: var(--main-text); }
.ams-tab.is-active { background: var(--active-2); color: var(--btn-active-font-clr, #000); }
.ams-tab-count {
	font-size: 12px; font-weight: 500; opacity: .75;
}

.ams-filters-btn {
	display: none;
	align-items: center; gap: 8px;
	margin-left: auto;
	background: var(--clr); border: 0; cursor: pointer;
	color: var(--main-text); padding: 9px 16px; border-radius: 12px;
	font-size: 14px; font-weight: 600;
}
.ams-filters-btn svg { width: 16px; height: 16px; fill: currentColor; }

/* ── Раскладка ─────────────────────────────────────────────────── */

.ams-layout {
	display: grid;
	grid-template-columns: 296px minmax(0, 1fr);
	gap: 22px;
	align-items: start;
	margin-top: 16px;
}

.ams-sidebar {
	background: var(--clr);
	border-radius: 15px;
	padding: 18px 16px;
	position: sticky;
	top: 90px;
	max-height: calc(100vh - 110px);
	overflow-y: auto;
}
.ams-sidebar-close, .ams-apply { display: none; }

.ams-sidebar-head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 14px;
}
.ams-sidebar-title { font-size: 17px; font-weight: 700; }
.ams-reset {
	background: none; border: 0; cursor: pointer;
	color: var(--active-2); font-size: 13px; padding: 4px;
}
.ams-reset:hover { text-decoration: underline; }

/* ── Группы фильтров ───────────────────────────────────────────── */

.ams-group { padding: 14px 0; border-top: 1px solid var(--main); }
.ams-group:first-of-type { border-top: 0; padding-top: 0; }

.ams-group-title {
	display: flex; align-items: center; gap: 8px;
	width: 100%;
	background: none; border: 0; padding: 0;
	color: var(--main-text); font-size: 14px; font-weight: 700;
	text-align: left; cursor: default;
}
.ams-group-toggle { cursor: pointer; }
.ams-group-count {
	background: var(--active-2); color: var(--btn-active-font-clr, #000);
	border-radius: 20px; font-size: 11px; font-weight: 700;
	padding: 1px 7px;
}
.ams-chevron {
	width: 18px; height: 18px; margin-left: auto;
	transition: transform .18s ease; color: var(--second-text);
}
.ams-group.is-collapsed .ams-chevron { transform: rotate(-90deg); }
.ams-group.is-collapsed .ams-group-body { display: none; }

.ams-group-body { margin-top: 10px; }

.ams-facet-search {
	width: 100%; height: 34px;
	background: var(--main); border: 1px solid transparent; border-radius: 10px;
	color: var(--main-text); padding: 0 10px; font-size: 13px;
	outline: none; margin-bottom: 8px;
}
.ams-facet-search:focus { border-color: var(--active-2); }

.ams-options { display: flex; flex-direction: column; gap: 2px; }

.ams-option {
	display: flex; align-items: center; gap: 9px;
	padding: 6px 6px; border-radius: 9px;
	cursor: pointer; font-size: 14px;
	color: var(--second-text);
}
.ams-option:hover { background: var(--main); color: var(--main-text); }
.ams-option--hidden { display: none; }
.ams-group.is-expanded .ams-option--hidden { display: flex; }
.ams-option input { position: absolute; opacity: 0; width: 0; height: 0; }

.ams-checkbox {
	width: 17px; height: 17px; flex: 0 0 17px;
	border: 2px solid var(--line); border-radius: 5px;
	position: relative; transition: all .12s ease;
}
.ams-option input:checked + .ams-checkbox {
	background: var(--active-2); border-color: var(--active-2);
}
.ams-option input:checked + .ams-checkbox::after {
	content: ''; position: absolute;
	left: 4px; top: 0; width: 5px; height: 10px;
	border: solid var(--btn-active-font-clr, #000);
	border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.ams-option input:focus-visible + .ams-checkbox { outline: 2px solid var(--active-2); outline-offset: 2px; }

.ams-option-label { flex: 1 1 auto; }
.ams-option-count { color: var(--second-text-2); font-size: 12px; opacity: .8; }

.ams-more {
	background: none; border: 0; cursor: pointer;
	color: var(--active-2); font-size: 13px; padding: 8px 6px 0;
}
.ams-more:hover { text-decoration: underline; }

.ams-range { display: flex; align-items: center; gap: 8px; }
.ams-range-input {
	flex: 1 1 0; min-width: 0; height: 38px;
	background: var(--main); border: 1px solid transparent; border-radius: 10px;
	color: var(--main-text); padding: 0 10px; font-size: 14px; outline: none;
}
.ams-range-input:focus { border-color: var(--active-2); }
.ams-range-dash { color: var(--second-text-2); }

/* ── Панель над выдачей ────────────────────────────────────────── */

.ams-toolbar {
	display: flex; align-items: center; gap: 12px;
	margin-bottom: 14px; flex-wrap: wrap;
}
.ams-total { font-size: 15px; font-weight: 600; }
.ams-took { color: var(--second-text-2); font-size: 12px; }
.ams-toolbar-spacer { flex: 1 1 auto; }

.ams-sort {
	background: var(--clr); border: 0; border-radius: 12px;
	color: var(--main-text); font-size: 14px; padding: 9px 14px;
	cursor: pointer; outline: none;
}

/* ── Активные фильтры ──────────────────────────────────────────── */

.ams-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.ams-chip {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--clr); border: 0; cursor: pointer;
	color: var(--main-text); font-size: 13px;
	padding: 7px 12px; border-radius: 20px;
}
.ams-chip:hover { background: var(--main); }
.ams-chip-x { width: 13px; height: 13px; opacity: .6; }
.ams-chip--reset { color: var(--active-2); }

/* ── Сетка тайтлов ─────────────────────────────────────────────── */

.ams-results { min-height: 200px; }
.ams.is-loading .ams-results { opacity: .45; pointer-events: none; transition: opacity .12s ease; }

.ams-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
	gap: 20px 16px;
}

.ams-card { display: block; color: inherit; text-decoration: none; }
.ams-card-poster {
	position: relative;
	aspect-ratio: 2 / 3;
	border-radius: 15px;
	overflow: hidden;
	background: var(--clr);
}
.ams-card-poster img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .25s ease;
}
.ams-card:hover .ams-card-poster img { transform: scale(1.05); }
.ams-card-noposter {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%;
	font-size: 42px; font-weight: 700; color: var(--second-text-2);
}

.ams-badge-status, .ams-badge-age, .ams-badge-score, .ams-badge-quality {
	position: absolute;
	font-size: 11px; font-weight: 700;
	padding: 4px 8px; border-radius: 8px;
	backdrop-filter: blur(6px);
}
.ams-badge-status { top: 8px; left: 8px; background: #00000090; color: #fff; }
.ams-badge-status.is-ongoing { background: var(--active-2); color: var(--btn-active-font-clr, #000); }
.ams-badge-status.is-anons   { background: #00000090; color: #fff; }
.ams-badge-status.is-done    { background: #1f7a3f; color: #fff; }
.ams-badge-age { top: 8px; right: 8px; background: #00000090; color: #fff; }
.ams-badge-score { bottom: 8px; left: 8px; background: #00000090; color: #fff; }
.ams-badge-quality { bottom: 8px; right: 8px; background: var(--red); color: #fff; }

.ams-card-body { padding: 9px 2px 0; }
.ams-card-title {
	font-size: 14px; font-weight: 600; line-height: 1.3;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden;
}
.ams-card-meta {
	display: flex; gap: 8px; flex-wrap: wrap;
	margin-top: 4px; font-size: 12px; color: var(--second-text-2);
}

/* Почему тайтл попал в выдачу, если совпало не название */
.ams-card-note {
	margin-top: 5px;
	font-size: 12px;
	line-height: 1.3;
	color: var(--active-2);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ── Списки персонажей и людей ─────────────────────────────────── */

.ams-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.ams-person {
	display: flex; gap: 12px;
	background: var(--clr); border-radius: 15px; padding: 12px;
	color: inherit; text-decoration: none;
	transition: background .15s ease;
}
.ams-person:hover { background: var(--main); }
.ams-person-ava {
	width: 56px; height: 76px; flex: 0 0 56px;
	border-radius: 10px; overflow: hidden; background: var(--main);
	display: flex; align-items: center; justify-content: center;
	font-size: 22px; font-weight: 700; color: var(--second-text-2);
}
.ams-person-ava img { width: 100%; height: 100%; object-fit: cover; }
.ams-person-body { min-width: 0; }
.ams-person-name { font-size: 15px; font-weight: 600; }
.ams-person-sub { font-size: 12px; color: var(--second-text-2); margin-top: 1px; }
.ams-person-roles { font-size: 12px; color: var(--active-2); margin-top: 5px; }
.ams-person-descr {
	font-size: 12px; color: var(--second-text); margin-top: 6px; line-height: 1.4;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ams-person-descr mark { background: transparent; color: var(--active-2); font-weight: 600; }
.ams-person-titles {
	font-size: 12px; color: var(--second-text-2); margin-top: 5px;
	display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}

/* ── Пусто и ошибки ────────────────────────────────────────────── */

.ams-empty { text-align: center; padding: 60px 20px; }
.ams-empty-title { font-size: 18px; font-weight: 600; }
.ams-empty-hint { color: var(--second-text-2); font-size: 14px; margin-top: 8px; }

.ams-alert {
	background: var(--clr); border-left: 3px solid var(--red);
	border-radius: 12px; padding: 14px 16px; margin-bottom: 16px;
	font-size: 14px;
}
.ams-alert a { color: var(--active-2); }

/* ── Постраничная навигация ────────────────────────────────────── */

.ams-pager { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: 28px; }
.ams-page {
	background: var(--clr); border: 0; cursor: pointer;
	color: var(--main-text); font-size: 14px;
	min-width: 38px; height: 38px; padding: 0 12px; border-radius: 11px;
}
.ams-page:hover { background: var(--main); }
.ams-page.is-active { background: var(--active-2); color: var(--btn-active-font-clr, #000); font-weight: 700; }
.ams-page-gap { color: var(--second-text-2); align-self: center; padding: 0 4px; }

/* ── Мобильные ─────────────────────────────────────────────────── */

.ams-backdrop {
	display: none;
	position: fixed; inset: 0; z-index: 8000;
	background: #00000080;
}

@media (max-width: 960px) {
	.ams-layout { grid-template-columns: minmax(0, 1fr); }
	.ams-filters-btn { display: inline-flex; }

	/* Шторка снизу: заголовок и кнопка закреплены, прокручивается только
	   список фильтров. Раньше кнопка позиционировалась абсолютно внутри
	   прокручиваемого блока и уезжала в середину списка. */
	.ams-sidebar {
		position: fixed;
		left: 0; right: 0; bottom: 0;
		top: auto;
		z-index: 8500;
		display: flex;
		flex-direction: column;
		height: 86vh;
		max-height: 86vh;
		border-radius: 20px 20px 0 0;
		padding: 46px 16px 16px;
		overflow: hidden;
		transform: translateY(101%);
		transition: transform .25s ease;
	}
	.ams.filters-open .ams-sidebar { transform: translateY(0); }
	.ams.filters-open .ams-backdrop { display: block; }

	.ams-sidebar [data-ams-sidebar-body] {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.ams-sidebar-close {
		display: block;
		position: absolute; top: 10px; right: 12px;
		background: var(--main); border: 0; border-radius: 50%;
		width: 34px; height: 34px; cursor: pointer; color: var(--main-text);
		z-index: 1;
	}
	.ams-sidebar-close svg { width: 16px; height: 16px; }

	.ams-apply {
		display: block;
		flex: 0 0 auto;
		margin-top: 12px;
		background: var(--active-2); color: var(--btn-active-font-clr, #000);
		border: 0; border-radius: 14px; height: 48px; width: 100%;
		font-size: 15px; font-weight: 700; cursor: pointer;
	}

	.ams-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px 12px; }
	.ams-list { grid-template-columns: minmax(0, 1fr); }
}
