/*!
 * assets/css/guides.css — базовые стили раздела-справочника /eft/... (визуальная система по
 * docs/eft-guides/design/CONCEPT.md §4). Подключается через $additional_css_file (guides/index.php).
 * Все классы — с префиксом gd-, т.к. Bootstrap 5 подключён глобально и занимает card/btn/badge/row/col/table.
 *
 * Токены темы сайта (includes/header.php): --bg-dark, --text-light, --text-gray, --accent-purple,
 * --accent-blue, --border. Свои токены раздела — --gd-* ниже. Брейкпоинты сайта: 968 / 768 / 576 / 480.
 *
 * Система: база 16px, шаг сетки 8; две поверхности (L0 фон страницы, L1 панель + рамка), третьей нет;
 * радиусы 10 карточки/картинки, 8 кнопки/поля, 999 чипы, 4 иконки предметов; заливка акцентом только
 * за действием и коммерцией; счётчики — только в ленте фактов; position: sticky на сайте не работает.
 */

:root {
  --gd-l0: #0d1424;
  --gd-l1: #131b2e;
  --gd-line: rgba(255, 255, 255, .08);
  --gd-line2: rgba(255, 255, 255, .14);
  --gd-text: #f8fafc;
  --gd-text2: #cbd5e1;
  --gd-muted: #a8b4c6;
  --gd-dim: #64748b;
  --gd-accent: #8b5cf6;
  --gd-accent-h: #3b82f6;
  --gd-link: #a78bfa;
  --gd-pmc: #60a5fa;
  --gd-scav: #f59e0b;
  --gd-coop: #a78bfa;
  --gd-kappa: #fbbf24;
  --gd-done: #34d399;
  --gd-done-bg: rgba(16, 185, 129, .15);
  --gd-r-lo: #f87171;
  --gd-r-mid: #fbbf24;
  --gd-r-hi: #6ee7b7;
}

/* ==================== ОБОЛОЧКА СТРАНИЦЫ ==================== */
/* Текстовая раскладка 720 + 32 + 320 = 1072 (+ поля 24) центрирована; широкая — 1200 без рейла. */
.gd-shell {
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 24px 64px;
  color: var(--gd-text);
  /* includes/header.php делает body/#main-content flex-контейнерами — без min-width:0 этот блок как
     flex-item отказывается сжиматься уже широких таблиц и распирает страницу по горизонтали. */
  width: 100%;
  min-width: 0;
  font-size: 1rem;
  line-height: 1.7;
}
.gd-shell--wide { max-width: 1248px; }
.gd-shell a { color: var(--gd-link); text-decoration: none; }
.gd-shell a:hover { color: #c4b5fd; text-decoration: underline; }

/* --- крошки: одна строка 24 px, средние элементы обрезаются, последний — не ссылка --- */
.gd-crumbs { margin: 0 0 12px; font-size: .82rem; color: var(--gd-muted); line-height: 24px; height: 24px; }
.gd-crumbs ol { list-style: none; display: flex; flex-wrap: nowrap; gap: 0; margin: 0; padding: 0; min-width: 0; overflow: hidden; }
.gd-crumbs li { white-space: nowrap; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.gd-crumbs li:first-child { flex: 0 0 auto; }
.gd-crumbs li:last-child { flex: 1 1 auto; }
.gd-crumbs li:not(:last-child)::after { content: '/'; margin: 0 6px; color: var(--gd-dim); }
.gd-crumbs a { color: var(--gd-muted); text-decoration: none; }
.gd-crumbs a:hover { color: var(--gd-text); text-decoration: none; }
.gd-crumbs li[aria-current="page"] { color: var(--gd-text2); }

/* --- типографика: 5 ступеней --- */
.gd-head { margin: 0 0 24px; }
.gd-h1 { font-size: clamp(1.5rem, 4.2vw, 2rem); font-weight: 800; line-height: 1.25; margin: 0; color: var(--gd-text); letter-spacing: -.01em; }
.gd-h2 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 1px solid var(--gd-line); color: var(--gd-text); }
.gd-h2 i { font-size: 18px; color: var(--gd-muted); margin-right: 6px; }
.gd-h2 .gd-h2__n { font-weight: 400; color: var(--gd-muted); font-size: .95rem; margin-left: 6px; }
.gd-h3 { font-size: 1rem; font-weight: 700; line-height: 1.25; margin: 0 0 10px; color: var(--gd-text); }
.gd-lbl { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gd-muted); }
.gd-num { font-variant-numeric: tabular-nums; font-weight: 600; }
.gd-muted { color: var(--gd-muted); }
.gd-dim { color: var(--gd-dim); }
.gd-empty { color: var(--gd-muted); padding: 8px 0; margin: 0; }
.gd-block { margin: 0 0 40px; }
.gd-sec { margin-top: 40px; }

.gd-prose { line-height: 1.7; color: var(--gd-text); }
.gd-prose p { margin: 0 0 16px; }
.gd-prose h2, .gd-prose h3 { color: var(--gd-text); }
.gd-prose h2 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 40px 0 16px; padding-bottom: 8px; border-bottom: 1px solid var(--gd-line); }
.gd-prose h2:first-child { margin-top: 0; }
.gd-prose h3 { font-size: 1rem; font-weight: 700; margin: 24px 0 10px; }
.gd-prose ul, .gd-prose ol { margin: 0 0 16px; padding-left: 22px; }
.gd-prose li { margin: 0 0 6px; }
.gd-prose img, .gd-prose figure { max-width: 100%; }
.gd-prose figure { margin: 8px 0 16px; }
.gd-prose figure img { display: block; width: 100%; height: auto; border-radius: 10px; }
.gd-prose figure:not(.gd-shot) img { object-fit: cover; aspect-ratio: 16 / 9; }
/* скрины разбора: пропорции файла как есть (карты и схемы не 16:9), подпись под снимком, клик — оригинал */
.gd-prose .gd-shot { margin: 10px 0 18px; }
.gd-prose .gd-shot img { width: 100%; max-width: 100%; height: auto; margin: 0 auto; border: 1px solid var(--gd-line); background: #0a0f1a; } /* пропорции — из атрибутов width/height (место резервируется до загрузки); высокие карты этажей: шаблон ставит max-width в px (высота ≤ 560), целиком — по клику */
.gd-shot__zoom { display: block; cursor: zoom-in; }
.gd-prose .gd-shot figcaption { margin-top: 6px; font-size: .85rem; line-height: 1.4; color: var(--gd-muted); }
.gd-prose .gd-steps { counter-reset: gd-step; list-style: none; padding-left: 0; margin: 0 0 8px; }
.gd-prose .gd-steps > li { position: relative; padding-left: 40px; margin: 0 0 14px; }
.gd-prose .gd-steps > li::before { counter-increment: gd-step; content: counter(gd-step); position: absolute; left: 0; top: 2px; width: 26px; height: 26px; border-radius: 50%; background: rgba(139, 92, 246, .2); border: 1px solid rgba(139, 92, 246, .55); color: var(--gd-text); font-size: .85rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.gd-prose .gd-steps > li > p { margin: 0 0 8px; }
.gd-prose .gd-steps .gd-shot { margin: 8px 0 6px; }
.gd-prose .gd-where { margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; background: var(--gd-l1); border: 1px solid var(--gd-line); font-size: .95rem; }
.gd-prose .gd-where b { color: var(--gd-text); }

.gd-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.gd-list--inline { flex-direction: row; flex-wrap: wrap; gap: 8px 16px; }

/* --- чипы под H1: «Игра: EFT» + дата снапшота (gd_game_chip_row) --- */
.gd-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gd-chip {
  display: inline-flex; align-items: center; gap: 6px; height: 28px;
  padding: 0 10px; border-radius: 999px; font-size: .82rem; line-height: 1;
  background: transparent; border: 1px solid var(--gd-line2); color: var(--gd-text2);
  text-decoration: none; white-space: nowrap;
}
.gd-shell .gd-chip { color: var(--gd-text2); }
.gd-chip i { font-size: 12px; color: var(--gd-muted); }
.gd-chip--game { color: var(--gd-text); }
.gd-shell a.gd-chip:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-chip--date { color: var(--gd-muted); border-color: transparent; padding-left: 0; }
.gd-chip--gray { color: var(--gd-dim); border-color: transparent; background: rgba(255, 255, 255, .04); }
.gd-chip.is-active, .gd-chip--on { border-color: var(--gd-accent); color: var(--gd-text); }

/* --- лента фактов: 3–6 ячеек через вертикальную линию, без рамок; на телефоне одна строка 40 px --- */
.gd-facts { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 0; margin: 12px 0 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.gd-facts::-webkit-scrollbar { display: none; }
.gd-facts__item {
  display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 3px; margin: 0;
  padding: 0 16px; border-left: 1px solid var(--gd-line2); flex: 0 0 auto; white-space: nowrap; line-height: 1.2;
}
.gd-facts__item:first-child { padding-left: 0; border-left: 0; }
.gd-facts__item dt { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gd-muted); }
.gd-facts__item dt i { display: none; }
.gd-facts__item dd { margin: 0; font-size: 1.05rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--gd-text); }
.gd-facts__item dd a { color: var(--gd-link); }

/* --- строка фактов инлайн под H1 (квест): «Прапор · ур. 3 · Лес · Уничтожение · ★ Каппа» --- */
.gd-factline {
  display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
  margin-top: 10px; height: 32px; font-size: .95rem; color: var(--gd-text2); white-space: nowrap;
}
.gd-factline::-webkit-scrollbar { display: none; }
.gd-factline > * { flex: 0 0 auto; }
.gd-factline__sep { color: var(--gd-dim); }
.gd-factline img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; vertical-align: -5px; margin-right: 6px; background: rgba(255, 255, 255, .06); }
.gd-factline .gd-chip { height: 24px; font-size: .78rem; }
.gd-star { color: var(--gd-kappa); }

