/* ══════════════════════════════════════════════════════════════════════════
   КАРТА МИРА
   Оформление экрана карты: полоса подвкладок, окно канваса, легенда и всплывающая
   карточка территории. Сама карточка собрана на сцене станка (theme-forge.css) —
   тут только то, чего у станков нет: подвкладки и обёртка канваса.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Подвкладки ──
   Карта и список этажей — два тела ОДНОЙ панели. Раньше это были две вкладки
   нижнего меню, а меню и так на семь кнопок; территория и этаж — одно и то же
   место, и разводить их по разным экранам значило бы дважды объяснять игроку
   одно понятие. */
.map-subtabs {
  display: flex; gap: 6px;
  padding: 8px 14px 0;
  flex-shrink: 0;
}
.map-subtab {
  flex: 1;
  /* 40px, а не привычные 30: полоса стоит вплотную к прокручиваемому телу, и
     промах по ней уводил бы карту вместо переключения. */
  min-height: 40px;
  padding: 8px 0;
  border-radius: 7px;
  border: 1.5px solid #2a2a5a;
  background: rgba(255, 255, 255, 0.03);
  color: #8099c0;
  font-size: 11px; font-family: 'Courier New', monospace; letter-spacing: 1px;
  cursor: pointer;
  touch-action: manipulation;
}
.map-subtab.is-on {
  border-color: #f5c542;
  background: rgba(245, 197, 66, 0.1);
  color: #f5c542;
}

/* Карта — единственное тело своей панели: список этажей уехал обратно в свою
   вкладку, и переключателя внутри карты больше нет. Раньше здесь стояло
   «показываем по одному» через класс is-on, и когда переключатель убрали, карта
   осталась невидимой: класс никто не ставил, а правило display жило только с
   ним. Теперь показ безусловный. */
#panelMap > #mapBody {
  display: flex; flex-direction: column;
  /* Карту прокручивают пальцем ВНУТРИ канваса. Если тело панели тоже
     прокручивается, то же движение уводит страницу, и карта дёргается. */
  overflow: hidden;
  padding: 8px 10px 56px;
}

/* ── Окно карты ── */
.map-view {
  position: relative;
  flex: 1;
  min-height: 0;              /* иначе flex-ребёнок не даёт себя сжать */
  border: 1.5px solid #2a2a5a;
  border-radius: 10px;
  overflow: hidden;
  background: #05060f;
}
.map-view canvas {
  display: block; width: 100%; height: 100%;
  /* Браузер не должен трактовать движение по канвасу как прокрутку или
     двойной тап — иначе перетаскивание карты приходится начинать дважды. */
  touch-action: none;
  -webkit-user-select: none; user-select: none;
}

.map-tools {
  position: absolute; right: 8px; top: 8px;
  display: flex; flex-direction: column; gap: 6px;
}
.map-tool {
  width: 40px; height: 40px;
  border-radius: 8px;
  border: 1.5px solid #3a3a6a;
  background: rgba(10, 12, 24, 0.85);
  color: #cbd8ee;
  font-size: 18px; line-height: 1; font-family: 'Courier New', monospace;
  cursor: pointer;
  touch-action: manipulation;
}
.map-tool:active { background: rgba(245, 197, 66, 0.14); border-color: #f5c542; color: #f5c542; }

/* ── Легенда ──
   Одна строка под картой. Цвет рамки территории — это редкость, и без легенды
   он остаётся просто украшением: угадать «синий = редкая» неоткуда. */
.map-legend {
  flex-shrink: 0;
  display: flex; flex-wrap: wrap; gap: 4px 10px;
  padding: 7px 2px 0;
  font-size: 9px; color: #8099c0; font-family: 'Courier New', monospace;
}
.map-leg { display: inline-flex; align-items: center; gap: 4px; }
.map-leg i { width: 9px; height: 9px; border-radius: 50%; box-sizing: border-box; }
.map-leg__fog { background: transparent; border: 1.5px dashed #76829f; }
.map-leg--num { margin-left: auto; color: #6d87a8; }

/* ── Карточка территории ──
   Всплывает поверх карты, а не заменяет её: игрок сравнивает соседей, и терять
   при этом карту из виду не должен. */
.map-card {
  position: fixed; inset: 0; z-index: 9400;
  background: rgba(0, 0, 0, 0.86);
  display: flex; align-items: flex-end; justify-content: center;
}
.map-card__box {
  width: 100%; max-width: 380px;
  max-height: 88vh;
  display: flex; flex-direction: column;
  background: #0d0f1e;
  border: 1.5px solid var(--rar, #2a2a5a);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
  box-shadow: 0 -6px 26px rgba(0, 0, 0, 0.7);
}
.map-card__head {
  flex-shrink: 0;
  display: flex; align-items: center;
  padding: 12px 14px 10px;
  border-bottom: 1px solid #1e2038;
  font-size: 12px; letter-spacing: 1.5px; color: var(--rar, #f5c542);
  font-family: 'Courier New', monospace;
}
.map-card__x {
  margin-left: auto;
  width: 34px; height: 34px;
  border-radius: 8px; border: 1px solid #2a2a5a;
  background: rgba(255, 255, 255, 0.03);
  color: #8099c0; font-size: 13px; cursor: pointer;
  touch-action: manipulation;
}
.map-card__body { overflow-y: auto; padding: 12px 14px 16px; }
.map-card__body::-webkit-scrollbar { width: 3px; }
.map-card__body::-webkit-scrollbar-thumb { background: #2a2a5a; }
.map-card__fogtext {
  font-size: 10px; color: #8099c0; line-height: 1.6; padding: 6px 2px;
}
/* Причина, по которой на землю нельзя: стоит там, где была бы кнопка входа. */
.map-card__deny {
  margin-top: 10px; padding: 10px 12px; text-align: center;
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
  color: #e07a72; border: 1px dashed rgba(224, 122, 114, 0.5); border-radius: 8px;
}

/* ── Сцена карточки ──
   У станков сцена — своя нарисованная арка (tools/forge/*.py). Территории такой
   картинки не положено: перекрашенная арка кузницы остаётся аркой кузницы, а
   тут место — лес, шахта, кладбище. Пока фоны локаций не заведены в карточку,
   сцена рисуется кодом и красится редкостью — честнее, чем чужая картинка. */
.forge--map { --fg: #6ea8e0; --fg-soft: #cfe4ff; --fg-deep: #102a44; --fg-rgb: 110, 168, 224; }
.forge--map .forge-stage { height: 148px; }
.forge--map .forge-stage__bg {
  background-image:
    radial-gradient(130% 90% at 50% 92%, rgba(110, 168, 224, 0.22), transparent 62%),
    linear-gradient(180deg, #0a1122 0%, #101a30 55%, #060a15 100%);
}
.forge--map .forge-ring { display: none; }
.forge--map .forge-core { width: 74px; height: 74px; }
