.world-header { min-height: 48px; padding: 5px 16px 5px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); }
.world-heading { flex: 0 0 auto; min-width: 145px; }
.world-kicker { display: block; margin-bottom: 2px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: 1.1px; }
.world-heading strong { display: block; font-size: 12px; }
.live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(83,189,98,.13); }
.location-tabs { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.location-tabs::-webkit-scrollbar { display: none; }
.location-tabs button { flex: 0 0 auto; height: 34px; padding: 0 11px; border-radius: 10px; border: 1px solid var(--line); background: #fff; color: #646d77; font-size: 11px; font-weight: 650; }
.location-tabs button:hover { border-color: #cad6ec; background: #f8faff; }
.location-tabs button.active { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 5px 13px rgba(95,126,216,.2); }
.location-tabs button small { margin-left: 5px; opacity: .72; }

/* Мир заполняет доступный прямоугольник. Сам Canvas получает собственную логическую
   ширину из JS, поэтому картинка и аватары больше не растягиваются CSS-ом. */
.scene-wrap {
  min-height: 0;
  flex: 0 0 auto;
  padding: 5px 12px 6px;
  display: block;
  overflow: hidden;
  background: #e7ebef;
}
.scene { position: relative; width: 100%; aspect-ratio: 4 / 1; height: auto; min-height: 0; overflow: hidden; border-radius: 14px; background: #b7ab98; border: 1px solid rgba(66,78,92,.15); box-shadow: 0 7px 20px rgba(45,56,70,.12); }
#city { display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.scene-status { position: absolute; top: 10px; left: 10px; padding: 6px 9px; border-radius: 10px; background: rgba(29,42,51,.72); color: #fff; font-size: 9px; backdrop-filter: blur(7px); pointer-events: none; }
.hint { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); max-width: calc(100% - 20px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 6px 11px; border-radius: 14px; background: rgba(29,42,51,.72); color: #e8eef2; font-size: 9px; backdrop-filter: blur(7px); pointer-events: none; }
.character-preview { display: block; width: 100%; height: 112px; object-fit: contain; background: linear-gradient(#d4e2e0, #829a9b); }
.character-portrait { display: block; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.world-tools { min-width: 0; display: flex; align-items: center; gap: 7px; justify-content: flex-end; }
.world-back { flex: 0 0 auto; border: 1px solid var(--line); background: #fff; }
body[data-view-mode="split"] .world-back { display: none; }




/* v18 — нижних кнопок миров больше нет */
body[data-view-mode="split"] .world-tools:has(.world-back) {
  min-width: 0;
}

body[data-view-mode="split"] .world-tools {
  width: auto;
}

/* v41 · динамические шаблоны миров */
.world-template-empty{padding:18px;border:1px dashed rgba(127,127,127,.24);border-radius:16px;background:rgba(127,127,127,.055);color:var(--muted,#7d8794);font-size:13px;line-height:1.55}

.world-pane {
  display: flex;
  flex-direction: column;
}

.scene-wrap {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  display: flex;
}

.scene {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 360px;
  overflow: hidden;
  border-radius: 26px 26px 0 0;
  border: 1px solid #dfe6ee;
  border-bottom: 0;
  background: #c9d6e1;
  box-shadow: 0 18px 44px rgba(29, 44, 66, .09);
}

#city {
  width: 100%;
  height: 100%;
  display: block;
}

.world-overlay-bar {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 6;
  max-width: calc(100% - 32px);
}

.world-overlay-pill {
  min-height: 64px;
  padding: 7px 10px 7px 12px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border-radius: 20px;
  background: rgba(34, 44, 29, .68);
  box-shadow: 0 10px 24px rgba(18, 26, 18, .16);
  backdrop-filter: blur(12px) saturate(145%);
  -webkit-backdrop-filter: blur(12px) saturate(145%);
  color: #fff;
}

.world-overlay-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.16);
  color: #c7fb78;
}

.world-overlay-icon .ui-icon {
  width: 24px;
  height: 24px;
}

.world-overlay-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.world-overlay-copy strong {
  font-size: 16px;
  line-height: 1.1;
  white-space: nowrap;
}

.world-overlay-meta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.92);
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
}

.world-overlay-meta b {
  color: #fff;
}

.world-overlay-people {
  display: flex;
  align-items: center;
  margin-left: 2px;
}

.world-overlay-people .location-person-link + .location-person-link {
  margin-left: -8px;
}

.world-overlay-people .character-portrait {
  width: 40px;
  height: 40px;
  border: 2px solid rgba(255,255,255,.88);
  box-shadow: 0 4px 12px rgba(0,0,0,.14);
}

.room-native-menu-world {
  position: relative;
  z-index: 20;
}

.room-native-menu-world .room-native-trigger {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.13);
  color: #fff;
}

.room-native-menu-world .room-native-trigger .ui-icon {
  width: 18px;
  height: 18px;
}

.room-native-menu-world .room-native-trigger:hover,
.room-native-menu-world[open] .room-native-trigger {
  background: rgba(255,255,255,.22);
}

.room-native-popup-world {
  top: calc(100% + 10px);
  left: auto;
  right: 0;
}

.room-native-popup-world::before {
  left: auto;
  right: 16px;
}

body[data-view-mode="world"] .scene {
  border-radius: 26px;
  border-bottom: 1px solid #dfe6ee;
}

@media (max-width: 1024px) {
  body[data-view-mode="world"] .scene {
    border-radius: 18px;
  }
}