/* ==================== РАСКЛАДКА: контент + рейл 320 ==================== */
.gd-layout { display: flex; flex-direction: column; gap: 32px; align-items: stretch; min-width: 0; width: 100%; }
.gd-content { width: 100%; min-width: 0; }
.gd-sidebar { width: 100%; min-width: 0; }
@media (min-width: 968px) {
  .gd-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; column-gap: 32px; align-items: start; }
  .gd-layout--wide { display: block; }
  .gd-layout > .gd-sidebar:only-child { grid-column: 1 / -1; }
  .gd-sidebar { grid-column: 2; }
  .gd-layout--wide .gd-sidebar { max-width: 320px; margin-top: 32px; }
}

/* ==================== ПОВЕРХНОСТИ ==================== */
.gd-panel, .gd-card {
  background: var(--gd-l1); border: 1px solid var(--gd-line); border-radius: 10px; padding: 16px; min-width: 0;
}
.gd-panel__title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 1rem; font-weight: 700; color: var(--gd-text); }
.gd-panel__title i { color: var(--gd-muted); font-size: 16px; }

/* --- кнопки 44 px --- */
.gd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px;
  padding: 0 16px; border-radius: 8px; border: 1px solid var(--gd-line2); background: transparent;
  color: var(--gd-text); font-weight: 600; font-size: .95rem; text-decoration: none; white-space: nowrap;
  cursor: pointer; transition: background .15s, border-color .15s;
}
.gd-shell .gd-btn { color: var(--gd-text); }
.gd-btn:hover, .gd-shell .gd-btn:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-btn--primary, .gd-shell .gd-btn--primary { background: var(--gd-accent); border-color: var(--gd-accent); color: #fff; }
.gd-btn--primary:hover, .gd-shell .gd-btn--primary:hover { background: var(--gd-accent-h); border-color: var(--gd-accent-h); color: #fff; }
.gd-btn--ghost { background: transparent; }
.gd-btn--block { display: flex; width: 100%; }
.gd-btn--sm { height: 36px; font-size: .88rem; padding: 0 12px; }

/* --- сегмент-контрол 44 px --- */
.gd-seg { display: inline-flex; border: 1px solid var(--gd-line2); border-radius: 8px; overflow: hidden; height: 44px; max-width: 100%; }
.gd-seg > a, .gd-seg > button { appearance: none; border: 0; background: transparent; padding: 0 16px; line-height: 42px; color: var(--gd-text2); font-size: .95rem; white-space: nowrap; text-decoration: none; cursor: pointer; }
.gd-shell .gd-seg > a { color: var(--gd-text2); }
.gd-seg > a:hover, .gd-seg > button:hover { color: var(--gd-text); text-decoration: none; }
.gd-seg > .is-active, .gd-shell .gd-seg > .is-active { background: rgba(139, 92, 246, .18); color: var(--gd-text); }
.gd-seg--sm { height: 36px; }
.gd-seg--sm > a, .gd-seg--sm > button { line-height: 34px; padding: 0 12px; font-size: .88rem; }

/* --- тумблер --- */
.gd-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; color: var(--gd-text2); white-space: nowrap; cursor: pointer; }
.gd-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.gd-toggle__track { width: 34px; height: 20px; border-radius: 999px; background: #334155; position: relative; display: inline-block; flex: 0 0 auto; transition: background .15s; }
.gd-toggle__track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left .15s; }
.gd-toggle input:checked + .gd-toggle__track { background: var(--gd-accent); }
.gd-toggle input:checked + .gd-toggle__track::after { left: 16px; }
.gd-toggle input:focus-visible + .gd-toggle__track { outline: 2px solid var(--gd-accent-h); outline-offset: 2px; }

/* --- поле/селект 44 px --- */
.gd-field, .gd-filters__item select {
  height: 44px; border: 1px solid var(--gd-line2); border-radius: 8px; background: var(--gd-l0);
  color: var(--gd-text); font-size: .95rem; padding: 0 12px;
}

/* --- ряд чипов со скроллом (калибры, карты) --- */
.gd-chiprow { display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 8px 0; margin: 0; }
.gd-chiprow::-webkit-scrollbar { display: none; }
.gd-chiprow > * { flex: 0 0 auto; }

/* --- сетки карточек (хаб, секции) --- */
.gd-grid { display: grid; gap: 16px; }
.gd-grid--4 { grid-template-columns: repeat(4, 1fr); }
.gd-grid--3 { grid-template-columns: repeat(3, 1fr); }

.gd-seccard, .gd-entcard, .gd-qcard {
  display: flex; flex-direction: column; gap: 6px;
  padding: 16px; border-radius: 10px; border: 1px solid var(--gd-line);
  background: var(--gd-l1); text-decoration: none; color: var(--gd-text);
  transition: border-color .15s;
}
.gd-shell .gd-seccard, .gd-shell .gd-entcard, .gd-shell .gd-qcard { color: var(--gd-text); }
.gd-seccard:hover, .gd-entcard:hover, .gd-qcard:hover, .gd-shell .gd-qcard:hover, .gd-shell .gd-entcard:hover, .gd-shell .gd-seccard:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-seccard { align-items: flex-start; text-align: left; }
.gd-seccard i { font-size: 1.4rem; color: var(--gd-accent); }
.gd-seccard__title { font-weight: 700; }
.gd-seccard__desc { font-size: .82rem; color: var(--gd-muted); line-height: 1.45; }
.gd-seccard__count { font-size: 1rem; font-weight: 800; color: var(--gd-text); }
.gd-cardlink { margin-top: auto; padding-top: 4px; font-size: .82rem; font-weight: 700; color: var(--gd-link); display: inline-flex; align-items: center; gap: 6px; }
.gd-cardlink i { font-size: .78rem !important; color: inherit !important; }
.gd-entcard { align-items: center; text-align: center; }
.gd-entcard img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.gd-entcard i { font-size: 1.8rem; color: var(--gd-accent); }
.gd-entcard__name { font-weight: 700; }
.gd-entcard__meta { font-size: .82rem; color: var(--gd-muted); }
.gd-qcard__name { font-weight: 700; }
.gd-qcard__meta { display: flex; gap: 10px; font-size: .82rem; color: var(--gd-muted); flex-wrap: wrap; }
.gd-qcard__kappa { color: var(--gd-kappa); font-weight: 700; }

.gd-qcard--img { flex-direction: row; align-items: center; gap: 12px; }
.gd-qcard__thumb { flex: 0 0 auto; width: 64px; height: 40px; border-radius: 6px; overflow: hidden; background: rgba(0, 0, 0, .35); }
.gd-qcard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gd-qcard__info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

/* --- цитата задания --- */
.gd-quote { margin: 0; padding: 12px 16px; border-left: 2px solid var(--gd-line2); color: var(--gd-muted); font-style: italic; line-height: 1.6; }
.gd-quote cite { display: block; margin-top: 6px; font-style: normal; font-size: .85rem; color: var(--gd-dim); }

/* --- цели квеста --- */
.gd-objectives { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.gd-objectives li { display: flex; align-items: flex-start; gap: 12px; min-height: 28px; padding: 4px 0; line-height: 1.4; }
.gd-objectives li > i { flex: 0 0 18px; margin-top: 5px; text-align: center; font-size: 15px; color: var(--gd-muted); }
.gd-objectives__text { flex: 1 1 auto; min-width: 0; }
.gd-obj__count { margin-left: auto; flex: 0 0 auto; color: var(--gd-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gd-obj--optional { color: var(--gd-muted); }
.gd-obj__opt { margin-left: 8px; font-size: .78rem; color: var(--gd-dim); font-style: italic; }

/* --- награды --- */
.gd-rewards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.gd-rewards li { display: flex; align-items: center; gap: 10px; line-height: 1.3; }
.gd-rewards li > i { width: 18px; text-align: center; color: var(--gd-muted); flex: 0 0 18px; }
.gd-rewards__sum { display: flex; gap: 16px; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--gd-line); flex-wrap: wrap; }
.gd-rewards__sum b { display: block; font-size: 1.1rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--gd-text); line-height: 1.2; }
.gd-rewards__sum span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gd-muted); font-weight: 700; }

/* --- связанные квесты/предметы --- */
.gd-linkgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* --- соседние сущности / возврат к родителю --- */
.gd-neighbors { display: flex; justify-content: space-between; gap: 16px; margin: 24px 0; padding-top: 16px; border-top: 1px solid var(--gd-line); }
.gd-neighbors__link { color: var(--gd-link); text-decoration: none; max-width: 46%; }
.gd-neighbors__link--next { margin-left: auto; text-align: right; }
.gd-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-weight: 600; color: var(--gd-link); }
.gd-back i { font-size: 13px; }

.gd-outdated { margin: 24px 0 0; font-size: .82rem; color: var(--gd-dim); display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.gd-outdated a, .gd-shell .gd-outdated a { color: var(--gd-muted); text-decoration: none; }
.gd-outdated a:hover, .gd-shell .gd-outdated a:hover { color: var(--gd-text); }

/* --- details/FAQ: без коробки, линии сверху и снизу --- */
.gd-faq__item { border-top: 1px solid var(--gd-line); padding: 0; margin: 0; background: none; }
.gd-faq__item:last-child { border-bottom: 1px solid var(--gd-line); }
.gd-faq__item summary { cursor: pointer; font-weight: 600; color: var(--gd-text2); min-height: 44px; display: flex; align-items: center; gap: 10px; list-style: none; }
.gd-faq__item summary::-webkit-details-marker { display: none; }
.gd-faq__item summary > span { flex: 1 1 auto; min-width: 0; }
.gd-faq__item summary > span i { color: var(--gd-muted); margin-right: 6px; }
.gd-faq__item p { margin: 0 0 14px; color: var(--gd-muted); line-height: 1.6; }
.gd-faq__chev { color: var(--gd-dim); transition: transform .15s; flex: 0 0 auto; font-size: 12px; }
.gd-faq__item[open] .gd-faq__chev { transform: rotate(180deg); }

/* --- фильтры (листинги: пока старая панель, переезжает во 2-м этапе) --- */
.gd-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 0 0 16px; padding: 0; border: 0; background: none; }
.gd-filters__item { display: flex; flex-direction: column; gap: 4px; font-size: .78rem; color: var(--gd-muted); }
.gd-filters__item select { min-width: 140px; }
.gd-filters__check { display: flex; align-items: center; gap: 6px; font-size: .92rem; color: var(--gd-text); height: 44px; }
.gd-filters__hint { font-size: .8rem; color: var(--gd-muted); margin-left: auto; }
tr.gd-frow[hidden] { display: none; }

/* ==================== ТАБЛИЦЫ (перекрывают bootstrap `table` — прицельно по .gd-*) ==================== */
/* Шапка 0.72 UPPERCASE, линия 2 px снизу, зебры нет, строка 44, числа вправо. */
.gd-table-wrap { min-width: 0; overflow-x: auto; margin-bottom: 20px; }
.gd-quests, .gd-keys, .gd-exits, .gd-ammo {
  width: 100%; border-collapse: collapse; font-size: .95rem; color: var(--gd-text);
}
.gd-quests th, .gd-keys th, .gd-exits th, .gd-ammo th {
  padding: 0 10px 8px; text-align: left; white-space: nowrap; background: none;
  color: var(--gd-muted); font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em;
  border-bottom: 2px solid var(--gd-line2);
}
.gd-quests td, .gd-keys td, .gd-exits td, .gd-ammo td {
  height: 44px; padding: 0 10px; border-bottom: 1px solid var(--gd-line); text-align: left; white-space: nowrap; vertical-align: middle;
}
.gd-quests th.gd-r, .gd-keys th.gd-r, .gd-exits th.gd-r, .gd-ammo th.gd-r { text-align: right; }
.gd-quests td.gd-r, .gd-keys td.gd-r, .gd-exits td.gd-r, .gd-ammo td.gd-r { text-align: right; font-variant-numeric: tabular-nums; }
.gd-ammo th[data-sort] { cursor: pointer; user-select: none; }
.gd-ammo th[data-sort]:hover { color: var(--gd-text); }
.gd-ammo th[data-sort].is-asc::after { content: ' \2191'; }
.gd-ammo th[data-sort].is-desc::after { content: ' \2193'; }
.gd-quests td:first-child, .gd-keys td:first-child, .gd-ammo td:first-child { white-space: normal; }
.gd-quests tbody tr:hover, .gd-keys tbody tr:hover, .gd-exits tbody tr:hover, .gd-ammo tbody tr:hover { background: rgba(255, 255, 255, .025); }
.gd-quests a, .gd-keys a, .gd-ammo a, .gd-exits a { color: var(--gd-link); text-decoration: none; }
.gd-ammo--mini th, .gd-ammo--mini td { padding: 0 8px; }
tr.gd-trow-group td { height: 32px; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gd-muted); background: rgba(255, 255, 255, .02); }

/* --- иконка патрона в мини-таблице (хаб) --- */
.gd-ammomini-name { display: inline-flex; align-items: center; gap: 8px; }
.gd-ammomini-icon { flex: 0 0 auto; display: inline-flex; width: 24px; height: 24px; border-radius: 4px; background: rgba(226, 232, 240, .85); overflow: hidden; }
.gd-ammomini-icon img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* --- класс брони: одиночный чип (старые таблицы) --- */
.gd-ammo-cls { display: inline-block; min-width: 22px; padding: 2px 8px; border-radius: 4px; text-align: center; font-weight: 700; }
.gd-cls-low  { background: rgba(248, 113, 113, .16); color: var(--gd-r-lo); }
.gd-cls-mid  { background: rgba(251, 191, 36, .16);  color: var(--gd-r-mid); }
.gd-cls-high { background: rgba(110, 231, 183, .16); color: var(--gd-r-hi); }

/* --- полоса классов брони (0..5): 6 квадратов 22×22; 0–1 красный, 2–3 жёлтый, 4–5 зелёный --- */
.gd-cls { display: inline-flex; gap: 3px; flex-wrap: nowrap; vertical-align: middle; }
.gd-cls__c {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 22px; height: 22px; border-radius: 4px; font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.gd-cls__c--0, .gd-cls__c--1 { background: rgba(248, 113, 113, .16); color: var(--gd-r-lo); }
.gd-cls__c--2, .gd-cls__c--3 { background: rgba(251, 191, 36, .16); color: var(--gd-r-mid); }
.gd-cls__c--4, .gd-cls__c--5 { background: rgba(110, 231, 183, .16); color: var(--gd-r-hi); }
.gd-cls--big .gd-cls__c { width: 36px; height: 36px; font-size: .95rem; }

/* --- прогресс (чекбоксы) --- */
.gd-progress { display: inline-flex; align-items: center; gap: 6px; }
.gd-progress input { width: 18px; height: 18px; accent-color: var(--gd-accent); cursor: pointer; }
.gd-progress label { font-size: .85rem; color: var(--gd-muted); cursor: pointer; }

/* --- дерево квестов (контейнер — рисует guides-tree.js) --- */
.gd-tree__hint { color: var(--gd-muted); font-size: .88rem; margin: 0 0 14px; }
.gd-tree { min-height: 320px; border: 1px dashed var(--gd-line2); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; overflow-x: auto; }

/* --- виды списка квестов: сегмент «Список / Цепочки / Каппа» под H1 --- */
.gd-qviews { margin: 16px 0 0; }

/* --- бейджи статуса --- */
.gd-badge { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; font-size: .76rem; font-weight: 700; white-space: nowrap; }
.gd-badge--ok { background: var(--gd-done-bg); color: var(--gd-done); }
.gd-badge--warn { background: rgba(251, 191, 36, .16); color: var(--gd-r-mid); }
.gd-badge--neutral { background: rgba(148, 163, 184, .14); color: var(--gd-muted); }

/* ==================== CTA-БЛОК: единственная заливка акцентом в контенте, ≥ 88 px ==================== */
.gd-cta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 40px 0 0; padding: 16px 20px; min-height: 88px; border-radius: 10px;
  border: 1px solid rgba(139, 92, 246, .45);
  background: linear-gradient(90deg, rgba(139, 92, 246, .22), rgba(59, 130, 246, .12));
}
.gd-cta__body { flex: 1 1 260px; min-width: 0; }
.gd-cta--engine { display: flex; flex-direction: column; justify-content: center; padding: 0; border: 0; background: none; min-height: 88px; }
.gd-cta--engine .cta-slot { margin: 0; }
.gd-cta__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.gd-cta__title { font-weight: 700; font-size: 1.02rem; color: var(--gd-text); }
.gd-cta__desc { margin: 0; color: var(--gd-text2); font-size: .88rem; line-height: 1.35; }
.gd-cta__action {
  flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-height: 40px; padding: 8px 20px; border-radius: 8px; background: var(--gd-accent); color: #fff; text-decoration: none;
  transition: background .15s;
}
.gd-shell .gd-cta__action { color: #fff; }
.gd-cta__action:hover, .gd-shell .gd-cta__action:hover { background: var(--gd-accent-h); color: #fff; text-decoration: none; }
.gd-cta__btn { font-weight: 700; white-space: nowrap; }
.gd-cta__price { font-size: .78rem; opacity: .9; }
/* основной товар раздела — Lovec Radar как квест-хелпер: скрин радара, заголовок, строка под контекст, три факта */
.gd-cta--helper { align-items: center; flex-wrap: nowrap; gap: 20px; padding: 18px 20px; }
.gd-cta__actions { margin-top: 14px; }
.gd-cta--helper .gd-cta__action { display: inline-flex; flex-direction: row; align-items: baseline; gap: 10px; padding: 10px 18px; }
.gd-cta__shot { flex: 0 0 236px; display: block; border-radius: 8px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .12); background: #0a0f1a; }
.gd-cta__shot img { display: block; width: 100%; height: auto; }
.gd-cta__kicker { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gd-link); }
.gd-cta--helper .gd-cta__title { display: block; font-size: 1.12rem; margin-top: 2px; }
.gd-cta--helper .gd-cta__desc { margin-top: 4px; color: var(--gd-text); }
.gd-cta__list { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .84rem; color: var(--gd-text2); }
.gd-cta__list li { display: inline-flex; align-items: center; gap: 6px; }
.gd-cta__list i { color: var(--gd-done); font-size: .8em; }

/* ==================== САЙДБАР: одна карточка товара в рейле (обычный блок в потоке) ==================== */
.gd-sidebar__card {
  padding: 16px; border-radius: 10px; border: 1px solid var(--gd-line);
  background: var(--gd-l1); display: flex; flex-direction: column; gap: 10px; text-align: center;
}
.gd-sidebar__img { width: 100%; max-width: 180px; margin: 0 auto; border-radius: 10px; object-fit: cover; aspect-ratio: 1; }
.gd-sidebar__name { font-weight: 700; font-size: 1.02rem; color: var(--gd-text); }
.gd-sidebar__price { font-weight: 600; color: var(--gd-text); }
.gd-sidebar__btn, .gd-shell .gd-sidebar__btn {
  display: flex; align-items: center; justify-content: center; height: 40px; padding: 0 16px; border-radius: 8px;
  background: var(--gd-accent); color: #fff; text-decoration: none; font-weight: 700;
}
.gd-sidebar__btn:hover, .gd-shell .gd-sidebar__btn:hover { background: var(--gd-accent-h); color: #fff; text-decoration: none; }
.gd-sidebar__all, .gd-shell .gd-sidebar__all { font-size: .82rem; color: var(--gd-muted); text-decoration: none; }
.gd-sidebar__all:hover, .gd-shell .gd-sidebar__all:hover { color: var(--gd-text); }

/* ==================== ПОДШАПКА РАЗДЕЛА (gd_subnav, guides/templates/_parts.php) ==================== */
/* Одна строка 44 px во всю ширину: бренд · 4 пункта (на телефоне — горизонтальный скролл) · иконка
   поиска (раскрывает поле во всю ширину строки). Вторая строка 36 px — чипы карт, только там, где
   карта реально фильтр (хаб, карты, ключи). Обычный блок в потоке (sticky на сайте не работает). */
.gd-subnav { width: 100%; min-width: 0; margin: 0 0 8px; background: var(--gd-l1); border-bottom: 1px solid var(--gd-line); color: var(--gd-text); }
.gd-snav-in { max-width: 1248px; margin: 0 auto; padding: 0 24px; min-width: 0; }
.gd-snav-row { display: flex; align-items: center; gap: 4px; min-width: 0; position: relative; }
.gd-snav-row--main { height: 44px; flex-wrap: nowrap; }
.gd-snav-brand {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; margin-right: 12px;
  font-weight: 700; font-size: .95rem; color: var(--gd-text); text-decoration: none; white-space: nowrap;
}
.gd-snav-brand i { color: var(--gd-accent); }
.gd-snav-brand:hover { color: var(--gd-text); text-decoration: none; }
.gd-snav-list { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; height: 44px; }
.gd-snav-list::-webkit-scrollbar { display: none; }
.gd-snav-list li { flex: 0 0 auto; }
.gd-snav-link {
  display: inline-block; height: 44px; line-height: 42px; padding: 0 12px; font-size: .95rem; font-weight: 500;
  color: var(--gd-text2); text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent;
  transition: color .15s;
}
.gd-snav-link:hover { color: var(--gd-text); text-decoration: none; }
.gd-snav-link.is-active { color: var(--gd-text); border-bottom-color: var(--gd-accent); font-weight: 600; }
.gd-snav-search { flex: 0 0 auto; margin-left: auto; display: flex; align-items: center; }
.gd-snav-search__btn {
  appearance: none; width: 44px; height: 44px; border: 0; background: none; color: var(--gd-text2);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font-size: 16px;
}
.gd-snav-search__btn:hover { color: var(--gd-text); }
.gd-snav-search__field { display: none; position: absolute; left: 0; right: 0; top: 0; height: 44px; align-items: center; gap: 8px; background: var(--gd-l1); z-index: 5; }
.gd-snav-search.is-open .gd-snav-search__field { display: flex; }
.gd-snav-search__icon { position: absolute; left: 14px; color: var(--gd-muted); font-size: 14px; pointer-events: none; }
.gd-search__input {
  flex: 1 1 auto; min-width: 0; height: 36px; padding: 0 44px 0 40px; border-radius: 8px; border: 1px solid var(--gd-line2);
  background: var(--gd-l0); color: var(--gd-text); font-size: .95rem;
}
.gd-search__input::placeholder { color: var(--gd-dim); }
.gd-search__input:focus { outline: 2px solid var(--gd-accent-h); outline-offset: 0; border-color: transparent; }
.gd-snav-search__close { appearance: none; position: absolute; right: 4px; width: 40px; height: 44px; border: 0; background: none; color: var(--gd-muted); font-size: 20px; cursor: pointer; }
.gd-snav-search__close:hover { color: var(--gd-text); }
.gd-search__results {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 60;
  max-height: 360px; overflow-y: auto; border-radius: 10px; border: 1px solid var(--gd-line);
  background: var(--gd-l0); box-shadow: 0 16px 40px rgba(0, 0, 0, .5); padding: 6px;
}
.gd-search__item { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 8px; color: var(--gd-text); text-decoration: none; }
.gd-search__item-title { font-weight: 600; font-size: .92rem; }
.gd-search__item-meta { font-size: .76rem; color: var(--gd-muted); }
.gd-search__item:hover, .gd-search__item.is-active { background: rgba(139, 92, 246, .16); color: var(--gd-text); text-decoration: none; }
.gd-search__empty { padding: 14px 10px; color: var(--gd-muted); font-size: .85rem; text-align: center; }
.gd-snav-row--maps { height: 36px; flex-wrap: nowrap; gap: 6px; overflow-x: auto; scrollbar-width: none; border-top: 1px solid var(--gd-line); }
.gd-snav-row--maps::-webkit-scrollbar { display: none; }
.gd-snav-mapchip {
  flex: 0 0 auto; display: inline-block; height: 24px; line-height: 22px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--gd-line2);
  font-size: .8rem; color: var(--gd-text2); text-decoration: none; white-space: nowrap; transition: border-color .15s, color .15s;
}
.gd-snav-mapchip:hover { color: var(--gd-text); border-color: var(--gd-accent); text-decoration: none; }
.gd-snav-mapchip.is-active { color: var(--gd-text); border-color: var(--gd-accent); }

/* ==================== ХАБ /eft/ (CONCEPT §5): факты → поиск → карты → торговцы → Каппа → калибры → CTA ==================== */
.gd-lead { margin: 8px 0 0; color: var(--gd-text2); font-size: 1rem; line-height: 1.6; max-width: 720px; }
.gd-facts--big { margin-top: 16px; }
.gd-facts--big .gd-facts__item { padding: 4px 20px; }
.gd-facts--big .gd-facts__item:first-child { padding-left: 0; }
.gd-facts--big dd { font-size: 1.35rem; }
.gd-facts--big dd a { color: var(--gd-text); }
.gd-treepromo {
  display: flex; align-items: center; gap: 20px; margin: 20px 0 0; padding: 18px 22px; border-radius: 12px;
  border: 1px solid rgba(139, 92, 246, .5); color: var(--gd-text); text-decoration: none;
  background: linear-gradient(100deg, rgba(139, 92, 246, .2), rgba(139, 92, 246, .06) 55%, rgba(59, 130, 246, .1));
  transition: border-color .15s, box-shadow .15s;
}
.gd-treepromo:hover { color: var(--gd-text); text-decoration: none; border-color: var(--gd-accent); box-shadow: 0 8px 28px rgba(139, 92, 246, .22); }
.gd-shell .gd-treepromo, .gd-shell .gd-treepromo:hover { color: var(--gd-text); }
.gd-treepromo__art { flex: 0 0 124px; display: flex; }
.gd-treepromo__art svg { display: block; width: 124px; height: 64px; }
.gd-treepromo__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.gd-treepromo__kicker { font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gd-link); }
.gd-treepromo__title { font-size: 1.35rem; font-weight: 800; line-height: 1.2; }
.gd-treepromo__desc { color: var(--gd-text2); font-size: .92rem; line-height: 1.45; max-width: 640px; }
.gd-treepromo__btn { flex: 0 0 auto; }
.gd-snav-link--tree i { color: var(--gd-accent); font-size: .85em; margin-right: 2px; }
.gd-hubsearch { position: relative; margin: 20px 0 0; }
.gd-hubsearch__icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--gd-dim); font-size: 18px; pointer-events: none; }
.gd-hubsearch__input { width: 100%; height: 56px; padding-left: 46px; font-size: 1.05rem; background: var(--gd-l1); }
.gd-hubsearch__results { left: 0; right: 0; }
.gd-shell--hub .gd-sec { margin-top: 40px; }
.gd-tgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gd-tcard { display: flex; align-items: center; gap: 12px; min-width: 0; height: 88px; padding: 12px; background: var(--gd-l1); border: 1px solid var(--gd-line); border-radius: 10px; color: var(--gd-text); transition: border-color .15s; }
.gd-shell .gd-tcard { color: var(--gd-text); }
.gd-tcard:hover, .gd-shell .gd-tcard:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-tcard__avatar { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 10px; object-fit: cover; background: rgba(255, 255, 255, .06); }
.gd-tcard__avatar--icon { display: flex; align-items: center; justify-content: center; font-size: 1.4rem; color: var(--gd-muted); }
.gd-tcard__text { min-width: 0; line-height: 1.3; }
.gd-tcard__text b { display: block; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gd-tcard__text span { display: block; font-size: .82rem; color: var(--gd-muted); white-space: nowrap; }
.gd-tcard__text .gd-star { font-size: 11px; }
.gd-kappaw { display: flex; gap: 24px; align-items: center; min-height: 160px; }
.gd-kappaw__num { flex: 0 0 auto; display: flex; align-items: baseline; gap: 6px; font-variant-numeric: tabular-nums; }
.gd-kappaw__num b { font-size: 2.4rem; font-weight: 800; line-height: 1; color: var(--gd-kappa); }
.gd-kappaw__num span { font-size: 1.05rem; color: var(--gd-muted); }
.gd-kappaw__body { flex: 1 1 auto; min-width: 0; }
.gd-kappaw__text { font-weight: 700; margin-bottom: 8px; }
.gd-hprogress__bar { height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.gd-hprogress__fill { height: 100%; background: var(--gd-kappa); border-radius: 999px; transition: width .3s; }
.gd-kappaw__note { font-size: .82rem; margin-top: 6px; }
.gd-kappaw__btns { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.gd-calwrap { display: flex; flex-wrap: wrap; gap: 8px; }
.gd-mempty { margin: 12px 0 0; font-size: .9rem; }
.gd-shell--hub .gd-cta { margin-top: 40px; }

/* ==================== КВЕСТ (guides/templates/quest.php, CONCEPT §5) ==================== */
/* Разметка идёт в мобильном порядке (цели → разбор → кнопка → награда → связанное → CTA → цитата → FAQ →
   пред/след → возврат → дата), фокус = визуальному порядку. На десктопе грид 720 + 32 + 320: блоки
   контента — колонка 1 построчно, рейл (.gd-qside) — колонка 2 на всю высоту; последняя строка 1fr
   забирает лишнюю высоту рейла, чтобы между блоками контента не появлялись зазоры. */
.gd-qlayout { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.gd-qlayout > * { min-width: 0; }
.gd-qside > * + * { margin-top: 16px; }
.gd-qo3 { margin-top: 8px; }
@media (min-width: 968px) {
  .gd-qlayout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; grid-template-rows: repeat(8, auto) 1fr; column-gap: 32px; align-items: start; }
  .gd-qlayout > * { grid-column: 1; }
  .gd-qside { grid-column: 2; grid-row: 1 / span 9; }
  .gd-qo3 { margin-top: 0; }
}
.gd-qo12 .gd-cta { margin-top: 0; } /* отступ уже даёт .gd-block разбора */
@media (max-width: 967px) {
  .gd-qo12 .gd-cta { margin-top: 32px; }
  .gd-raid__key { display: inline-flex; margin: 4px 0 0; }
}

/* «Взять с собой» — одна строка, только при ключах */
.gd-take { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 28px; margin-top: 12px; font-size: .95rem; }
.gd-take .gd-lbl { white-space: nowrap; }
.gd-take .gd-icon { margin: 0; }

/* Кнопка-чекбокс «Отметить выполненным» (gd_donebtn, _parts_detail.php) */
.gd-donebtn { display: block; }
.gd-donebtn__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.gd-donebtn__label {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 44px;
  padding: 0 16px; border-radius: 8px; border: 1px solid var(--gd-accent);
  background: var(--gd-accent); color: #fff; font-weight: 600; font-size: .95rem;
  cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.gd-donebtn__label:hover { background: var(--gd-accent-h); border-color: var(--gd-accent-h); }
.gd-donebtn__on { display: none; align-items: center; gap: 6px; }
.gd-donebtn__input:checked + .gd-donebtn__label { background: var(--gd-done-bg); border-color: transparent; color: var(--gd-done); }
.gd-donebtn__input:checked + .gd-donebtn__label .gd-donebtn__off { display: none; }
.gd-donebtn__input:checked + .gd-donebtn__label .gd-donebtn__on { display: inline-flex; }
.gd-donebtn__input:focus-visible + .gd-donebtn__label { outline: 2px solid var(--gd-accent-h); outline-offset: 2px; }

/* Панель «Награда»: details — на десктопе всегда открыт, на телефоне свёрнут сводкой (guides.js) */
.gd-rwd { padding: 0; }
.gd-rwd__sum { list-style: none; cursor: default; pointer-events: none; display: flex; align-items: center; gap: 8px; padding: 14px 16px 0; font-weight: 700; color: var(--gd-text); }
.gd-rwd__sum::-webkit-details-marker { display: none; }
.gd-rwd__sum > i:first-child { color: var(--gd-muted); font-size: 16px; }
.gd-rwd__brief, .gd-rwd .gd-faq__chev { display: none; }
.gd-rwd__body { padding: 10px 16px 16px; }
.gd-rwd .gd-rewards__sum b { font-size: 1.1rem; }
.gd-rwd .gd-rewards li .gd-icon { margin: 0; }
@media (max-width: 967px) {
  .gd-rwd__sum { cursor: pointer; pointer-events: auto; min-height: 44px; padding: 0 16px; font-weight: 600; color: var(--gd-text2); }
  .gd-rwd__title { display: none; }
  .gd-rwd__brief { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .gd-rwd .gd-faq__chev { display: block; }
  .gd-rwd[open] .gd-rwd__brief { white-space: normal; }
  .gd-rwd[open] .gd-faq__chev { transform: rotate(180deg); }
}

/* Панель «Связанное»: лейбл над строкой ссылок */
.gd-rel__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.gd-rel__list li { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.gd-rel__v { color: var(--gd-text2); }
.gd-rel__sub { display: block; font-size: .85rem; color: var(--gd-muted); }

/* Цитата торговца — свёрнута */
.gd-tquote { margin-top: 32px; }
.gd-tquote .gd-quote { margin: 0 0 14px; }

/* Пред/след — карточки 64 px */
.gd-qnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
.gd-qnav__card {
  display: flex; align-items: center; gap: 10px; min-width: 0; height: 64px; padding: 0 14px;
  border-radius: 10px; border: 1px solid var(--gd-line); text-decoration: none; color: var(--gd-text); transition: border-color .15s;
}
.gd-shell .gd-qnav__card { color: var(--gd-text); }
.gd-qnav__card:hover, .gd-shell .gd-qnav__card:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-qnav__card--next { justify-content: flex-end; text-align: right; }
.gd-qnav__card > i { color: var(--gd-muted); flex: 0 0 auto; font-size: 13px; }
.gd-qnav__card > span { min-width: 0; }
.gd-qnav__hint { display: block; font-size: .72rem; color: var(--gd-muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.gd-qnav__name { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 576px) { .gd-qnav { grid-template-columns: 1fr; gap: 8px; } }

/* ==================== ЛИСТИНГИ: торговец, /eft/quests, /eft/keys, /eft/maps, ключ (CONCEPT §5) ==================== */
.gd-head--list .gd-facts { margin-top: 16px; }
.gd-facts__item--chip { justify-content: center; }
.gd-facts__item--chip dd { font-size: 0; }
.gd-trh { display: flex; align-items: center; gap: 16px; min-width: 0; }
.gd-trh__avatar { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 10px; object-fit: cover; background: rgba(255, 255, 255, .06); }
.gd-trh__text { min-width: 0; flex: 1 1 0; }
.gd-trh__full { margin: 2px 0 0; color: var(--gd-muted); font-size: .92rem; line-height: 1.3; }

/* панель фильтров одной строкой + строка тумблеров со счётчиком */
.gd-lfilters { margin: 0 0 8px; }
.gd-lfilters__row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; }
.gd-lfilters__row--sub { margin-top: 10px; gap: 16px; }
.gd-lfilters__search { position: relative; flex: 2 1 220px; display: flex; align-items: center; min-width: 0; }
.gd-lfilters__search i { position: absolute; left: 12px; color: var(--gd-dim); font-size: 14px; pointer-events: none; }
.gd-lfilters__search .gd-field { width: 100%; padding-left: 36px; }
.gd-lfilters select.gd-field { flex: 1 1 150px; min-width: 0; appearance: auto; }
.gd-field:focus { outline: 2px solid var(--gd-accent-h); outline-offset: 0; border-color: transparent; }
.gd-field::placeholder { color: var(--gd-dim); }
.gd-lfilters__count { margin-left: auto; font-size: .9rem; white-space: nowrap; }
.gd-lfilters__count b { color: var(--gd-text); font-weight: 600; font-variant-numeric: tabular-nums; }

/* таблица квестов: чекбокс · название + тип · (торговец) · ур. · карта · награда · ★ */
.gd-badge--type { display: inline-block; margin-left: 8px; padding: 1px 6px; border-radius: 4px; border: 1px solid var(--gd-line2); background: none; color: var(--gd-muted); font-size: .7rem; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.gd-qlist th.gd-qlist__chk, .gd-qlist td.gd-qlist__chk { width: 26px; padding-right: 4px; }
.gd-qtype { display: inline-block; width: 18px; margin-right: 6px; text-align: center; font-size: 13px; color: var(--gd-dim); vertical-align: middle; }
.gd-qlist__chk .gd-progress label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gd-qlist th.gd-qlist__star, .gd-qlist td.gd-qlist__star { width: 20px; padding-left: 4px; text-align: center; }
/* Десктоп: фиксированная раскладка, чтобы строка оставалась 44 px — длинное название обрезается многоточием */
@media (min-width: 769px) {
  table.gd-qlist { table-layout: fixed; }
  .gd-qlist th.gd-qlist__lvl, .gd-qlist td.gd-qlist__lvl { width: 48px; }
  .gd-qlist th.gd-qlist__map, .gd-qlist td.gd-qlist__map { width: 104px; overflow: hidden; text-overflow: ellipsis; }
  .gd-qlist th.gd-qlist__trader, .gd-qlist td.gd-qlist__trader { width: 104px; overflow: hidden; text-overflow: ellipsis; }
  .gd-qlist th.gd-qlist__reward, .gd-qlist td.gd-qlist__reward { width: 27%; }
  .gd-qlist td.gd-qlist__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  table.gd-klist { table-layout: fixed; }
  .gd-klist th.gd-klist__map, .gd-klist td.gd-klist__map { width: 110px; }
  .gd-klist th.gd-klist__uses, .gd-klist td.gd-klist__uses { width: 118px; }
  .gd-klist th.gd-klist__opens, .gd-klist td.gd-klist__opens { width: 136px; }
  .gd-klist td.gd-klist__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.gd-qlist td.gd-qlist__reward { max-width: 240px; overflow: hidden; text-overflow: ellipsis; }
.gd-qlist td.gd-qlist__lvl { font-variant-numeric: tabular-nums; }
tr.gd-frow[hidden], tr.gd-trow-group[hidden], tr.gd-lempty[hidden] { display: none; }
.gd-lempty td { text-align: center; padding: 20px 10px; white-space: normal; color: var(--gd-muted); }
.gd-lempty .gd-btn { margin-left: 10px; vertical-align: middle; }
.gd-list-intro { margin-top: 32px; }
.gd-faq-wrap { margin-top: 24px; }
.gd-faq-wrap .gd-faq { margin: 4px 0 12px; }
.gd-faq-wrap .gd-faq__item:last-child { border-bottom: 0; }

/* таблица ключей */
.gd-klist .gd-rowicon { vertical-align: middle; }
.gd-klist td.gd-klist__uses { font-variant-numeric: tabular-nums; }

/* чипы ключей (страница ключа, карта) */
.gd-keychips { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gd-keychip { display: flex; align-items: center; gap: 10px; height: 40px; min-width: 0; padding: 0 10px; border: 1px solid var(--gd-line); border-radius: 8px; color: var(--gd-text); font-size: .92rem; }
.gd-shell .gd-keychip { color: var(--gd-text); }
.gd-keychip:hover, .gd-shell .gd-keychip:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-keychip .gd-rowicon { margin: 0; flex: 0 0 auto; }
.gd-keychip > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gd-keyquests li { display: flex; flex-wrap: wrap; gap: 0 6px; align-items: baseline; }
.gd-keyquests .gd-star { font-size: 12px; }
.gd-shell--key .gd-content { max-width: 720px; }

/* сетка карт 4×N, карточка: фото 3:2 + подпись */
.gd-mgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.gd-mcard { display: block; min-width: 0; background: var(--gd-l1); border: 1px solid var(--gd-line); border-radius: 10px; overflow: hidden; color: var(--gd-text); transition: border-color .15s; }
.gd-shell .gd-mcard { color: var(--gd-text); }
.gd-mcard:hover, .gd-shell .gd-mcard:hover { border-color: var(--gd-accent); color: var(--gd-text); text-decoration: none; }
.gd-mcard__ph { display: block; aspect-ratio: 3 / 2; background: rgba(0, 0, 0, .35); }
.gd-mcard__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gd-mcard__cap { display: block; padding: 10px 12px; line-height: 1.3; }
.gd-mcard__cap b { display: block; font-weight: 700; }
.gd-mcard__cap span { display: block; font-size: .82rem; color: var(--gd-muted); }
.gd-mcard--empty .gd-mcard__ph { opacity: .55; }

/* ==================== «СБОРЫ В РЕЙД» (CONCEPT §7) + КАППА ==================== */
.gd-raidbtn { margin-top: 8px; }
.gd-raidbtn__on, .gd-raidbtn__full { display: none; }
.gd-raidbtn.is-on { background: var(--gd-done-bg); border-color: transparent; color: var(--gd-done); }
.gd-raidbtn.is-on .gd-raidbtn__off { display: none; }
.gd-raidbtn.is-on .gd-raidbtn__on { display: inline; }
.gd-raidbtn.is-full { color: var(--gd-dim); border-color: var(--gd-line); cursor: default; }
.gd-raidbtn.is-full .gd-raidbtn__off { display: none; }
.gd-raidbtn.is-full .gd-raidbtn__full { display: inline; }
.gd-raidbtn:disabled:hover { border-color: var(--gd-line); }
.gd-raid { margin-top: 24px; }
.gd-raid__hd { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.gd-raid__hd h3 { margin: 0; font-size: 1rem; font-weight: 700; }
.gd-raid__hd h3 i { color: var(--gd-muted); margin-right: 4px; }
.gd-raid__hd .gd-dim { font-size: .78rem; }
.gd-raid__list { list-style: none; margin: 8px 0 0; padding: 0; }
.gd-raid__list li { display: flex; gap: 10px; align-items: flex-start; padding: 4px 0; line-height: 1.35; }
.gd-raid__list li > div { min-width: 0; }
.gd-raid__n { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 2px; border-radius: 50%; background: rgba(139, 92, 246, .2); color: #c4b5fd; font-size: .78rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.gd-raid__key { margin-left: 8px; height: 24px; }
.gd-raid__key i { font-size: 11px; }
.gd-raid__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; font-size: .82rem; color: var(--gd-dim); }
.gd-raid__clear { appearance: none; background: none; border: 0; padding: 0; color: var(--gd-muted); font-size: .82rem; cursor: pointer; }
.gd-raid__map { margin-left: auto; margin-right: 14px; font-size: .82rem; font-weight: 600; }
.gd-mapbtn { margin-top: 8px; }
.gd-onmap { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: 6px; border-radius: 50%; background: rgba(139, 92, 246, .18); color: var(--gd-link); font-size: .72rem; vertical-align: middle; }
.gd-onmap:hover { background: var(--gd-accent); color: #fff; text-decoration: none; }
.gd-mapbtn__n { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: rgba(139, 92, 246, .25); font-size: .74rem; font-weight: 700; }
.gd-keymap { margin: 12px 0 0; }
.gd-raid__clear:hover { color: var(--gd-text); text-decoration: underline; }
.gd-raid__hint { margin: -8px 0 12px; font-size: .9rem; }
.gd-raid__hint[hidden] { display: none; }
.gd-cont { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; font-size: .95rem; color: var(--gd-text2); line-height: 1.35; }
.gd-cont[hidden] { display: none; }
.gd-cont i { color: var(--gd-muted); margin-top: 4px; }
.gd-kappa-bar { height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; margin: 0 0 16px; }
.gd-kappa-bar__fill { display: block; height: 100%; width: 0; background: var(--gd-kappa); border-radius: 999px; transition: width .2s; }
.gd-regroup { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; }
.gd-kappa-note { margin-top: 16px; font-size: .9rem; }

/* ==================== ХАБ: СЛАЙДЕР КАРТ + «ПОСЛЕДНИЕ ДОБАВЛЕНИЯ» ==================== */
.gd-slider { position: relative; display: flex; align-items: center; gap: 12px; }
.gd-slider__viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.gd-slider__track { display: flex; will-change: transform; }
.gd-slider__item { flex: 0 0 auto; min-width: 0; }
.gd-slider__item .gd-mcard { height: 100%; }
.gd-slider__arrow {
  flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gd-line2); background: var(--gd-l1);
  color: var(--gd-text); font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: border-color .15s;
}
.gd-slider__arrow:hover { border-color: var(--gd-accent); }
.gd-slider__arrow:focus-visible { outline: 2px solid var(--gd-accent-h); outline-offset: 2px; }
.gd-rgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gd-rcard { display: flex; flex-direction: column; min-width: 0; background: var(--gd-l1); border: 1px solid var(--gd-line); border-radius: 10px; overflow: hidden; transition: border-color .15s; }
.gd-rcard:hover { border-color: var(--gd-accent); }
.gd-rcard__ph { display: block; aspect-ratio: 16 / 9; background: rgba(0, 0, 0, .35); }
.gd-rcard__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gd-rcard__body { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; flex: 1 1 auto; }
.gd-rcard__title { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.3; }
.gd-rcard__title a { color: var(--gd-text); }
.gd-shell .gd-rcard__title a { color: var(--gd-text); }
.gd-rcard__meta { margin: 0; font-size: .8rem; }
.gd-rcard__meta .gd-star { font-size: 11px; }
.gd-rcard__text { margin: 0; font-size: .9rem; color: var(--gd-text2); line-height: 1.45; }
.gd-rcard__more { align-self: flex-start; margin-top: auto; }
.gd-rcard__more::after { content: ' \2192'; }

/* картинка квеста в рейле — натуральные 314×177, без растяжения на всю колонку */
.gd-qimg { margin: 0; }
.gd-qimg img { display: block; width: 100%; max-width: 314px; height: auto; margin: 0 auto; border-radius: 10px; background: rgba(0, 0, 0, .35); }

/* ==================== АДАПТИВНОСТЬ (968 / 768 / 576 / 480) ==================== */
@media (max-width: 968px) {
  .gd-rgrid { grid-template-columns: 1fr 1fr; }
  .gd-grid--4 { grid-template-columns: repeat(3, 1fr); }
  .gd-linkgrid { grid-template-columns: repeat(2, 1fr); }
  .gd-split { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .gd-shell, .gd-shell--wide { padding: 4px 16px 48px; }
  .gd-crumbs { margin-bottom: 4px; }
  .gd-factline { margin-top: 6px; }
  .gd-snav-in { padding: 0 16px; }
  .gd-snav-brand { margin-right: 6px; }
  .gd-snav-brand span { display: none; }
  .gd-head { margin-bottom: 16px; }
  .gd-block { margin-bottom: 32px; }
  .gd-sec { margin-top: 32px; }
  .gd-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .gd-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .gd-linkgrid { grid-template-columns: 1fr; }
  .gd-facts { height: 40px; align-items: center; }
  .gd-facts__item { padding: 0 12px; }
  .gd-facts__item dd { font-size: .95rem; }
  .gd-cta { margin-top: 32px; }
  .gd-cta__action { width: 100%; }
  .gd-cta--helper { flex-direction: column; align-items: stretch; gap: 14px; }
  .gd-cta--helper .gd-cta__action { display: flex; justify-content: center; }
  .gd-cta__shot { flex-basis: auto; }
  .gd-cta__list { flex-direction: column; }
  .gd-treepromo { flex-wrap: wrap; gap: 14px; padding: 16px; }
  .gd-treepromo__art { display: none; }
  .gd-treepromo__btn { width: 100%; }
  /* листинги на телефоне: аватар 48, фильтры в две строки, таблицы → карточки-строки 64 px */
  .gd-trh { gap: 12px; }
  .gd-trh__avatar { width: 48px; height: 48px; }
  .gd-lfilters__row { gap: 8px; }
  .gd-lfilters__search { flex: 1 1 100%; }
  .gd-lfilters select.gd-field { flex: 1 1 40%; }
  .gd-lfilters__row--sub { gap: 12px; margin-top: 8px; }
  .gd-lfilters__count { width: 100%; margin-left: 0; font-size: .82rem; }
  .gd-table-wrap--list { overflow: visible; }
  table.gd-qlist, table.gd-klist { display: block; }
  table.gd-qlist thead, table.gd-klist thead { display: none; }
  table.gd-qlist tbody, table.gd-klist tbody { display: block; }
  table.gd-qlist tr, table.gd-klist tr { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 2px; min-height: 56px; padding: 6px 0; border-bottom: 1px solid var(--gd-line); }
  table.gd-qlist tr.gd-trow-group, table.gd-klist tr.gd-trow-group { min-height: 32px; padding: 0; }
  table.gd-qlist td, table.gd-klist td { display: block; height: auto; padding: 0; border: 0; }
  .gd-qlist tr.gd-trow-group td { padding: 0 4px; line-height: 32px; width: 100%; }
  .gd-qlist td.gd-qlist__chk { order: 1; flex: 0 0 18px; width: 18px; }
  .gd-qlist td.gd-qlist__name { order: 2; flex: 1 1 calc(100% - 70px); min-width: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
  .gd-qlist td.gd-qlist__name .gd-badge--type, .gd-qlist td.gd-qlist__name .gd-qtype { display: none; }
  .gd-qlist td.gd-qlist__star { order: 3; flex: 0 0 18px; width: 18px; text-align: right; }
  .gd-qlist td.gd-qlist__lvl { order: 4; flex: 0 0 auto; width: auto; margin-left: 26px; font-size: .82rem; color: var(--gd-muted); text-align: left; }
  .gd-qlist td.gd-qlist__trader, .gd-qlist td.gd-qlist__map { width: auto; }
  .gd-qlist td.gd-qlist__lvl::before { content: 'ур. '; }
  .gd-qlist td.gd-qlist__trader, .gd-qlist td.gd-qlist__map, .gd-qlist td.gd-qlist__reward { order: 5; flex: 0 0 auto; font-size: .82rem; white-space: nowrap; }
  .gd-qlist td.gd-qlist__reward { flex: 1 1 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; max-width: none; }
  .gd-qlist td.gd-qlist__trader::before, .gd-qlist td.gd-qlist__map::before, .gd-qlist td.gd-qlist__reward::before { content: '·'; margin-right: 8px; color: var(--gd-dim); }
  .gd-qlist tr.gd-lempty td, .gd-klist tr.gd-lempty td { width: 100%; text-align: center; padding: 12px 0; }
  .gd-klist td.gd-klist__name { order: 1; flex: 1 1 100%; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
  .gd-klist td.gd-klist__map, .gd-klist td.gd-klist__uses, .gd-klist td.gd-klist__opens { order: 2; flex: 0 0 auto; width: auto; font-size: .82rem; color: var(--gd-muted); text-align: left; white-space: nowrap; }
  .gd-klist td.gd-klist__map { margin-left: 34px; }
  .gd-klist .gd-rowicon--32 { width: 24px; height: 24px; }
  table.gd-klist tr.gd-frow { padding: 4px 0; row-gap: 0; min-height: 48px; }
  .gd-klist td.gd-klist__uses::before, .gd-klist td.gd-klist__opens::before { content: '·'; margin-right: 8px; color: var(--gd-dim); }
  .gd-klist td.gd-klist__uses::after { content: ' исп.'; }
  .gd-mgrid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .gd-rgrid { grid-template-columns: 1fr; gap: 10px; }
  .gd-slider { gap: 8px; }
  .gd-slider__arrow { flex-basis: 36px; width: 36px; height: 36px; }
  .gd-keychips { grid-template-columns: 1fr; }
  /* хаб на телефоне: факты 2×2, поиск 48, торговцы строками 56, Каппа столбиком, калибры лентой */
  .gd-facts--big { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 8px; height: auto; overflow: visible; white-space: normal; margin-top: 10px; }
  .gd-facts--big .gd-facts__item { border-left: 0; padding: 2px 0; }
  .gd-facts--big .gd-facts__item--chip { grid-column: 1 / -1; justify-content: flex-start; padding-top: 6px; }
  .gd-facts--big dd { font-size: 1.15rem; }
  .gd-lead { margin-top: 6px; font-size: .95rem; line-height: 1.5; }
  .gd-hubsearch { margin-top: 16px; }
  .gd-hubsearch__input { height: 48px; font-size: 1rem; }
  .gd-shell--hub .gd-sec { margin-top: 32px; }
  .gd-tgrid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .gd-tcard { height: 56px; padding: 6px 8px; gap: 8px; }
  .gd-tcard__avatar { width: 32px; height: 32px; border-radius: 8px; }
  .gd-tcard__text b { font-size: .9rem; }
  .gd-tcard__text span { font-size: .75rem; }
  .gd-kappaw { flex-direction: column; align-items: stretch; gap: 12px; min-height: 0; }
  .gd-kappaw__btns .gd-btn { flex: 1 1 auto; }
  .gd-calwrap { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
  .gd-calwrap::-webkit-scrollbar { display: none; }
  .gd-calwrap > * { flex: 0 0 auto; }
  .gd-layout { gap: 24px; }
}

@media (max-width: 576px) {
  /* крошки на телефоне: «… / Родитель / Текущая» — средние уровни прячем, остаётся настоящий родитель */
  .gd-crumbs li:not(:nth-last-child(-n+2)) { display: none; }
  .gd-crumbs li:nth-last-child(2) { flex: 0 1 auto; }
  .gd-crumbs li:nth-last-child(2)::before { content: '…'; margin-right: 6px; color: var(--gd-dim); }
  .gd-grid--4, .gd-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .gd-filters { flex-direction: column; align-items: stretch; }
  .gd-filters__hint { margin-left: 0; }
  .gd-neighbors { flex-direction: column; }
  .gd-neighbors__link, .gd-neighbors__link--next { max-width: 100%; text-align: left; margin-left: 0; }
}

@media (max-width: 480px) {
  .gd-tcard__kappa { display: none; } /* на узких экранах в карточке торговца только число квестов */
  .gd-grid--4, .gd-grid--3 { grid-template-columns: 1fr 1fr; }
  .gd-seccard, .gd-entcard, .gd-mapcard, .gd-tradercard { padding: 12px; }
  .gd-mapcard--img { padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .gd-seccard, .gd-entcard, .gd-qcard, .gd-cta__action, .gd-mapcard, .gd-tradercard, .gd-hprogress__fill, .gd-btn, .gd-snav-link, .gd-toggle__track, .gd-toggle__track::after { transition: none; }
}

/* ==================== ПРАВКИ ПО SEO-АУДИТУ 2026-09-14 (патроны, ключи) ====================
   Только добавления в конец файла. guides-detail.css подключается ПОСЛЕ guides.css, поэтому
   перебивающие его правила идут с запасом по специфичности (.gd-shell …). */

/* /eft/ammo: вводный абзац из чисел и свёрнутый блок особых боеприпасов (C-16, K5) */
.gd-ammointro { margin: 0 0 14px; max-width: 78ch; color: var(--gd-muted); line-height: 1.6; }
.gd-ammo-special { margin: 0 0 20px; }
.gd-ammo-special .gd-table-wrap { margin-bottom: 10px; }

/* Мелкий текст в таблицах патронов: ниже 12 px на телефоне не опускаемся (Ж9) */
.gd-shell .gd-ammo th { font-size: 12px; }
.gd-shell .gd-ammo .gd-cls__c { font-size: 12px; }

@media (max-width: 768px) {
  /* обёртка таблицы патронов (сводная и калибр) — со скроллом вместо overflow: visible */
  .gd-shell .gd-ammo-wrap { overflow-x: auto; }
  .gd-shell .gd-ammo--list td.gd-ammo__pen { font-size: 12px; }
  .gd-shell .gd-ammo--list .gd-cls__c { font-size: 12px; }
}


/* ==================== СЕРВЕРНАЯ ГРУППИРОВКА ЛИСТИНГОВ (SEO-аудит 2026-09-14) ====================
   /eft/quests, /eft/keys и чек-лист Каппы отдают блоки с <h2> и компактными строками вместо одной
   таблицы на сотни строк. Строка повторяет вид строки таблицы: чекбокс · название · мета справа. */
.gd-groups { display: block; }
.gd-gsec { margin: 0 0 28px; }
.gd-gsec:last-child { margin-bottom: 0; }
.gd-gsec__h { display: flex; align-items: baseline; gap: 10px; margin: 0 0 8px; }
.gd-gsec__h a { color: var(--gd-text); }
.gd-shell .gd-gsec__h a:hover { color: var(--gd-accent); }
.gd-gsec__n { font-size: .8rem; font-weight: 600; color: var(--gd-muted); font-variant-numeric: tabular-nums; }
.gd-gsec__all { margin: 8px 0 0; font-size: .92rem; }
.gd-ghint { margin: 0 0 20px; color: var(--gd-muted); font-size: .92rem; display: flex; align-items: baseline; gap: 8px; }
.gd-ghint i { color: var(--gd-dim); font-size: 13px; }
.gd-hubmore { margin: 14px 0 0; font-size: .95rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.gd-hubmore i { color: var(--gd-dim); font-size: 13px; }

.gd-clist { list-style: none; margin: 0; padding: 0; }
.gd-clist > li { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 40px; padding: 5px 0; border-bottom: 1px solid var(--gd-line); }
.gd-clist > li:last-child { border-bottom: 0; }
.gd-clist > li > a { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--gd-text); }
.gd-shell .gd-clist > li > a:hover { color: var(--gd-accent); }
.gd-clist input[type="checkbox"] { flex: 0 0 auto; width: 16px; height: 16px; margin: 0; accent-color: var(--gd-accent); cursor: pointer; }
.gd-clist .gd-rowicon { flex: 0 0 auto; margin: 0; }
.gd-clist .gd-star { flex: 0 0 auto; font-size: 12px; }
.gd-cl__m { flex: 0 0 auto; color: var(--gd-muted); font-size: .85rem; white-space: nowrap; }
.gd-frow[hidden], .gd-trow-group[hidden] { display: none; }
.gd-gempty { margin: 16px 0; text-align: center; color: var(--gd-muted); }
.gd-gempty .gd-btn { margin-left: 10px; vertical-align: middle; }

/* «Все цепочки списком» под схемой квестов (V6): три колонки на десктопе, одна на телефоне */
.gd-treeflat { margin-top: 16px; }
.gd-treeflat__body { padding: 8px 0 4px; }
.gd-tflat { margin: 0; padding-left: 20px; columns: 3; column-gap: 28px; font-size: .92rem; }
.gd-tflat li { break-inside: avoid; margin-bottom: 2px; }
.gd-tflat .gd-muted { font-size: .82rem; }

/* Заметка о фракционном дубле под H1 квеста (V1) */
.gd-dupnote { display: flex; align-items: baseline; gap: 8px; margin: 10px 0 0; padding: 8px 12px; border-left: 2px solid var(--gd-accent); background: var(--gd-l1); border-radius: 0 8px 8px 0; font-size: .92rem; color: var(--gd-muted); }
.gd-dupnote i { color: var(--gd-dim); font-size: 13px; }

/* «и ещё N» вместо сотен иконок предметов в цели (K1) */
.gd-obj__more { display: inline-block; margin-right: 6px; padding: 1px 6px; border: 1px solid var(--gd-line2); border-radius: 4px; color: var(--gd-muted); font-size: .78rem; white-space: nowrap; vertical-align: middle; }

@media (max-width: 968px) { .gd-tflat { columns: 2; } }
@media (max-width: 576px) {
  .gd-tflat { columns: 1; }
  .gd-clist > li { flex-wrap: wrap; padding: 8px 0; }
  .gd-clist > li > a { white-space: normal; }
  /* мета уходит на вторую строку, чекбокс + название + звезда Каппы остаются на первой */
  .gd-clist > li > .gd-star { order: 1; }
  .gd-cl__m { flex: 1 1 100%; order: 2; margin-left: 26px; }
  .gd-clist--key .gd-cl__m { margin-left: 34px; }
  .gd-gsec__h { flex-wrap: wrap; }
}


/* ==================== SEO-аудит 2026-09-14 ==================== */

/* Ж8/B-13: подпись панели интерактивной карты и шапка блока «В работе» — не заголовки страницы,
   но выглядят ровно как раньше (было .gd-imap__ph h2 и .gd-raid__hd h3). */
.gd-raid__hd .gd-raid__t { margin: 0; font-size: 1rem; font-weight: 700; }
.gd-raid__hd .gd-raid__t i { color: var(--gd-muted); margin-right: 4px; }

/* V5/B-05: страница выходов локации — вводный абзац и карточка на каждый выход. */
.gd-exintro { margin: 0 0 4px; color: var(--gd-text2); line-height: 1.6; }
.gd-exsec { margin-top: 32px; }
.gd-exlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 769px) { .gd-exlist { grid-template-columns: 1fr 1fr; } }
.gd-exi {
  min-width: 0; padding: 12px 14px; border: 1px solid var(--gd-line); border-left: 3px solid var(--gd-dim);
  border-radius: 10px; background: var(--gd-l1);
}
.gd-exi--pmc { border-left-color: var(--gd-pmc); }
.gd-exi--scav { border-left-color: var(--gd-scav); }
.gd-exi--coop { border-left-color: var(--gd-coop); }
.gd-exi__n {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  margin: 0 0 8px; font-size: 1rem; font-weight: 700; color: var(--gd-text); line-height: 1.3;
}
.gd-exi__facts { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
.gd-exi__f { min-width: 0; }
.gd-exi__f--wide { grid-column: 1 / -1; }
.gd-exi__f dt { font-size: .78rem; font-weight: 400; color: var(--gd-muted); text-transform: uppercase; letter-spacing: .02em; }
.gd-exi__f dd { margin: 0; font-size: .92rem; color: var(--gd-text2); overflow-wrap: anywhere; }
.gd-onmap--t {
  width: auto; height: 22px; margin-left: 0; padding: 0 9px; gap: 5px;
  border-radius: 999px; font-size: .78rem; white-space: nowrap;
}

/* V2/B-03: подстраница без записей — ссылки, по которым можно уйти дальше, а не тупик. */
.gd-emptylinks { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 0; font-size: .92rem; }
.gd-emptylinks a { color: var(--gd-link); text-decoration: none; }
.gd-emptylinks a:hover { color: var(--gd-text); text-decoration: underline; }

@media (max-width: 480px) {
  .gd-exi__facts { grid-template-columns: 1fr; }
}
