.game-screen { min-height: 100svh; background: #020711; }
.museum-shell {
  min-height: 100svh;
  height: 100svh;
  padding: 4px 6px;
  overflow: hidden;
  background:
    radial-gradient(circle at 42% -10%, rgba(255, 212, 111, .14), transparent 31rem),
    radial-gradient(circle at 84% 18%, rgba(54, 173, 215, .12), transparent 25rem),
    linear-gradient(180deg, #04111f, #020711 68%);
}
.museum-top {
  display: grid;
  grid-template-columns: minmax(190px, 220px) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 54px;
  padding: 5px 7px;
  border: 1px solid rgba(255,212,111,.22);
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(7,18,30,.95), rgba(2,8,15,.90));
  box-shadow: 0 22px 52px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.045);
}
.museum-logo strong {
  display: block;
  color: var(--gold);
  font-family: var(--font-title);
  font-size: 35px;
  line-height: .88;
  letter-spacing: .02em;
  white-space: nowrap;
  text-shadow: 0 10px 25px rgba(0,0,0,.55), 0 0 18px rgba(255,212,111,.14);
}
.museum-logo span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.museum-resources {
  display: grid;
  grid-template-columns: repeat(7, minmax(92px, 1fr));
  gap: 6px;
}
.resource-card {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr) 18px;
  gap: 7px;
  align-items: center;
  min-height: 46px;
  padding: 6px 7px;
  border: 1px solid rgba(255,212,111,.22);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(11,27,43,.90), rgba(3,10,18,.84));
}
.resource-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,225,143,.46);
  border-radius: 12px;
  color: #1c1106;
  background: radial-gradient(circle at 34% 26%, #fff4b8, #d89b37 56%, #553009);
  box-shadow: 0 0 20px rgba(255,212,111,.12);
  font-style: normal;
  font-size: 16px;
}
.resource-card small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.resource-card b {
  display: block;
  margin-top: 3px;
  color: var(--gold);
  font-size: 16px;
  line-height: 1;
  font-weight: 950;
  white-space: nowrap;
}
.resource-plus {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(255,212,111,.34);
  border-radius: 7px;
  color: var(--gold);
  background: rgba(0,0,0,.25);
  font-size: 15px;
  font-weight: 950;
}
.museum-profile { display: flex; justify-content: flex-end; gap: 8px; }
.museum-orders {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: 4px 0 4px;
  min-height: 38px;
}
.assignment-card {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 38px;
  padding: 5px 7px;
  border: 1px solid rgba(255,212,111,.22);
  border-radius: 16px;
  color: var(--text);
  background: linear-gradient(145deg, rgba(8,22,36,.83), rgba(3,10,18,.78));
}
.assignment-card.is-ready { border-color: rgba(255,212,111,.64); box-shadow: 0 0 26px rgba(255,212,111,.14); }
.assignment-card i, .task-card i {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 12px;
  border: 1px solid rgba(255,212,111,.26);
  background: rgba(255,212,111,.08);
  font-style: normal;
  font-size: 18px;
}
.assignment-card strong, .task-card strong {
  display: block;
  color: var(--text);
  font-size: 12px;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.assignment-card small, .task-card small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}
.assignment-time {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  min-height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,212,111,.2);
  color: var(--gold);
  font-size: 12px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  background: rgba(0,0,0,.18);
}
.museum-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 236px;
  gap: 4px;
  height: calc(100svh - 102px);
  min-height: 570px;
}
.map-card, .keeper-panel {
  min-height: 0;
  border: 1px solid rgba(255,212,111,.25);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(5,14,24,.76), rgba(2,8,15,.92));
  box-shadow: 0 22px 56px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.04);
  overflow: hidden;
}
.map-card {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  padding: 0;
  border-color: rgba(255,212,111,.16);
  background: linear-gradient(180deg, rgba(3,11,18,.36), rgba(2,7,12,.58));
}
.map-frame {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 0;
  border: 0;
  border-radius: 12px;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,212,111,.08), transparent 24rem),
    linear-gradient(180deg, rgba(2,10,17,.36), rgba(2,7,12,.54));
  overflow: hidden;
}
.museum-map {
  position: relative;
  width: min(100%, 1672px);
  aspect-ratio: 1672 / 941;
  max-height: 100%;
  border-radius: 10px;
  overflow: hidden;
  isolation: isolate;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.035), 0 14px 34px rgba(0,0,0,.26);
}
.map-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.map-layer-base { z-index: 0; }
.map-layer-atmosphere { z-index: 2; mix-blend-mode: screen; opacity: .72; }
.map-layer-slots { z-index: 5; pointer-events: auto; }
.museum-map-art {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: auto;
  filter: saturate(1.14) contrast(1.10) brightness(1.12);
}
.museum-map::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(2,7,12,.12), transparent 12%, transparent 88%, rgba(2,7,12,.14)),
    linear-gradient(180deg, rgba(2,7,12,.08), transparent 18%, transparent 86%, rgba(2,7,12,.18));
}
.map-badge, .map-counts {
  position: absolute;
  z-index: 9;
  pointer-events: none;
}
.map-badge {
  top: 12px;
  left: 12px;
  padding: 6px 9px;
  border: 1px solid rgba(255,212,111,.36);
  border-radius: 999px;
  color: var(--gold);
  background: rgba(2,8,15,.70);
  backdrop-filter: blur(9px);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.map-counts {
  right: 14px;
  bottom: 14px;
  display: flex;
  gap: 8px;
}
.map-count {
  min-width: 82px;
  padding: 7px 10px;
  border: 1px solid rgba(255,212,111,.25);
  border-radius: 14px;
  text-align: center;
  background: rgba(0,0,0,.42);
  backdrop-filter: blur(8px);
}
.map-count b { display:block; color: var(--gold); font-family: var(--font-title); font-size: 21px; line-height:1; }
.map-count span { display:block; color:var(--muted); font-size:9px; font-weight:950; text-transform:uppercase; letter-spacing:.06em; }
.map-atmosphere { width:100%; height:100%; }
.map-route {
  fill:none;
  stroke:rgba(255,212,111,.26);
  stroke-width:3;
  stroke-linecap:round;
  stroke-dasharray:14 18;
  filter:drop-shadow(0 0 10px rgba(255,212,111,.24));
  animation:routeFlow 8s linear infinite;
}
.map-route-secondary { opacity:.45; stroke-width:2; animation-duration:11s; }
.map-lamp {
  fill:url(#museumPulse);
  filter:url(#museumGlow);
  opacity:.26;
  animation:mapPulse 3.6s ease-in-out infinite;
}
.map-lamp.small { opacity:.18; animation-delay:.7s; }
@keyframes routeFlow { to { stroke-dashoffset:-128; } }
@keyframes mapPulse { 50% { opacity:.46; transform:scale(1.02); transform-origin:center; } }
.room-hotspot {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  z-index: 5;
  border: 0;
  border-radius: 18px;
  color: var(--text);
  background: transparent;
  outline: none;
  clip-path: var(--poly);
  transition: transform .16s ease;
}
.room-slot-shape {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  clip-path: var(--poly);
  border: 1px solid rgba(255,212,111,.06);
  background:
    radial-gradient(circle at 55% 45%, rgba(255,212,111,.08), transparent 62%),
    linear-gradient(135deg, rgba(255,212,111,.018), rgba(255,212,111,.012));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.018);
  opacity:.34;
  transition:.18s;
  pointer-events:none;
}
.room-hotspot:hover, .room-hotspot.is-selected {
  transform: translateY(-1px);
}
.room-hotspot:hover .room-slot-shape,
.room-hotspot.is-selected .room-slot-shape {
  border-color: rgba(255,212,111,.56);
  opacity: 1;
  background:
    radial-gradient(circle at 54% 48%, rgba(255,212,111,.20), transparent 58%),
    linear-gradient(135deg, rgba(255,212,111,.055), rgba(255,212,111,.03));
  box-shadow: inset 0 0 26px rgba(255,212,111,.10), 0 0 22px rgba(255,212,111,.12);
}
.room-hotspot.is-selected .room-slot-shape {
  border-color: rgba(255,225,143,.82);
  box-shadow: inset 0 0 34px rgba(255,212,111,.16), 0 0 34px rgba(255,212,111,.20);
}
/* Закрытые комнаты заметно отступают на фон — «раскрытие по мере развития».
   Тусклые + обесцвеченные + без приглашающего свечения. На hover слегка проявляются,
   чтобы читалась подсказка «откроется после …». Клик всё равно открывает карточку. */
.room-hotspot[data-status="locked"] { opacity:.46; filter:grayscale(.8) brightness(.8); transition:opacity .25s ease, filter .25s ease; }
.room-hotspot[data-status="locked"]:hover { opacity:.72; filter:grayscale(.35) brightness(.92); }
.room-hotspot[data-status="locked"] .room-slot-shape,
.room-hotspot[data-status="locked"] .room-rim-glow { box-shadow:none !important; opacity:0 !important; }
.room-hotspot[data-status="locked"] .room-status-icon { opacity:1; filter:none; }
.room-visual {
  position:absolute;
  inset:7%;
  z-index:0;
  border-radius:14px;
  clip-path: var(--poly);
  pointer-events:none;
  overflow:hidden;
}
.room-visual.empty, .room-visual.locked {
  border:0;
  background:rgba(1,7,13,.04);
}
.room-visual.buildable {
  border:0;
  background:
    repeating-linear-gradient(45deg, rgba(255,212,111,.12) 0 1px, transparent 1px 12px),
    radial-gradient(circle at 50% 50%, rgba(255,212,111,.10), transparent 64%);
  box-shadow: inset 0 0 24px rgba(255,212,111,.08);
}
.room-visual.building {
  inset: 24% 28% 18%;
  border:1px solid rgba(255,212,111,.42);
  background:radial-gradient(circle at 72% 62%, rgba(255,212,111,.15), transparent 28%), linear-gradient(135deg, rgba(98,62,22,.15), rgba(4,12,20,.06));
  box-shadow:inset 0 0 26px rgba(255,212,111,.12), 0 0 18px rgba(255,212,111,.10);
  animation:work 1.8s ease-in-out infinite;
}
.room-visual.upgrading {
  inset: 7%;
  border:1px solid rgba(255,212,111,.16);
  background:radial-gradient(circle at 50% 45%, rgba(255,212,111,.08), transparent 64%);
}
.room-visual.level1, .room-visual.level2, .room-visual.upgradeAvailable {
  border:1px solid rgba(255,212,111,.10);
  background:radial-gradient(circle at 50% 45%, rgba(255,212,111,.05), transparent 64%);
}
.room-visual.level2, .room-visual.upgradeAvailable {
  border-color:rgba(255,212,111,.32);
  box-shadow:inset 0 0 34px rgba(255,212,111,.10), 0 0 24px rgba(255,212,111,.08);
}
.room-hotspot.is-complete-fx .room-slot-shape { animation:completeFlash .95s ease-out both; }
@keyframes completeFlash {
  0% { box-shadow:inset 0 0 0 rgba(255,212,111,0), 0 0 0 rgba(255,212,111,0); }
  30% { box-shadow:inset 0 0 54px rgba(255,240,170,.36), 0 0 48px rgba(255,212,111,.38); }
  100% { box-shadow:inset 0 0 18px rgba(255,212,111,.08), 0 0 18px rgba(255,212,111,.12); }
}
@keyframes work { 50% { filter: brightness(1.18); } }
.room-mark {
  position:absolute;
  left:var(--mx);
  top:var(--my);
  transform: translate(-50%, -50%);
  z-index:6;
  display:inline-flex;
  align-items:center;
  gap:3px;
  max-width:calc(100% - 16px);
  padding:2px 4px;
  border:1px solid rgba(255,212,111,.18);
  border-radius:999px;
  background:rgba(2,8,15,.58);
  box-shadow:0 8px 18px rgba(0,0,0,.22);
  pointer-events:none;
  backdrop-filter:blur(7px);
}
.room-mark i { display:grid; place-items:center; width:14px; height:14px; border-radius:50%; background:rgba(255,212,111,.10); font-style:normal; font-size:8px; }
.room-mark span { color:var(--text); max-width:0; opacity:0; font-size:8px; font-weight:950; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:max-width .16s ease, opacity .16s ease; }
.room-mark b { display:grid; place-items:center; min-width:20px; height:14px; padding:0 4px; border-radius:999px; color:#1b1107; background:var(--gold); font-size:7px; font-weight:950; }
.room-hotspot:hover .room-mark span,
.room-hotspot.is-selected .room-mark span { max-width:82px; opacity:1; }
.room-hotspot[data-status="locked"] .room-mark,
.room-hotspot[data-status="empty"] .room-mark { opacity:.78; }

/* === Подсказка комнаты: что делаешь / что качается (при наведении) === */
.room-hotspot:hover { z-index: 90; }
.room-hint {
  position: absolute; left: var(--mx, 50%); top: var(--my, 50%);
  transform: translate(-50%, calc(-100% - 30px)) translateY(-5px);
  width: max-content; max-width: 250px; padding: 9px 13px; border-radius: 12px; z-index: 95;
  background: linear-gradient(180deg, rgba(22,30,26,.98), rgba(10,14,12,.99));
  border: 1px solid rgba(201,162,76,.55); box-shadow: 0 14px 32px rgba(0,0,0,.6);
  opacity: 0; pointer-events: none; transition: opacity .14s ease, transform .14s ease; text-align: left;
}
.room-hotspot:hover .room-hint { opacity: 1; transform: translate(-50%, calc(-100% - 30px)); }
.room-hint::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 7px solid transparent; border-top-color: rgba(201,162,76,.55); }
/* верхние комнаты: подсказка ВНИЗ от метки (чтобы не упиралась в верхнюю панель) */
.room-hotspot.rh-down .room-hint { transform: translate(-50%, 26px) translateY(5px); }
.room-hotspot.rh-down:hover .room-hint { transform: translate(-50%, 26px); }
.room-hotspot.rh-down .room-hint::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: rgba(201,162,76,.55); }
.room-hint .rh-name { display: block; font-family: var(--font-title); font-size: 14.5px; color: #ffe9c0; }
.room-hint .rh-status { display: block; font-size: 10.5px; color: #a7b39a; margin-bottom: 5px; }
.room-hint .rh-do { display: block; font-size: 12px; color: #d6cbac; line-height: 1.35; }
.room-hint .rh-up { display: block; font-size: 11.5px; color: #cfe6b8; line-height: 1.35; margin-top: 5px; }
.room-hint .rh-up i { font-style: normal; font-weight: 800; color: #7fd07a; font-size: 10px; text-transform: uppercase; letter-spacing: .03em; }
.room-hint .rh-locked { color: #e6d3a6; }
.room-hint .rh-locked i { color: #e0b657; }

/* === Панель «Развитие» (Музей + Герой) === */
.dev-tabs { display:flex; gap:8px; margin:2px 0 13px; }
.dev-tab { flex:1; padding:9px 10px; border-radius:11px; border:1px solid rgba(201,162,76,.3); background:rgba(28,22,12,.5); color:#d9caa6; font-weight:800; font-size:14px; cursor:pointer; transition:background .18s ease, border-color .18s ease, color .18s ease; }
.dev-tab:hover { border-color:rgba(255,205,110,.5); color:#ffe6b0; }
.dev-tab.is-active { background:linear-gradient(180deg, rgba(255,205,110,.22), rgba(201,162,76,.1)); border-color:rgba(255,205,110,.7); color:#ffe9c0; }
.dev-pane { display:flex; flex-direction:column; gap:12px; }
.dev-headline { display:flex; flex-direction:column; gap:3px; }
.dev-headline .dev-big { font-family:var(--font-title); font-size:20px; color:#ffe9c0; }
.dev-headline small, .dev-next small { font-size:12px; color:#c9bd9e; line-height:1.35; }
.dev-stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.dev-stat { display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 6px; border-radius:11px; background:rgba(28,22,12,.5); border:1px solid rgba(201,162,76,.24); }
.dev-stat b { font-size:19px; color:#ffe6b0; font-family:var(--font-title); line-height:1.1; }
.dev-stat small { font-size:11px; color:#c3b791; text-align:center; }
.dev-next { display:flex; flex-direction:column; gap:2px; padding:11px 13px; border-radius:12px; background:linear-gradient(180deg, rgba(255,205,110,.14), rgba(201,162,76,.05)); border:1px solid rgba(255,205,110,.4); }
.dev-next i { font-style:normal; font-weight:800; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#e0b657; }
.dev-next b { font-size:15px; color:#ffe9c0; }
.dev-pips { display:inline-flex; gap:3px; margin-left:8px; vertical-align:middle; }
.dev-pip { width:12px; height:6px; border-radius:3px; background:rgba(120,105,78,.4); }
.dev-pip.is-on { background:linear-gradient(90deg,#ffd86a,#e0a94c); }
.dev-hero-row .rq-find-title { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; }
.hud-develop-btn .heroes-btn-icon { font-size:19px; }

/* === Шаг 3: гид «что делать дальше» — маяк над целевой комнатой === */
/* целевая комната всегда яркая, даже среди затемнённых закрытых */
.museum-ui-final .room-hotspot.is-quest-target { opacity:1 !important; filter:none !important; z-index:60; }
.museum-ui-final .room-hotspot.is-quest-target .room-slot-shape {
  border-color:rgba(255,212,111,.6);
  animation: questRoomPulse 1.7s ease-in-out infinite;
}
@keyframes questRoomPulse {
  0%,100% { box-shadow:inset 0 0 24px rgba(255,212,111,.12), 0 0 16px rgba(255,212,111,.20); }
  50%     { box-shadow:inset 0 0 30px rgba(255,212,111,.24), 0 0 30px rgba(255,212,111,.42); }
}
/* позиция (left/top в % карты) задаётся инлайн из questBeaconTemplate();
   элемент живёт в слое карты, а не внутри clip-path кнопки комнаты */
.room-quest-beacon {
  position:absolute;
  transform:translate(-50%, calc(-50% - 40px));
  z-index:82; display:flex; flex-direction:column; align-items:center; gap:1px;
  pointer-events:none; animation: questBeacon 1.2s ease-in-out infinite;
}
.room-quest-beacon .rqb-tag {
  font-family:var(--font-title); font-size:12px; font-weight:800; color:#241804;
  background:linear-gradient(180deg,#ffe08a,#e0a94c);
  padding:2px 10px; border-radius:999px; white-space:nowrap; letter-spacing:.02em;
  box-shadow:0 3px 10px rgba(0,0,0,.4);
}
.room-quest-beacon .rqb-tag { display:flex; flex-direction:column; align-items:center; gap:0; }
.room-quest-beacon .rqb-why { display:block; font-size:10px; font-weight:700; letter-spacing:0; color:#4a3410; max-width:180px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.room-quest-beacon .rqb-arrow { font-size:20px; line-height:.6; color:#ffd86a; filter:drop-shadow(0 2px 4px rgba(0,0,0,.55)); }
@keyframes questBeacon {
  0%,100% { transform:translate(-50%, calc(-50% - 40px)); }
  50%     { transform:translate(-50%, calc(-50% - 49px)); }
}

/* Кнопки «Как играть» / «Достижения» — перенесены из топ-бара в панель Хранителя */
.keeper-utils { display:flex; gap:8px; margin-top:8px; }
.keeper-util-btn { flex:1; display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 6px; border-radius:10px; border:1px solid rgba(201,162,76,.32); background:rgba(28,22,12,.42); color:#d9caa6; font-size:12.5px; font-weight:700; cursor:pointer; transition:border-color .18s ease, color .18s ease, background .18s ease; }
.keeper-util-btn:hover { border-color:rgba(255,205,110,.55); color:#ffe6b0; background:rgba(40,31,16,.6); }
.keeper-util-btn .ku-ico { font-size:15px; }

/* === Подсказка ресурса: как заработать / на что тратить === */
.resource-card { position: relative; }
.resource-card.has-hint { cursor: help; }
.hud-hint {
  position: absolute; top: calc(100% + 9px); left: 50%; transform: translateX(-50%) translateY(-5px);
  width: max-content; max-width: 262px; padding: 10px 13px; border-radius: 12px; z-index: 120;
  background: linear-gradient(180deg, rgba(22,30,26,.98), rgba(10,14,12,.99));
  border: 1px solid rgba(201,162,76,.55); box-shadow: 0 14px 32px rgba(0,0,0,.6);
  opacity: 0; pointer-events: none; transition: opacity .14s ease, transform .14s ease; text-align: left;
}
.resource-card:hover .hud-hint { opacity: 1; transform: translateX(-50%); }
.hud-hint::before { content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); border: 7px solid transparent; border-bottom-color: rgba(201,162,76,.55); }
.hud-hint .hh-title { display: block; font-family: var(--font-title); font-size: 15px; color: #ffe9c0; margin-bottom: 6px; }
.hud-hint .hh-row { display: grid; grid-template-columns: 78px 1fr; gap: 8px; align-items: start; font-size: 12px; color: #d6cbac; line-height: 1.35; margin-top: 4px; }
.hud-hint .hh-row i { font-style: normal; font-weight: 800; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; padding-top: 1px; }
.hud-hint .hh-up { color: #7fd07a; } .hud-hint .hh-dn { color: #e8b96a; }
.room-card {
  position:absolute;
  left:10px;
  bottom:10px;
  z-index:10;
  width:min(320px, calc(100% - 20px));
  padding:10px;
  border:1px solid rgba(255,212,111,.34);
  border-radius:17px;
  color:var(--text);
  background:rgba(3,10,18,.88);
  box-shadow:0 24px 52px rgba(0,0,0,.36);
  backdrop-filter:blur(12px);
}
.room-card[data-anchor="bottom-right"] { left:auto; right:10px; }
.room-card[data-anchor="top-left"] { top:10px; bottom:auto; }
.room-card[data-anchor="top-right"] { left:auto; right:10px; top:10px; bottom:auto; }
.room-card small { color:var(--gold); font-weight:950; }
.room-card h2 { margin:3px 0 5px; color:var(--gold); font-family:var(--font-title); font-size:21px; line-height:1; }
.room-card p { margin:4px 0; color:var(--muted); font-size:11px; font-weight:850; line-height:1.25; }
.room-card-actions { display:flex; gap:7px; margin-top:8px; }
.room-card-actions .button { min-height:36px; padding-inline:14px; }
.keeper-panel { display:grid; grid-template-rows:auto minmax(0, 174px) auto minmax(0, 1fr) auto; gap:6px; padding:8px; }
.keeper-panel h2 { margin:0; color:var(--gold); font-family:var(--font-title); font-size:23px; }
.keeper-art { display:grid; place-items:end center; border:1px solid rgba(255,212,111,.22); border-radius:18px; overflow:hidden; background:radial-gradient(circle at 48% 18%, rgba(255,213,116,.22), transparent 12rem), linear-gradient(180deg, rgba(17,35,48,.68), rgba(3,10,18,.42)); }
.keeper-art img { display:block; max-width:88%; max-height:100%; object-fit:contain; }
.keeper-speech { margin:0; padding:8px; border:1px solid rgba(255,212,111,.22); border-radius:12px; background:rgba(0,0,0,.18); color:var(--text); font-size:12px; font-weight:900; line-height:1.25; }
.keeper-tasks { display:grid; gap:8px; overflow:auto; padding-right:2px; }
.task-card { display:grid; grid-template-columns:30px minmax(0,1fr); gap:7px; align-items:center; min-height:52px; padding:6px; border:1px solid rgba(255,212,111,.19); border-radius:12px; background:rgba(5,14,24,.68); }
.task-card.is-done { border-color:rgba(126,224,163,.42); }
.task-reward { display:none; color:var(--gold); font-size:11px; font-weight:950; white-space:nowrap; }
.progress { display:block; height:5px; margin-top:7px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
.progress b { display:block; width:var(--p); height:100%; border-radius:inherit; background:linear-gradient(90deg, #7ee0a3, #fff08a); }
.room-obj { position:absolute; display:block; border-radius:4px; background:rgba(255,212,111,.72); box-shadow:0 6px 12px rgba(0,0,0,.28), 0 0 16px rgba(255,212,111,.12); }
.repair-kit { position:absolute; inset:0; pointer-events:none; }
.repair-kit.upgrading { inset:10% 10% 20% 44%; }
.obj-renovation-cloth { width:26%; height:18%; left:39%; top:51%; border-radius:44% 44% 10px 10px; background:linear-gradient(180deg, rgba(238,226,198,.78), rgba(126,108,82,.72)); box-shadow:0 8px 18px rgba(0,0,0,.24), 0 0 18px rgba(255,212,111,.10); }
.obj-wall-scaffold { width:18%; height:35%; left:16%; top:30%; border-radius:2px; background:repeating-linear-gradient(0deg, rgba(255,212,111,.54) 0 2px, transparent 2px 8px), linear-gradient(90deg, transparent 24%, rgba(255,212,111,.42) 24% 32%, transparent 32% 64%, rgba(255,212,111,.42) 64% 72%, transparent 72%); opacity:.72; }
.obj-small-crate { width:10%; height:10%; background:linear-gradient(180deg,#b37b31,#553111); opacity:.86; }
.obj-small-crate.a { left:24%; top:66%; }
.obj-small-crate.b { right:26%; top:66%; }
.obj-board-stack { width:20%; height:4%; left:40%; top:74%; transform:rotate(-3deg); background:linear-gradient(90deg,#8a551d,#d3a050,#8a551d); opacity:.82; }
.obj-worklight { width:7%; height:7%; left:67%; top:36%; border-radius:50%; background:#ffe492; box-shadow:0 0 17px 7px rgba(255,212,111,.28); }
.obj-dust { width:34%; height:28%; left:33%; top:45%; border-radius:50%; background:radial-gradient(circle, rgba(255,220,140,.18), transparent 64%); animation:dustPulse 2.4s ease-in-out infinite; }
.obj-blueprint-roll { width:15%; height:5%; left:50%; top:70%; border-radius:999px; background:linear-gradient(90deg,#f0dfb6,#8f7b58); transform:rotate(8deg); }
.room-timer-ring { position:absolute; right:12%; top:18%; width:28px; height:28px; border-radius:50%; background:conic-gradient(var(--gold) calc(var(--progress) * 1%), rgba(255,255,255,.12) 0); box-shadow:0 0 14px rgba(255,212,111,.16); }
.room-timer-ring::after { content:""; position:absolute; inset:4px; border-radius:inherit; background:rgba(2,8,15,.80); }
.room-timer-ring b { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:1; max-width:0; opacity:0; overflow:hidden; white-space:nowrap; font-size:7px; color:var(--gold); }
@keyframes dustPulse { 50% { opacity:.42; transform:scale(1.05); } }
.state-shade { position:absolute; inset:0; border-radius:inherit; pointer-events:none; }
.locked-shade { background:linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.62)); box-shadow:inset 0 0 34px rgba(0,0,0,.40); }
.empty-floor { background:radial-gradient(circle at 50% 58%, rgba(220,200,160,.06), transparent 58%); }
.buildable-glow { background:radial-gradient(circle at 50% 52%, rgba(255,212,111,.18), transparent 62%); animation:buildablePulse 2.2s ease-in-out infinite; }
@keyframes buildablePulse { 50% { opacity:.48; } }
.obj-floor-outline { width:44%; height:30%; left:28%; top:38%; border:1px dashed rgba(255,225,143,.38); background:transparent; box-shadow:none; }
.obj-build-sign { display:grid; place-items:center; width:18px; height:18px; left:calc(50% - 9px); top:calc(50% - 9px); border-radius:50%; color:#1d1306; background:var(--gold); font-size:15px; font-weight:950; box-shadow:0 0 18px rgba(255,212,111,.32); }
.obj-blueprint { width:30%; height:18%; left:35%; top:62%; border:1px solid rgba(140,199,223,.35); background:linear-gradient(135deg, rgba(76,146,169,.30), rgba(255,212,111,.08)); }
.obj-covered-furniture { width:34%; height:26%; left:33%; top:47%; border-radius:44% 44% 8px 8px; background:linear-gradient(180deg, rgba(214,205,184,.36), rgba(95,89,75,.46)); }
.obj-small-lock { width:16px; height:14px; left:calc(50% - 8px); top:35%; border-radius:4px; border:2px solid rgba(255,212,111,.62); background:rgba(0,0,0,.24); box-shadow:none; }
.obj-small-lock::before { content:""; position:absolute; left:3px; right:3px; top:-10px; height:10px; border:2px solid rgba(255,212,111,.62); border-bottom:0; border-radius:999px 999px 0 0; }
.obj-vitrine { width:17%; height:32%; top:34%; border:1px solid rgba(255,240,200,.45); background:linear-gradient(180deg, rgba(188,226,255,.20), rgba(255,212,111,.12)); }
.obj-vitrine.a { left:22%; } .obj-vitrine.b { left:43%; } .obj-vitrine.c { left:64%; }
.obj-lamp { width:8%; height:8%; border-radius:50%; top:18%; background:#ffe492; box-shadow:0 0 28px 10px rgba(255,212,111,.34); }
.obj-lamp.a { left:22%; } .obj-lamp.b { right:22%; }
.obj-map { width:46%; height:36%; left:26%; top:26%; border:1px solid rgba(255,212,111,.36); background:linear-gradient(135deg, rgba(40,95,89,.56), rgba(214,166,69,.30)); }
.obj-compass { width:18%; height:18%; left:62%; top:54%; border-radius:50%; border:1px solid rgba(255,212,111,.55); background:radial-gradient(circle,#ffe492 0 18%,transparent 20% 100%); }
.obj-shelf { width:18%; height:46%; top:16%; background:linear-gradient(90deg,#5d3615,#d19b45,#4a2b12); }
.obj-shelf.a { left:14%; } .obj-shelf.b { right:14%; }
.obj-table { width:30%; height:16%; left:35%; top:58%; background:linear-gradient(180deg,#d0a24f,#6a3e16); }
.obj-book { width:8%; height:8%; top:50%; background:#ffd46f; } .obj-book.a { left:43%; } .obj-book.b { left:53%; background:#8cc7df; }
.obj-desk { width:48%; height:18%; left:26%; top:56%; background:linear-gradient(180deg,#b47a32,#4c2b10); }
.obj-brush { width:30%; height:4%; left:35%; top:44%; transform:rotate(-18deg); background:#e8c574; }
.obj-glow { width:18%; height:18%; left:41%; top:25%; border-radius:50%; background:rgba(255,212,111,.48); box-shadow:0 0 28px 12px rgba(255,212,111,.32); }
.obj-counter { width:52%; height:18%; left:24%; top:58%; background:linear-gradient(180deg,#d8aa55,#5a3414); }
.obj-souvenir { width:8%; height:8%; top:44%; border-radius:50%; background:#8cc7df; } .obj-souvenir.a { left:36%; } .obj-souvenir.b { left:48%; background:#ffd46f; } .obj-souvenir.c { left:60%; background:#7ee0a3; }
.obj-lock { width:28%; height:32%; left:36%; top:34%; border-radius:10px; border:2px solid rgba(255,212,111,.60); background:rgba(0,0,0,.18); }
.obj-lock::before { content:""; position:absolute; left:26%; right:26%; top:-36%; height:46%; border:2px solid rgba(255,212,111,.60); border-bottom:0; border-radius:999px 999px 0 0; }
.room-layer { position:absolute; inset:14%; width:72%; height:72%; pointer-events:none; opacity:.74; filter:drop-shadow(0 0 10px rgba(255,212,111,.18)); }
.room-layer .gold-line { stroke:rgba(255,212,111,.82); stroke-width:3; fill:none; stroke-linecap:round; }
.room-layer .glass { fill:rgba(150,210,230,.18); stroke:rgba(255,230,160,.58); stroke-width:2; }
.room-layer .wood { fill:rgba(151,88,34,.48); stroke:rgba(255,211,120,.46); stroke-width:1.5; }
.room-layer .light { fill:rgba(255,222,132,.78); filter:drop-shadow(0 0 8px rgba(255,212,111,.45)); }
.room-layer.level2 { opacity:.90; filter:drop-shadow(0 0 14px rgba(255,212,111,.30)); }
.room-layer .artifact { fill:rgba(255,212,111,.76); filter:drop-shadow(0 0 10px rgba(255,212,111,.48)); }
.room-layer .rope { stroke:rgba(230,185,92,.72); stroke-width:3; fill:none; }
.room-layer .carpet { fill:rgba(128,24,18,.45); stroke:rgba(255,212,111,.25); stroke-width:1; }
.room-layer .scroll { stroke:rgba(244,224,178,.75); stroke-width:3; fill:none; }
.room-layer .globe { fill:rgba(80,150,170,.28); }
.room-layer .archive-box, .room-layer .crate { fill:rgba(185,120,42,.58); stroke:rgba(255,212,111,.32); stroke-width:1.4; }
.room-layer .souvenir-dot { fill:rgba(255,212,111,.70); }
.room-layer .souvenir-dot.alt { fill:rgba(127,220,163,.70); }
.room-layer .souvenir-dot.rare { fill:rgba(155,106,255,.70); }
.room-layer .shard { fill:rgba(194,154,112,.62); stroke:rgba(255,230,160,.5); stroke-width:1; }
.room-layer .compass-line { fill:rgba(255,212,111,.44); stroke:rgba(255,230,160,.4); stroke-width:1; }
.room-layer .flag { fill:rgba(255,80,55,.72); }
.upgrade-token { position:absolute; right:18%; top:18%; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; color:#1b1106; background:var(--gold); box-shadow:0 0 18px rgba(255,212,111,.36); font-weight:950; }
.map-toast {
  position:absolute;
  right:16px;
  bottom:16px;
  z-index:12;
  pointer-events:none;
  max-width:360px;
  padding:12px 16px;
  border:1px solid rgba(255,212,111,.48);
  border-radius:16px;
  color:var(--text);
  background:rgba(3,10,18,.88);
  box-shadow:0 18px 36px rgba(0,0,0,.32), 0 0 28px rgba(255,212,111,.18);
  font-weight:950;
  animation:toastIn 3s ease both;
}
@keyframes toastIn {
  0% { opacity:0; transform:translateY(12px) scale(.96); }
  12%, 82% { opacity:1; transform:none; }
  100% { opacity:.2; transform:translateY(4px); }
}

@media (max-width: 1320px) {
  body[data-view="game"] { overflow: auto; }
  .museum-shell { height: auto; overflow: visible; }
  .museum-top { grid-template-columns: 1fr; }
  .museum-resources { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
  .museum-profile { justify-content: flex-start; }
  .museum-orders { grid-template-columns: 1fr; }
  .museum-main { height: auto; grid-template-columns: 1fr; }
  .map-frame { min-height: 640px; }
  .keeper-panel { grid-template-rows: auto auto auto auto auto; }
}
@media (max-width: 720px) {
  .museum-shell { padding: 8px; }
  .museum-resources { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-frame { min-height: 520px; overflow-x:auto; justify-content:flex-start; }
  .museum-map { width: 980px; max-width: none; }
  .map-counts { left:14px; right:auto; bottom:14px; }
  .room-card { position: relative; left: auto; bottom: auto; width: calc(100% - 20px); margin: 10px; }
  .room-mark span { max-width: 72px; overflow: hidden; text-overflow: ellipsis; }
}

/* Task 3/3: final dark-gold museum UI polish */
:root {
  --bg-deep: #02070e;
  --panel: rgba(5, 14, 24, .88);
  --panel-edge: rgba(255, 212, 111, .28);
  --gold: #ffd46f;
  --gold-light: #fff0b0;
  --text-main: #f7edcf;
  --text-dim: rgba(247, 237, 207, .68);
  --attention: #e6a23b;
  --success: #8fcb79;
  --locked: rgba(94, 84, 68, .64);
  --text: var(--text-main);
  --muted: var(--text-dim);
  --font-title: Georgia, 'Times New Roman', serif;
  --ui-radius: 18px;
  --ui-shadow: 0 22px 58px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.045);
}

.game-screen { background: var(--bg-deep); }
.museum-shell.museum-ui-final {
  padding: 8px;
  background:
    radial-gradient(circle at 50% -16%, rgba(255, 212, 111, .16), transparent 30rem),
    radial-gradient(circle at 80% 22%, rgba(255, 170, 74, .08), transparent 23rem),
    linear-gradient(180deg, #061421 0%, #02070e 74%);
}
.museum-ui-final .museum-top {
  grid-template-columns: minmax(190px, 236px) minmax(0, 1fr) auto;
  min-height: 68px;
  padding: 9px 11px;
  border-color: var(--panel-edge);
  border-radius: var(--ui-radius);
  background: linear-gradient(180deg, rgba(9, 22, 35, .96), rgba(3, 10, 18, .94));
  box-shadow: var(--ui-shadow);
}
.museum-ui-final .museum-logo strong { font-size: 40px; color: var(--gold-light); }
.museum-ui-final .museum-logo span { color: var(--gold); letter-spacing: .18em; }
.museum-ui-final .museum-resources { grid-template-columns: repeat(5, minmax(116px, 1fr)); gap: 8px; }
.museum-ui-final .resource-card {
  grid-template-columns: 36px minmax(0, 1fr);
  min-height: 50px;
  padding: 8px 10px;
  border-color: rgba(255, 212, 111, .22);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(255, 212, 111, .08), transparent 42%),
    linear-gradient(180deg, rgba(12, 28, 42, .88), rgba(3, 10, 18, .86));
}
.museum-ui-final .resource-card[data-resource="reputation"] { background: linear-gradient(135deg, rgba(255,212,111,.16), rgba(3,10,18,.86)); }
.museum-ui-final .resource-icon { width: 36px; height: 36px; font-size: 18px; border-radius: 50%; }
.museum-ui-final .resource-card small { font-size: 10px; color: var(--text-dim); }
.museum-ui-final .resource-card b { font-size: 18px; font-variant-numeric: tabular-nums; color: var(--gold-light); }
.museum-ui-final .resource-plus { display: none; }
.profile-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 0 12px 0 16px;
  border: 1px solid rgba(255,212,111,.38);
  border-radius: 14px;
  color: var(--gold-light);
  background: linear-gradient(180deg, rgba(93, 58, 21, .55), rgba(14, 19, 25, .88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  font-weight: 950;
}
.profile-chip i { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:rgba(255,212,111,.18); font-style:normal; }

.museum-ui-final .museum-orders {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 50px;
  margin: 7px 0;
}
.orders-title {
  color: var(--gold);
  font-family: var(--font-title);
  font-size: 17px;
  white-space: nowrap;
}
.orders-list { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.museum-ui-final .assignment-card {
  grid-template-columns: 34px minmax(0, 1fr) auto;
  min-height: 42px;
  padding: 6px 8px;
  border-color: rgba(255,212,111,.20);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(9,22,35,.80), rgba(2,8,15,.78));
}
.assignment-ring {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background: conic-gradient(var(--gold) calc(var(--p) * 1%), rgba(255,255,255,.09) 0);
}
.assignment-ring i { width:26px; height:26px; border-radius:50%; font-size:14px; background:rgba(2,8,15,.92); }
.museum-ui-final .assignment-card strong { font-size: 12px; color: var(--text-main); }
.museum-ui-final .assignment-card small { color: var(--text-dim); }
.museum-ui-final .assignment-time { min-width: 62px; min-height: 26px; font-variant-numeric: tabular-nums; }
.museum-ui-final .assignment-card.is-ready { border-color: rgba(143,203,121,.62); box-shadow: 0 0 24px rgba(143,203,121,.12); }

.museum-ui-final .museum-main { grid-template-columns: minmax(0, 1fr) 286px; gap: 8px; height: calc(100svh - 134px); }
.museum-ui-final .map-card, .museum-ui-final .keeper-panel { border-color: rgba(255,212,111,.22); border-radius: 20px; background: linear-gradient(180deg, rgba(5,14,24,.72), rgba(2,8,15,.94)); box-shadow: var(--ui-shadow); }
.museum-ui-final .map-frame { border-radius: 18px; }
.museum-ui-final .museum-map { width: min(100%, 1716px); border-radius: 18px; }
.museum-ui-final .map-badge { color: var(--gold-light); background:rgba(2,8,15,.52); border-color:rgba(255,212,111,.30); }
.museum-ui-final .map-counts { right: 12px; bottom: 10px; gap: 6px; }
.museum-ui-final .map-count { min-width: 70px; padding: 6px 9px; background: rgba(2,8,15,.55); border-color: rgba(255,212,111,.18); }
.museum-ui-final .map-count b { font-size: 18px; }

.museum-ui-final .room-slot-shape { border-color: rgba(255,212,111,.04); background: radial-gradient(circle at 52% 48%, rgba(255,212,111,.055), transparent 60%); opacity: .30; }
.museum-ui-final .room-hotspot:hover .room-slot-shape,
.museum-ui-final .room-hotspot.is-selected .room-slot-shape { border-color: rgba(255,212,111,.50); box-shadow: inset 0 0 30px rgba(255,212,111,.12), 0 0 24px rgba(255,212,111,.14); }
.museum-ui-final .room-hotspot[data-visual-state="buildable"] .room-slot-shape { animation: buildablePulse 2.4s ease-in-out infinite; }
.museum-ui-final .room-visual.level1,
.museum-ui-final .room-visual.level2,
.museum-ui-final .room-visual.upgradeAvailable { animation: roomLightBreath 4.8s ease-in-out infinite; }
@keyframes roomLightBreath { 50% { filter: brightness(1.12); } }

.museum-ui-final .room-mark {
  gap: 5px;
  padding: 4px 7px 4px 5px;
  border: 1px solid rgba(255, 212, 111, .34);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(37, 24, 11, .84), rgba(3, 10, 18, .82));
  box-shadow: 0 8px 20px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.05);
}
.museum-ui-final .room-mark-icon { width:18px; height:18px; font-size:10px; border:1px solid rgba(255,212,111,.28); background:rgba(255,212,111,.13); }
.museum-ui-final .room-mark-state { display:grid; place-items:center; min-width:28px; height:17px; padding:0 6px; border-radius:999px; color:#211406; background:var(--gold); font-size:8px; font-weight:950; text-transform:uppercase; }
.museum-ui-final .room-mark b { display:none; }
.museum-ui-final .room-mark strong {
  max-width:0;
  opacity:0;
  overflow:hidden;
  white-space:nowrap;
  color:var(--gold-light);
  font-size:11px;
  font-weight:950;
  transition:max-width .18s ease, opacity .18s ease;
}
.museum-ui-final .room-mark em { max-width:0; opacity:0; overflow:hidden; white-space:nowrap; color:var(--text-dim); font-size:9px; font-style:normal; transition:max-width .18s ease, opacity .18s ease; }
.museum-ui-final .room-hotspot:hover .room-mark strong,
.museum-ui-final .room-hotspot.is-selected .room-mark strong { max-width:150px; opacity:1; }
.museum-ui-final .room-hotspot:hover .room-mark em,
.museum-ui-final .room-hotspot.is-selected .room-mark em { max-width:90px; opacity:1; }
.museum-ui-final .room-hotspot[data-status="locked"] .room-mark { border-color: rgba(130, 113, 86, .36); opacity:.72; }
.quest-arrow { position:absolute; left:var(--mx); top:calc(var(--my) - 24%); transform:translate(-50%, -50%); z-index:7; color:var(--gold-light); font-size:24px; filter:drop-shadow(0 0 14px rgba(255,212,111,.46)); animation: questArrow 1.3s ease-in-out infinite; pointer-events:none; }
@keyframes questArrow { 50% { transform: translate(-50%, calc(-50% - 7px)); opacity:.72; } }

.museum-ui-final .room-card {
  width: min(372px, calc(100% - 20px));
  padding: 12px;
  border-color: rgba(255,212,111,.40);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(7,18,30,.92), rgba(2,8,15,.90));
}
.room-card-top { display:grid; grid-template-columns: 66px minmax(0,1fr); gap: 10px; align-items:center; }
.room-card-thumb { position:relative; display:block; width:66px; height:54px; border:1px solid rgba(255,212,111,.24); border-radius:14px; overflow:hidden; background:radial-gradient(circle at 50% 50%, rgba(255,212,111,.12), rgba(0,0,0,.18)); }
.room-card-thumb .room-visual { inset: 4px; clip-path:none; border-radius:10px; }
.room-card-top small { display:block; color:var(--gold); font-size:10px; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
.room-card-top h2 { margin:2px 0 3px; color:var(--gold-light); font-size:24px; }
.room-card-top em { color:var(--text-dim); font-style:normal; font-size:11px; font-weight:900; }
.museum-ui-final .room-card p { color:var(--text-dim); font-size:12px; line-height:1.35; }
.room-card-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.room-card-meta span { padding:6px 8px; border:1px solid rgba(255,212,111,.18); border-radius:12px; color:var(--text-main); background:rgba(0,0,0,.16); font-size:11px; font-weight:900; }
.room-card-meta b { display:block; margin-bottom:2px; color:var(--gold); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.museum-ui-final .room-card-actions { margin-top:10px; }
.museum-ui-final .room-card-actions .button-gold { flex: 1 1 auto; min-height: 40px; box-shadow:0 12px 28px rgba(255,170,74,.22); }
.museum-ui-final .room-card-actions .button-ghost { flex: 0 0 auto; }
.museum-ui-final .button:disabled { opacity:.58; filter:saturate(.65); cursor:default; }

.museum-ui-final .keeper-panel { grid-template-rows: auto minmax(0, 190px) auto auto minmax(0, 1fr) auto; gap: 8px; padding: 10px; }
.keeper-head { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; }
.keeper-head h2 { margin:0; color:var(--gold-light); font-family:var(--font-title); font-size:24px; }
.keeper-head span { color:var(--gold); font-size:9px; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
.museum-ui-final .keeper-art { min-height: 170px; border-color:rgba(255,212,111,.25); background: radial-gradient(circle at 58% 18%, rgba(255,212,111,.20), transparent 10rem), linear-gradient(180deg, rgba(22,38,48,.76), rgba(3,10,18,.48)); }
.museum-ui-final .keeper-art img { max-width:94%; filter:saturate(1.06) contrast(1.03); }
.museum-ui-final .keeper-speech { border-color:rgba(255,212,111,.22); background:linear-gradient(180deg, rgba(255,212,111,.055), rgba(0,0,0,.16)); color:var(--text-main); font-size:12px; line-height:1.35; }
.keeper-focus { padding:8px; border:1px solid rgba(255,212,111,.20); border-radius:14px; background:rgba(0,0,0,.16); }
.keeper-focus small { display:block; color:var(--gold); font-size:9px; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
.keeper-focus strong { display:block; margin-top:3px; color:var(--gold-light); font-family:var(--font-title); font-size:18px; line-height:1.05; }
.keeper-focus span { display:block; margin-top:3px; color:var(--text-dim); font-size:11px; font-weight:900; }
.museum-ui-final .keeper-tasks { gap:7px; }
.museum-ui-final .task-card { grid-template-columns:30px minmax(0,1fr) auto; min-height:48px; border-color:rgba(255,212,111,.18); background:rgba(5,14,24,.62); }
.museum-ui-final .task-card.is-primary { border-color:rgba(255,212,111,.36); background:linear-gradient(135deg, rgba(255,212,111,.08), rgba(5,14,24,.70)); }
.museum-ui-final .task-card strong { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.2; }
.museum-ui-final .task-card small { color:var(--text-dim); }
.museum-ui-final .task-reward { display:block; color:var(--gold); font-size:10px; }
.museum-ui-final .progress { background:rgba(255,255,255,.07); }
.museum-ui-final .progress b { background:linear-gradient(90deg, #9a8f4d, var(--gold)); }
.keeper-cta.button-ghost { color:var(--gold-light); border-color:rgba(255,212,111,.32); background:rgba(0,0,0,.18); }

.map-toast { animation: mapToastIn .42s ease-out both; }
@keyframes mapToastIn { from { transform: translate(-50%, 10px); opacity:0; } to { transform: translate(-50%, 0); opacity:1; } }
.room-hotspot.is-complete-fx::after { content:"+"; position:absolute; left:50%; top:28%; z-index:9; color:var(--gold-light); font-size:22px; font-weight:950; text-shadow:0 0 14px rgba(255,212,111,.55); animation: resourceFloat 1s ease-out both; pointer-events:none; }
@keyframes resourceFloat { from { transform:translate(-50%, 12px); opacity:0; } 30% { opacity:1; } to { transform:translate(-50%, -22px); opacity:0; } }

@media (max-width: 1320px) {
  .museum-ui-final .museum-top { grid-template-columns: 180px minmax(0,1fr) auto; }
  .museum-ui-final .museum-logo strong { font-size:32px; }
  .museum-ui-final .museum-resources { grid-template-columns: repeat(3, minmax(112px, 1fr)); }
  .orders-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .museum-ui-final .museum-main { grid-template-columns: minmax(0,1fr) 250px; }
}

@media (max-width: 820px) {
  .museum-shell.museum-ui-final { overflow:auto; height:auto; min-height:100svh; padding:6px; }
  .museum-ui-final .museum-top { grid-template-columns: 1fr auto; }
  .museum-ui-final .museum-logo { grid-column:1 / -1; }
  .museum-ui-final .museum-resources { grid-column:1 / -1; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .museum-ui-final .museum-profile { justify-content:space-between; }
  .museum-ui-final .museum-orders { grid-template-columns:1fr; }
  .orders-list { grid-template-columns:1fr; }
  .museum-ui-final .museum-main { grid-template-columns:1fr; height:auto; min-height:0; }
  .museum-ui-final .map-card { min-height: 56svh; }
  .museum-ui-final .map-frame { min-height: 56svh; overflow:auto; justify-content:start; }
  .museum-ui-final .museum-map { width: 920px; max-width:none; min-width:920px; }
  .museum-ui-final .keeper-panel { grid-template-rows:auto auto auto; max-height:none; }
  .museum-ui-final .keeper-art { display:none; }
  .museum-ui-final .keeper-tasks { max-height:220px; }
  .museum-ui-final .room-hotspot { min-width:44px; min-height:44px; }
  .museum-ui-final .room-card,
  .museum-ui-final .room-card[data-anchor="bottom-right"],
  .museum-ui-final .room-card[data-anchor="top-left"],
  .museum-ui-final .room-card[data-anchor="top-right"] {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: 10px;
    top: auto;
    width: auto;
    max-height: 44svh;
    overflow:auto;
    z-index: 90;
  }
}

@media (max-width: 430px) {
  .museum-ui-final .museum-logo strong { font-size: 30px; }
  .museum-ui-final .resource-card { min-height:44px; padding:6px 8px; }
  .museum-ui-final .resource-card b { font-size:15px; }
  .museum-ui-final .museum-map { width: 840px; min-width:840px; }
  .museum-ui-final .room-card-top h2 { font-size:21px; }
  .museum-ui-final .room-card-actions { flex-direction:column; }
  .museum-ui-final .room-card-actions .button { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
  .museum-ui-final *, .museum-ui-final *::before, .museum-ui-final *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* UI asset kit 33-39 integration */
.museum-asset-kit .resource-card,
.museum-asset-kit .assignment-card,
.museum-asset-kit .room-card,
.museum-asset-kit .keeper-panel,
.museum-asset-kit .task-card,
.museum-asset-kit .map-toast,
.museum-asset-kit .button { background-repeat:no-repeat; background-size:100% 100%; background-position:center; }
.museum-asset-kit .resource-card { background-image: var(--asset-ui-hud-chip-base); border-color: transparent; box-shadow:none; }
.museum-asset-kit .resource-card[data-resource="reputation"] { position:relative; padding-left:54px; }
.museum-asset-kit .resource-card[data-resource="reputation"]::before { content:""; position:absolute; left:8px; top:50%; width:40px; height:40px; transform:translateY(-50%); background:var(--asset-ui-hud-museum-emblem-shield) center/contain no-repeat; }
.museum-asset-kit .resource-icon { background:transparent; border:0; box-shadow:none; }
.museum-asset-kit .profile-chip { background-image:var(--asset-ui-hud-chip-base); background-size:100% 100%; border-color:transparent; }
.museum-asset-kit .profile-chip i { background:var(--asset-ui-hud-avatar-frame) center/contain no-repeat; color:transparent; }
.museum-asset-kit .museum-top { position:relative; }
.museum-asset-kit .museum-top::after { content:""; position:absolute; left:18px; right:18px; bottom:-8px; height:12px; background:var(--asset-ui-hud-divider) center/100% 100% no-repeat; opacity:.74; pointer-events:none; }

.museum-asset-kit .assignment-card { background-image:var(--asset-ui-process-chip-base); border-color:transparent; box-shadow:none; }
.museum-asset-kit .assignment-card.is-ready { background-image:var(--asset-ui-process-chip-ready); }
.museum-asset-kit .assignment-ring { background:conic-gradient(var(--gold) calc(var(--p) * 1%), rgba(255,255,255,.07) 0); }
.process-icon { width:26px; height:26px; object-fit:contain; }

.museum-asset-kit .room-mark { min-width:76px; min-height:30px; padding:4px 8px 4px 6px; background-image:var(--asset-ui-marker-plaque); background-color:transparent; border:0; box-shadow:none; }
.museum-asset-kit .room-hotspot.is-selected .room-mark { background-image:var(--asset-ui-marker-plaque-selected); }
.room-mark-icon { width:22px; height:22px; object-fit:contain; }
.room-status-icon { width:22px; height:22px; object-fit:contain; margin-left:2px; }
.museum-asset-kit .room-mark-state { display:flex; gap:2px; min-width:28px; height:auto; padding:0; background:transparent; }
.level-pip { width:8px; height:8px; object-fit:contain; }
.museum-asset-kit .room-mark strong { margin-left:2px; }
.quest-arrow { width:74px; height:54px; object-fit:contain; transform:translate(-50%, -62%); }

.room-overlay { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.room-overlay-cover { opacity:.82; mix-blend-mode:multiply; }
.room-overlay-empty-plaque { inset:34% 18% auto; width:64%; height:auto; opacity:.44; }
.room-overlay-rim { opacity:.72; mix-blend-mode:screen; }
.room-overlay-motes { opacity:.82; mix-blend-mode:screen; animation:mapPulse 2.8s ease-in-out infinite; }
.room-overlay-plus { inset:38% auto auto 50%; width:24px; height:24px; transform:translateX(-50%); }
.room-overlay-scaffold { opacity:.62; }
.room-overlay-tarp { opacity:.76; }
.room-overlay-crates { inset:42% 15% 6% 15%; width:70%; height:auto; }
.room-overlay-dust { opacity:.46; mix-blend-mode:screen; }
.upgrade-token-img { position:absolute; right:15%; top:16%; width:24px; height:24px; object-fit:contain; filter:drop-shadow(0 0 12px rgba(255,212,111,.42)); }

.museum-asset-kit .room-card { background-image:var(--asset-ui-card-panel); border-color:transparent; box-shadow:none; overflow:visible; }
.museum-asset-kit .room-card::after { content:""; position:absolute; width:34px; height:28px; left:36px; top:-16px; background:var(--asset-ui-card-nib) center/contain no-repeat; pointer-events:none; }
.room-card-thumb-frame { position:absolute; inset:0; background:var(--asset-ui-card-thumb-frame) center/100% 100% no-repeat; z-index:2; pointer-events:none; }
.room-card-seal { position:absolute; right:-7px; top:-9px; width:42px; height:42px; object-fit:contain; z-index:3; }
.museum-asset-kit .room-card-actions .button-gold { background-image:var(--asset-ui-card-button-primary); background-color:transparent; border-color:transparent; color:#1e1308; }
.museum-asset-kit .room-card-actions .button-ghost { background-image:var(--asset-ui-card-button-ghost); background-color:transparent; border-color:transparent; color:var(--gold-light); }
.cost-chip { min-width:92px; background-image:var(--asset-ui-card-cost-chip); background-size:100% 100%; background-repeat:no-repeat; border:0 !important; }
.cost-chip.is-missing { background-image:var(--asset-ui-card-cost-chip-missing); }
.room-card-timer { display:inline-block; width:44px; height:44px; background:var(--asset-ui-card-timer-ring) center/contain no-repeat; position:relative; }
.room-card-timer::after { content:""; position:absolute; inset:7px; border-radius:50%; background:conic-gradient(var(--gold) calc(var(--p) * 1%), transparent 0); opacity:.72; }

.museum-asset-kit .keeper-art { position:relative; border:0; background:transparent; min-height:214px; overflow:visible; }
.keeper-frame { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; z-index:1; }
.keeper-person { position:absolute; left:50%; bottom:8px; transform:translateX(-50%); max-width:82%; max-height:90%; object-fit:contain; z-index:2; }
.museum-asset-kit .keeper-speech { background-image:var(--asset-ui-speech-parchment); background-size:100% 100%; border:0; color:#25180c; text-shadow:none; padding:18px 16px; }
.museum-asset-kit .task-card { background-image:var(--asset-ui-task-row); border:0; }
.museum-asset-kit .task-card i { background:transparent; border:0; }
.task-seal { width:28px; height:28px; object-fit:contain; }
.museum-asset-kit .progress { height:7px; background:var(--asset-ui-task-progress-track) center/100% 100% no-repeat; }
.museum-asset-kit .progress b { background:var(--asset-ui-task-progress-fill) left center/100% 100% no-repeat; }

.museum-asset-kit .map-toast { display:flex; align-items:center; gap:10px; min-width:260px; min-height:62px; padding:12px 18px 12px 58px; background-image:var(--asset-ui-toast-panel); border:0; }
.toast-icon { position:absolute; left:18px; width:28px; height:28px; object-fit:contain; }
.museum-asset-kit .room-hotspot.is-complete-fx .room-slot-shape { background-image:var(--asset-fx-overlay-complete-flash); background-size:100% 100%; background-repeat:no-repeat; }

@media (max-width: 820px) {
  .museum-asset-kit .room-card::before { content:""; display:block; width:86px; height:12px; margin:0 auto 8px; background:var(--asset-ui-bottom-sheet-handle) center/contain no-repeat; }
  .museum-asset-kit .room-card::after { display:none; }
  .museum-asset-kit .keeper-head::after { content:""; width:34px; height:34px; background:var(--asset-ui-mobile-fab-ring) center/contain no-repeat; }
}


/* D1-D10 UI cleanup: real asset components, no stretched sockets, no duplicate markers. */
.museum-ui-final .museum-profile { justify-content:flex-end; }
.museum-ui-final .profile-chip { display:none !important; }
.museum-ui-final .logout-button { min-width:92px; height:44px; }

.museum-ui-final .hud-chip,
.museum-ui-final .process-chip,
.museum-ui-final .task-row,
.museum-ui-final .room-marker,
.museum-ui-final .task-cost-chip,
.museum-ui-final .room-card-actions .button {
  box-sizing:border-box;
  background:none !important;
  background-color:transparent !important;
  background-repeat:stretch;
  border-style:solid;
  border-color:transparent;
  border-image-repeat:stretch;
}

.museum-ui-final .hud-chip {
  position:relative;
  flex:0 0 auto;
  width:auto;
  min-width:170px;
  max-width:216px;
  height:56px;
  min-height:56px;
  padding:0 16px 0 58px;
  display:flex;
  align-items:center;
  border-width:16px 20px 16px 58px;
  border-image-source:var(--asset-ui-hud-chip-base);
  border-image-slice:160 206 160 575 fill;
  box-shadow:none !important;
}

.museum-ui-final .hud-chip-socket {
  position:absolute;
  left:12px;
  top:50%;
  width:36px;
  height:36px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  border-radius:50%;
  overflow:hidden;
  color:var(--gold-light);
  font-size:22px;
  font-weight:950;
  text-shadow:0 0 10px rgba(255,212,111,.42);
}

.museum-ui-final .hud-icon-img,
.museum-ui-final .process-icon,
.museum-ui-final .task-icon-img,
.museum-ui-final .room-marker-icon,
.museum-ui-final .room-status-icon,
.museum-ui-final .level-pip {
  display:block;
  object-fit:contain;
  pointer-events:none;
}

.museum-ui-final .hud-icon-img { width:32px; height:32px; position:absolute; inset:2px; z-index:2; }
.museum-ui-final .hud-icon-img[src=""] { display:none; }
.museum-ui-final .hud-icon-fallback { z-index:1; }
.museum-ui-final .hud-chip-value { min-width:0; display:flex; flex-direction:column; justify-content:center; line-height:1.05; }
.museum-ui-final .hud-chip-value b { color:var(--gold-light); font-size:20px; font-weight:950; font-variant-numeric:tabular-nums; white-space:nowrap; }
.museum-ui-final .hud-chip-value small { margin-top:3px; color:rgba(238,229,201,.70); font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }

.museum-ui-final .museum-level-chip {
  position:relative;
  flex:0 0 62px;
  width:62px;
  min-width:62px;
  height:56px;
  min-height:56px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  background:none !important;
  box-shadow:none !important;
}
.museum-ui-final .museum-level-chip small { display:none; }
.museum-ui-final .level-ring { position:relative; width:54px; height:54px; display:grid; place-items:center; }
.museum-ui-final .level-ring::before { content:""; position:absolute; inset:0; border-radius:50%; background:conic-gradient(#D9A93D var(--level-progress), rgba(217,169,61,.12) 0); filter:drop-shadow(0 0 10px rgba(217,169,61,.28)); }
.museum-ui-final .level-ring-track { position:absolute; inset:0; width:100%; height:100%; z-index:2; }
.museum-ui-final .level-shield { position:absolute; z-index:3; width:48px; height:48px; object-fit:contain; }
.museum-ui-final .level-ring b { position:relative; z-index:4; color:#211406; font-size:18px; font-weight:950; text-shadow:0 1px 0 rgba(255,241,176,.55); }

.museum-ui-final .process-chip {
  position:relative;
  height:44px;
  min-height:44px;
  width:auto;
  min-width:214px;
  max-width:276px;
  padding:0 12px 0 52px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border-width:12px 14px 12px 52px;
  border-image-source:var(--asset-ui-process-chip-base);
  border-image-slice:36 52 36 104 fill;
}
.museum-ui-final .process-chip.is-ready { border-image-source:var(--asset-ui-process-chip-ready); }
.museum-ui-final .process-socket { position:absolute; left:11px; top:50%; width:28px; height:28px; transform:translateY(-50%); display:grid; place-items:center; border-radius:50%; }
.museum-ui-final .process-timer-ring { position:absolute; inset:-3px; border-radius:50%; background:conic-gradient(#D9A93D calc(var(--p) * 1%), rgba(255,255,255,.12) 0); mask:radial-gradient(circle, transparent 56%, #000 58%); }
.museum-ui-final .process-icon { width:24px; height:24px; position:relative; z-index:2; }
.museum-ui-final .process-icon-fallback { position:absolute; z-index:1; color:var(--gold-light); font-size:16px; }
.museum-ui-final .process-chip strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:var(--text-main); font-size:12px; font-weight:950; }
.museum-ui-final .process-chip small { display:none !important; }
.museum-ui-final .process-chip .assignment-time { color:var(--gold-light); font-size:12px; font-style:normal; font-weight:950; font-variant-numeric:tabular-nums; white-space:nowrap; }

.museum-ui-final .room-hotspot { overflow:visible; clip-path:none; }
.museum-ui-final .room-slot-shape { clip-path:var(--poly); }
.museum-ui-final .room-visual { clip-path:var(--poly); overflow:hidden; }
.museum-ui-final .room-rim-glow { position:absolute; inset:0; z-index:5; opacity:0; pointer-events:none; clip-path:var(--poly); transition:opacity .18s ease; }
.museum-ui-final .room-rim-glow-img { width:100%; height:100%; object-fit:fill; opacity:.55; filter:drop-shadow(0 0 12px rgba(255,212,111,.28)); }
.museum-ui-final .room-hotspot:hover .room-rim-glow,
.museum-ui-final .room-hotspot.is-selected .room-rim-glow { opacity:1; }
.museum-ui-final .room-overlay-rim,
.museum-ui-final .room-overlay-plus,
.museum-ui-final .upgrade-token-img,
.museum-ui-final .quest-arrow { display:none !important; }
.museum-ui-final .locked-shade { position:absolute; inset:0; width:100%; height:100%; display:block; clip-path:var(--poly); background:rgba(0,0,0,.46); filter:brightness(.5) saturate(.6); box-shadow:inset 0 -16px 30px rgba(0,0,0,.28); }
.museum-ui-final .room-overlay-cover { display:none !important; }

.museum-ui-final .room-marker {
  position:absolute;
  left:var(--mx);
  top:var(--my);
  z-index:7;
  height:32px;
  min-height:32px;
  width:max-content;
  max-width:168px;
  padding:0 12px 0 10px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  transform:translate(-50%, -50%);
  border-width:10px 12px 10px 18px;
  border-image-source:var(--asset-ui-marker-plaque);
  border-image-slice:160 190 160 260 fill;
  pointer-events:none;
  backdrop-filter:none;
}
.museum-ui-final .room-hotspot.is-selected .room-marker { border-image-source:var(--asset-ui-marker-plaque-selected); }
.museum-ui-final .room-marker-icon { width:20px; height:20px; flex:0 0 20px; }
.museum-ui-final .room-level-pips { display:flex; gap:1px; min-width:auto; padding:0; background:transparent; }
.museum-ui-final .level-pip { width:12px; height:12px; }
.museum-ui-final .room-status-icon { width:18px; height:18px; flex:0 0 18px; }
.museum-ui-final .room-marker strong { max-width:0; opacity:0; overflow:hidden; white-space:nowrap; color:var(--text-main); font-size:10px; font-weight:950; transition:max-width .18s ease, opacity .18s ease; }
.museum-ui-final .room-hotspot:hover .room-marker strong,
.museum-ui-final .room-hotspot.is-selected .room-marker strong { max-width:96px; opacity:1; }
.museum-ui-final .room-marker em,
.museum-ui-final .room-marker b { display:none !important; }

.museum-ui-final .room-card {
  left:var(--card-x);
  top:var(--card-y);
  bottom:auto;
  z-index:11;
  width:min(342px, 36vw);
  min-height:0;
  padding:18px 16px 14px;
  transform:translate(-50%, 10px);
  background-image:var(--asset-ui-card-panel);
  background-size:100% 100%;
  border-color:transparent;
  box-shadow:0 24px 52px rgba(0,0,0,.42), 0 0 28px rgba(255,212,111,.09);
}
.museum-ui-final .room-card[data-side="left"] { transform:translate(0, 10px); }
.museum-ui-final .room-card[data-side="right"] { transform:translate(-100%, 10px); }
.museum-ui-final .room-card::after { display:none !important; }
.museum-ui-final .room-card-nib { position:absolute; left:42px; top:-15px; width:34px; height:28px; background:var(--asset-ui-card-nib) center/contain no-repeat; pointer-events:none; }
.museum-ui-final .room-card[data-side="right"] .room-card-nib { left:auto; right:42px; transform:scaleX(-1); }
.museum-ui-final .room-card[data-side="center"] .room-card-nib { left:50%; transform:translateX(-50%); }
.museum-ui-final .keeper-focus { display:none !important; }

.museum-ui-final .room-card-actions .button {
  height:44px;
  min-height:44px;
  display:grid;
  place-items:center;
  padding:0 18px;
  border-width:12px 24px;
  border-image-slice:150 260 150 260 fill;
  font-size:16px;
  font-weight:950;
  line-height:1;
  text-align:center;
}
.museum-ui-final .room-card-actions .button-gold { border-image-source:var(--asset-ui-card-button-primary); color:#201306; }
.museum-ui-final .room-card-actions .button-ghost { border-image-source:var(--asset-ui-card-button-ghost); color:var(--gold-light); }

.museum-ui-final .cost-chip,
.museum-ui-final .task-cost-chip {
  height:24px;
  min-height:24px;
  min-width:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:0 8px 0 7px;
  border-width:7px 10px 7px 28px;
  border-image-source:var(--asset-ui-card-cost-chip);
  border-image-slice:150 150 150 260 fill;
  color:var(--gold-light);
  font-style:normal;
  font-weight:950;
  line-height:1;
}
.museum-ui-final .cost-chip.is-missing { border-image-source:var(--asset-ui-card-cost-chip-missing); }
.museum-ui-final .mini-resource-icon { display:grid; place-items:center; width:14px; height:14px; flex:0 0 14px; color:var(--gold-light); font-size:12px; line-height:1; }
.museum-ui-final .task-cost-chip b { margin:0; color:var(--gold-light); font-size:12px; font-weight:950; font-variant-numeric:tabular-nums; }

.museum-ui-final .keeper-panel { grid-template-rows:auto minmax(0, 210px) auto minmax(0, 1fr) auto; }
.museum-ui-final .keeper-tasks { display:grid; gap:8px; min-height:0; }
.museum-ui-final .task-row {
  position:relative;
  height:68px;
  min-height:68px;
  padding:7px 88px 7px 54px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  border-width:17px 20px 17px 54px;
  border-image-source:var(--asset-ui-task-row);
  border-image-slice:150 160 150 380 fill;
  box-shadow:none !important;
}
.museum-ui-final .task-icon-socket { position:absolute; left:12px; top:50%; width:32px; height:32px; transform:translateY(-50%); display:grid; place-items:center; border-radius:50%; overflow:hidden; }
.museum-ui-final .task-icon-img { width:24px; height:24px; position:absolute; z-index:2; }
.museum-ui-final .task-icon-fallback { z-index:1; color:var(--gold-light); font-size:16px; font-weight:950; }
.museum-ui-final .task-copy { min-width:0; display:grid; gap:2px; }
.museum-ui-final .task-row strong { color:var(--text-main); font-size:12px; font-weight:950; line-height:1.12; white-space:normal; overflow:visible; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.museum-ui-final .task-row small { color:var(--gold-light); font-size:10px; font-weight:950; text-transform:none; }
.museum-ui-final .task-row.is-done small { color:#9CB36A; }
.museum-ui-final .task-rewards { position:absolute; right:10px; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.museum-ui-final .task-reward { display:none !important; }
.museum-ui-final .task-progress,
.museum-ui-final .progress {
  position:relative;
  height:7px;
  margin-top:2px;
  overflow:hidden;
  border-radius:999px;
  background:var(--asset-ui-task-progress-track) center/100% 100% no-repeat;
}
.museum-ui-final .task-progress b,
.museum-ui-final .progress b {
  display:block;
  width:calc(var(--p) * 1%);
  height:100%;
  border-radius:inherit;
  background:var(--asset-ui-task-progress-fill) left center/100% 100% no-repeat;
}

@media (max-width: 860px) {
  .museum-ui-final .hud-chip { min-width:146px; height:52px; min-height:52px; }
  .museum-ui-final .process-chip { min-width:178px; max-width:none; }
  .museum-ui-final .room-card,
  .museum-ui-final .room-card[data-side="left"],
  .museum-ui-final .room-card[data-side="right"],
  .museum-ui-final .room-card[data-side="center"] {
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    width:calc(100% - 20px);
    margin:10px;
  }
  .museum-ui-final .room-card-nib { display:none; }
  .museum-ui-final .task-row { padding-right:76px; }
}


/* D1-D10 second pass: sockets above 9-slice, room card width, task text safety. */
.museum-ui-final .hud-chip-socket,
.museum-ui-final .process-socket,
.museum-ui-final .task-icon-socket { z-index:6; }
.museum-ui-final .hud-icon-img,
.museum-ui-final .process-icon,
.museum-ui-final .task-icon-img { z-index:8; filter:drop-shadow(0 1px 4px rgba(0,0,0,.55)); }
.museum-ui-final .hud-icon-fallback,
.museum-ui-final .process-icon-fallback,
.museum-ui-final .task-icon-fallback { position:relative; z-index:9; color:var(--gold-light); text-shadow:0 0 8px rgba(255,212,111,.55), 0 1px 2px rgba(0,0,0,.7); }
.museum-ui-final .hud-icon-img + .hud-icon-fallback,
.museum-ui-final .process-icon + .process-icon-fallback,
.museum-ui-final .task-icon-img + .task-icon-fallback { opacity:.92; }
.museum-ui-final .room-card { width:min(410px, 42vw); }
.museum-ui-final .room-card-actions { display:grid; grid-template-columns:minmax(154px, 1fr) minmax(128px, .72fr); gap:9px; }
.museum-ui-final .room-card-actions .button { min-width:0; white-space:nowrap; font-size:15px; }
.museum-ui-final .task-row { padding-right:72px; }
.museum-ui-final .task-copy { overflow:hidden; padding-right:2px; }
.museum-ui-final .task-row strong { max-height:28px; overflow:hidden !important; text-overflow:clip !important; word-break:normal; overflow-wrap:break-word; font-size:11px; line-height:1.12; }
.museum-ui-final .task-rewards { right:8px; }
.museum-ui-final .task-row .task-cost-chip { min-width:52px; max-width:62px; padding-right:6px; }
.museum-ui-final .task-progress { width:calc(100% - 2px); }

/* D1-D10 socket fallback final alignment. */
.museum-ui-final .hud-icon-fallback,
.museum-ui-final .process-icon-fallback,
.museum-ui-final .task-icon-fallback {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  line-height:1;
  z-index:10;
  pointer-events:none;
}
.museum-ui-final .process-socket .process-icon-fallback { font-size:15px; }
.museum-ui-final .hud-chip-socket .hud-icon-fallback { font-size:20px; }
.museum-ui-final .task-icon-socket .task-icon-fallback { font-size:15px; }

/* D1-D10 true socket placement inside the left border-image cap. */
.museum-ui-final .hud-chip-socket { left:-46px; }
.museum-ui-final .process-socket { left:-42px; }
.museum-ui-final .task-icon-socket { left:-42px; }


/* Geometry calibration sprint: cleaner production map, dev-only ?debug=rooms. */
.museum-ui-final .room-slot-shape {
  opacity:0 !important;
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
.museum-ui-final .room-hotspot:hover .room-slot-shape,
.museum-ui-final .room-hotspot.is-selected .room-slot-shape {
  opacity:0 !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
.museum-ui-final .room-rim-glow { inset:3%; opacity:0; }
.museum-ui-final .room-rim-glow-img { opacity:.42; transform:scale(.86); filter:drop-shadow(0 0 10px rgba(255,212,111,.22)); }
.museum-ui-final .room-hotspot:hover .room-rim-glow,
.museum-ui-final .room-hotspot.is-selected .room-rim-glow { opacity:1; }
.museum-ui-final .room-overlay-motes { opacity:.28; transform:scale(.68); }
.museum-ui-final .room-overlay-scaffold { opacity:.22; transform:scale(.76); transform-origin:center; }
.museum-ui-final .room-overlay-tarp { opacity:.46; transform:scale(.72); transform-origin:center; }
.museum-ui-final .room-overlay-crates { opacity:.54; transform:scale(.66); transform-origin:center; }
.museum-ui-final .room-overlay-dust { opacity:.30; transform:scale(.74); transform-origin:center; }
.museum-ui-final .repair-kit { position:absolute; inset:7%; pointer-events:none; overflow:hidden; clip-path:var(--poly); }
.museum-ui-final .room-timer-ring { transform:scale(.76); opacity:.82; }

.museum-ui-final .room-marker {
  height:28px;
  min-height:28px;
  max-width:126px;
  padding:0 8px 0 7px;
  gap:3px;
  border-width:8px 10px 8px 14px;
  filter:drop-shadow(0 7px 10px rgba(0,0,0,.28));
}
.museum-ui-final .room-marker-icon { width:16px; height:16px; flex-basis:16px; }
.museum-ui-final .level-pip { width:9px; height:9px; }
.museum-ui-final .room-status-icon { width:15px; height:15px; flex-basis:15px; }
.museum-ui-final .room-marker strong { font-size:9px; max-width:0; }
.museum-ui-final .room-hotspot:hover .room-marker strong,
.museum-ui-final .room-hotspot.is-selected .room-marker strong { max-width:82px; }
.museum-ui-final .room-hotspot.is-selected .room-marker { height:30px; min-height:30px; max-width:150px; }

.museum-ui-final .room-card {
  width:min(360px, 38vw);
  padding:15px 14px 13px;
  transform:translate(-50%, 8px);
}
.museum-ui-final .room-card[data-side="left"] { transform:translate(0, 8px); }
.museum-ui-final .room-card[data-side="right"] { transform:translate(-100%, 8px); }
.museum-ui-final .room-card-nib { opacity:.72; }
.museum-ui-final .room-card-top { grid-template-columns:56px minmax(0,1fr); gap:8px; }
.museum-ui-final .room-card-thumb { width:56px; height:46px; }
.museum-ui-final .room-card-top h2 { font-size:21px; }
.museum-ui-final .room-card p { font-size:11px; }

.debug-room-layer { display:none; }
.museum-shell.debug-rooms .debug-room-layer {
  display:block;
  position:absolute;
  inset:0;
  z-index:20;
  pointer-events:none;
  font-family:ui-monospace, SFMono-Regular, Consolas, monospace;
}
.museum-shell.debug-rooms .debug-grid { position:absolute; inset:0; opacity:.28; }
.museum-shell.debug-rooms .debug-grid-10 { background-image:linear-gradient(rgba(82,180,255,.30) 1px, transparent 1px), linear-gradient(90deg, rgba(82,180,255,.30) 1px, transparent 1px); background-size:10% 10%; }
.museum-shell.debug-rooms .debug-grid-5 { opacity:.16; background-image:linear-gradient(rgba(255,212,111,.30) 1px, transparent 1px), linear-gradient(90deg, rgba(255,212,111,.30) 1px, transparent 1px); background-size:5% 5%; }
.museum-shell.debug-rooms .debug-center { position:absolute; left:50%; top:0; bottom:0; width:1px; background:rgba(255,90,90,.55); box-shadow:0 0 0 9999px transparent; }
.museum-shell.debug-rooms .debug-center::after { content:""; position:absolute; left:-999px; right:-999px; top:50%; height:1px; background:rgba(255,90,90,.55); }
.museum-shell.debug-rooms .debug-room-box {
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:var(--w);
  height:var(--h);
  z-index:2;
  outline:1px dashed rgba(109,215,255,.78);
  background:rgba(31,156,255,.08);
}
.museum-shell.debug-rooms .debug-room-poly { position:absolute; inset:0; clip-path:var(--poly); border:2px solid rgba(255,212,111,.82); background:rgba(255,212,111,.12); box-shadow:inset 0 0 26px rgba(255,212,111,.18); }
.museum-shell.debug-rooms .debug-marker-anchor { position:absolute; left:var(--mx); top:var(--my); width:8px; height:8px; margin:-4px 0 0 -4px; border-radius:50%; background:#ff3b3b; box-shadow:0 0 0 3px rgba(255,255,255,.65), 0 0 12px rgba(255,0,0,.7); }
.museum-shell.debug-rooms .debug-room-label { position:absolute; left:4px; top:4px; max-width:calc(100% - 8px); padding:2px 4px; border-radius:5px; color:#fff; background:rgba(0,0,0,.72); font-size:9px; line-height:1.15; white-space:normal; }
.museum-shell.debug-rooms .room-rim-glow { opacity:.22; }
.museum-shell.debug-rooms .room-slot-shape { opacity:.22 !important; outline:1px solid rgba(255,255,255,.20); }

/* Geometry calibration: the selected room card must not block map hover/clicks. */
.museum-ui-final .room-card {
  pointer-events: none;
}
.museum-ui-final .room-card-actions,
.museum-ui-final .room-card-actions .button,
.museum-ui-final .room-card [data-room-action],
.museum-ui-final .room-card [data-room-secondary] {
  pointer-events: auto;
}

/* Geometry calibration QA: map hotspots have priority over informational map card. */
.museum-ui-final .room-hotspot {
  z-index: 8;
}
.museum-ui-final .room-hotspot.is-selected {
  z-index: 9;
}
.museum-ui-final .room-card {
  z-index: 6;
  pointer-events: none !important;
}
.museum-ui-final .room-card-actions,
.museum-ui-final .room-card-actions .button,
.museum-ui-final .room-card [data-room-action],
.museum-ui-final .room-card [data-room-secondary] {
  pointer-events: none !important;
}

/* Geometry calibration QA: decorative map labels never intercept room hover. */
.museum-ui-final .map-badge,
.museum-ui-final .map-counts,
.museum-ui-final .map-count {
  pointer-events: none !important;
}

/* Honest geometry calibration: production map is clean; debug mode is the source of truth. */
.museum-ui-final .room-slot-shape,
.museum-ui-final .room-hotspot:hover .room-slot-shape,
.museum-ui-final .room-hotspot.is-selected .room-slot-shape {
  opacity: 0 !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.museum-ui-final .room-rim-glow,
.museum-ui-final .room-hotspot:hover .room-rim-glow,
.museum-ui-final .room-hotspot.is-selected .room-rim-glow {
  opacity: 0 !important;
}
.museum-ui-final .museum-map .room-visual,
.museum-ui-final .museum-map .repair-kit,
.museum-ui-final .museum-map .room-overlay,
.museum-ui-final .museum-map .room-timer-ring {
  display: none !important;
}
.museum-ui-final .room-card .room-visual {
  display: block !important;
}
/* (устаревшее правило мини-маркеров отключено 13.06 — маркеры задаёт единая сетка ниже)
.museum-ui-final .room-marker {
  height: 22px; min-height: 22px; max-width: 88px; padding: 0 5px; gap: 2px;
  border-width: 6px 8px 6px 11px; opacity: .82;
  transform: translate(-50%, -50%) scale(.82);
} */
.museum-ui-final .room-marker-icon { width: 13px !important; height: 13px !important; flex-basis: 13px !important; }
.museum-ui-final .room-status-icon { width: 12px !important; height: 12px !important; flex-basis: 12px !important; }
.museum-ui-final .level-pip { width: 7px !important; height: 7px !important; }
.museum-ui-final .room-marker strong { font-size: 8px !important; max-width: 0 !important; opacity: 0; }
.museum-ui-final .room-hotspot:hover .room-marker,
.museum-ui-final .room-hotspot.is-selected .room-marker {
  opacity: 1;
  transform: translate(-50%, -50%) scale(.94);
  max-width: 132px !important;
}
.museum-ui-final .room-hotspot:hover .room-marker strong,
.museum-ui-final .room-hotspot.is-selected .room-marker strong {
  max-width: 78px !important;
  opacity: 1;
}
.museum-ui-final .room-card {
  width: min(300px, 30vw) !important;
  padding: 12px 12px 11px !important;
  z-index: 6 !important;
  pointer-events: none !important;
  opacity: .94;
}
.museum-ui-final .room-card[data-side="left"] { transform: translate(0, -50%) !important; }
.museum-ui-final .room-card[data-side="right"] { transform: translate(-100%, -50%) !important; }
.museum-ui-final .room-card[data-side="top"] { transform: translate(-50%, -100%) !important; }
.museum-ui-final .room-card[data-side="bottom"] { transform: translate(-50%, 0) !important; }
.museum-ui-final .room-card[data-side="center"] { transform: translate(-50%, -50%) !important; }
.museum-ui-final .room-card-nib { display: none !important; }
.museum-ui-final .room-card-actions,
.museum-ui-final .room-card-actions .button,
.museum-ui-final .room-card [data-room-action],
.museum-ui-final .room-card [data-room-info] {
  pointer-events: none !important;
}
.museum-ui-final .room-card-top { grid-template-columns: 44px minmax(0, 1fr) !important; gap: 8px !important; }
.museum-ui-final .room-card-thumb { width: 44px !important; height: 38px !important; }
.museum-ui-final .room-card-top h2 { font-size: 18px !important; }
.museum-ui-final .room-card p { font-size: 10px !important; }
.museum-ui-final .room-card-meta { gap: 5px !important; }

/* Honest debug mode: polygons, anchors, room names, mouse coordinates. */
.museum-shell.debug-rooms .debug-room-layer {
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}
.museum-shell.debug-rooms .debug-grid { position: absolute; inset: 0; opacity: .22; }
.museum-shell.debug-rooms .debug-grid-10 { display: none; }
.museum-shell.debug-rooms .debug-grid-5 {
  opacity: .26;
  background-image: linear-gradient(rgba(255,212,111,.24) 1px, transparent 1px), linear-gradient(90deg, rgba(255,212,111,.24) 1px, transparent 1px);
  background-size: 5% 5%;
}
.museum-shell.debug-rooms .debug-room-box {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  z-index: 2;
  outline: 0 !important;
  background: transparent !important;
}
.museum-shell.debug-rooms .debug-room-poly {
  position: absolute;
  inset: 0;
  clip-path: var(--poly);
  border: 2px solid rgba(255, 218, 116, .92);
  background: rgba(255, 212, 111, .10);
  box-shadow: inset 0 0 18px rgba(255, 212, 111, .16), 0 0 12px rgba(255, 212, 111, .10);
}
.museum-shell.debug-rooms .debug-anchor {
  position: absolute;
  width: 9px;
  height: 9px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  z-index: 4;
  box-shadow: 0 0 0 2px rgba(0,0,0,.85), 0 0 10px currentColor;
}
.museum-shell.debug-rooms .debug-marker-anchor { left: var(--mx); top: var(--my); color: #ff4040; background: #ff4040; }
.museum-shell.debug-rooms .debug-overlay-anchor { left: var(--ox); top: var(--oy); color: #43ff91; background: #43ff91; }
.museum-shell.debug-rooms .debug-card-anchor { left: var(--cx); top: var(--cy); color: #58a6ff; background: #58a6ff; }
.museum-shell.debug-rooms .debug-room-label {
  position: absolute;
  left: 3px;
  top: 3px;
  max-width: min(210px, calc(100% - 6px));
  padding: 3px 5px;
  border-radius: 5px;
  color: #fff8d7;
  background: rgba(0, 0, 0, .76);
  font-size: 9px;
  line-height: 1.16;
  white-space: normal;
  text-shadow: 0 1px 1px #000;
}
.museum-shell.debug-rooms .debug-room-label b { display: block; color: #ffd76d; font-size: 10px; }
.museum-shell.debug-rooms .debug-room-label small { display: block; opacity: .9; }
.museum-shell.debug-rooms .debug-cursor-readout {
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 10;
  padding: 6px 9px;
  border: 1px solid rgba(255, 212, 111, .6);
  border-radius: 8px;
  color: #ffe39a;
  background: rgba(0, 0, 0, .78);
  font-size: 12px;
}
.museum-shell.debug-rooms .room-marker { opacity: .96; }
.museum-shell.debug-rooms .room-marker strong { max-width: 92px !important; opacity: 1; }

/* Keep the card shell transparent, but keep its explicit actions usable. */
.museum-ui-final .room-card-actions,
.museum-ui-final .room-card-actions .button,
.museum-ui-final .room-card [data-room-action],
.museum-ui-final .room-card [data-room-info] {
  pointer-events: auto !important;
}

/* Debug geometry must show polygons without the selected card covering the map. */
.museum-shell.debug-rooms .room-card {
  display: none !important;
}

/* ============================================================
   UI-СЕТ 2026-06-11: поручения в шапке, ресурсы внизу, кабинет
   ============================================================ */

/* Шапка: лого | активные поручения | настройки+выход */
.museum-ui-final .museum-top-orders { grid-template-columns: minmax(180px, 222px) minmax(0, 1fr) auto; }
.museum-ui-final .museum-top-orders .museum-orders { margin: 0; min-height: 0; gap: 12px; }
.museum-ui-final .museum-top-orders .orders-title { font-size: 15px; opacity: .94; }
.museum-ui-final .museum-top-orders .orders-list { display: flex; gap: 7px; overflow-x: auto; padding: 1px 2px; scrollbar-width: thin; }
.museum-ui-final .museum-top-orders .assignment-card { flex: 0 0 auto; min-width: 178px; max-width: 240px; min-height: 40px; }

/* Кнопка настроек (личный кабинет) */
.ui-settings-btn {
  display: grid; place-items: center;
  width: 46px; height: 46px;
  border: 1px solid rgba(255,212,111,.45);
  border-radius: 50%;
  color: #ffe9b0; font-size: 21px; line-height: 1; cursor: pointer;
  background: radial-gradient(circle at 34% 28%, rgba(255,226,150,.30), rgba(93,58,21,.55) 58%, rgba(14,19,25,.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 6px 18px rgba(0,0,0,.38);
  transition: transform .14s ease, box-shadow .14s ease;
}
.ui-settings-btn:hover { transform: rotate(24deg) scale(1.06); box-shadow: 0 0 22px rgba(255,212,111,.25); }


/* Нижний бар ресурсов на капсулах из UI-сета */
.museum-bottom {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 10px; margin-top: 6px; padding: 7px 10px;
  border: 1px solid var(--panel-edge, rgba(255,212,111,.22));
  border-radius: var(--ui-radius, 16px);
  background: linear-gradient(180deg, rgba(9,22,35,.96), rgba(3,10,18,.94));
  box-shadow: var(--ui-shadow, 0 22px 52px rgba(0,0,0,.34));
}
.museum-bottom .hud-capsule {
  position: relative; display: flex; align-items: center;
  min-width: 176px; height: 54px; padding: 4px 16px 4px 60px;
  border: none; border-radius: 0; background: none;
  background-image: url('/assets/ui_set/ui_resource_capsule.png');
  background-size: 100% 100%; background-repeat: no-repeat;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.40));
}
.museum-bottom .capsule-socket { position: absolute; left: 1px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; display: grid; place-items: center; }
.museum-bottom .capsule-icon-img { width: 46px; height: 46px; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
.museum-bottom .capsule-socket .hud-icon-fallback { display: none; }
.museum-bottom .capsule-icon-img[src=""] + .hud-icon-fallback { display: grid; }
.museum-bottom .capsule-value { display: flex; flex-direction: column; min-width: 0; }
.museum-bottom .capsule-value b { color: #ffe9b0; font-size: 17px; line-height: 1.05; font-weight: 950; font-variant-numeric: tabular-nums; text-shadow: 0 1px 3px rgba(0,0,0,.65); white-space: nowrap; }
.museum-bottom .capsule-value small { color: #c8b88a; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.museum-bottom .museum-level-chip { border: none; background: none; padding: 0 6px; min-height: 0; }

/* Карта чуть ниже: место под нижний бар */
.museum-ui-final .museum-main { height: calc(100svh - 152px); }

/* Личный кабинет */
.cabinet-overlay {
  position: fixed; inset: 0; z-index: 60;
  display: grid; place-items: center; padding: 18px;
  background: rgba(2, 7, 17, .72);
  backdrop-filter: blur(7px);
  animation: cabinetFade .18s ease;
}
@keyframes cabinetFade { from { opacity: 0; } }
.cabinet-modal {
  position: relative; width: min(470px, 94vw); max-height: 92svh; overflow-y: auto;
  padding: 44px 44px 38px;
  background-image: url('/assets/ui_set/ui_panel_square.png');
  background-size: 100% 100%; background-repeat: no-repeat;
  filter: drop-shadow(0 26px 60px rgba(0,0,0,.6));
  scrollbar-width: thin;
}
.cabinet-head h2 { margin: 0; color: #3a2a10; font-family: var(--font-title); font-size: 26px; }
.cabinet-head span { display: block; margin-top: 2px; color: #7a6133; font-size: 11px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.cabinet-close { position: absolute; top: 22px; right: 22px; width: 52px; height: 52px; padding: 0; border: none; background: none; cursor: pointer; transition: transform .14s ease; }
.cabinet-close:hover { transform: scale(1.1); }
.cabinet-close-img { width: 100%; height: 100%; object-fit: contain; }
.cabinet-block { margin-top: 16px; padding-top: 12px; border-top: 1px solid rgba(94, 70, 28, .28); }
.cabinet-block h3 { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; color: #4a3514; font-size: 15px; }
.cabinet-field { display: block; margin-bottom: 8px; }
.cabinet-field span { display: block; margin-bottom: 3px; color: #7a6133; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.cabinet-field input {
  width: 100%; box-sizing: border-box; padding: 9px 12px;
  border: 1px solid rgba(94,70,28,.45); border-radius: 9px;
  color: #2e2008; font-size: 14px; font-weight: 700;
  background: rgba(255, 248, 226, .72);
}
.cabinet-field input:focus { outline: 2px solid rgba(216,155,55,.55); }
.cabinet-field input[readonly] { color: #6b5526; background: rgba(244, 233, 203, .5); }
/* профильные значения (имя/почта) — не инпуты, чтобы браузер не показывал попап входа */
.cabinet-field-ro b { display: block; padding: 9px 12px; border: 1px solid rgba(94,70,28,.35); border-radius: 9px; color: #6b5526; font-size: 14px; font-weight: 700; background: rgba(244, 233, 203, .5); word-break: break-all; }

/* === Экран «Как играть» === */
.howto-overlay { display: grid; place-items: center; padding: 20px; z-index: 200; }
.howto-modal {
  width: min(960px, 94vw); max-height: 90vh; overflow: auto; position: relative;
  background: linear-gradient(180deg, #1c2a22, #0e1512);
  border: 1px solid rgba(201,162,76,.5); border-radius: 20px;
  padding: 24px 26px 20px; box-shadow: 0 30px 80px rgba(0,0,0,.65);
}
.howto-modal .cabinet-close { position: absolute; top: 14px; right: 16px; width: 34px; height: 34px; border-radius: 10px; border: 1px solid rgba(201,162,76,.4); background: rgba(0,0,0,.3); color: #e8d6a8; font-size: 16px; cursor: pointer; }
.howto-head h2 { font-family: var(--font-title, serif); color: #ffe9c0; font-size: 27px; margin: 0; }
.howto-head span { color: #9fb09a; font-size: 13px; }
.howto-body { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 18px; }
.howto-sub { color: #e8b96a; font-size: 12.5px; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 11px; font-weight: 900; }
.ht-loop { list-style: none; margin: 0; padding: 0; }
.ht-step { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: 13px; background: rgba(255,255,255,.035); border: 1px solid rgba(201,162,76,.2); }
.ht-step-n { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 900; color: #1b1107; background: linear-gradient(180deg, #f0cf7a, #d89b37); }
.ht-step-ic { font-size: 22px; flex: none; }
.ht-step-tx b { display: block; color: #ffe9c0; font-size: 14px; }
.ht-step-tx small { display: block; color: #cabfa3; font-size: 11.5px; line-height: 1.32; }
.ht-arrow { list-style: none; text-align: center; color: #c9a24c; font-size: 15px; line-height: 1; padding: 2px 0; }
.ht-rooms { display: flex; flex-direction: column; gap: 9px; }
.ht-room { display: flex; gap: 11px; padding: 10px 12px; border-radius: 13px; background: rgba(255,255,255,.035); border: 1px solid rgba(201,162,76,.2); }
.ht-room-ic { font-size: 21px; flex: none; }
.ht-room-tx b { display: block; color: #ffe9c0; font-size: 13.5px; }
.ht-room-tx small { display: block; color: #cabfa3; font-size: 11.5px; line-height: 1.32; }
.howto-tip { margin: 13px 0 0; color: #e8ddc0; font-size: 12.5px; line-height: 1.4; background: rgba(201,162,76,.1); border-left: 3px solid #c9a24c; padding: 10px 13px; border-radius: 9px; }
.howto-tip b { color: #ffe9c0; }
.howto-tip-sub { background: rgba(255,255,255,.03); border-left-color: rgba(201,162,76,.4); color: #b9b094; }
.howto-cta { display: block; margin: 20px auto 4px; padding: 12px 28px; font-weight: 900; border: none; border-radius: 13px; cursor: pointer; color: #1b1107; background: linear-gradient(180deg, #f0cf7a, #d89b37); font-size: 15px; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.howto-cta:hover { filter: brightness(1.06); }
@media (max-width: 720px) { .howto-body { grid-template-columns: 1fr; gap: 16px; } .howto-modal { padding: 20px 16px 16px; } }
.cabinet-btn {
  display: block; width: 100%; margin-top: 4px; padding: 13px 16px 15px;
  border: none; cursor: pointer;
  background: url('/assets/ui_set/ui_btn_primary_light.png') center / 100% 100% no-repeat;
  color: #3a2a10; font-size: 15px; font-weight: 950; letter-spacing: .02em;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.28));
  transition: transform .12s ease, filter .12s ease;
}
.cabinet-btn:hover { transform: translateY(-1px); filter: drop-shadow(0 6px 14px rgba(0,0,0,.34)) brightness(1.05); }
.cabinet-btn:disabled { filter: grayscale(.55) opacity(.7); transform: none; cursor: default; }
.cabinet-shop p { margin: 4px 0 0; color: #5d4a22; font-size: 13px; }
.cabinet-shop-icon { width: 30px; height: 30px; object-fit: contain; }
.cabinet-logout { margin-top: 16px; width: 100%; }

/* Мобильная раскладка */
@media (max-width: 980px) {
  .museum-ui-final .museum-top-orders { grid-template-columns: 1fr auto; }
  .museum-ui-final .museum-top-orders .museum-orders { grid-column: 1 / -1; order: 3; }
  .museum-bottom .hud-capsule { min-width: 150px; height: 48px; padding-left: 52px; }
  .museum-bottom .capsule-socket { width: 46px; height: 46px; }
  .museum-bottom .capsule-icon-img { width: 40px; height: 40px; }
  .museum-ui-final .museum-main { height: auto; }
  .cabinet-modal { padding: 36px 26px 30px; }
}

/* === Экран комнаты (вид изнутри) + кнопка Войти === */
.room-enter-button { border-color: rgba(255,212,111,.45); }
.room-screen {
  position: fixed; inset: 0; z-index: 55;
  background: #05080d;
  animation: roomScreenIn .26s ease;
}
@keyframes roomScreenIn { from { opacity: 0; transform: scale(1.02); } }
.room-screen-art { position: absolute; inset: 0; width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; }
.room-screen-vignette { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at 50% 42%, transparent 52%, rgba(2,7,13,.55) 100%),
              linear-gradient(180deg, rgba(2,7,13,.55), transparent 18%, transparent 72%, rgba(2,7,13,.72)); }
.room-screen-head { position: absolute; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: flex-start; padding: 14px 18px; }
.room-screen-plaque {
  display: inline-flex; flex-direction: column; align-items: center; text-align: center;
  max-width: 42vw; padding: 10px 32px 12px;
  background: url('/assets/ui_set/ui_btn_primary_dark.png') center / 100% 100% no-repeat;
  color: #ffe9b0; font-family: var(--font-title); font-size: 20px; line-height: 1.06;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.5));
}
.room-screen-plaque .rsp-title { display: block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-screen-plaque small { display: block; margin-top: 3px; color: #c8b88a; font-family: var(--font-main, inherit); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }

/* Имя Хранителя — отдельной строкой, не слипается с речью */
.room-screen-speech strong { display: block; margin-bottom: 3px; color: #ffd46f; font-family: var(--font-title); font-size: 12.5px; font-weight: 700; letter-spacing: .03em; }

/* Панель улучшения комнаты (всегда видна) */
.room-up { display: flex; flex-direction: column; gap: 7px; margin-top: 4px; padding: 11px 13px; border: 1px solid rgba(222,178,96,.5); border-radius: 11px; background: linear-gradient(180deg, rgba(30,21,9,.62), rgba(16,11,5,.58)); }
.room-up-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.room-up-head span { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: #c8b88a; }
.room-up-head b { font-size: 13px; color: #ffe9b3; }
.room-up-cost { display: flex; flex-wrap: wrap; gap: 6px; }
.room-up--max, .room-up--work { flex-direction: row; align-items: center; justify-content: space-between; }
.room-up--max { border-color: rgba(120,200,150,.5); background: rgba(28,70,46,.42); }
.room-up--max span, .room-up--work span, .room-up--locked span { font-size: 13px; color: #e8dcc0; }
.room-up--max b { color: #9ff0bf; font-size: 14px; }
.room-up--work b { color: #9fd0e0; font-size: 14px; }
.room-up--locked { gap: 3px; }
.room-up--locked small { color: #cbb089; font-size: 11px; }
.room-screen-back {
  padding: 12px 22px 14px; border: none; cursor: pointer;
  background: url('/assets/ui_set/ui_btn_secondary.png') center / 100% 100% no-repeat;
  color: #f4e3b8; font-size: 14px; font-weight: 950;
  filter: drop-shadow(0 5px 12px rgba(0,0,0,.45));
  transition: transform .12s ease;
}
.room-screen-back:hover { transform: translateY(-1px) scale(1.03); }
.room-screen-curator { position: absolute; left: 16px; bottom: 0; display: flex; align-items: flex-end; gap: 12px; max-width: min(660px, 86vw); }
.room-screen-curator-art { width: clamp(130px, 19vh, 215px); filter: drop-shadow(0 10px 22px rgba(0,0,0,.6)); }
.room-screen-speech {
  margin-bottom: 22px; padding: 13px 18px;
  border: 1px solid rgba(255,212,111,.34); border-radius: 14px 14px 14px 4px;
  background: linear-gradient(180deg, rgba(9,22,35,.92), rgba(3,10,18,.90));
  color: #e8dcc0; font-size: 13.5px; line-height: 1.45;
  box-shadow: 0 14px 34px rgba(0,0,0,.5);
}
.room-screen-speech strong { display: block; margin-bottom: 3px; color: var(--gold, #ffd46f); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.room-screen-soon {
  position: absolute; right: 18px; bottom: 18px; padding: 8px 14px;
  border: 1px solid rgba(255,212,111,.22); border-radius: 11px;
  background: rgba(2,8,15,.6); color: #9fb2c8; font-size: 11.5px; font-weight: 800;
}
@media (max-width: 760px) {
  .room-screen-plaque { font-size: 16px; }
  .room-screen-curator-art { width: 110px; }
  .room-screen-speech { font-size: 12px; margin-bottom: 14px; }
  .room-screen-soon { display: none; }
}

/* === Лого-картинка в шапке + ресурсы над картой + хранитель-дядя === */
.museum-logo-img { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.museum-logo-img img { height: 46px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.museum-logo-img span { color: var(--gold, #ffd46f); font-size: 9px; font-weight: 950; letter-spacing: .17em; text-transform: uppercase; }
.museum-resources-bar { margin: 6px 0 0; }
.museum-ui-final .museum-main { height: calc(100svh - 158px); }
.museum-ui-final .keeper-person { object-fit: contain; object-position: bottom; }
@media (max-width: 980px) {
  .museum-logo-img img { height: 38px; }
  .museum-ui-final .museum-main { height: auto; }
}

/* ============================================================
   UI CLEANUP SPRINT 2026-06-11 (ТЗ п.1-7)
   ============================================================ */

/* 1. Лого компактнее */
.museum-logo-img img { height: 40px; }
.museum-ui-final .museum-top-orders { grid-template-columns: minmax(150px, 180px) minmax(0, 1fr) auto; min-height: 60px; padding: 7px 11px; }

/* 2. Дела музея: чипы ровные, на всю ширину, без обрезаний */
.museum-ui-final .museum-top-orders .orders-title { font-size: 14px; letter-spacing: .02em; }
.museum-ui-final .museum-top-orders .orders-list { display: flex; gap: 8px; align-items: stretch; }
.museum-ui-final .museum-top-orders .assignment-card {
  flex: 1 1 0; min-width: 150px; max-width: 300px; height: 44px; min-height: 44px;
  padding: 4px 10px; align-items: center;
}
.museum-ui-final .museum-top-orders .assignment-card strong {
  font-size: 12px; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.museum-ui-final .museum-top-orders .assignment-time {
  min-width: 54px; min-height: 0; padding: 3px 7px; font-size: 12px; font-weight: 900;
  color: var(--gold-light, #ffe9b0); background: rgba(2,8,15,.55); border-radius: 8px; text-align: center;
}
.museum-ui-final .assignment-card.is-empty { justify-content: flex-start; }

/* 3. Ресурсные капсулы: единый размер, выравнивание */
.museum-bottom { gap: 8px; padding: 6px 10px; }
.museum-bottom .hud-capsule { min-width: 0; flex: 0 1 188px; height: 52px; padding: 4px 14px 4px 56px; }
.museum-bottom .capsule-socket { width: 50px; height: 50px; }
.museum-bottom .capsule-icon-img { width: 43px; height: 43px; }
.museum-bottom .capsule-value b { font-size: 16px; }
.museum-bottom .hud-capsule[data-resource="reputation"] .capsule-value b { color: #ffd46f; }

/* 4. Карточка комнаты: стабильный размер и сетка кнопок */
.museum-ui-final .room-card { width: 286px; min-height: 252px; }
.museum-ui-final .room-card p { max-height: 60px; overflow: hidden; }
.museum-ui-final .room-card-meta { min-height: 30px; }
.room-card-actions { display: grid; gap: 8px; }
.room-card-actions.has-one { grid-template-columns: 1fr; }
.room-card-actions.has-two { grid-template-columns: 1fr 1fr; }
.room-card-actions .button {
  min-height: 46px; height: 46px; padding: 0 10px; font-size: 14px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* 5. Панель хранителя: структура и отступы */
.museum-ui-final .keeper-panel { display: flex; flex-direction: column; gap: 10px; padding: 14px 14px 16px; }
.museum-ui-final .keeper-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.museum-ui-final .keeper-head h2 { margin: 0; font-size: 17px; color: var(--gold-light, #ffe9b0); }
.museum-ui-final .keeper-head span { font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--text-dim, #9fb2c8); }
.museum-ui-final .keeper-speech {
  margin: 0; padding: 10px 12px; min-height: 58px;
  border: 1px solid rgba(255,212,111,.20); border-radius: 12px;
  background: rgba(2,8,15,.40); color: #e2d6b8; font-size: 12.5px; line-height: 1.45;
}
.museum-ui-final .keeper-tasks { display: flex; flex-direction: column; gap: 7px; }
.museum-ui-final .task-card { min-height: 52px; padding: 7px 9px; align-items: center; }
.museum-ui-final .task-card strong { font-size: 12px; line-height: 1.2; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.museum-ui-final .keeper-cta {
  min-height: 44px; border: none; cursor: pointer;
  background: url('/assets/ui_set/ui_btn_secondary.png') center / 100% 100% no-repeat;
  color: #f4e3b8; font-weight: 950; font-size: 13.5px;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}
.museum-ui-final .keeper-cta:hover { transform: translateY(-1px); }

/* 6. Карта чище: подписи комнат только на hover/selected */
.museum-ui-final .room-mark strong {
  opacity: 0; transform: translateY(3px); transition: opacity .16s ease, transform .16s ease;
  pointer-events: none;
}
.museum-ui-final .room-hotspot:hover .room-mark strong,
.museum-ui-final .room-hotspot.is-selected .room-mark strong,
.museum-ui-final .room-hotspot.is-quest-target .room-mark strong { opacity: 1; transform: none; }
.map-badge, .map-counts { display: none !important; }

/* 7. Высота основной зоны после компактной шапки */
.museum-ui-final .museum-main { height: calc(100svh - 148px); }
@media (max-width: 1420px) {
  .museum-bottom .hud-capsule { flex: 0 1 168px; padding-left: 52px; }
  .museum-ui-final .museum-top-orders .assignment-card { min-width: 132px; }
}

/* === Патчи комнат на карте + фикс капсул === */
.map-room-patch { position: absolute; pointer-events: none; display: block; }
.museum-bottom .hud-capsule { padding: 4px 14px 4px 64px; }
.museum-bottom .capsule-socket { left: 5px; width: 46px; height: 46px; }
.museum-bottom .capsule-icon-img { width: 40px; height: 40px; }
/* фикс: арт хранителя в flex-колонке */
.museum-ui-final .keeper-art { flex: 1 1 auto; min-height: 200px; max-height: 300px; }
.museum-asset-kit .keeper-art { min-height: 200px; }
/* фикс: плашка названия комнаты — запас под рамку фона */
.room-screen-plaque { padding: 12px 36px 14px; max-width: 56vw; overflow: hidden; text-overflow: ellipsis; }
.room-card-actions .button { font-size: 13px; }
/* ФИКС привязки патчей: база и патчи в одной системе координат.
   cover подрезал базу (~1.5% по Y) и патчи съезжали на нестандартных окнах.
   fill растягивает базу ровно в контейнер — все слои в одинаковых процентах. */
.museum-ui-final .museum-map { aspect-ratio: 1344 / 768; }
.museum-ui-final .museum-map-art { object-fit: fill; }

/* === Хранитель в комнате: правый нижний угол === */
.room-screen-curator { left: auto; right: 16px; flex-direction: row-reverse; }
.room-screen-speech { border-radius: 14px 14px 4px 14px; }
.room-screen-soon { right: auto; left: 18px; }

/* === Кнопки: живые нажатия (hover/active) === */
.button, .cabinet-btn, .keeper-cta, .room-screen-back, .ui-settings-btn, .cabinet-close {
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}
.button:hover { filter: brightness(1.08); }
.button:active, .cabinet-btn:active, .keeper-cta:active, .room-screen-back:active, .ui-settings-btn:active {
  transform: translateY(1px) scale(.97);
  filter: brightness(.92);
}
.button:disabled { filter: grayscale(.5) opacity(.65); transform: none; }
.room-card-actions .button:active { transform: scale(.96); }
.assignment-card { transition: transform .12s ease, border-color .12s ease; cursor: pointer; }
.assignment-card:hover { border-color: rgba(255,212,111,.55); }
.assignment-card:active { transform: scale(.97); }
.room-hotspot { transition: filter .15s ease; }
.room-hotspot:active { filter: brightness(1.15); }

/* ============================================================
   ВОССТАНОВЛЕНИЕ + ФИНАЛ 12.06 (консолидированный блок)
   ============================================================ */

/* Капсулы: базовая геометрия и шрифты */
.museum-bottom .hud-capsule { flex: 0 1 168px; min-width: 132px; max-width: 190px; height: 42px; }
.museum-bottom .capsule-value { min-width: 0; line-height: 1; position: relative; z-index: 2; display: flex; flex-direction: column; }
.museum-bottom .capsule-socket { z-index: 1; }
.museum-bottom .capsule-value b {
  font-size: clamp(13px, 0.95vw, 15px); line-height: 1.1; letter-spacing: 0; color: #ffffff;
  font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}
.museum-bottom .capsule-value small {
  font-size: 8px; line-height: 1.2; letter-spacing: .1em; color: #c9d4e4;
  overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}

/* Шапка: слово-лого, чипы по центру */
.museum-logo-img { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.museum-logo-img img { height: 54px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.museum-ui-final .museum-top-orders { grid-template-columns: minmax(240px, 330px) minmax(0, 1fr) auto; min-height: 84px; }
.orders-head { display: none; }
.museum-ui-final .museum-top-orders .orders-list { display: flex; gap: 8px; align-items: stretch; justify-content: center; overflow-x: auto; padding: 2px; scrollbar-width: thin; }
.museum-resources-bar { margin: 6px 0 0; }
.museum-ui-final .museum-main { height: calc(100svh - 158px); }

/* Чипы дел: гарнитур UI4 + синий прогресс */
.museum-ui-final .museum-top-orders .assignment-card {
  flex: 1 1 0; min-width: 150px; max-width: 300px; height: 50px; min-height: 50px;
  border: none; border-radius: 0; box-shadow: none;
  background: url('/assets/ui_set/ui4_chip.png') center / 100% 100% no-repeat !important;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.4));
  padding: 4px 16px 4px 52px; position: relative; align-items: center;
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready {
  background: url('/assets/ui_set/ui4_chip_ready.png') center / 100% 100% no-repeat !important;
  border: none; filter: drop-shadow(0 0 14px rgba(255,212,111,.45));
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  position: absolute; left: 6px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; display: grid; place-items: center;
}
.museum-ui-final .museum-top-orders .assignment-card strong {
  color: #ffffff; font-size: 12px; line-height: 1.15;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready strong { color: #2e2008; text-shadow: none; }
.museum-ui-final .museum-top-orders .assignment-time {
  min-width: 54px; min-height: 0; padding: 3px 7px; font-size: 12px; font-weight: 900;
  color: #ffe9b0; background: rgba(2,8,15,.55); border-radius: 8px; text-align: center;
  font-variant-numeric: tabular-nums;
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready .assignment-time { color: #2e2008; background: rgba(255,248,226,.4); }
.museum-ui-final .museum-top-orders .assignment-card::after {
  content: ""; position: absolute; left: 18%; right: 18%; bottom: 4px; height: 4px;
  border-radius: 4px; background: rgba(8, 16, 30, .8); box-shadow: inset 0 1px 2px rgba(0,0,0,.6);
}
.museum-ui-final .museum-top-orders .assignment-card::before {
  content: ""; position: absolute; left: 18%; bottom: 4px; height: 4px;
  width: calc(var(--p, 0) * (100% - 36%) / 100);
  border-radius: 4px; z-index: 1;
  background: linear-gradient(90deg, #2f7fd4, #6fc1ff);
  box-shadow: 0 0 8px rgba(95, 175, 255, .6);
}

/* Эмблема уровня + медальон настроек */
.hud-level-badge { border: none; background: none; }
.hud-level-wreath { position: relative; padding: 0 0 12px; width: 56px; height: 58px; display: inline-grid; place-items: center; }
.hud-level-wreath-img { position: absolute; inset: 0 0 12px; width: 100%; height: calc(100% - 12px); object-fit: contain; content: url('/assets/ui_set/ui4_medal_level.png'); filter: drop-shadow(0 2px 6px rgba(0,0,0,.5)); }
.hud-level-wreath b { position: relative; z-index: 2; color: #ffe9b0; font-size: 17px; font-weight: 950; text-shadow: 0 1px 4px rgba(0,0,0,.95); }
.hud-level-wreath small { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); color: #c8b88a; font-size: 8px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.ui-settings-btn {
  background: url('/assets/ui_set/ui4_medal_small.png') center / 100% 100% no-repeat;
  border: none; box-shadow: none; color: #ffe9b0;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.4));
}

/* Сине-золотая гамма панелей */
.museum-ui-final .museum-top, .museum-bottom {
  background: linear-gradient(180deg, rgba(13, 28, 48, .97), rgba(6, 14, 26, .95));
  border-color: rgba(214, 168, 84, .5);
}

/* Панель ресурсов: ромбо-гарнитур UI4 */
.museum-bottom { padding: 6px 12px; position: relative; gap: 8px; }
.museum-bottom .hud-capsule {
  background-image: url('/assets/ui_set/ui4_capsule.png');
  background-size: 100% 100%; background-repeat: no-repeat;
  border: none; border-radius: 0;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45));
  padding: 3px 12px 3px 50px; position: relative; display: flex; align-items: center;
}
.museum-bottom .capsule-socket { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; display: grid; place-items: center; }
.museum-bottom .capsule-icon-img { width: 33px; height: 33px; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)); }
.museum-bottom .capsule-socket .hud-icon-fallback { display: none; }
.museum-bottom .hud-capsule[data-resource="energy"] { box-shadow: inset 0 0 14px rgba(64, 128, 210, .45); }
.museum-bottom .heroes-btn {
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  background: url('/assets/ui_set/ui4_heroes.png') center / 100% 100% no-repeat;
  border: none; min-height: 42px; padding: 0 20px 0 46px; flex: 0 0 auto;
  color: #ffffff; font-weight: 950; font-size: 13px; position: relative;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45));
  transition: transform .12s ease, filter .12s ease;
}
.museum-bottom .heroes-btn:hover { transform: translateY(-1px); filter: drop-shadow(0 0 12px rgba(255,212,111,.35)); }
.museum-bottom .heroes-btn-icon { position: absolute; left: 9px; width: 26px; height: 26px; object-fit: contain; }

/* Каркас: тонкие золотые линии + герб Крыма */
.museum-asset-kit .museum-top::after {
  content: ""; position: absolute; left: 4%; right: 4%; bottom: -2px; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(214,168,84,.85) 18%, rgba(255,224,150,.95) 50%, rgba(214,168,84,.85) 82%, transparent);
  pointer-events: none; z-index: 3;
}
.museum-bottom::before {
  content: ""; position: absolute; left: 6%; right: 6%; bottom: -2px; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(214,168,84,.7) 20%, rgba(255,224,150,.85) 50%, rgba(214,168,84,.7) 80%, transparent);
  pointer-events: none; z-index: 3;
}
.museum-bottom::after {
  content: ""; position: absolute; left: 50%; bottom: -17px; transform: translateX(-50%);
  width: 34px; height: 34px;
  background: url('/assets/ui_set/ui_crimea_emblem.png') center / contain no-repeat;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.6));
  pointer-events: none; z-index: 4;
}

/* Фон экрана и подложка карты: камень с гравировкой */
.game-screen, .museum-shell {
  background:
    radial-gradient(circle at 50% -12%, rgba(255, 206, 110, .12), transparent 36rem),
    linear-gradient(180deg, rgba(7, 14, 24, .42), rgba(5, 9, 16, .72)),
    url('/assets/museum_v7/bg_floor_stone.jpg') center / cover no-repeat fixed;
}
.museum-ui-final .map-card {
  background:
    radial-gradient(circle at 50% 34%, rgba(255, 206, 110, .09), transparent 46rem),
    linear-gradient(180deg, rgba(8, 16, 27, .10), rgba(4, 9, 16, .28)),
    url('/assets/museum_v7/bg_floor_stone.jpg') center / cover no-repeat;
}

/* Маркеры комнат: полные читаемые подписи */
.museum-ui-final .room-mark { width: auto; min-width: 0; max-width: none; overflow: visible; }
.museum-ui-final .room-mark strong {
  opacity: 1; transform: none;
  display: inline-block; width: max-content; max-width: none; overflow: visible;
  font-size: 12.5px; font-weight: 900; letter-spacing: .02em;
  color: #ffe9b0; text-shadow: 0 1px 3px rgba(0,0,0,.9);
  padding: 4px 12px 5px; border-radius: 0; border: none;
  background: url('/assets/ui_set/ui2_plaque_room.png') center / 100% 100% no-repeat;
  white-space: nowrap;
}
.museum-ui-final .room-hotspot.is-selected .room-mark strong,
.museum-ui-final .room-hotspot.is-quest-target .room-mark strong {
  background-image: url('/assets/ui_set/ui2_plaque_room_sel.png');
  color: #2e2008; text-shadow: none;
}
.museum-ui-final .room-marker-icon { width: 30px; height: 30px; }
.museum-ui-final .room-status-icon { width: 24px; height: 24px; }

/* Карточка комнаты: рама М1 + иллюстрация интерьера + кнопки UI4 */
.museum-ui-final .room-card {
  width: 308px; min-height: 372px;
  border: none; border-radius: 0; overflow: hidden;
  background: url('/assets/ui_set/ui_room_card_frame.png') center / 100% 100% no-repeat;
  box-shadow: none;
  filter: drop-shadow(0 18px 44px rgba(0,0,0,.55));
  padding: 50px 42px 42px;
  top: clamp(27%, var(--card-y, 50%), 72%) !important;
  display: flex; flex-direction: column; justify-content: center; gap: 8px;
}
.museum-ui-final .room-card h2 { font-size: 19px; font-weight: 700; line-height: 1.15; }
.museum-ui-final .room-card p { font-size: 12.5px; line-height: 1.4; max-height: 64px; overflow: hidden; }
.museum-ui-final .room-card small { font-size: 10px; color: #9fc2ec; }
.room-card-illu {
  position: absolute; inset: 7% 6.5% 6.5%; z-index: 0; pointer-events: none;
  background-size: cover; background-position: center 30%;
  opacity: .34; border-radius: 6px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.95), rgba(0,0,0,.55) 55%, rgba(0,0,0,.15));
  mask-image: linear-gradient(180deg, rgba(0,0,0,.95), rgba(0,0,0,.55) 55%, rgba(0,0,0,.15));
}
.museum-ui-final .room-card > *:not(.room-card-illu) { position: relative; z-index: 1; }
.room-card-actions { display: grid; gap: 8px; }
.room-card-actions.has-one { grid-template-columns: 1fr; }
.room-card-actions.has-two { grid-template-columns: 1fr 1fr; }
.room-card-actions .button {
  min-height: 46px; height: 46px; padding: 0 10px; font-size: 13px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.museum-ui-final .room-card-actions .button-gold, .cabinet-btn {
  background: url('/assets/ui_set/ui4_btn_gold.png') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0; color: #2e2008;
  font-family: var(--font-title); font-weight: 700; letter-spacing: .03em;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}
.museum-ui-final .room-card-actions .button-ghost, .museum-ui-final .keeper-cta, .room-screen-back {
  background: url('/assets/ui_set/ui4_btn_dark.png') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0; color: #ffffff;
  font-family: var(--font-title); font-weight: 700; letter-spacing: .04em;
  box-shadow: none; filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}
.museum-ui-final .keeper-cta:hover, .room-screen-back:hover { filter: drop-shadow(0 0 14px rgba(255,212,111,.35)); }

/* Панель хранителя: рама М2, белый заголовок, плашки UI4 */
.museum-ui-final .keeper-panel {
  display: flex; flex-direction: column; gap: 8px;
  border: none; border-radius: 0; box-shadow: none; position: relative;
  background: url('/assets/ui_set/ui_keeper_frame_panel.png') center / 100% 100% no-repeat;
  filter: drop-shadow(0 14px 36px rgba(0,0,0,.5));
  padding: 16px 30px 26px;
}
.museum-ui-final .keeper-panel::before, .museum-ui-final .keeper-panel::after { display: none; }
.museum-ui-final .keeper-head { display: flex; justify-content: center; align-items: center; background: none; filter: none; padding: 0; margin: 0 6px; min-height: 44px; }
.museum-ui-final .keeper-head h2 { margin: 0; color: #ffe9b0; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; text-shadow: 0 2px 6px rgba(0,0,0,.8); }
.museum-ui-final .keeper-head span { display: none; }
.museum-asset-kit .keeper-art { min-height: 200px; flex: 1 1 auto; max-height: 320px; margin: 6px 6px 0; }
.museum-asset-kit .keeper-frame { display: none; }
.museum-ui-final .keeper-person { z-index: 2; }
.museum-ui-final .keeper-person { transform: translateX(-50%) scaleX(-1); }
.museum-ui-final .keeper-speech {
  margin: 0; border: none; border-radius: 0;
  background: url('/assets/ui_set/ui4_plaque.png') center / 100% 100% no-repeat !important;
  padding: 14px 18px; min-height: 58px; color: #eef2f8; font-size: 12.5px; line-height: 1.45;
}
.museum-ui-final .keeper-tasks { display: flex; flex-direction: column; gap: 7px; }
.museum-ui-final .task-card {
  min-height: 52px; padding: 8px 12px 8px 14px; align-items: center;
  border: none; border-radius: 0;
  background: url('/assets/ui_set/ui4_row2.png') center / 100% 100% no-repeat !important;
}
.museum-ui-final .task-card strong { font-size: 12px; line-height: 1.2; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.museum-ui-final .keeper-cta { min-height: 44px; cursor: pointer; font-size: 14px; }

/* Тост */
.museum-ui-final .map-toast {
  border: none; border-radius: 0;
  background: url('/assets/ui_set/ui2_toast.png') center / 100% 100% no-repeat;
  padding: 14px 26px;
}

/* Экран комнаты: хранитель справа */
.room-screen-curator { left: auto; right: 16px; flex-direction: row-reverse; }
.room-screen-speech { border-radius: 14px 14px 4px 14px; }
.room-screen-soon { right: auto; left: 18px; }
.room-screen-plaque { padding: 12px 36px 14px; max-width: 56vw; overflow: hidden; text-overflow: ellipsis; }

/* Кабинет и герои: панель, поля, карточки */
.cabinet-modal {
  background-image: url('/assets/ui_set/ui_cabinet_panel.png');
  background-size: 100% 100%; background-repeat: no-repeat;
  padding: 56px 52px 44px;
}
.hero-card-art { padding: 8px 8px 10px; background: rgba(255,248,226,.35); }
.hero-card-full { width: 100%; height: auto; max-height: 190px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.35)); }
.hero-card-portrait-big { width: 92px; height: 92px; overflow: hidden; border: 2px solid rgba(176,140,68,.75); border-radius: 50%; display: grid; place-items: center; }
.hero-card-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; border-radius: 50%; }
.heroes-modal { width: min(760px, 96vw); padding-top: clamp(72px, 13%, 110px); }
.heroes-modal .cabinet-head { margin-top: 6px; }
.heroes-modal .heroes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; max-height: 56svh; overflow-y: auto; scrollbar-width: thin; padding-right: 6px; }

/* Шрифт под старину: Alegreya — книжная антиква, жирная читаемая кириллица */
:root {
  --font-title: 'Alegreya SC', 'Alegreya', 'Literata', Georgia, serif;
  --font-body: 'Alegreya', 'Literata', Georgia, serif;
}
.museum-ui-final .room-card h2, .orders-title, .cabinet-head h2,
.museum-ui-final .keeper-head h2, .room-screen-plaque { font-family: var(--font-title); letter-spacing: .04em; }

/* Адаптив */
@media (max-width: 1500px) {
  .museum-bottom { gap: 6px; }
  .museum-bottom .hud-capsule { padding-left: 46px; }
  .museum-bottom .capsule-socket { width: 36px; height: 36px; }
  .museum-bottom .capsule-icon-img { width: 30px; height: 30px; }
}
@media (max-width: 980px) {
  .museum-logo-img img { height: 40px; }
  .museum-ui-final .museum-main { height: auto; }
}

/* === Правки по пометкам 12.06: центровка и отступы от текстур === */
/* капсулы: цифры и подписи по центру, не залезают на ромбо-грани */
.museum-bottom .hud-capsule { padding: 3px 26px 3px 48px; }
.museum-bottom .capsule-value { flex: 1; align-items: center; text-align: center; }
.museum-bottom .capsule-value b, .museum-bottom .capsule-value small { max-width: 100%; }
/* карточка комнаты: текст читается поверх иллюстрации */
.room-card-illu { opacity: .2; }
.museum-ui-final .room-card p, .museum-ui-final .room-card small, .museum-ui-final .room-card em {
  text-shadow: 0 1px 4px rgba(2, 8, 16, .95), 0 0 12px rgba(2, 8, 16, .7);
}
.museum-ui-final .room-card h2 { text-shadow: 0 2px 6px rgba(2, 8, 16, .95); }
/* панель хранителя: тексты в своих плашках */
.museum-ui-final .keeper-panel { padding: 22px 32px 28px; }
.museum-ui-final .keeper-head { min-height: 34px; margin: 0 10px; }
.museum-ui-final .keeper-head h2 { font-size: 13px; letter-spacing: .1em; color: #ffffff; text-shadow: 0 1px 4px rgba(0,0,0,.9), 0 0 10px rgba(255,212,111,.25); }

/* Полировка по аудиту 12.06 (вечер) */
.museum-bottom .capsule-value small { font-size: 8.5px; letter-spacing: .05em; }
.cost-ico { width: 17px; height: 26px; object-fit: contain; vertical-align: middle; }
.cost-chip { display: inline-flex; align-items: center; gap: 5px; }
.museum-ui-final .room-card small {
  color: #ffd46f; font-weight: 900; letter-spacing: .14em;
}
.museum-ui-final .room-card small::before { content: "◆ "; font-size: 8px; vertical-align: 1px; }
.museum-ui-final .room-card { gap: 9px; }
.museum-ui-final .room-card-meta { display: flex; gap: 10px; align-items: center; min-height: 30px; }
/* уровень и настройки: одна высотная линия */
.museum-ui-final .museum-profile { gap: 14px; padding-right: 10px; align-items: center; display: flex; }
.hud-level-wreath { align-self: center; }
.ui-settings-btn { width: 46px; height: 46px; align-self: center; margin-bottom: 10px; }
.museum-ui-final .keeper-speech { min-height: 0; }
.museum-asset-kit .keeper-art { max-height: 280px; }
.museum-ui-final .keeper-speech { padding: 15px 22px; font-size: 12px; line-height: 1.4; }
.museum-ui-final .task-card { padding: 9px 20px; min-height: 50px; }
.museum-ui-final .task-card strong { font-size: 11.5px; }
.museum-ui-final .keeper-cta { margin: 0 6px; }

/* === Чипы дел строго по центру экрана + надписи без обрезки === */
.museum-ui-final .museum-top-orders { position: relative; }
.museum-ui-final .museum-top-orders .museum-orders {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: auto; max-width: 64%; margin: 0; min-height: 0;
}
.museum-ui-final .museum-top-orders .assignment-card { flex: 0 1 auto; min-width: 0; max-width: none; padding-right: 18px; }
.museum-ui-final .museum-top-orders .assignment-card strong { font-size: 12.5px; max-width: none; overflow: visible; }
.museum-ui-final .task-card strong {
  white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis; line-height: 1.25;
}
/* карта: прозрачное поле вокруг здания — подложка видна */
.museum-ui-final .museum-map { background: transparent; }

/* ============================================================
   ЗОЛОТО-ПЕСОЧНЫЙ КОМПЛЕКТ ui6 + Old Standard TT везде (12.06)
   ============================================================ */

/* Шрифт Alegreya — на всю игру (тело), заголовки и кнопки — Alegreya SC */
body, input, select, textarea {
  font-family: var(--font-body, 'Alegreya', Georgia, serif);
}
button, .button {
  font-family: var(--font-title, 'Alegreya SC', Georgia, serif);
}

/* Главные кнопки — золотая */
.museum-ui-final .room-card-actions .button-gold, .cabinet-btn {
  background: url('/assets/ui_set/ui6_btn_gold.png?v=3') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0; color: #2e2008;
  font-family: var(--font-title); font-weight: 700; letter-spacing: .03em;
  text-shadow: 0 1px 0 rgba(255, 240, 190, .45);
  padding-left: 26px; padding-right: 26px;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}
/* Вторичные — песочная, тёмный текст */
.museum-ui-final .room-card-actions .button-ghost, .museum-ui-final .keeper-cta, .room-screen-back {
  background: url('/assets/ui_set/ui6_btn_sand.png?v=3') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0; color: #3a2a10;
  font-family: var(--font-title); font-weight: 700; letter-spacing: .04em;
  text-shadow: 0 1px 0 rgba(255, 244, 210, .5);
  padding-left: 26px; padding-right: 26px;
  box-shadow: none; filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}
.museum-ui-final .keeper-cta:hover, .room-screen-back:hover {
  filter: drop-shadow(0 0 14px rgba(255,212,111,.45)) brightness(1.05);
}
/* Выключенные — каменная, без grayscale-фильтра */
.museum-ui-final .button:disabled, .cabinet-btn:disabled,
.museum-ui-final .room-card-actions .button-gold:disabled,
.museum-ui-final .room-card-actions .button-ghost:disabled {
  background: url('/assets/ui_set/ui6_btn_stone.png') center / 100% 100% no-repeat !important;
  color: #d3d6da; opacity: .95; filter: drop-shadow(0 3px 8px rgba(0,0,0,.3));
  text-shadow: 0 1px 2px rgba(0,0,0,.55); transform: none; cursor: default;
}

/* Реплика хранителя — пергаментная плашка, тёмный текст */
.museum-ui-final .keeper-speech {
  background: url('/assets/ui_set/ui6_plaque.png') center / 100% 100% no-repeat !important;
  color: #46341a; font-weight: 600; text-shadow: none;
  padding: 15px 26px; font-size: 12px; line-height: 1.4;
}

/* Строка задачи — тёплая с ромбо-гнездом слева */
.museum-ui-final .task-card {
  background: url('/assets/ui_set/ui6_row.png') center / 100% 100% no-repeat !important;
  padding: 9px 14px 9px 62px; min-height: 50px;
}
.museum-ui-final .task-icon-socket { left: 13px; width: 30px; height: 30px; }
.museum-ui-final .task-card strong { color: #3c2c12; text-shadow: none; }
.museum-ui-final .task-card small { display: none; }
.museum-ui-final .task-card .task-progress { display: none; }
.museum-ui-final .task-copy { align-self: center; }
.museum-ui-final .task-card { padding-right: 44px; }
.museum-ui-final .task-rewards { right: 14px; }
.museum-ui-final .task-card.is-done strong { color: #6f7d4a; }

/* Кнопки кабинета: песочная для второстепенных */
.cabinet-modal .button-ghost, .cabinet-logout {
  background: url('/assets/ui_set/ui6_btn_sand.png?v=3') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0; color: #3a2a10; font-weight: 700;
  text-shadow: 0 1px 0 rgba(255, 244, 210, .5);
}
.cabinet-field input {
  font-family: var(--font-title);
}

/* Кабинет-компакт: всё внутри рамы, заголовок не нужен — герб сам шапка */
.cabinet-modal .cabinet-head { display: none; }
.cabinet-modal { padding: 106px 46px 34px; }
/* поля имени и почты — readonly, лейблы самоочевидны */
.cabinet-modal .cabinet-field:has(input[readonly]) span { display: none; }
.cabinet-modal .cabinet-block:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.cabinet-modal .cabinet-shop p { padding-left: 14px; }
.cabinet-modal .cabinet-block { margin-top: 10px; padding-top: 9px; }
.cabinet-modal .cabinet-block h3 { margin-bottom: 6px; font-size: 14px; }
.cabinet-modal .cabinet-field { margin-bottom: 6px; }
.cabinet-modal .cabinet-field input { padding: 7px 12px; font-size: 13px; }
.cabinet-modal .cabinet-btn { padding: 11px 16px 13px; font-size: 14px; }
.cabinet-modal .cabinet-shop p { font-size: 11.5px; line-height: 1.35; }
.cabinet-modal .cabinet-logout { margin-top: 10px; min-height: 44px; }
/* лейблы и заголовки: отступ от тёмного края текстурных полос, не сливаются */
.cabinet-modal .cabinet-field span, .cabinet-modal .cabinet-block h3 { padding-left: 14px; color: #5a431a; }
.cabinet-modal .cabinet-field input { padding-left: 16px; }

/* Герои на пергаменте: тёмные подписи, Тана на два ряда, заметка внутри рамы */
.heroes-modal { padding: 100px 90px 82px; }
.heroes-modal .heroes-note { font-size: 10.5px; margin-top: 8px; }
.heroes-modal .heroes-grid { max-height: none; overflow: visible; padding-right: 0; }
.heroes-modal .hero-card-full { max-height: 150px; }
.heroes-modal .hero-card-portrait-big { width: 78px; height: 78px; }
.heroes-modal .hero-card strong { color: #3c2a10; text-shadow: none; }
.heroes-modal .hero-card small { color: #6b5226; text-shadow: none; }
.heroes-modal .hero-card em { color: #8a6f3a; font-style: italic; }
.heroes-modal .hero-card-art {
  grid-row: 1 / 3;
  background: rgba(94, 70, 28, .10);
  border: 1px solid rgba(94, 70, 28, .35); border-radius: 10px;
}
.heroes-modal .heroes-note {
  margin: 10px 4px 0; color: #6b5226; font-size: 11.5px; text-shadow: none;
}

/* Реплика хранителя в комнате — пергамент, как на главном */
.room-screen-speech {
  border: none; border-radius: 0;
  background: url('/assets/ui_set/ui6_plaque.png') center / 100% 100% no-repeat;
  color: #46341a; font-weight: 600; text-shadow: none;
  padding: 14px 30px 15px;
}
.room-screen-speech strong { color: #7a5b1d; text-shadow: none; }

/* ============================================================
   ВСЁ СИНЕЕ → ЗОЛОТО (13.06): капсулы ресурсов, чипы дел, Герои
   ============================================================ */

/* Капсулы ресурсов — песочная строка, иконка-самоцвет в ромбо-гнезде */
.museum-bottom .hud-capsule {
  background: url('/assets/ui_set/ui6_row.png') center / 100% 100% no-repeat !important;
  border: none; border-radius: 0;
  padding: 3px 18px 3px 44px;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45));
}
.museum-bottom .capsule-socket {
  left: -4px; width: 46px; height: 46px;
}
.museum-bottom .capsule-icon-img {
  width: 44px; height: 44px;
  filter: brightness(1.18) saturate(1.08) drop-shadow(0 0 6px rgba(255, 214, 120, .35)) drop-shadow(0 2px 5px rgba(0,0,0,.5));
}
.museum-bottom .capsule-value small { margin-bottom: 1px; }
.museum-bottom .capsule-value { justify-content: center; gap: 0; }
.museum-bottom .capsule-value b {
  color: #3c2c12; text-shadow: 0 1px 0 rgba(255,244,210,.55);
  font-size: 14.5px; line-height: 1.05;
}
.museum-bottom .capsule-value small {
  color: #5e4920; text-shadow: 0 1px 0 rgba(255,244,210,.4);
  line-height: 1.1; font-size: 8.5px;
}
.museum-bottom .hud-capsule[data-resource="energy"] { box-shadow: none; }
.museum-bottom .hud-capsule[data-resource="reputation"] .capsule-value b { color: #7a5b1d; }

/* Кнопка Герои — малая золотая */
.museum-bottom .heroes-btn {
  background: url('/assets/ui_set/ui6_btn_small.png?v=3') center / 100% 100% no-repeat !important;
  color: #2e2008; font-weight: 700; font-family: var(--font-title);
  text-shadow: 0 1px 0 rgba(255,240,190,.45);
  min-height: 42px; padding: 0 22px 0 44px;
}
.museum-bottom .heroes-btn-icon { left: 7px; width: 30px; height: 30px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.45)); }

/* Чипы дел сверху — песочная строка, иконка в гнезде, золотой прогресс */
.museum-ui-final .museum-top-orders .assignment-card {
  background: url('/assets/ui_set/ui6_row.png') center / 100% 100% no-repeat !important;
  padding: 4px 14px 6px 56px;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  left: -3px; width: 50px; height: 50px;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket img,
.museum-ui-final .museum-top-orders .process-icon-img { width: 46px; height: 46px; object-fit: contain; filter: brightness(1.18) saturate(1.08) drop-shadow(0 0 6px rgba(255, 214, 120, .35)) drop-shadow(0 2px 5px rgba(0,0,0,.5)); }
.museum-ui-final .museum-top-orders .assignment-card strong {
  color: #3c2c12; text-shadow: 0 1px 0 rgba(255,244,210,.5);
}
.museum-ui-final .museum-top-orders .assignment-time {
  color: #2e2008; background: rgba(94, 70, 28, .18);
  border: 1px solid rgba(94, 70, 28, .3);
}
.museum-ui-final .museum-top-orders .assignment-card::after {
  background: rgba(74, 56, 24, .45); box-shadow: inset 0 1px 2px rgba(0,0,0,.35);
}
.museum-ui-final .museum-top-orders .assignment-card::before {
  background: linear-gradient(90deg, #b9913f, #ffd46f);
  box-shadow: 0 0 8px rgba(255, 205, 100, .65);
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready {
  background: url('/assets/ui_set/ui6_row.png') center / 100% 100% no-repeat !important;
  filter: drop-shadow(0 0 16px rgba(255, 212, 111, .75)) brightness(1.06);
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready strong { color: #2e2008; }
.museum-ui-final .museum-top-orders .assignment-card.is-ready .assignment-time { background: rgba(255,248,226,.5); }

/* ============================================================
   ТЁПЛЫЙ АРТ-ЛИСТ №2 (13.06): карточка, арка хранителя, медали, тост
   ============================================================ */

/* Карточка комнаты — пергаментная рама с самоцветом */
.museum-ui-final .room-card {
  background: url('/assets/ui_set/ui7_room_card.png') center / 100% 100% no-repeat;
  width: 302px; min-height: 430px;
  padding: 56px 44px 46px;
}
.museum-ui-final .room-card h2 { color: #ffe9b0; }
.museum-ui-final .room-card p { color: #f0e2c4; }

/* Панель хранителя — тёплый орех, дядя в резной арке */
.museum-ui-final .keeper-panel {
  background:
    radial-gradient(circle at 50% 12%, rgba(255, 205, 110, .12), transparent 14rem),
    linear-gradient(180deg, #2c1f12 0%, #221709 55%, #1a1008 100%);
  border: 1.5px solid rgba(214, 168, 84, .55); border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255, 220, 140, .14), 0 14px 36px rgba(0,0,0,.5);
  padding: 14px 22px 22px;
}
.museum-asset-kit .keeper-art {
  background: url('/assets/ui_set/ui7_keeper_arch.png') center bottom / contain no-repeat;
  min-height: 230px; max-height: 320px;
}
.museum-ui-final .keeper-person { bottom: 14px; max-width: 60%; max-height: 74%; }
/* список дел: без скроллбаров */
.museum-ui-final .museum-top-orders .orders-list { overflow: hidden; scrollbar-width: none; }
.museum-ui-final .keeper-head h2 { text-shadow: 0 1px 4px rgba(0,0,0,.9), 0 0 12px rgba(255,205,110,.3); }

/* Медальоны уровня и настроек — золотой венок и янтарь */
.hud-level-wreath-img { content: url('/assets/ui_set/ui7_medal_level.png'); }
.ui-settings-btn {
  background: url('/assets/ui_set/ui7_medal_small.png') center / 100% 100% no-repeat;
}

/* Тост — пергаментная плашка, тёмный текст */
.museum-ui-final .map-toast {
  background: url('/assets/ui_set/ui7_toast.png') center / 100% 100% no-repeat;
  color: #3c2a10; font-weight: 700; text-shadow: none;
  padding: 14px 34px;
}

/* ============================================================
   ИЗУМРУДНЫЙ КИТ ui8 «ПЕСОК · ЗОЛОТО · ИЗУМРУД» (13.06)
   Полная замена гарнитура. Зелёный вместо синего.
   ============================================================ */

/* Панели шапки и ресурсов — тёмно-изумрудное сукно */
.museum-ui-final .museum-top, .museum-bottom {
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 120, .07), transparent 18rem),
    linear-gradient(180deg, rgba(16, 42, 28, .97), rgba(7, 22, 14, .96));
  border-color: rgba(214, 168, 84, .55);
}

/* Кнопки */
.museum-ui-final .room-card-actions .button-gold, .cabinet-btn {
  background: url('/assets/ui_set/ui8_btn_gold.png?v=3') center / 100% 100% no-repeat !important;
  padding-left: 32px; padding-right: 32px;
}
.museum-ui-final .room-card-actions .button-ghost, .museum-ui-final .keeper-cta, .room-screen-back,
.cabinet-modal .button-ghost, .cabinet-logout {
  background: url('/assets/ui_set/ui8_btn_sand.png?v=3') center / 100% 100% no-repeat !important;
  padding-left: 32px; padding-right: 32px;
}
.museum-ui-final .button:disabled, .cabinet-btn:disabled,
.museum-ui-final .room-card-actions .button-gold:disabled,
.museum-ui-final .room-card-actions .button-ghost:disabled {
  background: url('/assets/ui_set/ui8_btn_stone.png') center / 100% 100% no-repeat !important;
}
.museum-bottom .heroes-btn {
  background: url('/assets/ui_set/ui8_btn_small.png') center / 100% 100% no-repeat !important;
}

/* Реплики хранителя */
.museum-ui-final .keeper-speech,
.room-screen-speech {
  background: url('/assets/ui_set/ui8_plaque.png') center / 100% 100% no-repeat !important;
}

/* Капсулы ресурсов: песочная строка, зелёное ромбо-гнездо слева.
   Гнездо в текстуре: центр x=13.6%, y=58%, ширина 18% — иконка строго в % */
.museum-bottom .hud-capsule {
  background: url('/assets/ui_set/ui8_row.png') center / 100% 100% no-repeat !important;
  padding: 3px 16px 3px 48px;
}
.museum-bottom .capsule-socket {
  left: 3.6%; top: 58%; transform: translateY(-50%);
  width: 20%; height: auto; aspect-ratio: 1;
}
.museum-bottom .capsule-icon-img {
  width: 100%; height: 100%;
  filter: drop-shadow(0 2px 5px rgba(0,0,0,.45));
}

/* Строки задач хранителя */
.museum-ui-final .task-card {
  background: url('/assets/ui_set/ui8_row2.png') center / 100% 100% no-repeat !important;
}

/* Чипы дел: гнездо слева, таймер в пергаментном окошке справа */
.museum-ui-final .museum-top-orders .assignment-card {
  background: url('/assets/ui_set/ui8_chip.png') center / 100% 100% no-repeat !important;
  padding: 4px 68px 4px 66px;
  min-width: 250px; max-width: 320px;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  left: 4.6%; top: 56%; transform: translateY(-50%);
  width: 19%; height: auto; aspect-ratio: 1;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket img,
.museum-ui-final .museum-top-orders .process-icon-img { width: 100%; height: 100%; }
.museum-ui-final .museum-top-orders .assignment-card.is-ready {
  background: url('/assets/ui_set/ui8_chip.png') center / 100% 100% no-repeat !important;
  filter: drop-shadow(0 0 16px rgba(255, 212, 111, .75)) brightness(1.05);
}
.museum-ui-final .museum-top-orders .assignment-time {
  position: absolute; right: 4.5%; top: 50%; transform: translateY(-50%);
  width: 19%; min-width: 0; padding: 2px 4px; text-align: center;
  background: none; border: none; color: #3c2a10; font-weight: 800;
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready .assignment-time { background: none; color: #2e2008; }
.museum-ui-final .museum-top-orders .assignment-card::after { left: 16%; right: 26%; }
.museum-ui-final .museum-top-orders .assignment-card::before { left: 16%; width: calc(var(--p, 0) * (100% - 42%) / 100); }

/* Медальоны: венок с изумрудом, малый изумруд */
.hud-level-wreath-img { content: url('/assets/ui_set/ui8_medal_level.png'); }
.ui-settings-btn {
  background: url('/assets/ui_set/ui8_medal_small.png') center / 100% 100% no-repeat;
}

/* Панель хранителя — целиком резная арка с зелёным сукном */
.museum-ui-final .keeper-panel {
  background: url('/assets/ui_set/ui8_keeper_arch.png') center / 100% 100% no-repeat;
  border: none; border-radius: 0; box-shadow: none;
  filter: drop-shadow(0 14px 36px rgba(0,0,0,.5));
  padding: 18px 34px 26px;
}
/* заголовок — внутрь резной плашки текстуры */
.museum-ui-final .keeper-head { min-height: 30px; margin: 30px 26px 0; }
.museum-ui-final .keeper-head h2 { font-size: 12.5px; letter-spacing: .12em; color: #f3e2b8; }
.museum-asset-kit .keeper-art {
  background: none; min-height: 220px; max-height: 300px;
}
.museum-ui-final .keeper-person { bottom: 4px; max-width: 66%; max-height: 86%; }
.museum-ui-final .keeper-cta { font-size: 13px; white-space: nowrap; padding-left: 38px; padding-right: 38px; }
.museum-ui-final .museum-top-orders .assignment-time { font-family: var(--font-body); font-size: 11.5px; }

/* Карточка комнаты — пергамент с изумрудом */
.museum-ui-final .room-card {
  background: url('/assets/ui_set/ui8_room_card.png') center / 100% 100% no-repeat;
  width: 308px; min-height: 420px;
  padding: 58px 46px 48px;
}

/* Кабинет и герои — светлая панель с гербом */
.cabinet-modal {
  background-image: url('/assets/ui_set/ui8_cabinet_panel.png');
  padding: 84px 52px 40px;
}
.heroes-modal { padding: 84px 64px 56px; }

/* Тост */
.museum-ui-final .map-toast {
  background: url('/assets/ui_set/ui8_toast.png') center / 100% 100% no-repeat;
}

/* ============================================================
   ЧИТАЕМОСТЬ (13.06): кириллица крупнее и жирнее по всей игре
   ============================================================ */
.museum-bottom .capsule-value b {
  font-size: 16px; font-weight: 800; font-family: var(--font-body);
}
.museum-bottom .capsule-value small {
  font-size: 10.5px; font-weight: 800; letter-spacing: .05em;
  font-family: var(--font-body); color: #4e3c18;
}
.museum-ui-final .museum-top-orders .assignment-card strong {
  font-size: 13px; font-weight: 800; font-family: var(--font-body);
}
.museum-ui-final .museum-top-orders .assignment-time { font-size: 12.5px; font-weight: 800; }
.museum-ui-final .task-card strong { font-size: 12.5px; font-weight: 800; font-family: var(--font-body); }
.museum-ui-final .keeper-head h2 { font-size: 14px; font-weight: 800; letter-spacing: .1em; }
.museum-ui-final .keeper-speech { font-size: 12.5px; font-weight: 700; font-family: var(--font-body); }
.museum-ui-final .room-card h2 { font-weight: 800; }
.museum-ui-final .room-card p { font-size: 11.5px; font-weight: 700; font-family: var(--font-body); }
.hud-level-wreath b { font-size: 18px; font-weight: 800; }
.hud-level-wreath small { font-size: 8.5px; font-weight: 800; }
.museum-ui-final .button, .cabinet-btn, .museum-ui-final .keeper-cta { font-weight: 800; }
.cabinet-modal .cabinet-field span, .cabinet-modal .cabinet-block h3 { font-weight: 800; }
.cabinet-modal .cabinet-field span { font-size: 11px; }
.heroes-modal .hero-card strong { font-weight: 800; }
.museum-ui-final .room-card small { font-weight: 800; letter-spacing: .12em; }

/* ============================================================
   ПРАВКИ 13.06 (вечер): стыки, окошки, крупный шрифт, окно хранителя
   ============================================================ */

/* Панели непрозрачные и поверх карты — ничего не заезжает */
.museum-ui-final .museum-top, .museum-bottom {
  position: relative; z-index: 30;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 120, .07), transparent 18rem),
    linear-gradient(180deg, rgb(16, 42, 28), rgb(7, 22, 14));
}
/* карточка комнаты не вылезает за карту (панели сверху непрозрачные и выше по z) */
.museum-ui-final .room-card { top: clamp(33%, var(--card-y, 50%), 54%) !important; }

/* Чип дела: фиксированная ширина — гнездо и окошко всегда на местах */
.museum-ui-final .museum-top-orders .assignment-card {
  flex: 0 0 300px; min-width: 300px; max-width: 300px;
  padding: 4px 102px 4px 80px;
}
.museum-ui-final .museum-top-orders .assignment-time {
  left: 65%; right: auto; width: 31%; top: 50%; transform: translateY(-50%);
  text-align: center; font-size: 14.5px; font-weight: 800; padding: 2px 0;
}
.museum-ui-final .museum-top-orders .assignment-card strong { font-size: 13.5px; }
/* маркеры не режутся контейнерами по вертикали */
.museum-ui-final .room-hotspot { overflow: visible; }

/* ============================================================
   ФИНАЛЬНЫЙ ВИЗУАЛЬНЫЙ ПАСС (ТЗ 13.06, вечер): легче и чище
   ============================================================ */

/* 2. Шапка легче: лого меньше, воздух */
.museum-logo-img img { height: 42px; }
.museum-ui-final .museum-top { min-height: 62px; }

/* 3. Чипы дел — компактные status chips */
.museum-ui-final .museum-top-orders .assignment-card { height: 42px; min-height: 42px; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket { height: 104%; left: 2.4%; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket img,
.museum-ui-final .museum-top-orders .process-icon-img { width: 86%; height: 86%; }
.museum-ui-final .museum-top-orders .assignment-card strong { left: 19%; right: 35%; font-size: 13px; }
.museum-ui-final .museum-top-orders .assignment-time { font-size: 13px; }

/* 4. Ресурсные чипы — иконки скромнее, compact HUD */
.museum-bottom .hud-capsule { height: 42px; min-height: 42px; }
.museum-bottom .capsule-socket { height: 102%; left: 2.4%; }
.museum-bottom .capsule-icon-img { width: 88%; height: 88%; }
.museum-bottom .capsule-value { left: 22%; }
.museum-bottom .capsule-value b { font-size: 16px; }
.museum-bottom .capsule-value small { font-size: 11px; }
.museum-bottom .heroes-btn { min-height: 42px; font-size: 13.5px; }
.museum-resources-bar { margin-top: 8px; }
.museum-bottom { padding: 5px 12px; }

/* 5. Карточка комнаты: −12%, карта главнее */
.museum-ui-final .room-card {
  width: 248px; padding: 42px 32px 32px; gap: 6px;
}
.museum-ui-final .room-card h2 { font-size: 16px; }
.museum-ui-final .room-card p { font-size: 11px; line-height: 1.42; }
.museum-ui-final .room-card-actions .button { font-size: 12.5px; padding: 0 14px; }
.cost-ico { width: 18px; height: 25px; }
.cost-chip { font-size: 12.5px; }

/* 6. Подписи комнат: скрыты, показываются на hover и при выборе */
.museum-ui-final .room-mark {
  opacity: 0; transform: translate(-50%, -50%) scale(.92);
  transition: opacity .16s ease, transform .16s ease;
  pointer-events: none;
}
.museum-ui-final .room-hotspot:hover .room-mark,
.museum-ui-final .room-hotspot.is-selected .room-mark,
.museum-ui-final .room-hotspot.is-quest-target .room-mark {
  opacity: 1; transform: translate(-50%, -50%) scale(1);
}

/* 7. Панель Хранителя: уже и легче */
.museum-ui-final .museum-main { grid-template-columns: minmax(0, 1fr) clamp(280px, 14.5vw, 340px); }
.museum-ui-final .keeper-cta { bottom: 5.4%; }

/* 8. Disabled-кнопка: выключена, но не «ошибка» */
.museum-ui-final .button:disabled { opacity: .94; filter: saturate(.9) drop-shadow(0 2px 6px rgba(0,0,0,.3)); }

/* ============================================================
   ТОЧЕЧНАЯ ПОЛИРОВКА (ТЗ 13.06, финал): карточка, хранитель, иконки
   ============================================================ */

/* 1. Карточка ещё −6%, текст не сжимаем */
.museum-ui-final .room-card { width: 232px; padding: 46px 28px 30px; }
.museum-ui-final .room-card h2 { font-size: 15.5px; }
.museum-ui-final .room-card p { font-size: 11px; }
.museum-ui-final .room-card-actions .button { font-size: 12px; padding: 0 10px; height: 42px; min-height: 42px; }
/* disabled: чистый камень, без грязи */
.museum-ui-final .room-card-actions .button-gold:disabled {
  opacity: 1; filter: none; color: #e3e6e9; text-shadow: 0 1px 2px rgba(0,0,0,.6);
}

/* 2. Хранитель легче: мягче тень, свиток с воздухом */
.museum-ui-final .keeper-panel { filter: drop-shadow(0 8px 22px rgba(0,0,0,.38)); }
.museum-ui-final .keeper-speech { padding: 16px 22px; font-size: clamp(12px, 0.9vw, 13.5px); }
.museum-ui-final .keeper-cta { font-size: 12px; padding: 0 30px; }

/* 3. Иконки ресурсов −8% */
.museum-bottom .capsule-socket { height: 94%; left: 2.8%; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket { height: 96%; left: 2.8%; }

/* 6. Адаптив 1366: ресурсная строка не ломается */
@media (max-width: 1450px) {
  .museum-bottom .hud-capsule { flex: 0 1 170px; min-width: 128px; }
  .museum-bottom .capsule-value small { font-size: 10px; }
  .museum-ui-final .museum-top-orders .assignment-card { flex: 0 0 270px; min-width: 270px; max-width: 270px; }
}

/* ============================================================
   ROOM LABELS (ТЗ 13.06): единый компонент табличек комнат
   ============================================================ */

/* Базовая плашка: фикс-высота, центрирование, без ручных сдвигов */
.museum-ui-final .room-label {
  box-sizing: border-box;
  height: 26px; min-height: 26px; max-height: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px; gap: 5px;
  max-width: none; width: auto; white-space: nowrap;
}
.museum-ui-final .room-label .room-label__title {
  display: inline-flex; align-items: center;
  font-size: 11px; line-height: 1; font-weight: 800;
  letter-spacing: .02em; text-align: center;
  overflow: visible; text-overflow: clip;
}
/* спаны имени: снять древнее .room-mark span { max-width:0; font-size:8px } */
.museum-ui-final .room-label .rl-short,
.museum-ui-final .room-label .rl-full {
  max-width: none; opacity: 1; overflow: visible;
  font-size: 11px; line-height: 1; font-weight: 800;
  color: #ffeec9; text-shadow: 0 1px 3px rgba(0,0,0,.9);
  transition: none;
}
/* компакт: короткое имя; hover/selected: полное */
.museum-ui-final .room-label .rl-short { display: inline; }
.museum-ui-final .room-label .rl-full { display: none; }
.museum-ui-final .room-hotspot:hover .room-label .rl-short,
.museum-ui-final .room-hotspot.is-selected .room-label .rl-short { display: none; }
.museum-ui-final .room-hotspot:hover .room-label .rl-full,
.museum-ui-final .room-hotspot.is-selected .room-label .rl-full { display: inline; }
/* выбранная комната — таблица чуть заметнее */
.museum-ui-final .room-hotspot.is-selected .room-label {
  border-color: rgba(255, 220, 130, .85);
  box-shadow: 0 0 14px rgba(255, 212, 111, .35), 0 3px 10px rgba(0,0,0,.45);
}

/* закрытые/пустые комнаты — плашки тоже скрыты в обычном режиме */
.museum-ui-final .room-hotspot[data-status="locked"] .room-mark,
.museum-ui-final .room-hotspot[data-status="empty"] .room-mark { opacity: 0; }
.museum-ui-final .room-hotspot[data-status="locked"]:hover .room-mark,
.museum-ui-final .room-hotspot[data-status="empty"]:hover .room-mark { opacity: .9; }

/* ============================================================
   LAYOUT FIRST, DECOR SECOND (ТЗ 13.06, ночь)
   Сетка и слоты — flex; текстуры с нарисованными гнёздами уходят
   из чипов/капсул; декор — CSS-фон в гамме кита.
   ============================================================ */
:root {
  --chip-bg: linear-gradient(180deg, #e7d3ac 0%, #d9c094 55%, #c8ad7e 100%);
  --chip-border: 1px solid rgba(122, 92, 40, .65);
  --chip-shadow: inset 0 1px 0 rgba(255, 244, 214, .65), inset 0 -2px 4px rgba(96, 70, 28, .25), 0 2px 6px rgba(0, 0, 0, .35);
  --chip-radius: 9px;
  --ink: #3c2c12;
  --ink-soft: #5e4920;
}

/* --- RESOURCE CHIPS: [icon 36] [value/label] --- */
.museum-bottom .hud-capsule {
  background: var(--chip-bg) !important;
  border: var(--chip-border); border-radius: var(--chip-radius);
  box-shadow: var(--chip-shadow);
  display: flex; align-items: center; gap: 9px;
  height: 46px; min-height: 46px; padding: 0 14px 0 8px;
  filter: none;
}
.museum-bottom .capsule-socket {
  position: static; transform: none; flex: 0 0 36px;
  width: 36px; height: 36px; aspect-ratio: auto;
  display: grid; place-items: center;
}
.museum-bottom .capsule-icon-img { width: 36px; height: 36px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.35)); }
.museum-bottom .capsule-value {
  position: static; transform: none; left: auto; right: auto;
  display: flex; flex-direction: column; justify-content: center;
  align-items: flex-start; text-align: left; gap: 1px; min-width: 0; flex: 1;
}
.museum-bottom .capsule-value b { font-size: 15.5px; line-height: 1; color: var(--ink); }
.museum-bottom .capsule-value small { font-size: 10.5px; line-height: 1; color: var(--ink-soft); margin: 0; letter-spacing: .04em; }
/* Герои — тот же чип, кликабельный акцент */
.museum-bottom .heroes-btn {
  background: linear-gradient(180deg, #f4dd9e 0%, #e3c172 55%, #d2ab58 100%) !important;
  border: 1px solid rgba(122, 92, 40, .75); border-radius: var(--chip-radius);
  box-shadow: var(--chip-shadow);
  display: inline-flex; align-items: center; gap: 9px;
  height: 46px; min-height: 46px; padding: 0 16px 0 8px;
  color: var(--ink); filter: none;
}
.museum-bottom .heroes-btn-icon { position: static; width: 34px; height: 34px; }
.museum-bottom .heroes-btn:hover { transform: translateY(-1px); filter: brightness(1.05); }

/* --- ACTIVE TASK CHIPS: [icon 34] [title] [timer pill] --- */
.museum-ui-final .museum-top-orders .assignment-card {
  background: var(--chip-bg) !important;
  border: var(--chip-border); border-radius: var(--chip-radius);
  box-shadow: var(--chip-shadow);
  display: flex; align-items: center; gap: 10px;
  height: 46px; min-height: 46px; padding: 0 10px 0 8px;
  min-width: max-content; max-width: none; flex: 0 0 auto; filter: none;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  position: static; transform: none; flex: 0 0 34px;
  width: 34px; height: 34px; aspect-ratio: auto;
  display: grid; place-items: center;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket img,
.museum-ui-final .museum-top-orders .process-icon-img { width: 34px; height: 34px; }
.museum-ui-final .museum-top-orders .assignment-card strong {
  position: static; transform: none; left: auto; right: auto;
  flex: 0 1 auto; min-width: 0; white-space: nowrap;
  font-size: 13px; color: var(--ink); text-shadow: none;
}
.museum-ui-final .museum-top-orders .assignment-time {
  position: static; transform: none; left: auto; right: auto; width: auto;
  flex: 0 0 auto; margin-left: 2px;
  padding: 5px 12px; border-radius: 999px;
  background: rgba(46, 32, 8, .82); border: 1px solid rgba(214, 168, 84, .5);
  color: #ffe9b0; font-size: 12.5px; line-height: 1;
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready {
  background: linear-gradient(180deg, #f7e3a8 0%, #e9cd7e 100%) !important;
  box-shadow: var(--chip-shadow), 0 0 14px rgba(255, 212, 111, .55);
}
.museum-ui-final .museum-top-orders .assignment-card.is-ready .assignment-time {
  background: rgba(58, 92, 48, .9); color: #eaffd9;
}
.museum-ui-final .museum-top-orders .assignment-card::after,
.museum-ui-final .museum-top-orders .assignment-card::before { display: none; }

/* --- KEEPER PANEL: вертикальный flex, каждый блок со своим декором --- */
.museum-ui-final .keeper-panel {
  background:
    radial-gradient(circle at 50% 8%, rgba(255, 210, 120, .10), transparent 16rem),
    linear-gradient(180deg, #3a2a16 0%, #2b1d0e 60%, #221608 100%);
  border: 1.5px solid rgba(214, 168, 84, .6); border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 220, 140, .15), 0 10px 28px rgba(0,0,0,.45);
  display: flex; flex-direction: column; align-items: stretch;
  padding: 14px 16px 16px; gap: 10px;
  filter: none;
}
.museum-ui-final .keeper-head {
  position: static; height: 34px; min-height: 34px; margin: 0;
  display: flex; align-items: center; justify-content: center;
  background: url('/assets/ui_set/ui8_toast.png') center / 100% 100% no-repeat;
}
.museum-ui-final .keeper-head h2 { font-size: 13px; color: #3c2a10; text-shadow: none; letter-spacing: .08em; }
.museum-asset-kit .keeper-art {
  position: static; flex: 0 0 auto; width: 100%;
  aspect-ratio: 635 / 726; height: auto; min-height: 0; max-height: none;
  background: url('/assets/ui_set/ui7_keeper_arch.png') center / 100% 100% no-repeat;
  overflow: hidden; margin: 0;
}
.museum-ui-final .keeper-person {
  position: absolute; left: 50%; bottom: 6%;
  max-width: 62%; max-height: 84%;
}
.museum-asset-kit .keeper-art { position: relative; }
.museum-ui-final .keeper-speech {
  position: static; flex: 1 1 auto; min-height: 110px;
  margin: 0; display: flex; align-items: center;
  background: url('/assets/ui_set/ui8_plaque.png') center / 100% 100% no-repeat !important;
  padding: 16px 24px; font-size: 13px;
}
.museum-ui-final .keeper-cta {
  position: static; transform: none; align-self: center;
  margin: 0; height: 40px; min-height: 40px;
}
.museum-ui-final .keeper-cta:hover { transform: translateY(-1px); }
.museum-ui-final .keeper-cta:active { transform: translateY(1px) scale(.97); }

/* --- DEBUG ?debug=ui-grid: слоты и границы --- */
.debug-ui-grid .hud-capsule, .debug-ui-grid .assignment-card,
.debug-ui-grid .keeper-panel > *, .debug-ui-grid .room-card,
.debug-ui-grid .button { outline: 1px dashed rgba(120, 200, 255, .8); outline-offset: -1px; }
.debug-ui-grid .capsule-socket, .debug-ui-grid .process-socket,
.debug-ui-grid .capsule-value, .debug-ui-grid .assignment-time,
.debug-ui-grid .assignment-card strong { outline: 1px dotted rgba(255, 160, 120, .9); outline-offset: -1px; }

/* Debug-режим: ?debug=labels — показать все плашки, рамки и id */
.debug-labels .room-mark { opacity: 1 !important; transform: translate(-50%, -50%) scale(1) !important; pointer-events: none; }
.debug-labels .room-mark { outline: 1px dashed rgba(120, 220, 160, .9); outline-offset: 1px; }
.debug-labels .room-hotspot { outline: 1px dotted rgba(120, 180, 255, .5); }
.museum-ui-final .room-mark .rl-debug { display: none; }
.debug-labels.museum-ui-final .room-mark .rl-debug, .debug-labels .room-mark .rl-debug {
  display: inline-block; margin-left: 6px;
  font: 700 8px/1 monospace; font-style: normal;
  color: #8de0a8; letter-spacing: 0;
  width: auto; height: auto; background: none; border-radius: 0;
}

/* ============================================================
   LAYOUT-FIRST: ФИНАЛ КАСКАДА (всегда последний блок файла!)
   Повтор позиционных правил, чтобы перебить все старые absolute.
   ============================================================ */
.museum-bottom .capsule-socket,
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  position: static !important; transform: none !important;
  left: auto !important; top: auto !important;
  aspect-ratio: auto !important; height: auto !important;
}
.museum-bottom .capsule-socket { flex: 0 0 36px; width: 36px !important; }
.museum-bottom .capsule-socket .capsule-icon-img { width: 36px !important; height: 36px !important; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket { flex: 0 0 34px; width: 34px !important; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket img { width: 34px !important; height: 34px !important; }
.museum-bottom .capsule-value {
  position: static !important; transform: none !important;
  left: auto !important; right: auto !important;
  display: flex; flex-direction: column; justify-content: center;
  align-items: flex-start; text-align: left; gap: 1px; flex: 1; min-width: 0;
}
.museum-ui-final .museum-top-orders .assignment-card strong {
  position: static !important; transform: none !important;
  left: auto !important; right: auto !important;
  flex: 0 1 auto; min-width: 0;
}
.museum-ui-final .museum-top-orders .assignment-time {
  position: static !important; transform: none !important;
  left: auto !important; right: auto !important; width: auto !important;
  margin-left: auto;
}
.museum-ui-final .museum-top-orders .assignment-card {
  min-width: max-content !important; max-width: none !important;
  flex: 0 0 auto !important; padding: 0 10px 0 8px !important;
}
@media (max-width: 1450px) {
  .museum-ui-final .museum-top-orders .assignment-card {
    min-width: max-content !important; max-width: none !important; flex: 0 0 auto !important;
  }
}
.museum-ui-final .process-timer-ring { display: none !important; }

/* ============================================================
   SIMPLIFY PASS (ТЗ 13.06, финал-финал): легче, чище, воздух
   ============================================================ */

/* 1–2. Иконки чипов: компактные 30px, строго внутри плашки */
.museum-bottom .capsule-socket { flex: 0 0 30px; width: 30px !important; }
.museum-bottom .capsule-socket .capsule-icon-img { width: 30px !important; height: 30px !important; }
.museum-bottom .hud-capsule { gap: 8px; padding: 0 14px 0 9px; }
.museum-bottom .heroes-btn-icon { width: 28px !important; height: 28px !important; }
.museum-bottom .heroes-btn { gap: 8px; padding: 0 16px 0 10px; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket { flex: 0 0 30px; width: 30px !important; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket img { width: 30px !important; height: 30px !important; }

/* 3. Карточка комнаты: CSS-фон вместо тяжёлой рамы с ромбами */
.museum-ui-final .room-card {
  width: 218px; min-height: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 120, .10), transparent 10rem),
    linear-gradient(180deg, rgba(62, 47, 26, .97), rgba(40, 29, 14, .97)) !important;
  border: 1px solid rgba(214, 168, 84, .65); border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 220, 140, .12), 0 12px 30px rgba(0, 0, 0, .5);
  padding: 14px 16px 14px; gap: 6px;
  filter: none;
}
.museum-ui-final .room-card h2 { font-size: 15px; margin-top: 0; }
.museum-ui-final .room-card p { font-size: 11px; }
.museum-ui-final .room-card .room-card-illu { border-radius: 10px; }
.museum-ui-final .room-card-actions .button { height: 42px; min-height: 42px; font-size: 12.5px; }

/* 4. Хранитель: легче рамка, ровные отступы, кнопка — часть колонки */
.museum-ui-final .keeper-panel {
  border: 1px solid rgba(214, 168, 84, .45);
  box-shadow: inset 0 1px 0 rgba(255, 220, 140, .10), 0 8px 20px rgba(0, 0, 0, .35);
  padding: 12px 14px 14px; gap: 9px;
}
.museum-ui-final .keeper-speech { padding: 14px 20px; min-height: 96px; }
.museum-ui-final .keeper-cta { height: 42px !important; min-height: 42px !important; width: calc(100% - 8px); align-self: center; }

/* 5. Кнопки: единая высота 42 во всей игре */
.museum-ui-final .button, .cabinet-btn { height: 42px; min-height: 42px; }

/* ============================================================
   ЧИСТАЯ КАРТА + КРУПНЫЕ ИКОНКИ РЕСУРСОВ (ТЗ 13.06)
   ============================================================ */

/* 1–3. Hover/selected — мягкое золотое свечение контура комнаты. */
.museum-ui-final .room-hotspot:hover .room-slot-shape,
.museum-ui-final .room-hotspot.is-selected .room-slot-shape {
  box-shadow:
    inset 0 0 0 2px rgba(255, 215, 120, .55),
    inset 0 0 26px rgba(255, 205, 100, .18),
    0 0 18px rgba(255, 212, 111, .22);
  border-radius: 6px;
}
.museum-ui-final .room-hotspot.is-selected .room-slot-shape {
  box-shadow:
    inset 0 0 0 2px rgba(255, 222, 140, .8),
    inset 0 0 30px rgba(255, 205, 100, .22),
    0 0 22px rgba(255, 212, 111, .35);
}

/* ============================================================
   КАБИНЕТ LAYOUT-FIRST (13.06): CSS-панель, поля в стиле кита
   ============================================================ */
.cabinet-modal:not(.heroes-modal) {
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 120, .10), transparent 12rem),
    linear-gradient(180deg, #3a2a16 0%, #2b1d0e 60%, #221608 100%);
  border: 1.5px solid rgba(214, 168, 84, .6); border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 220, 140, .14), 0 14px 36px rgba(0,0,0,.5);
  width: min(430px, 94vw); max-height: 92svh;
  padding: 16px 22px 20px;
  display: flex; flex-direction: column; gap: 10px;
}
/* заголовок — плашка, как у Хранителя */
.cabinet-modal:not(.heroes-modal) .cabinet-head {
  display: flex; position: static; height: 34px; min-height: 34px; margin: 0 26px;
  align-items: center; justify-content: center;
  background: url('/assets/ui_set/ui8_toast.png') center / 100% 100% no-repeat;
}
.cabinet-modal:not(.heroes-modal) .cabinet-head h2 {
  font-size: 14px; color: #3c2a10; letter-spacing: .08em; text-shadow: none;
}
.cabinet-modal:not(.heroes-modal) .cabinet-head span { display: none; }
.cabinet-modal:not(.heroes-modal) .cabinet-block {
  margin: 0; padding: 0; border: none;
}
.cabinet-modal:not(.heroes-modal) .cabinet-block h3 {
  color: #ffd98f; font-size: 13px; margin: 2px 0 6px; padding-left: 2px;
  text-shadow: 0 1px 3px rgba(0,0,0,.6);
}
.cabinet-modal:not(.heroes-modal) .cabinet-field { margin-bottom: 7px; }
.cabinet-modal:not(.heroes-modal) .cabinet-field span {
  color: #c9b78a; font-size: 10.5px; padding-left: 2px; margin-bottom: 4px;
}
.cabinet-modal:not(.heroes-modal) .cabinet-field input {
  background: rgba(16, 28, 19, .6); border: 1px solid rgba(214, 168, 84, .4);
  border-radius: 8px; color: #ffeec9; padding: 9px 14px; font-size: 13.5px;
}
.cabinet-modal:not(.heroes-modal) .cabinet-field input[readonly] {
  background: rgba(16, 28, 19, .35); color: #d9c79b;
}
.cabinet-modal:not(.heroes-modal) .cabinet-field input:focus {
  outline: none; border-color: rgba(255, 212, 111, .8);
  box-shadow: 0 0 10px rgba(255, 212, 111, .25);
}
.cabinet-modal:not(.heroes-modal) .cabinet-shop p {
  color: #b7a37a; font-size: 11px; padding-left: 2px;
}
.cabinet-modal:not(.heroes-modal) .cabinet-shop h3 { color: #ffd98f; }
.cabinet-modal:not(.heroes-modal) .cabinet-btn { height: 42px; min-height: 42px; font-size: 13.5px; }
.cabinet-modal:not(.heroes-modal) .cabinet-logout { margin-top: 2px; height: 42px; min-height: 42px; }
.cabinet-modal:not(.heroes-modal) .cabinet-close { top: 14px; right: 14px; width: 40px; height: 40px; }

/* 4–5. Иконки ресурсов — главный якорь чипа: 46px в строке 52px */
.museum-bottom .hud-capsule { height: 52px; min-height: 52px; gap: 10px; padding: 0 15px 0 7px; }
.museum-bottom .capsule-socket { flex: 0 0 46px; width: 46px !important; }
.museum-bottom .capsule-socket .capsule-icon-img { width: 46px !important; height: 46px !important; }
.museum-bottom .capsule-value b { font-size: 16.5px; }
.museum-bottom .capsule-value small { font-size: 11px; }
.museum-bottom .heroes-btn { height: 52px; min-height: 52px; gap: 10px; padding: 0 18px 0 8px; font-size: 14px; }
.museum-bottom .heroes-btn-icon { width: 44px !important; height: 44px !important; }

/* ============================================================
   МУЗЕЙНЫЕ ТАБЛИЧКИ КОМНАТ (ТЗ 13.06): видимые, красивые, кликабельные
   ============================================================ */
.museum-ui-final .room-mark {
  display: inline-flex !important;
  opacity: 1; pointer-events: auto; cursor: pointer;
  transform: translate(-50%, -50%);
  height: 25px; min-height: 25px; max-height: 25px;
  padding: 0 12px; gap: 6px;
  background:
    linear-gradient(180deg, rgba(64, 48, 24, .94), rgba(38, 27, 12, .96));
  border: 1px solid rgba(222, 178, 96, .75);
  border-radius: 6px;
  box-shadow:
    inset 0 1px 0 rgba(255, 226, 150, .28),
    inset 0 -1px 0 rgba(0, 0, 0, .4),
    0 2px 8px rgba(0, 0, 0, .5);
  transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.museum-ui-final .room-mark .rl-short { font-size: 10.5px; letter-spacing: .06em; color: #ffe7b3; text-transform: uppercase; }
.museum-ui-final .room-mark .rl-full { font-size: 10.5px; letter-spacing: .04em; color: #ffeec9; text-transform: uppercase; }
/* в табличке — только иконка и имя: без техничных пипсов и статусов */
.museum-ui-final .room-mark .room-mark-state,
.museum-ui-final .room-mark .room-status-icon { display: none; }
.museum-ui-final .room-mark-icon { width: 15px; height: 15px; flex: 0 0 15px; border: none; background: none; }
/* hover: тёплое свечение и лёгкий подъём */
.museum-ui-final .room-hotspot:hover .room-mark {
  border-color: rgba(255, 222, 140, .95);
  box-shadow:
    inset 0 1px 0 rgba(255, 226, 150, .35),
    0 0 14px rgba(255, 208, 105, .45),
    0 3px 10px rgba(0, 0, 0, .5);
  transform: translate(-50%, calc(-50% - 1px));
}
/* selected: золотая табличка с изумрудным камешком */
.museum-ui-final .room-hotspot.is-selected .room-mark {
  background: linear-gradient(180deg, #e9cf96, #d4b272);
  border-color: rgba(120, 88, 36, .9);
  box-shadow:
    inset 0 1px 0 rgba(255, 244, 210, .8),
    0 0 16px rgba(255, 212, 111, .5),
    0 3px 10px rgba(0, 0, 0, .45);
}
.museum-ui-final .room-hotspot.is-selected .room-mark .rl-full { color: #2e2008; text-shadow: none; }
.museum-ui-final .room-hotspot.is-selected .room-mark::after {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #7fe0a8, #1d7a4a 70%);
  box-shadow: 0 0 6px rgba(80, 220, 150, .6);
}
/* таблички: только надпись, по центру, контрастнее */
.museum-ui-final .room-mark .room-mark-icon { display: none !important; }
.museum-ui-final .room-mark {
  padding: 0 14px; gap: 0;
  height: 26px; min-height: 26px; max-height: 26px;
  background: linear-gradient(180deg, rgba(46, 33, 15, .97), rgba(26, 18, 8, .97));
}
.museum-ui-final .room-mark .rl-short {
  font-size: 11.5px; font-weight: 800; letter-spacing: .08em;
  color: #ffe9b3; text-shadow: 0 1px 2px rgba(0, 0, 0, .95);
}
/* Редактор якорей ?debug=anchors: таблички таскаются мышкой */
.debug-anchors .room-mark {
  cursor: grab !important;
  outline: 1px dashed rgba(120, 220, 160, .9); outline-offset: 2px;
}
.debug-anchors .room-mark:active { cursor: grabbing !important; }
.debug-anchors .room-hotspot { outline: 1px dotted rgba(120, 180, 255, .35); }
.anchor-editor-panel {
  position: fixed; left: 12px; bottom: 26px; z-index: 99999;
  display: flex; gap: 8px; align-items: center;
  background: rgba(10, 22, 14, .92); border: 1px solid rgba(214, 168, 84, .6);
  border-radius: 10px; padding: 10px 12px;
  font: 700 12px/1.2 system-ui, sans-serif; color: #ffe9b3;
}
.anchor-editor-panel button {
  height: 30px; padding: 0 14px; border: 1px solid rgba(214, 168, 84, .7);
  border-radius: 8px; background: linear-gradient(180deg, #e7d3ac, #c8ad7e);
  color: #3c2c12; font-weight: 800; cursor: pointer;
}

/* имя на табличке всегда одно (короткое) — без подмены при наведении */
.museum-ui-final .room-hotspot:hover .room-mark .rl-short,
.museum-ui-final .room-hotspot.is-selected .room-mark .rl-short { display: inline; }
.museum-ui-final .room-hotspot:hover .room-mark .rl-full,
.museum-ui-final .room-hotspot.is-selected .room-mark .rl-full { display: none; }
.museum-ui-final .room-hotspot.is-selected .room-mark .rl-short { color: #2e2008; text-shadow: none; }

/* ============================================================
   ХРАНИТЕЛЬ — ПРЕМИУМ-РАМА БЕЗ ПЕРЕГРУЗА (ТЗ 13.06)
   ============================================================ */
.museum-ui-final .museum-main { grid-template-columns: minmax(0, 1fr) clamp(290px, 15.5vw, 360px); }
.museum-ui-final .keeper-panel {
  background:
    radial-gradient(circle at 50% 4%, rgba(255, 214, 120, .14), transparent 14rem),
    linear-gradient(160deg, #46331c 0%, #33240f 45%, #241808 100%);
  border: 1px solid rgba(222, 178, 96, .7); border-radius: 14px;
  box-shadow:
    inset 0 0 0 3px rgba(28, 19, 8, .9),
    inset 0 0 0 4px rgba(214, 168, 84, .35),
    inset 0 24px 40px rgba(255, 205, 110, .05),
    0 12px 30px rgba(0, 0, 0, .5);
  padding: 13px 15px 15px; gap: 10px;
}
.museum-ui-final .keeper-head { height: 36px; min-height: 36px; margin: 0 6px; }
.museum-ui-final .keeper-head h2 { font-size: 13.5px; letter-spacing: .1em; }
.museum-ui-final .keeper-speech { min-height: 104px; font-size: 13px; }
.museum-ui-final .keeper-cta { width: calc(100% - 6px); }
/* хранитель: блоки в потоке */
.museum-ui-final .keeper-head { position: static !important; }
.museum-asset-kit .keeper-art { position: relative !important; top: auto !important; height: auto !important; }
.museum-ui-final .keeper-speech { position: static !important; top: auto !important; bottom: auto !important; }
.museum-ui-final .keeper-cta {
  position: static !important; transform: none !important;
  left: auto !important; bottom: auto !important; align-self: center;
}
.museum-ui-final .keeper-cta:hover { transform: translateY(-1px) !important; }
.museum-ui-final .keeper-cta:active { transform: translateY(1px) scale(.97) !important; }
/* fallback-значки не нужны при живых иконках */
.museum-ui-final .process-icon-fallback, .museum-bottom .hud-icon-fallback { display: none !important; }

/* Капсулы: шрифт крупнее, отступ от гнезда */
.museum-bottom .hud-capsule { padding: 3px 16px 3px 54px; }
.museum-bottom .capsule-value b { font-size: 17.5px; }
.museum-bottom .capsule-value small { font-size: 12px; letter-spacing: .04em; }
.museum-bottom .heroes-btn { font-size: 14.5px; }

/* Хранитель: строки задач убраны — одно большое текстовое окно */
.museum-ui-final .keeper-tasks { display: none !important; }
.museum-ui-final .keeper-speech {
  flex: 1 1 auto; min-height: 150px;
  font-size: 14px; line-height: 1.55; font-weight: 700;
  padding: 20px 28px; display: flex; align-items: center;
}
.museum-ui-final .keeper-cta {
  min-height: 38px; font-size: 12.5px; align-self: center;
  padding: 0 36px; white-space: nowrap; margin-top: 4px;
}
/* заголовок ровно в резной плашке, без переносов */
.museum-ui-final .keeper-head { margin: 26px 18% 0; justify-content: center; }
.museum-ui-final .keeper-head h2 {
  font-size: 13.5px; letter-spacing: .07em; white-space: nowrap; font-weight: 800;
}

/* Реплики и карточка — ещё крупнее */
.museum-ui-final .room-card h2 { font-size: 19px; }
.museum-ui-final .room-card p { font-size: 12.5px; line-height: 1.45; }
.room-screen-speech { font-size: 13.5px; font-weight: 700; }

/* ============================================================
   ГЛОБАЛЬНЫЙ ПАТЧ ПОЗИЦИОНИРОВАНИЯ (13.06)
   Принцип: фон тянется 100%/100% → дети стоят в % от панели,
   значит совпадают с зонами текстуры на ЛЮБОМ экране.
   ============================================================ */

/* --- ШИРОКИЕ ЭКРАНЫ: колонка хранителя растёт, поля карты — изумруд --- */
.museum-ui-final .museum-main { grid-template-columns: minmax(0, 1fr) clamp(286px, 16.5vw, 400px); }
.museum-ui-final .map-card {
  background:
    radial-gradient(circle at 50% 30%, rgba(20, 52, 34, .85), rgba(7, 18, 12, .97) 70%),
    linear-gradient(180deg, #0d2418, #081710);
}

/* --- ХРАНИТЕЛЬ: жёсткие зоны текстуры арки --- */
.museum-ui-final .keeper-panel { position: relative; padding: 0; display: block; }
.museum-ui-final .keeper-head {
  position: absolute; top: 9%; left: 19%; right: 19%; height: 5.6%;
  margin: 0; display: flex; align-items: center; justify-content: center;
}
.museum-ui-final .keeper-head h2 { font-size: clamp(11px, 1.05vw, 15px); }
.museum-ui-final .keeper-head span { display: none; }
.museum-asset-kit .keeper-art {
  position: absolute; top: 14.5%; left: 14%; right: 14%; height: 44%;
  min-height: 0; max-height: none; margin: 0; overflow: hidden;
}
.museum-ui-final .keeper-person {
  position: absolute; left: 50%; bottom: 0;
  max-width: 94%; max-height: 100%;
}
.museum-ui-final .keeper-speech {
  position: absolute; top: 61%; left: 9.5%; right: 9.5%; bottom: 13.5%;
  min-height: 0; margin: 0; flex: none;
  display: flex; align-items: center;
  font-size: clamp(12px, 0.95vw, 14.5px); line-height: 1.5;
}
.museum-ui-final .keeper-cta {
  position: absolute; bottom: 3.4%; left: 50%; margin: 0;
  transform: translateX(-50%);
}
.museum-ui-final .keeper-cta:hover { transform: translate(-50%, -1px); }
.museum-ui-final .keeper-cta:active { transform: translate(-50%, 1px) scale(.97); }

/* --- КАПСУЛЫ: значение в зоне между гнездом и хвостом --- */
.museum-bottom .hud-capsule { padding: 0; }
.museum-bottom .capsule-value {
  position: absolute; left: 27%; right: 7%; top: 50%; transform: translateY(-50%);
}

/* --- ЧИПЫ ДЕЛ: текст и прогресс в своих зонах --- */
.museum-ui-final .museum-top-orders .assignment-card { padding: 0; }
.museum-ui-final .museum-top-orders .assignment-card strong {
  position: absolute; left: 26.5%; right: 37%; top: 50%; transform: translateY(-50%);
  text-align: left;
}
.museum-ui-final .museum-top-orders .assignment-card::after { left: 26.5%; right: 38%; bottom: 16%; }
.museum-ui-final .museum-top-orders .assignment-card::before {
  left: 26.5%; bottom: 16%;
  width: calc(var(--p, 0) * (100% - 64.5%) / 100);
}

/* ============================================================
   ЕДИНАЯ UI-СЕТКА (ТЗ 13.06) — токены и выравнивание всех блоков
   ============================================================ */
:root {
  --ux-row-h: 46px;       /* высота чипов дел и капсул ресурсов */
  --ux-btn-h: 44px;       /* высота всех кнопок */
  --ux-gap: 10px;         /* базовый зазор между блоками */
  --ux-pad: 10px;         /* внешний отступ экрана */
  --ux-radius: 10px;      /* единый радиус нетекстурных элементов */
}

/* Внешняя сетка: одинаковые отступы и зазоры */
.museum-ui-final .museum-shell { padding: var(--ux-pad); }
.museum-ui-final .museum-main { gap: var(--ux-gap); }
.museum-ui-final .museum-top { min-height: 74px; align-items: center; }
.museum-logo-img { display: flex; align-items: center; }
.museum-resources-bar { margin-top: var(--ux-gap); }

/* Чипы дел: фикс-высота, симметричный сокет по вертикальному центру */
.museum-ui-final .museum-top-orders .assignment-card {
  height: var(--ux-row-h); min-height: var(--ux-row-h);
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  top: 50%; left: 2%; width: auto; height: 128%; aspect-ratio: 1;
}
.museum-ui-final .museum-top-orders .assignment-card strong {
  left: 24%; right: 36%; font-size: 13.5px;
}
.museum-ui-final .museum-top-orders .assignment-time { font-size: 14px; }

/* Капсулы ресурсов: те же высота и геометрия сокета, что у чипов */
.museum-bottom .hud-capsule {
  height: var(--ux-row-h); min-height: var(--ux-row-h);
}
.museum-bottom .capsule-socket {
  top: 50%; left: 1.2%; width: auto; height: 124%; aspect-ratio: 1;
}
.museum-bottom .capsule-icon-img { width: 92%; height: 92%; }
.museum-bottom .capsule-value { left: 25%; right: 6.5%; }
.museum-bottom .heroes-btn { min-height: var(--ux-row-h); }

/* Кнопки: одна высота, текст по центру, без прыжков */
.museum-ui-final .button, .cabinet-btn,
.museum-ui-final .room-card-actions .button {
  height: var(--ux-btn-h); min-height: var(--ux-btn-h);
  display: inline-flex; align-items: center; justify-content: center;
}
.museum-ui-final .keeper-cta { height: 40px; min-height: 40px; }

/* Карточка комнаты: компактная, стабильная, не давит карту */
.museum-ui-final .room-card {
  width: 280px; min-height: 0;
  padding: 50px 38px 38px; gap: 7px;
}
.museum-ui-final .room-card h2 { font-size: 17.5px; }
.museum-ui-final .room-card p { font-size: 11.5px; line-height: 1.4; }
.museum-ui-final .room-card .room-card-meta { min-height: 24px; }
.cost-ico { width: 20px; height: 28px; }
.cost-chip { gap: 6px; font-size: 13px; font-weight: 800; }
.museum-ui-final .room-card-actions { gap: 8px; margin-top: 6px; }
.museum-ui-final .room-card-actions .button { font-size: 13px; padding: 0 20px; }

/* Хранитель: свиток и кнопка в пределах рамы, меньше пустоты */
.museum-ui-final .keeper-speech { top: 60%; bottom: 16.5%; }
.museum-ui-final .keeper-cta { bottom: 4.8%; }

/* --- МАРКЕРЫ КОМНАТ: всегда по центру комнаты, читаемая капсула --- */
.museum-ui-final .room-mark {
  left: var(--mx, 50%) !important; top: var(--my, 50%) !important; right: auto !important; bottom: auto !important;
  transform: translate(-50%, -50%);
  background: rgba(7, 16, 11, .84); border: 1px solid rgba(214, 168, 84, .6);
  border-image: none; border-radius: 999px;
  padding: 5px 14px; gap: 7px; min-width: 0; min-height: 0;
  box-shadow: 0 3px 10px rgba(0,0,0,.45);
}
.museum-ui-final .room-mark { max-width: 96%; padding: 4px 11px; gap: 5px; }
.museum-ui-final .room-mark strong {
  max-width: none !important; opacity: 1 !important;
  flex: 0 1 auto; min-width: 0;
  font-size: 10.5px; font-weight: 800; color: #ffeec9;
  font-family: var(--font-body); letter-spacing: .02em;
  text-shadow: 0 1px 3px rgba(0,0,0,.9);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.museum-ui-final .room-mark-icon { width: 14px; height: 14px; flex: 0 0 14px; }
.museum-ui-final .room-status-icon { width: 13px; height: 13px; }
.museum-ui-final .room-mark-state { transform: scale(.82); }
.museum-ui-final .room-hotspot[data-status="locked"] .room-mark { opacity: .82; }
.museum-ui-final .room-hotspot:hover .room-mark { background: rgba(7, 16, 11, .95); }

/* === ФИКСЫ 13.06: редактор якорей + карточка === */
/* В редакторе якорей карточка комнаты не нужна и закрывает таблички — прячем */
.debug-anchors .room-card { display: none !important; }
/* Пустой квадрат-превью слева от названия комнаты в карточке — убран */
.museum-ui-final .room-card-thumb { display: none !important; }
/* Пустые зоны (Персонал): табличка видна приглушённо, как у закрытых */
.museum-ui-final .room-hotspot[data-status="empty"] .room-mark { opacity: .82; }
/* В редакторе якорей ВСЕ таблички полностью видимы — иначе якорь не выставить */
.museum-ui-final.debug-anchors .room-mark { opacity: 1 !important; }

/* Таблички: текст НИКОГДА не обрезается (снимаем старые max-width-узды) */
.museum-ui-final .room-mark,
.museum-ui-final .room-hotspot:hover .room-mark,
.museum-ui-final .room-hotspot.is-selected .room-mark { max-width: none !important; }
.museum-ui-final .room-mark strong,
.museum-ui-final .room-hotspot:hover .room-mark strong,
.museum-ui-final .room-hotspot.is-selected .room-mark strong {
  max-width: none !important; overflow: visible !important; text-overflow: clip;
}
/* Изумрудная точка-«кнопка» на выбранной табличке — убрана */
.museum-ui-final .room-hotspot.is-selected .room-mark::after { display: none !important; }
/* Выбранная комната: тёмно-изумрудная табличка, золотая надпись, мягкое свечение */
.museum-ui-final .room-hotspot.is-selected .room-mark {
  background: linear-gradient(180deg, rgba(22, 48, 32, .97), rgba(10, 26, 16, .97)) !important;
  border-color: rgba(126, 224, 168, .8) !important;
  box-shadow: inset 0 1px 0 rgba(160, 240, 190, .22), 0 0 9px rgba(70, 190, 130, .32), 0 3px 10px rgba(0, 0, 0, .45) !important;
}
.museum-ui-final .room-hotspot.is-selected .room-mark .rl-short { color: #ffe9b3 !important; text-shadow: 0 1px 2px rgba(0,0,0,.95) !important; }
/* Редактор: зоны комнат можно таскать, зелёный уголок — менять размер */
.debug-anchors .room-hotspot { cursor: move; }
.debug-anchors .zone-resize-handle {
  position: absolute; right: -8px; bottom: -8px; width: 16px; height: 16px;
  background: rgba(120, 220, 160, .95); border: 2px solid #06140c; border-radius: 4px;
  cursor: nwse-resize; z-index: 40; pointer-events: auto;
  box-shadow: 0 0 6px rgba(0,0,0,.6);
}
/* В редакторе якорей выбор не подсвечиваем — все таблички одинаковые */
.museum-ui-final.debug-anchors .room-hotspot.is-selected .room-mark {
  background: rgba(7, 16, 11, .84) !important;
  border-color: rgba(214, 168, 84, .6) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.45) !important;
}
.museum-ui-final.debug-anchors .room-hotspot.is-selected .room-mark .rl-short { color: #ffe9b3 !important; text-shadow: 0 1px 2px rgba(0,0,0,.95) !important; }

/* === ЖИВАЯ КАРТА (брат, 13.06): видео с деревьями поверх статичной, патчи выше === */
.museum-map .museum-map-live {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: fill; display: block; pointer-events: none;
}

/* === ХРАНИТЕЛЬ — ЛЁГКАЯ УПАКОВКА (брат, 13.06): без рам, дядя компактный, текст главный === */
.museum-ui-final .keeper-head {
  background: url('/assets/ui_set/ui9_toast.png') center / 100% 100% no-repeat !important;
  height: 38px; min-height: 38px;
}
/* Панель: тонкая золотая рамка, flex-колонка — текст тянется на всё свободное */
.museum-ui-final .keeper-panel {
  display: flex !important; flex-direction: column !important;
  gap: 10px !important; padding: 12px 12px 14px !important;
  border: 1px solid rgba(222, 178, 96, .42) !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, rgba(12, 28, 18, .94), rgba(6, 16, 10, .97)) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35) !important;
}
.museum-ui-final .keeper-head, .museum-ui-final .keeper-cta { flex: 0 0 auto !important; }
/* Дядя: компактная виньетка — тёплый свет, снизу тонкая золотая линия */
.museum-asset-kit .keeper-art {
  aspect-ratio: auto !important;
  flex: 0 0 auto !important;
  height: 158px !important; min-height: 158px !important; max-height: 158px !important;
  border: 0 !important; border-radius: 0 !important;
  background: radial-gradient(ellipse at 50% 38%, rgba(255, 205, 110, .17), transparent 68%) !important;
  position: relative !important; overflow: hidden !important;
  margin: 0 !important;
}
.museum-asset-kit .keeper-art::after {
  content: ""; position: absolute; left: 7%; right: 7%; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(222, 178, 96, .75) 28%, #ffe9b3 50%, rgba(222, 178, 96, .75) 72%, transparent);
}
.museum-ui-final .keeper-person {
  left: 50% !important; transform: translateX(-50%) !important;
  bottom: 0 !important;
  max-height: 96% !important; max-width: none !important; width: auto !important;
}
/* Свиток: пергамент на всю свободную высоту, внутри реплика + миссии */
.museum-ui-final .keeper-scroll {
  flex: 1 1 auto !important; min-height: 0 !important;
  display: flex; flex-direction: column; gap: 12px;
  background: url('/assets/ui_set/ui9_parchment.webp') center / 100% 100% no-repeat;
  padding: 26px 28px 30px;
  overflow: hidden;
}
.museum-ui-final .keeper-speech {
  position: static !important; flex: 0 0 auto !important; margin: 0 !important;
  background: none !important; border: 0 !important; padding: 0 !important;
  font-size: 13.5px !important; line-height: 1.5 !important;
  color: #2e2008 !important; text-shadow: none !important;
  display: block !important; min-height: 0 !important;
}
/* Миссии: чернильные строки на пергаменте */
.museum-ui-final .keeper-tasks {
  display: flex !important; flex-direction: column !important; gap: 8px !important;
  flex: 1 1 auto !important; min-height: 0 !important; overflow: auto !important;
  padding: 0 2px 0 0 !important; margin: 0 !important;
}
.museum-ui-final .keeper-tasks-title {
  margin: 0 0 2px; font-family: var(--font-title);
  font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: #6d5523;
  display: flex; align-items: center; gap: 10px;
}
.museum-ui-final .keeper-tasks-title::before,
.museum-ui-final .keeper-tasks-title::after {
  content: ""; flex: 1 1 auto; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(122, 92, 40, .55), transparent);
}
.museum-ui-final .task-card.task-row {
  display: flex !important; align-items: center !important; gap: 9px !important;
  grid-template-columns: none !important;
  min-height: 44px !important; padding: 5px 9px !important;
  background: rgba(255, 248, 226, .42) !important;
  border: 1px solid rgba(122, 92, 40, .35) !important;
  border-radius: 9px !important;
  box-shadow: none !important; cursor: pointer;
  flex: 0 0 auto !important;
}
.museum-ui-final .task-card.task-row:hover { border-color: rgba(122, 92, 40, .65) !important; background: rgba(255, 248, 226, .6) !important; }
.museum-ui-final .task-card .task-icon-socket {
  flex: 0 0 30px; width: 30px !important; height: 30px !important;
  position: static !important; left: auto !important; right: auto !important;
  top: auto !important; bottom: auto !important; transform: none !important;
  margin: 0 !important; display: grid; place-items: center;
  background: none !important; border: 0 !important; box-shadow: none !important;
}
.museum-ui-final .task-card .task-icon-img { width: 30px; height: 30px; object-fit: contain; filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.museum-ui-final .task-card .task-icon-fallback { display: none !important; }
.museum-ui-final .task-card .task-copy { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.museum-ui-final .task-card .task-copy strong {
  font-size: 11.5px; font-weight: 800; line-height: 1.25;
  color: #2e2008 !important; text-shadow: none !important;
  white-space: normal; overflow: hidden;
}
.museum-ui-final .task-card .task-copy small { display: none !important; }
.museum-ui-final .task-card .task-progress {
  height: 4px; border-radius: 99px; overflow: hidden;
  background: rgba(94, 70, 28, .25); position: relative; display: block;
}
.museum-ui-final .task-card .task-progress b {
  display: block; height: 100%; width: var(--p, 0%);
  background: linear-gradient(90deg, #b9913f, #ffd46f); border-radius: 99px;
}
.museum-ui-final .task-card .task-rewards { flex: 0 0 auto; }
.museum-ui-final .task-card .task-rewards .task-cost-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: rgba(46, 32, 8, .82); border: 0; border-radius: 7px;
  padding: 3px 7px; color: #ffe9b3; font-size: 11px; font-weight: 800;
}
.museum-ui-final .task-reward-ico { width: 16px; height: 16px; object-fit: contain; }
.museum-ui-final .task-card .task-done-mark {
  flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center;
  background: radial-gradient(circle at 35% 30%, #7fe0a8, #1d7a4a 75%);
  color: #06140c; font-size: 13px; font-weight: 900;
  box-shadow: 0 0 6px rgba(80, 220, 150, .5);
}
.museum-ui-final .task-card.is-done {
  background: linear-gradient(90deg, rgba(233, 207, 150, .65), rgba(233, 207, 150, .4)) !important;
  border-color: rgba(122, 88, 32, .7) !important;
}

/* === ГЕРОИ: ромб-заглушка с инициалом вместо пустого круга (живой цикл, п.3) === */
.museum-ui-final .hero-card-portrait {
  position: relative; display: grid; place-items: center;
  background: none !important; border: 0 !important; box-shadow: none !important;
}
.museum-ui-final .hero-card-portrait::before {
  content: ""; position: absolute; inset: 12%;
  transform: rotate(45deg);
  background: linear-gradient(135deg, rgba(22, 48, 32, .96), rgba(10, 26, 16, .96));
  border: 2px solid rgba(222, 178, 96, .75);
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(160, 240, 190, .2), 0 2px 8px rgba(0, 0, 0, .4);
}
.museum-ui-final .hero-card-portrait::after {
  content: attr(data-initial); position: relative; z-index: 2;
  font-family: var(--font-title); font-size: 26px; font-weight: 800;
  color: #ffe9b3; text-shadow: 0 1px 2px rgba(0, 0, 0, .85);
}
.museum-ui-final .hero-card-portrait .hero-card-photo { position: relative; z-index: 3; }

/* === ЭКРАН КОМНАТЫ: колонка действий (живой цикл, п.2) === */
.museum-ui-final .room-screen-panel {
  position: absolute; right: 18px; top: 76px;
  width: min(300px, 30vw); max-height: calc(100% - 220px);
  display: flex; flex-direction: column; gap: 10px;
  padding: 16px 18px;
  background: linear-gradient(180deg, rgba(26, 18, 8, .93), rgba(16, 11, 5, .95));
  border: 1px solid rgba(222, 178, 96, .55);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 226, 150, .15);
  overflow: auto; z-index: 6;
}
.museum-ui-final .room-screen-panel h3 {
  margin: 0; font-family: var(--font-title); font-size: 17px; font-weight: 800;
  color: #ffe9b3; text-shadow: 0 1px 2px rgba(0,0,0,.8);
}
.museum-ui-final .room-screen-panel p {
  margin: 0; font-size: 12px; line-height: 1.45; color: #e8dcc0;
}
.museum-ui-final .room-screen-panel .room-screen-effect b { color: #ffd46f; }
.museum-ui-final .room-screen-panel .room-screen-meta { min-height: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.museum-ui-final .room-screen-panel .button { width: 100%; min-height: 42px; }

/* Медальон уровня — лавровый из листа 9, чуть крупнее */
.museum-ui-final .hud-level-wreath-img { width: 46px; height: 46px; object-fit: contain; }

/* === ОДИН СТИЛЬ (брат, 13.06): кнопки без «палок»-наконечников, чистый CSS-кит === */
.museum-ui-final .button,
.museum-ui-final .room-card-actions .button,
.museum-ui-final .room-screen-panel .button,
.museum-ui-final .keeper-panel .keeper-cta,
.museum-ui-final .keeper-cta,
.museum-ui-final .room-screen-back {
  background: linear-gradient(180deg, #e7d3ac 0%, #d9c094 55%, #c8ad7e 100%) !important;
  border: 1px solid rgba(122, 92, 40, .7) !important;
  border-image: none !important;
  border-radius: 10px !important;
  box-shadow: inset 0 1px 0 rgba(255, 244, 210, .65), 0 2px 6px rgba(0, 0, 0, .35) !important;
  color: #3c2c12 !important;
  text-shadow: 0 1px 0 rgba(255, 244, 210, .5) !important;
  padding-left: 22px !important; padding-right: 22px !important;
  filter: none !important;
}
.museum-ui-final .button-gold,
.museum-ui-final .room-card-actions .button-gold,
.museum-ui-final .room-screen-panel .button-gold,
.museum-ui-final .keeper-panel .keeper-cta,
.museum-ui-final .keeper-cta {
  background: linear-gradient(180deg, #f3ddae 0%, #e9cf96 45%, #d4b272 100%) !important;
  border-color: rgba(122, 88, 32, .85) !important;
  box-shadow: inset 0 1px 0 rgba(255, 248, 220, .8), 0 0 10px rgba(255, 212, 111, .22), 0 2px 6px rgba(0, 0, 0, .35) !important;
  color: #3c2c12 !important;
  text-shadow: 0 1px 0 rgba(255, 244, 210, .5) !important;
}
.museum-ui-final .button-ghost,
.museum-ui-final .room-card-actions .button-ghost {
  background: linear-gradient(180deg, rgba(22, 48, 32, .95), rgba(10, 26, 16, .95)) !important;
  border: 1px solid rgba(222, 178, 96, .55) !important;
  color: #ffe9b3 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .9) !important;
  box-shadow: inset 0 1px 0 rgba(160, 240, 190, .15), 0 2px 6px rgba(0, 0, 0, .35) !important;
}
.museum-ui-final .button:hover,
.museum-ui-final .keeper-cta:hover { filter: brightness(1.07) !important; }
.museum-ui-final .button:disabled { filter: grayscale(.5) opacity(.65) !important; }

/* Таймеры «2ч 14м» и пилюли времени: плашка с мягким углом вместо овала */
.museum-ui-final .assignment-time,
.museum-ui-final .museum-top-orders .assignment-time {
  border-radius: 7px !important;
  border: 1px solid rgba(222, 178, 96, .4) !important;
}

/* === Чипы «Экспедиция в пути» / «Реставрация»: значки крупнее (брат, 13.06) === */
.museum-ui-final .museum-top-orders .assignment-card { padding-left: 66px !important; }
.museum-ui-final .museum-top-orders .assignment-card .process-socket {
  left: -5px !important; width: 60px !important; height: 60px !important;
}
.museum-ui-final .museum-top-orders .assignment-card .process-socket img,
.museum-ui-final .museum-top-orders .process-icon-img {
  width: 56px !important; height: 56px !important;
}

/* === ХРАНИТЕЛЬ: ниша-альков, чтобы блок не зиял при дропе картинки дяди (Claude, 13.06, v13.06-S) === */
.museum-asset-kit .keeper-art {
  background:
    radial-gradient(ellipse 72% 58% at 50% 80%, rgba(255, 205, 110, .20), transparent 70%),
    radial-gradient(ellipse 130% 96% at 50% 30%, rgba(26, 58, 42, .68), rgba(7, 17, 11, .30) 76%) !important;
  box-shadow: inset 0 0 38px rgba(0, 0, 0, .42) !important;
}

/* === БОЛЬШИЕ ЭКРАНЫ (≥2000px): шире правый блок + крупнее дядя/текст (брат: «расширить дядю и блок справа», v13.06-S) ===
   Правый блок забирает лишнюю ширину, карта остаётся в пределах своей колонки (≤1716px) и
   заполняет её без боковых полей. Пропорции карты НЕ трогаем — без растяжения.
   Хороший экран (<2000px) не затрагивается. === */
@media (min-width: 2000px) {
  /* правый блок — умеренно шире (НЕ огромный); лишнюю ширину забирает карта */
  .museum-ui-final .museum-main {
    grid-template-columns: minmax(0, 1fr) clamp(380px, 20vw, 470px) !important;
  }
  /* карта заполняет колонку по ширине; лишний лес сверху/снизу мягко подрезается рамкой — без боковых полей и без растяжения */
  .museum-ui-final .museum-map {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
  }
  /* дядя крупнее и занимает больше высоты → пергамент не выглядит пустым */
  .museum-asset-kit .keeper-art {
    height: clamp(250px, 16vw, 400px) !important;
    min-height: clamp(250px, 16vw, 400px) !important;
    max-height: clamp(250px, 16vw, 400px) !important;
  }
  .museum-ui-final .keeper-speech { font-size: clamp(15px, 0.8vw, 18px) !important; line-height: 1.55 !important; }
  .museum-ui-final .keeper-head h2 { font-size: clamp(13px, 0.75vw, 16px) !important; }
  .museum-ui-final .keeper-tasks-title { font-size: 15px !important; }
  .museum-ui-final .task-card.task-row { font-size: 14.5px !important; }
}

/* ============================================================
   БЫСТРЫЕ ПРАВКИ ВИЗУАЛА (Claude, 13.06, сборка v13.06-S)
   ============================================================ */

/* 1. (Затемнение карты убрано по просьбе — музей НЕ затемняем при открытой карточке.
      Вместо этого карточка закрывается кликом по любому месту экрана — см. actions.js) */

/* 2. Реплика хранителя — воздух сверху на пергаменте (не прижата к краю) */
.museum-ui-final .keeper-scroll { position: relative; padding-top: 44px !important; }

/* 3. Нулевые ресурсы приглушены — «0» не читается как ошибка */
.museum-ui-final .resource-card.is-empty { opacity: .5 !important; filter: saturate(.5) !important; }

/* 4. Пустой пергамент «Дела музея» — лёгкий водяной знак-эмблема в нижней части
      (временный стопгап; полноценный арт — по промтам ниже) */
.museum-ui-final .keeper-scroll::after {
  content: ""; position: absolute; left: 50%; bottom: 6%; transform: translateX(-50%);
  width: clamp(86px, 9vw, 148px); aspect-ratio: 1; opacity: .06; pointer-events: none; z-index: 0;
  background: var(--asset-ui-hud-museum-emblem-shield) center / contain no-repeat;
}

/* === Фон «Кабинет хранителя» за дядей — заполняет нишу сценой (фон сгенерил брат, v13.06-S) === */
.museum-asset-kit .keeper-art {
  background:
    linear-gradient(180deg, rgba(8,20,14,.20) 0%, rgba(7,17,11,.50) 68%, rgba(6,15,10,.88) 100%),
    url('/assets/characters/keeper_cabinet_bg.webp') center 48% / cover no-repeat !important;
}

/* === Бейдж уровня: число ровно по центру медальона === */
.museum-ui-final .hud-level-wreath { position: relative; width: 50px; height: 56px; padding: 0 !important; display: block; }
.museum-ui-final .hud-level-wreath-img { position: absolute; inset: auto; left: 50%; top: 1px; transform: translateX(-50%); width: 44px; height: 44px; object-fit: contain; }
.museum-ui-final .hud-level-wreath b { position: absolute; left: 0; right: 0; top: 1px; height: 44px; margin: 0; display: flex; align-items: center; justify-content: center; line-height: 1; z-index: 2; }
.museum-ui-final .hud-level-wreath small { position: absolute; left: 0; right: 0; bottom: 0; text-align: center; transform: none; }

/* === ХРАНИТЕЛЬ: единый фон-сцена «Кабинет» на ВСЮ панель (брат, v13.06-S) ===
   Фон с окном — на всю панель; дядя стоит сверху перед окном; текст ложится на
   чистый пергамент поверх (перекрывает занятый фон → читается). Карту повесим
   отдельным блоком позже. */
.museum-ui-final .keeper-panel {
  background: url('/assets/characters/keeper_study_bg.webp?v=4') center top / cover no-repeat !important;
  border: 1px solid rgba(222,178,96,.5) !important;
}
.museum-asset-kit .keeper-art {
  background: none !important;
  box-shadow: none !important;
  height: clamp(150px, 12.5vw, 235px) !important;
  min-height: clamp(150px, 12.5vw, 235px) !important;
  max-height: clamp(150px, 12.5vw, 235px) !important;
}
.museum-asset-kit .keeper-art::after { display: none !important; }

/* === ВЕРХНИЙ/НИЖНИЙ БАРЫ: красивая подложка в стиле кита (брат, v13.06-S) ===
   Было плоско-зелёно; делаем тёмно-изумрудное «стекло» с тёплым свечением сверху,
   золотой рамкой и мягким внутренним светом — как у панели хранителя. */
.museum-ui-final .museum-top,
.museum-ui-final .museum-bottom {
  background:
    radial-gradient(130% 210% at 50% -65%, rgba(255,212,111,.13), transparent 55%),
    linear-gradient(180deg, rgba(18,42,30,.97), rgba(7,18,12,.98)) !important;
  border: 1px solid rgba(222,178,96,.46) !important;
  border-radius: 16px !important;
  box-shadow: inset 0 1px 0 rgba(255,238,190,.10), inset 0 0 30px rgba(0,0,0,.30), 0 10px 26px rgba(0,0,0,.38) !important;
}

/* === Дядя: по центру и «выходит» из пергамента (без пустоты и «отрезанных ног») === */
.museum-asset-kit .keeper-art {
  overflow: visible !important;
  height: clamp(185px, 14vw, 285px) !important;
  min-height: clamp(185px, 14vw, 285px) !important;
  max-height: clamp(185px, 14vw, 285px) !important;
  width: 100% !important;
  margin: 0 !important;
  align-self: stretch !important;
  transform: none !important;
  position: relative !important;
  left: auto !important; right: auto !important; inset: auto !important;
}
.museum-ui-final .keeper-person {
  left: 50% !important; right: auto !important;
  transform: translateX(-50%) !important;
  bottom: -22px !important;
  max-height: 116% !important; max-width: none !important; width: auto !important;
}
.museum-ui-final .keeper-scroll {
  position: relative !important; z-index: 4 !important;
  margin-top: -18px !important;
  margin-left: -12px !important; margin-right: -12px !important;
  background-size: 100% 100% !important;
}

/* === Хранитель: доводка (заголовок крупнее, дядя ниже, пергамент с отступами, шрифты больше) === */
.museum-ui-final .keeper-head h2 { font-size: clamp(15px, 1.05vw, 19px) !important; letter-spacing: .08em !important; }
.museum-asset-kit .keeper-art {
  height: clamp(205px, 15vw, 320px) !important;
  min-height: clamp(205px, 15vw, 320px) !important;
  max-height: clamp(205px, 15vw, 320px) !important;
}
.museum-ui-final .keeper-person { bottom: -6px !important; max-height: 99% !important; }
/* отступы со всех сторон, чтобы текст не лез на рисунки-меандр пергамента */
.museum-ui-final .keeper-scroll { margin-top: -22px !important; padding: 50px 44px 46px !important; }
.museum-ui-final .keeper-speech { font-size: clamp(15.5px, 1.0vw, 19px) !important; line-height: 1.5 !important; }
.museum-ui-final .keeper-tasks-title { font-size: 15.5px !important; }
.museum-ui-final .task-card.task-row, .museum-ui-final .task-card.task-row strong { font-size: 15px !important; }
.museum-ui-final .keeper-cta { font-size: 16.5px !important; }

/* === ЕДИНЫЙ ВЕРХНИЙ БАР: подложка-лента 9-slice (брат, v13.06-S) === */
.museum-ui-final .top-hud {
  border: 30px solid transparent;
  border-image: url('/assets/ui_set/ui_topbar_panel.png?v=1') 132 fill / 30px / 0 round;
  padding: 0 8px;
  display: flex; flex-direction: column; gap: 2px;
  margin: 0 0 8px;
}
/* внутренние бары прозрачные — фон даёт лента */
.museum-ui-final .top-hud .museum-top,
.museum-ui-final .top-hud .museum-bottom {
  background: none !important; border: none !important; box-shadow: none !important;
  border-radius: 0 !important; margin: 0 !important; min-height: 0 !important;
}
/* убрать нависающий медальон между рядами */
.museum-bottom::before, .museum-bottom::after { display: none !important; }
.museum-resources-bar { margin: 0 !important; }
/* чипы дел компактнее (были слишком длинные слева) + по центру */
.museum-ui-final .top-hud .museum-orders .orders-list { justify-content: center !important; }
.museum-ui-final .top-hud .museum-top-orders .assignment-card {
  min-width: 0 !important; max-width: 320px !important; flex: 0 1 305px !important;
}
.museum-ui-final .top-hud .museum-top-orders .assignment-card strong {
  overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important;
}

/* === Верхний бар: лого и уровень/настройки на ОБЕ строки, по центру; кристаллы вправо === */
.museum-ui-final .top-hud { position: relative !important; }
.museum-ui-final .top-hud .museum-logo {
  position: absolute !important; left: 28px !important; top: 50% !important; transform: translateY(-50%) !important;
  width: clamp(210px, 16vw, 300px) !important; height: auto !important; margin: 0 !important; z-index: 6 !important;
}
.museum-ui-final .top-hud .museum-profile {
  position: absolute !important; right: 26px !important; top: 50% !important; transform: translateY(-50%) !important;
  display: flex !important; align-items: center !important; gap: 16px !important; z-index: 6 !important;
}
.museum-ui-final .top-hud .hud-level-wreath { width: 66px !important; height: 72px !important; }
.museum-ui-final .top-hud .hud-level-wreath-img { width: 60px !important; height: 60px !important; }
.museum-ui-final .top-hud .hud-level-wreath b { top: 1px !important; height: 60px !important; font-size: 23px !important; }
.museum-ui-final .top-hud .hud-level-wreath small { font-size: 10px !important; }
.museum-ui-final .top-hud .ui-settings-btn { font-size: 26px !important; width: 46px !important; height: 46px !important; }
/* строки уступают место лого слева и уровню справа */
.museum-ui-final .top-hud .museum-top,
.museum-ui-final .top-hud .museum-bottom {
  padding-left: clamp(250px, 18.5vw, 345px) !important;
  padding-right: 135px !important;
}
/* кристаллы — вправо, перед «Героями»; и НЕ затемнять нулевые */
.museum-bottom .hud-capsule[data-resource="premium"] { order: 8 !important; }
.museum-bottom .heroes-btn { order: 9 !important; }
.museum-ui-final .resource-card.is-empty { opacity: 1 !important; filter: none !important; }

/* === ВЕРХНИЙ БАР v2: 3 колонки (лого | центр | уровень) + рамка тоньше === */
.museum-ui-final .top-hud {
  position: relative !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 18px !important;
  border: 18px solid transparent !important;
  border-image: url('/assets/ui_set/ui_topbar_panel.png?v=1') 132 fill / 18px / 0 round !important;
  padding: 3px 18px !important;
  margin: 0 0 8px !important;
}
.museum-ui-final .top-hud .museum-logo {
  position: static !important; transform: none !important; left: auto !important; right: auto !important;
  width: clamp(180px, 13vw, 270px) !important; margin: 0 !important; z-index: auto !important;
}
.museum-ui-final .top-hud .museum-logo img { width: 100% !important; height: auto !important; display: block !important; }
.museum-ui-final .top-hud .hud-center { display: flex !important; flex-direction: column !important; gap: 5px !important; min-width: 0 !important; }
.museum-ui-final .top-hud .museum-top-orders,
.museum-ui-final .top-hud .museum-bottom {
  display: flex !important; justify-content: center !important; align-items: center !important;
  gap: 9px !important; padding: 0 !important; margin: 0 !important; min-height: 0 !important; width: auto !important;
  background: none !important; border: none !important; box-shadow: none !important; border-radius: 0 !important;
}
.museum-ui-final .top-hud .museum-profile {
  position: static !important; transform: none !important; right: auto !important; left: auto !important;
  display: flex !important; align-items: center !important; gap: 14px !important; z-index: auto !important;
}

/* === Хранитель: текст чуть меньше + спрятать полосу прокрутки на пергаменте === */
.museum-ui-final .keeper-speech { font-size: clamp(13.5px, 0.9vw, 16.5px) !important; line-height: 1.45 !important; }
.museum-ui-final .keeper-tasks-title { font-size: 13.5px !important; }
.museum-ui-final .task-card.task-row, .museum-ui-final .task-card.task-row strong { font-size: 13.5px !important; }
.museum-ui-final .keeper-scroll, .museum-ui-final .keeper-tasks { scrollbar-width: none !important; -ms-overflow-style: none !important; }
.museum-ui-final .keeper-scroll::-webkit-scrollbar,
.museum-ui-final .keeper-tasks::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }

/* === Уровень: число чуть меньше и по центру медальона === */
.museum-ui-final .top-hud .hud-level-wreath b { font-size: 19px !important; top: -1px !important; }

/* === Новые изумрудные капсулы чипов (ресурсы + дела); Герои остаётся золотой === */
.museum-ui-final .top-hud .hud-capsule,
.museum-ui-final .top-hud .assignment-card {
  background: linear-gradient(180deg, rgba(22,54,40,.97), rgba(9,24,16,.98)) !important;
  background-image: linear-gradient(180deg, rgba(22,54,40,.97), rgba(9,24,16,.98)) !important;
  border: 1.5px solid rgba(214,178,96,.72) !important;
  border-radius: 40px !important;
  box-shadow: inset 0 1px 0 rgba(255,238,190,.16), 0 4px 12px rgba(0,0,0,.38) !important;
}
.museum-ui-final .top-hud .capsule-value b { color: #ffe9b0 !important; text-shadow: 0 1px 3px rgba(0,0,0,.55) !important; }
.museum-ui-final .top-hud .capsule-value small { color: #d3c4a0 !important; }
.museum-ui-final .top-hud .assignment-card strong { color: #ffe9b0 !important; }

/* === Верх: убрать дублирующий верхний ряд дел, оставить ресурсы по центру === */
.museum-ui-final .top-hud .museum-top-orders { display: none !important; }
.museum-ui-final .top-hud .hud-center { justify-content: center !important; gap: 0 !important; }
.museum-ui-final .top-hud .museum-bottom { justify-content: center !important; }
/* круглые медальоны не вылезают за капсулу */
.museum-ui-final .top-hud .hud-capsule { padding-left: 52px !important; min-height: 50px !important; }
.museum-ui-final .top-hud .hud-capsule .capsule-socket {
  left: 6px !important; width: 42px !important; height: 42px !important;
  top: 50% !important; transform: translateY(-50%) !important;
}
.museum-ui-final .top-hud .hud-capsule .capsule-icon-img { width: 42px !important; height: 42px !important; }

/* один ряд: капсулы по содержимому, подписи целиком (пропорции сохраняем) */
.museum-ui-final .top-hud .museum-bottom { gap: 8px !important; flex-wrap: nowrap !important; }
.museum-ui-final .top-hud .hud-capsule { flex: 0 0 auto !important; max-width: none !important; }
.museum-ui-final .top-hud .hud-capsule .capsule-value,
.museum-ui-final .top-hud .hud-capsule .capsule-value b,
.museum-ui-final .top-hud .hud-capsule .capsule-value small {
  max-width: none !important; overflow: visible !important; text-overflow: clip !important; white-space: nowrap !important;
}

/* === ФИКС-РАЗМЕРЫ верхнего бара (одинаково на всех мониторах) === */
.museum-ui-final .top-hud .hud-capsule {
  height: 52px !important; min-height: 52px !important; max-height: 52px !important;
  padding: 0 20px 0 56px !important; display: flex !important; align-items: center !important;
}
.museum-ui-final .top-hud .hud-capsule .capsule-socket {
  position: absolute !important; left: 8px !important; top: 50% !important; transform: translateY(-50%) !important;
  width: 40px !important; height: 40px !important;
}
.museum-ui-final .top-hud .hud-capsule .capsule-icon-img { width: 40px !important; height: 40px !important; }
.museum-ui-final .top-hud .hud-capsule .capsule-value {
  display: flex !important; flex-direction: column !important; justify-content: center !important;
  text-align: left !important; line-height: 1.08 !important; gap: 0 !important;
}
.museum-ui-final .top-hud .heroes-btn { height: 52px !important; min-height: 52px !important; }
.museum-ui-final .top-hud .heroes-btn-icon { width: 40px !important; height: 40px !important; }
/* Дядя: фикс-высота (не vw) — текст на пергаменте не съезжает на разных мониторах */
.museum-asset-kit .keeper-art {
  height: 215px !important; min-height: 215px !important; max-height: 215px !important;
}

/* === КАРТОЧКА КОМНАТЫ: крупнее, круглые иконки стоимости, кнопки ровные, выбор мягче === */
.museum-ui-final .room-card { width: min(450px, 31vw) !important; }
.museum-ui-final .room-card h2 { font-size: 25px !important; line-height: 1.05 !important; }
.museum-ui-final .room-card p { font-size: 14px !important; line-height: 1.42 !important; color: #efe2c2 !important; }

/* =========================================================
   Героев музея — премиум-стиль (heroes-modal--v2)
   Селекторы намеренно специфичные, перебивают прежние правила .heroes-modal
   ========================================================= */
.cabinet-overlay.heroes-overlay {
  background: radial-gradient(120% 90% at 50% 30%, rgba(15,28,22,.78) 0%, rgba(2,6,4,.92) 70%) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.cabinet-modal.heroes-modal--v2 {
  position: relative;
  width: min(960px, 96vw) !important;
  max-height: calc(100vh - 32px);
  padding: 26px 28px 24px !important;
  background: linear-gradient(180deg, rgba(16,34,26,.99), rgba(8,20,14,.99)) !important;
  border: 1px solid rgba(255,212,111,.45) !important;
  border-radius: 18px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,235,170,.10) !important;
  color: #f0e6cf !important;
  font-family: Georgia, 'Times New Roman', serif;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.cabinet-modal.heroes-modal--v2 .heroes-vignette {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(140% 100% at 50% 0%, rgba(255,212,111,.10) 0%, transparent 45%),
    radial-gradient(120% 90% at 50% 100%, rgba(2,6,3,.7) 50%, transparent 100%);
  mix-blend-mode: screen;
}
.cabinet-modal.heroes-modal--v2 > * { position: relative; z-index: 1; }
.cabinet-modal.heroes-modal--v2 .heroes-close-btn {
  position: absolute !important; top: 14px !important; right: 14px !important;
  width: 44px !important; height: 44px !important;
  padding: 0; border: 0; background: none; cursor: pointer;
  z-index: 5;
  transition: transform .14s ease;
}
.cabinet-modal.heroes-modal--v2 .heroes-close-btn:hover { transform: scale(1.08); }
.cabinet-modal.heroes-modal--v2 .heroes-head {
  text-align: center;
  padding: 4px 56px 14px;
  border-bottom: 1px solid rgba(255,212,111,.18);
  margin-bottom: 16px;
}
.cabinet-modal.heroes-modal--v2 .heroes-head h2 {
  margin: 0;
  font-family: 'Alegreya SC', Georgia, serif !important;
  font-size: 28px; letter-spacing: .04em;
  color: #ffd46f !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.45) !important;
}
.cabinet-modal.heroes-modal--v2 .heroes-head span {
  display: block; margin-top: 4px;
  color: #b9913f !important; font-size: 11px; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
}

/* ── Ростер: сетка карточек ── */
.cabinet-modal.heroes-modal--v2 .heroes-roster {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  overflow-y: auto;
  scrollbar-width: thin;
  padding: 2px 4px 4px;
  max-height: 70vh;
  max-height: 70svh;
}
.cabinet-modal.heroes-modal--v2 .heroes-card {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  padding: 16px 14px 16px;
  background: linear-gradient(180deg, rgba(28,52,40,.96), rgba(10,24,16,.98));
  border: 1px solid rgba(255,212,111,.40);
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,235,170,.08);
  cursor: pointer;
  color: #f0e6cf;
  font: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.cabinet-modal.heroes-modal--v2 .heroes-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255,212,111,.7);
  box-shadow: 0 14px 32px rgba(0,0,0,.55), 0 0 0 1px rgba(255,212,111,.18), inset 0 1px 0 rgba(255,235,170,.18);
}
.cabinet-modal.heroes-modal--v2 .heroes-card.is-locked {
  opacity: .72;
  filter: grayscale(.35);
}
.cabinet-modal.heroes-modal--v2 .heroes-card.is-locked:hover {
  transform: translateY(-1px);
  filter: grayscale(.20);
  opacity: .88;
}
.cabinet-modal.heroes-modal--v2 .heroes-card__portrait {
  position: relative;
  width: 112px; height: 112px; border-radius: 50%;
  overflow: hidden;
  display: grid; place-items: center;
  background: radial-gradient(circle at 35% 28%, #2a4a36 0%, #0e1b14 75%);
  border: 2px solid rgba(255,212,111,.55);
  box-shadow: 0 6px 16px rgba(0,0,0,.5), inset 0 -3px 8px rgba(0,0,0,.45), inset 0 2px 6px rgba(255,235,170,.20);
}
.cabinet-modal.heroes-modal--v2 .heroes-card__portrait img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 14%;
}
.cabinet-modal.heroes-modal--v2 .heroes-card__portrait[data-initial]::before {
  content: attr(data-initial);
  position: absolute;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 44px; color: rgba(255,212,111,.55);
  pointer-events: none;
}
.cabinet-modal.heroes-modal--v2 .heroes-card__portrait img { position: relative; z-index: 2; }
.cabinet-modal.heroes-modal--v2 .heroes-card__name {
  margin-top: 10px;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 18px; letter-spacing: .03em; font-weight: 700;
  color: #ffd46f;
  text-shadow: 0 2px 6px rgba(0,0,0,.45);
}
.cabinet-modal.heroes-modal--v2 .heroes-card__archetype {
  margin-top: 2px; color: #d6c89b; font-size: 11px;
  letter-spacing: .14em; text-transform: uppercase;
}
.cabinet-modal.heroes-modal--v2 .heroes-card__rarity {
  margin-top: 6px; letter-spacing: 2px; color: #ffd46f; font-size: 13px;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}
.cabinet-modal.heroes-modal--v2 .heroes-card__rarity .star-dim { color: rgba(255,212,111,.22); }
.cabinet-modal.heroes-modal--v2 .heroes-card__chip {
  margin-top: 10px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 11px;
  background: rgba(4,18,12,.82);
  border: 1px solid rgba(222,178,96,.45);
  border-radius: 999px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #ffd46f;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.cabinet-modal.heroes-modal--v2 .heroes-card.is-inteam .heroes-card__chip {
  color: #9be8b6; border-color: rgba(127,224,168,.5);
  background: rgba(20,46,32,.85);
}
.cabinet-modal.heroes-modal--v2 .heroes-card.is-locked .heroes-card__chip {
  color: #ded2a9; border-color: rgba(214,200,155,.35);
}
.cabinet-modal.heroes-modal--v2 .heroes-card__unlock {
  margin-top: 8px; font-size: 11.5px; color: #c4b58a;
  font-style: italic; line-height: 1.35;
}

/* ── Деталь героя ── */
.cabinet-modal.heroes-modal--v2 .heroes-detail {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 22px;
  align-items: start;
  padding: 2px 4px 4px;
  overflow-y: auto;
  max-height: 72vh;
  max-height: 72svh;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__portrait {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(28,52,40,.96), rgba(10,24,16,.98));
  border: 1px solid rgba(255,212,111,.45);
  box-shadow: 0 14px 32px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,235,170,.10);
  aspect-ratio: 3 / 4;
  align-self: start;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__portrait img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 12%;
  display: block;
  position: relative; z-index: 2;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__portrait[data-initial]::before {
  content: attr(data-initial);
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 96px; color: rgba(255,212,111,.45);
  pointer-events: none;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__body {
  min-width: 0;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__name {
  margin: 0;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 28px; color: #ffd46f; letter-spacing: .03em; font-weight: 700;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__archetype {
  margin-top: 2px; color: #d6c89b; font-size: 12px;
  letter-spacing: .14em; text-transform: uppercase;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__rarity {
  margin-top: 8px; letter-spacing: 2px; color: #ffd46f; font-size: 16px;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__rarity .star-dim { color: rgba(255,212,111,.22); }
.cabinet-modal.heroes-modal--v2 .heroes-detail__bio {
  margin: 12px 0 0;
  padding: 10px 12px;
  background: rgba(4,18,12,.55);
  border: 1px solid rgba(222,178,96,.22);
  border-radius: 10px;
  font-style: italic; color: #ded2a9; font-size: 14px; line-height: 1.45;
}
.cabinet-modal.heroes-modal--v2 .heroes-detail__section { margin-top: 16px; }
.cabinet-modal.heroes-modal--v2 .heroes-detail__section h3 {
  margin: 0 0 8px;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 13px; letter-spacing: .16em; text-transform: uppercase;
  color: #ffd46f;
}
.cabinet-modal.heroes-modal--v2 .heroes-stats {
  display: grid; grid-template-columns: 1fr; gap: 8px;
}
.cabinet-modal.heroes-modal--v2 .heroes-stat {
  display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 12px;
  font-size: 13px;
}
.cabinet-modal.heroes-modal--v2 .heroes-stat__label {
  color: #d6c89b;
  letter-spacing: .04em;
}
.cabinet-modal.heroes-modal--v2 .heroes-stat__bar {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px;
}
.cabinet-modal.heroes-modal--v2 .heroes-stat__cell {
  height: 10px; border-radius: 3px;
  background: rgba(255,212,111,.10);
  border: 1px solid rgba(255,212,111,.22);
}
.cabinet-modal.heroes-modal--v2 .heroes-stat__cell.is-on {
  background: linear-gradient(180deg, #ffd877, #b9913f);
  border-color: #ffe39a;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), inset 0 -2px 4px rgba(0,0,0,.3);
}
.cabinet-modal.heroes-modal--v2 .heroes-stat__value {
  color: #ffd46f; font-weight: 700; min-width: 28px; text-align: right;
  font-size: 12px;
}

.cabinet-modal.heroes-modal--v2 .heroes-ability {
  display: grid; grid-template-columns: 48px 1fr; gap: 14px;
  padding: 14px;
  background: linear-gradient(180deg, rgba(34,56,42,.85), rgba(12,28,20,.95));
  border: 1px solid rgba(255,212,111,.45);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,235,170,.10);
  align-items: center;
}
.cabinet-modal.heroes-modal--v2 .heroes-ability__seal {
  width: 48px; height: 48px; border-radius: 50%;
  background: radial-gradient(circle at 38% 32%, #ffe7a8, #c8962f 60%, #6e4f15 100%);
  border: 2px solid rgba(255,238,180,.9);
  box-shadow: 0 3px 10px rgba(0,0,0,.55), inset 0 -3px 8px rgba(80,50,10,.6), inset 0 3px 6px rgba(255,255,255,.4);
  display: grid; place-items: center;
  color: #2a1808;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 22px; font-weight: 700;
}
.cabinet-modal.heroes-modal--v2 .heroes-ability__name {
  font-family: 'Alegreya SC', Georgia, serif;
  color: #ffd46f; font-size: 16px; font-weight: 700;
}
.cabinet-modal.heroes-modal--v2 .heroes-ability__effect {
  margin-top: 2px; color: #ded2a9; font-size: 13px; line-height: 1.4;
}

.cabinet-modal.heroes-modal--v2 .heroes-status {
  margin-top: 16px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(4,18,12,.55);
  border: 1px solid rgba(222,178,96,.32);
}
.cabinet-modal.heroes-modal--v2 .heroes-status.is-inteam {
  border-color: rgba(127,224,168,.45);
  background: rgba(20,46,32,.55);
}
.cabinet-modal.heroes-modal--v2 .heroes-status__title {
  font-family: 'Alegreya SC', Georgia, serif;
  color: #ffd46f; font-size: 13px;
  letter-spacing: .14em; text-transform: uppercase;
}
.cabinet-modal.heroes-modal--v2 .heroes-status.is-inteam .heroes-status__title { color: #9be8b6; }
.cabinet-modal.heroes-modal--v2 .heroes-status__hint {
  margin-top: 4px; color: #ded2a9; font-size: 13px;
}

.cabinet-modal.heroes-modal--v2 .heroes-actions {
  margin-top: 18px;
  display: flex; gap: 10px; flex-wrap: wrap;
}
.cabinet-modal.heroes-modal--v2 .heroes-btn-gold {
  flex: 1 1 200px; min-height: 46px;
  padding: 12px 18px;
  background: linear-gradient(180deg, #ffd877, #d39f3f);
  color: #3a2a0c;
  border: 1px solid #ffe39a;
  border-radius: 10px;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 15px; letter-spacing: .06em; font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(255,200,90,.25), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 8px rgba(0,0,0,.18);
  transition: transform .14s ease, box-shadow .14s ease, filter .14s ease;
}
.cabinet-modal.heroes-modal--v2 .heroes-btn-gold:hover:not([disabled]) {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(255,200,90,.35), inset 0 1px 0 rgba(255,255,255,.45), inset 0 -3px 8px rgba(0,0,0,.18);
}
.cabinet-modal.heroes-modal--v2 .heroes-btn-gold[disabled] {
  filter: grayscale(.4);
  opacity: .75;
  cursor: not-allowed;
}
.cabinet-modal.heroes-modal--v2 .heroes-btn-ghost {
  flex: 0 0 auto; min-height: 46px;
  padding: 12px 18px;
  background: rgba(4,18,12,.55);
  color: #ffd46f;
  border: 1px solid rgba(255,212,111,.45);
  border-radius: 10px;
  font-family: 'Alegreya SC', Georgia, serif;
  font-size: 14px; letter-spacing: .06em;
  cursor: pointer;
  transition: background .14s ease, border-color .14s ease;
}
.cabinet-modal.heroes-modal--v2 .heroes-btn-ghost:hover {
  background: rgba(20,46,32,.7);
  border-color: rgba(255,212,111,.7);
}

/* ── Адаптив: узкий экран ── */
@media (max-width: 720px) {
  .cabinet-modal.heroes-modal--v2 {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh;
    max-height: 100vh;
    border-radius: 0 !important;
    padding: 16px 14px 14px !important;
  }
  .cabinet-modal.heroes-modal--v2 .heroes-head { padding: 4px 50px 12px; }
  .cabinet-modal.heroes-modal--v2 .heroes-head h2 { font-size: 22px; }
  .cabinet-modal.heroes-modal--v2 .heroes-roster {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    max-height: calc(100vh - 130px);
  }
  .cabinet-modal.heroes-modal--v2 .heroes-card { padding: 12px 10px; }
  .cabinet-modal.heroes-modal--v2 .heroes-card__portrait { width: 90px; height: 90px; }
  .cabinet-modal.heroes-modal--v2 .heroes-detail {
    grid-template-columns: 1fr;
    gap: 14px;
    max-height: calc(100vh - 130px);
  }
  .cabinet-modal.heroes-modal--v2 .heroes-detail__portrait {
    max-width: 60vw;
    margin: 0 auto;
    aspect-ratio: 1 / 1;
  }
  .cabinet-modal.heroes-modal--v2 .heroes-stat {
    grid-template-columns: 90px 1fr auto;
    gap: 8px; font-size: 12px;
  }
}
.museum-ui-final .room-card-top small { font-size: 12.5px !important; }
.museum-ui-final .room-card-top em { font-size: 12.5px !important; }
.museum-ui-final .room-card .cost-ico { width: 38px !important; height: 38px !important; object-fit: contain !important; }
.museum-ui-final .room-card-meta .cost-chip { display: inline-flex !important; align-items: center !important; gap: 7px !important; }
.museum-ui-final .room-card-meta .cost-chip { min-height: 42px !important; }
.museum-ui-final .room-card-meta .cost-chip b { font-size: 15px !important; }
/* кнопки одинаковой высоты; недоступная — серая, не кликается */
.museum-ui-final .room-card-actions .button { min-height: 48px !important; font-size: 16.5px !important; }
.museum-ui-final .room-card-actions .button:disabled,
.museum-ui-final .room-card-actions .button[disabled] {
  filter: grayscale(.9) brightness(.62) !important; opacity: 1 !important; cursor: not-allowed !important;
}
/* выбранная комната — мягче, не кричит зелёным */
.museum-asset-kit .room-hotspot.is-selected .room-mark,
.museum-ui-final .room-hotspot.is-selected .room-marker {
  filter: saturate(.7) brightness(1.03) drop-shadow(0 0 7px rgba(255,212,111,.28)) !important;
}

/* === Кнопки карточки: сгенерённые «Войти»/«Улучшить» (текст вшит), фикс-аспект === */
.museum-ui-final .room-card-actions { display: flex !important; gap: 12px !important; justify-content: center !important; grid-template-columns: none !important; }
.museum-ui-final .room-card-actions .button {
  flex: 0 0 auto !important; width: 124px !important; height: 50px !important; min-height: 50px !important;
  background: none !important; border: none !important; box-shadow: none !important; border-radius: 0 !important;
  font-size: 0 !important; color: transparent !important; padding: 0 !important;
  background-size: 100% 100% !important; background-repeat: no-repeat !important; background-position: center !important;
  border-image: none !important;
  transition: filter .12s ease, transform .12s ease !important;
}
.museum-ui-final .room-card-actions .room-enter-button { background-image: url('/assets/ui_set/round_icons/btn_enter.webp') !important; }
.museum-ui-final .room-card-actions .button-gold { background-image: url('/assets/ui_set/round_icons/btn_upgrade.webp') !important; }
.museum-ui-final .room-card-actions .button:disabled,
.museum-ui-final .room-card-actions .button[disabled] { opacity: .4 !important; filter: none !important; cursor: not-allowed !important; }
.museum-ui-final .room-card-actions .button:hover:not(:disabled) { filter: brightness(1.08) !important; transform: translateY(-1px) !important; }
/* Улучшить — ВСЕГДА круглая кнопка (та же картинка), неактивная просто полупрозрачная */
.museum-ui-final .room-card-actions .button-gold {
  background: url('/assets/ui_set/round_icons/btn_upgrade.webp') center / 100% 100% no-repeat !important;
  border: none !important; border-image: none !important;
}
.museum-ui-final .room-card-actions .room-enter-button {
  background: url('/assets/ui_set/round_icons/btn_enter.webp') center / 100% 100% no-repeat !important;
  border: none !important; border-image: none !important;
}

/* === Карточка комнаты: фон менее прозрачный (видно лучше) + чуть крупнее === */
.museum-ui-final .room-card {
  width: min(470px, 33vw) !important;
  background-color: rgba(10, 20, 14, 0.985) !important;
}

/* === Хранитель: отступы пергамента в % (текст не заезжает на рамку на любом мониторе) + фикс-шрифт === */
.museum-ui-final .keeper-scroll { padding: 9% 11% 8% 11% !important; }
.museum-ui-final .keeper-speech { font-size: 15px !important; line-height: 1.5 !important; }
.museum-ui-final .keeper-tasks-title { font-size: 14px !important; }
.museum-ui-final .task-card.task-row,
.museum-ui-final .task-card.task-row strong { font-size: 14px !important; }

/* === Дела музея: фикс обрезки 2-строчных задач («…до ур. 2» резалось по высоте) === */
/* единый размер на всех экранах + чистые 2 строки без клипа, карточка растёт под текст */
.museum-ui-final .task-card.task-row {
  min-height: 50px !important;
  align-items: center !important;
  padding-top: 7px !important;
  padding-bottom: 7px !important;
  height: auto !important;
}
.museum-ui-final .task-card .task-copy {
  justify-content: center !important;
  gap: 5px !important;
}
.museum-ui-final .task-card .task-copy strong,
.museum-ui-final .task-card.task-row strong {
  font-size: 13px !important;
  line-height: 1.22 !important;
  max-height: none !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* === Пролог «Первый день директора»: полноэкранный оверлей-секвенсор === */
.prologue-overlay {
  position: fixed; inset: 0; z-index: 400;
  display: grid; place-items: center; padding: 24px;
  background:
    radial-gradient(circle at 50% 16%, rgba(255,211,116,.10), transparent 40%),
    linear-gradient(160deg, rgba(4,16,12,.96), rgba(2,9,7,.985));
  backdrop-filter: blur(3px);
}
.prologue-stage {
  position: relative;
  width: min(940px, 96vw);
  max-height: 92vh;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.prologue-art {
  width: 100%; max-height: 50vh; object-fit: contain;
  border-radius: 16px;
  filter: drop-shadow(0 26px 60px rgba(0,0,0,.6));
}
.prologue-art.is-portrait { max-height: 42vh; }
.prologue-panel {
  width: 100%;
  border: 1px solid rgba(222,178,96,.5);
  border-radius: 16px;
  padding: 18px 22px;
  background: linear-gradient(180deg, rgba(18,40,30,.96), rgba(8,22,16,.97));
  box-shadow: 0 18px 50px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05);
}
.prologue-keeper {
  margin: 0;
  color: #f6ead1; font-family: var(--font-body, 'Alegreya', Georgia, serif);
  font-size: 17px; line-height: 1.5;
}
.prologue-knowledge {
  margin-top: 12px; padding: 12px 14px;
  border: 1px solid rgba(222,178,96,.4); border-radius: 12px;
  background: linear-gradient(180deg, rgba(244,232,206,.94), rgba(232,216,180,.92));
}
.prologue-knowledge h4 {
  margin: 0 0 5px; color: #7a5c28;
  font-family: var(--font-title, 'Alegreya SC', Georgia, serif);
  font-size: 13px; letter-spacing: .04em; text-transform: uppercase;
}
.prologue-knowledge p { margin: 0; color: #3a2c12; font-size: 13.5px; line-height: 1.45; }
.prologue-controls {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-top: 16px;
}
.prologue-dots { display: flex; gap: 7px; flex-wrap: wrap; }
.prologue-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(246,234,209,.28); }
.prologue-dot.is-on { background: #ffd46f; box-shadow: 0 0 8px rgba(255,212,111,.6); }
.prologue-next { min-height: 48px; padding: 0 26px; font-size: 16px; white-space: nowrap; }
.prologue-skip {
  position: absolute; top: -2px; right: 0; z-index: 2;
  border: none; background: none; cursor: pointer;
  color: rgba(246,234,209,.72); font: 600 13px/1 system-ui, sans-serif; padding: 6px 8px;
}
.prologue-skip:hover { color: #ffd46f; }
@media (max-width: 760px) {
  .prologue-art { max-height: 38vh; }
  .prologue-keeper { font-size: 15.5px; }
  .prologue-controls { flex-direction: column; align-items: stretch; }
  .prologue-next { width: 100%; }
}
/* Пролог: выборы игрока */
.prologue-question { margin: 4px 0 10px; color: #ffe9b0; font-size: 15px; font-weight: 700; }
.prologue-choices { display: flex; flex-direction: column; gap: 8px; }
.prologue-opt {
  width: 100%; text-align: left; padding: 11px 16px; min-height: 46px;
  border: 1px solid rgba(222,178,96,.4); border-radius: 10px;
  background: linear-gradient(180deg, rgba(40,72,56,.72), rgba(18,40,30,.82));
  color: #f6ead1; font-family: var(--font-body,'Alegreya',Georgia,serif); font-size: 14.5px;
  cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .1s ease;
}
.prologue-opt:hover { border-color: rgba(255,212,111,.85); background: linear-gradient(180deg, rgba(50,86,66,.85), rgba(22,46,34,.92)); }
.prologue-opt:active { transform: translateY(1px); }
.prologue-keeper.is-ok { color: #bfe6b0; }
.prologue-keeper.is-wrong { color: #f0cf9a; }

/* === Мини-игра: полноэкранный оверлей (iframe со своей кнопкой «Назад») === */
.minigame-overlay { position: fixed; inset: 0; z-index: 1500; background: #02070c; }
.minigame-iframe { width: 100%; height: 100%; border: 0; display: block; background: #02070c; }

/* === Интерактивная зона в комнате: кнопка запуска мини-игры === */
.museum-ui-final .room-zone-btn {
  display: inline-block; margin-top: 12px; min-height: 50px; padding: 0 26px;
  border: 1px solid #ffe39a; border-radius: 12px; cursor: pointer;
  background: linear-gradient(180deg, #ffd877, #d39f3f); color: #3a2a0c;
  font-family: var(--font-title, 'Alegreya SC', Georgia, serif); font-weight: 800; font-size: 15px; letter-spacing: .02em;
  box-shadow: 0 6px 16px rgba(0,0,0,.42);
}
.museum-ui-final .room-zone-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
.museum-ui-final .room-zone-btn:active { transform: translateY(1px); }
.museum-ui-final .room-zone-btn--hero {
  background: linear-gradient(160deg, rgba(16,44,30,.95), rgba(8,24,16,.95));
  color: #ffd46f; border-color: rgba(255,212,111,.55);
  box-shadow: 0 4px 14px rgba(0,0,0,.55), 0 0 0 0 rgba(255,212,111,0);
  animation: hero-btn-pulse 3s ease-in-out infinite;
}
@keyframes hero-btn-pulse {
  0%,100% { box-shadow: 0 4px 14px rgba(0,0,0,.55), 0 0 0 0 rgba(255,212,111,0); }
  50%      { box-shadow: 0 4px 14px rgba(0,0,0,.55), 0 0 8px 2px rgba(255,212,111,.20); }
}
.museum-ui-final .room-zone-btn--hero:hover { filter: brightness(1.1); }
.museum-ui-final .room-zone-btn--hero.is-busy { opacity: .55; animation: none; cursor: default; }
.museum-ui-final .room-zone-btn--hero:disabled { opacity: .55; animation: none; cursor: default; }
.museum-ui-final .room-zone-btn--hero.is-ready {
  background: linear-gradient(160deg, rgba(30,80,40,.95), rgba(10,40,18,.95));
  border-color: rgba(120,220,130,.65);
  color: #b8ffb0;
  animation: none;
  box-shadow: 0 0 12px rgba(100,200,80,.25);
}

/* === Хранитель: свиток-пергамент как 9-slice (фикс «текст криво влезает в текстуру свитка») ===
   Было: фон-пергамент тянулся background-size:100% 100% по всей высоте -> меандр-рамка
   искажалась, а текст с %-падингом уезжал к верхнему краю. Стало: рамка-меандр и самоцветы
   держат форму при любой высоте свитка (углы не масштабируются, края тайлятся round),
   центр-бумага заполняется (fill), текст ложится ровно внутри с равными полями. */
.museum-ui-final .keeper-scroll {
  background: none !important;
  border: 42px solid transparent !important;
  border-image: url('/assets/ui_set/ui9_parchment.webp') 150 fill / 42px / 0 round !important;
  padding: 8px 14px 14px !important;
}

/* === Хранитель: единый «средний» размер свитка и портрета на любом мониторе ===
   Было: свиток flex:1 1 auto заполнял всю колонку -> на большом мониторе огромный,
   на маленьком крошечный. Стало: высоты в узком vh-коридоре (плавно, но без скачков);
   свиток не растягивается на всю высоту, лишнее место уходит к низу панели.
   Селектор .keeper-panel даёт +1 специфичность, чтобы перебить vw-правила выше. */
.museum-ui-final .keeper-panel .keeper-art {
  flex: 0 0 auto !important;
  height: clamp(184px, 22vh, 248px) !important;
  min-height: 0 !important; max-height: none !important;
}
.museum-ui-final .keeper-panel .keeper-scroll {
  flex: 0 0 auto !important;
  height: clamp(272px, 39vh, 396px) !important;
  min-height: 0 !important; max-height: none !important;
}
.museum-ui-final .keeper-panel .keeper-tasks { overflow: auto !important; min-height: 0 !important; }

/* === Карточка комнаты: уровень крупнее и в правом верхнем углу (не одной строкой) === */
.museum-ui-final .room-card { position: relative; }
.museum-ui-final .room-card-top em {
  position: absolute; top: 10px; right: 12px; z-index: 3;
  font-size: 14px; font-weight: 950; color: var(--gold-light, #ffe9b0); font-style: normal;
  background: rgba(0,0,0,.42); border: 1px solid rgba(255,212,111,.45);
  border-radius: 9px; padding: 3px 9px; line-height: 1; white-space: nowrap;
}
.museum-ui-final .room-card-top h2 { padding-right: 66px; }

/* === Донесения экспедиций === */

/* Чип-донесение в панели поручений */
.process-chip.is-dispatch {
  background: linear-gradient(135deg, rgba(180,120,0,.25), rgba(100,60,0,.18));
  border: 1.5px solid rgba(255,200,80,.55);
  animation: dispatch-pulse 2.4s ease-in-out infinite;
}
@keyframes dispatch-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,200,80,.0); }
  50%      { box-shadow: 0 0 10px 3px rgba(255,200,80,.28); }
}
.dispatch-icon { font-size: 20px; line-height: 1; display: block; }
.dispatch-timer { color: #ffd46f; font-weight: 700; font-size: 13px; }

/* Overlay донесения */
.exp-event-overlay {
  background: rgba(6,14,10,.80);
  backdrop-filter: blur(6px);
}
.exp-event-modal {
  max-width: 480px;
  width: calc(100% - 32px);
  padding: 28px 24px 24px;
  background: linear-gradient(160deg, rgba(16,34,26,.98) 0%, rgba(8,20,14,.98) 100%);
  border: 1.5px solid rgba(255,212,111,.35);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
}
.exp-event-eyebrow {
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,212,111,.65);
  font-family: 'Alegreya SC', Georgia, serif;
}
.exp-event-phrase {
  font-size: 22px;
  font-weight: 700;
  font-family: 'Alegreya SC', Georgia, serif;
  color: #ffd46f;
  margin: 0;
  line-height: 1.25;
}
.exp-event-body {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(236,226,210,.88);
  margin: 0;
  font-style: italic;
}
.exp-event-timer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #ffd46f;
  background: rgba(255,212,111,.10);
  border: 1px solid rgba(255,212,111,.30);
  border-radius: 8px;
  padding: 5px 12px;
  align-self: flex-start;
}
.exp-event-timer.is-expired { color: rgba(255,100,80,.85); border-color: rgba(255,100,80,.30); }
.exp-event-hint {
  font-size: 12px;
  color: rgba(236,226,210,.55);
  margin: 0;
  font-style: italic;
}
.exp-event-choices {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.exp-event-choice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 15px;
  border-radius: 10px;
  border: 1.5px solid;
  background: none;
  cursor: pointer;
  text-align: left;
  transition: background .15s, transform .1s;
  color: inherit;
  font-family: inherit;
}
.exp-event-choice:active { transform: scale(.98); }
.exp-event-choice.is-safe {
  border-color: rgba(180,200,180,.30);
  background: rgba(255,255,255,.04);
  color: rgba(236,226,210,.70);
}
.exp-event-choice.is-safe:hover { background: rgba(255,255,255,.08); }
.exp-event-choice.is-bold {
  border-color: rgba(255,212,111,.45);
  background: rgba(255,212,111,.06);
  color: rgba(255,230,160,.95);
}
.exp-event-choice.is-bold:hover { background: rgba(255,212,111,.12); }
.exp-event-choice:disabled {
  opacity: .4;
  cursor: not-allowed;
}
.exp-choice-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.exp-choice-label { font-size: 14px; font-weight: 600; flex: 1; line-height: 1.3; }
.exp-choice-note {
  display: block;
  font-size: 11px;
  font-weight: 400;
  opacity: .6;
  margin-top: 3px;
}
.exp-event-close-btn { color: rgba(255,212,111,.6); }

@media (max-width: 420px) {
  .exp-event-modal { padding: 20px 16px 18px; }
  .exp-event-phrase { font-size: 18px; }
  .exp-event-body { font-size: 14px; }
}

/* === Пролог: бейдж достоверности (Легенда/Факт/Вероятно/Вымысел) === */
.prologue-badge{ display:inline-block; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; padding:3px 10px; border-radius:999px; margin:0 0 9px; border:1px solid; }
.prologue-badge.badge-legend{ color:#e7c9ff; border-color:rgba(200,150,255,.55); background:rgba(120,70,180,.20); }
.prologue-badge.badge-fact{ color:#bfe9c4; border-color:rgba(120,220,150,.55); background:rgba(40,120,70,.20); }
.prologue-badge.badge-likely{ color:#ffe2a8; border-color:rgba(255,200,110,.55); background:rgba(180,130,40,.20); }
.prologue-badge.badge-fiction{ color:#ffc0c8; border-color:rgba(255,140,160,.55); background:rgba(160,50,70,.20); }

/* === Планировщик похода: карта Крыма === */
.exp-planner-overlay{
  position:fixed; inset:0; z-index:80;
  display:flex; align-items:center; justify-content:center;
  padding:14px;
  background:radial-gradient(circle at 50% 18%, rgba(20,60,72,.55), rgba(2,8,15,.92) 70%);
  backdrop-filter:blur(3px);
  animation:expPlannerFade .22s ease;
}
@keyframes expPlannerFade{ from{opacity:0} to{opacity:1} }
.exp-planner{
  position:relative;
  width:min(1080px, 100%); max-height:96svh;
  display:flex; flex-direction:column; gap:10px;
  padding:16px 18px 18px;
  border:1px solid rgba(255,212,111,.30);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(10,28,38,.98), rgba(4,14,22,.98));
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05);
  overflow:hidden;
}
.exp-planner-close{
  position:absolute; top:12px; right:12px; z-index:3;
  width:34px; height:34px; border-radius:10px;
  border:1px solid rgba(255,212,111,.30);
  background:rgba(8,20,30,.85); color:#ffd46f;
  font-size:16px; line-height:1; cursor:pointer;
}
.exp-planner-close:hover{ background:rgba(255,212,111,.16); }
.exp-planner-head h2{ margin:0; color:var(--gold,#ffd46f); font-family:var(--font-title); font-size:24px; letter-spacing:.01em; }
.exp-planner-head p{ margin:2px 0 0; color:rgba(220,235,245,.66); font-size:13px; }

.exp-planner-heroes{
  display:flex; gap:8px; overflow-x:auto; padding:4px 2px 6px;
  scrollbar-width:thin;
}
.exp-hero-pick{
  flex:0 0 auto; width:96px;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:8px 6px; cursor:pointer;
  border:1px solid rgba(255,255,255,.10); border-radius:14px;
  background:linear-gradient(180deg, rgba(14,34,46,.9), rgba(6,18,28,.9));
  transition:border-color .15s, transform .15s, box-shadow .15s;
}
.exp-hero-pick:hover{ transform:translateY(-2px); }
.exp-hero-pick.is-sel{ border-color:rgba(255,212,111,.8); box-shadow:0 0 0 1px rgba(255,212,111,.5), 0 10px 24px rgba(255,180,60,.18); }
.exp-hero-pick.is-busy{ opacity:.42; cursor:not-allowed; filter:grayscale(.6); }
.exp-hero-pick.is-locked{ opacity:.55; cursor:not-allowed; }
.exp-hero-pick.is-locked .exp-hero-role{ color:#d9c08f; }
.exp-hero-lock{ position:absolute; inset:0; display:grid; place-items:center; font-size:20px; background:rgba(6,16,24,.52); }
.exp-hero-portrait{
  position:relative; width:62px; height:62px; border-radius:50%;
  overflow:hidden; display:grid; place-items:center;
  border:2px solid rgba(255,212,111,.4);
  background:radial-gradient(circle at 50% 35%, rgba(60,110,130,.6), rgba(10,24,34,.9));
}
.exp-hero-portrait::after{ content:attr(data-initial); color:#ffe7b0; font-size:24px; font-family:var(--font-title); }
.exp-hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.exp-hero-name{ font-size:12px; color:#eaf3f8; text-align:center; line-height:1.05; }
.exp-hero-role{ font-size:10.5px; color:rgba(200,220,232,.6); text-align:center; }
.exp-hero-pick.is-busy .exp-hero-role{ color:#ffb0a0; }
.exp-planner-noheroes{ padding:18px; color:rgba(220,235,245,.7); font-size:13px; }

.exp-planner-body{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr); gap:12px;
  min-height:0; flex:1;
}
.exp-planner-map{
  position:relative; border-radius:16px; overflow:hidden;
  border:1px solid rgba(120,200,210,.22);
  background:#0a1a24;
  width:100%; aspect-ratio:2752 / 1536; align-self:start;
}
.exp-map-art{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.exp-loc-pin{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:0; cursor:pointer; background:none; border:none;
}
.exp-loc-pin .exp-pin-dot{
  width:18px; height:18px; border-radius:50%;
  display:grid; place-items:center; font-size:10px;
  border:2px solid #fff;
  box-shadow:0 0 0 3px rgba(0,0,0,.3), 0 4px 10px rgba(0,0,0,.4);
  transition:transform .15s;
}
.exp-loc-pin.risk-low .exp-pin-dot{ background:#5ec97a; }
.exp-loc-pin.risk-mid .exp-pin-dot{ background:#ffc861; }
.exp-loc-pin.risk-high .exp-pin-dot{ background:#ff7a6b; }
.exp-loc-pin.is-locked .exp-pin-dot{ background:#6a7782; }
.exp-loc-pin .exp-pin-label{
  font-size:11px; color:#eaf3f8; white-space:nowrap;
  padding:1px 7px; border-radius:8px;
  background:rgba(6,18,28,.82); border:1px solid rgba(255,255,255,.12);
}
.exp-loc-pin:hover .exp-pin-dot{ transform:scale(1.18); }
.exp-loc-pin.is-sel .exp-pin-dot{ transform:scale(1.32); box-shadow:0 0 0 3px rgba(255,212,111,.55), 0 4px 14px rgba(255,180,60,.5); }
.exp-loc-pin.is-sel .exp-pin-label{ border-color:rgba(255,212,111,.7); color:#ffe7b0; }

.exp-planner-detail{
  display:flex; flex-direction:column; gap:9px;
  padding:12px 13px; overflow-y:auto;
  border:1px solid rgba(255,212,111,.18); border-radius:16px;
  background:linear-gradient(180deg, rgba(12,30,40,.94), rgba(5,16,24,.94));
}
.exp-detail-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.exp-detail-head h3{ margin:0; color:#ffe7b0; font-family:var(--font-title); font-size:19px; }
.exp-risk-badge{ font-size:11px; padding:2px 9px; border-radius:9px; border:1px solid; }
.exp-risk-badge.risk-low{ color:#bfe9c4; border-color:rgba(120,220,150,.5); background:rgba(40,120,70,.2); }
.exp-risk-badge.risk-mid{ color:#ffe2a8; border-color:rgba(255,200,110,.5); background:rgba(180,130,40,.2); }
.exp-risk-badge.risk-high{ color:#ffc0b0; border-color:rgba(255,140,120,.5); background:rgba(160,60,50,.2); }
.exp-detail-blurb{ margin:0; color:rgba(220,235,245,.74); font-size:12.5px; line-height:1.4; }
.exp-detail-section{ display:flex; flex-direction:column; gap:5px; }
.exp-detail-label{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:rgba(180,205,218,.6); }
.exp-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.exp-chip{
  padding:4px 11px; cursor:pointer; font-size:12px;
  border:1px solid rgba(255,255,255,.14); border-radius:999px;
  background:rgba(10,26,36,.8); color:#dceaf2; transition:border-color .15s, background .15s;
}
.exp-chip:hover{ border-color:rgba(255,212,111,.45); }
.exp-chip.is-sel{ border-color:rgba(255,212,111,.85); background:rgba(255,212,111,.16); color:#ffe7b0; }
.exp-dur-note{ color:rgba(190,212,224,.6); font-size:11px; }
.exp-detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.exp-stat{
  display:flex; flex-direction:column; gap:1px;
  padding:7px 9px; border-radius:11px;
  border:1px solid rgba(255,255,255,.08); background:rgba(8,22,32,.7);
}
.exp-stat span{ font-size:10.5px; color:rgba(180,205,218,.6); text-transform:uppercase; letter-spacing:.05em; }
.exp-stat b{ font-size:14px; color:#eef6fb; }
.exp-stat .exp-stars{ color:#ffd46f; letter-spacing:1px; }
.exp-stat b.risk-low{ color:#7fe0a0; } .exp-stat b.risk-mid{ color:#ffce7a; } .exp-stat b.risk-high{ color:#ff8f80; }
.exp-cost-row{ display:flex; flex-wrap:wrap; gap:6px; }
.exp-locked-note{
  padding:10px 12px; border-radius:11px; font-size:12.5px;
  color:#cdd9e2; border:1px dashed rgba(160,180,195,.4); background:rgba(20,34,44,.6);
}
.exp-planner-hint{ font-size:12px; padding:6px 2px; }
.exp-planner-hint.is-ok{ color:#bfe9c4; }
.exp-planner-hint.is-warn{ color:#ffd0a0; }
.exp-planner-send{
  margin-top:auto; padding:12px; cursor:pointer;
  font-family:var(--font-title); font-size:16px; letter-spacing:.02em;
  border:none; border-radius:13px; color:#1a1206;
  background:linear-gradient(180deg, #ffe08a, #f4b23c);
  box-shadow:0 10px 26px rgba(244,178,60,.34);
  transition:transform .12s, box-shadow .12s, filter .12s;
}
.exp-planner-send:hover:not(:disabled){ transform:translateY(-1px); box-shadow:0 14px 30px rgba(244,178,60,.45); }
.exp-planner-send:disabled{ filter:grayscale(.7); opacity:.5; cursor:not-allowed; box-shadow:none; }
@media (max-width:760px){
  .exp-planner-body{ grid-template-columns:1fr; }
}

/* === Хотспоты на арте комнаты (золотые капсулы-кнопки) === */
.room-hotspot-layer{ position:absolute; inset:0; z-index:4; pointer-events:none; }
.room-hot{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; align-items:center; gap:9px;
  padding:6px 15px 6px 6px;
  border-radius:999px; cursor:pointer; pointer-events:auto;
  border:1px solid rgba(255,212,111,.55);
  background:linear-gradient(180deg, rgba(16,38,50,.92), rgba(6,18,28,.94));
  box-shadow:0 12px 28px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.07);
  color:#f3e7c8; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.room-hot::before{
  content:''; position:absolute; inset:-4px; border-radius:inherit; z-index:-1;
  background:radial-gradient(circle at 50% 50%, rgba(255,198,88,.28), transparent 70%);
  opacity:0; transition:opacity .2s ease;
}
.room-hot:hover{
  transform:translate(-50%,-50%) translateY(-2px);
  border-color:rgba(255,222,140,.95);
  box-shadow:0 16px 34px rgba(255,180,60,.32), inset 0 1px 0 rgba(255,255,255,.1);
}
.room-hot:hover::before{ opacity:1; }
.room-hot:active{ transform:translate(-50%,-50%) translateY(0); }
.room-hot-dot{
  position:relative; flex:0 0 auto;
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; font-size:20px;
  border:2px solid rgba(255,212,111,.9);
  background:radial-gradient(circle at 50% 32%, rgba(44,84,100,.96), rgba(8,20,30,.98));
  box-shadow:inset 0 1px 2px rgba(255,255,255,.18), 0 3px 8px rgba(0,0,0,.45);
  animation:roomHotGlow 2.8s ease-in-out infinite;
}
@keyframes roomHotGlow{
  0%,100%{ box-shadow:inset 0 1px 2px rgba(255,255,255,.18), 0 3px 8px rgba(0,0,0,.45); }
  50%{ box-shadow:inset 0 1px 2px rgba(255,255,255,.22), 0 0 16px rgba(255,200,90,.55), 0 3px 8px rgba(0,0,0,.45); }
}
.room-hot-dot.has-img{ width:48px; height:48px; background:none; border:none; box-shadow:none; animation:none; }
.room-hot-img{ width:100%; height:100%; display:block; background-size:contain; background-position:center; background-repeat:no-repeat; filter:drop-shadow(0 0 7px rgba(255,200,90,.4)) drop-shadow(0 3px 6px rgba(0,0,0,.55)); transition:transform .15s ease; }
.room-hot:hover .room-hot-img{ transform:scale(1.1); }
.room-hot-label{
  font-family:var(--font-title); font-size:13px; font-weight:600; letter-spacing:.01em;
  color:#ffe7b0; white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.5);
}
.room-hot-badge{
  position:absolute; top:-8px; left:30px;
  min-width:19px; height:19px; padding:0 5px; border-radius:10px;
  font-size:10.5px; line-height:19px; text-align:center; font-weight:700;
  color:#1a1206; background:#ffd46f;
  border:1px solid rgba(0,0,0,.3); box-shadow:0 3px 8px rgba(0,0,0,.5);
}
.room-hot-badge.is-ready{ background:#5ec97a; color:#06210f; }
.room-hot-badge.is-busy{ background:#9fd0e0; color:#0a1c26; }
.room-hot-badge.is-cd{ background:#9aa6b0; color:#10161c; }
.room-hot-badge.is-have{ background:#ffd46f; color:#1a1206; }
.room-hot-badge.is-go{ background:#ffe08a; color:#1a1206; }
.room-hot-badge.is-soon{ background:#caa98f; color:#2a1a10; font-size:9px; padding:0 6px; }
.room-hot-badge.is-up{ background:#7fe0a0; color:#06210f; }
.rq-exhibit{ padding:6px 13px; border:none; border-radius:9px; cursor:pointer; font-weight:700; color:#1a1206; background:linear-gradient(180deg,#ffe08a,#e0a93a); white-space:nowrap; }
.rq-exhibit:disabled{ filter:grayscale(.6); opacity:.5; cursor:not-allowed; }

/* === Панель зоны: очередь / заказы === */
.room-zone-overlay{ z-index:86; }
.room-zone-panel{ max-width:560px; width:min(560px,100%); }
.rz-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:0 0 12px; }
.rz-head h2{ margin:0; color:#ffe7b0; font-family:var(--font-title); font-size:21px; }
.rz-head span{ font-size:12px; color:rgba(200,220,232,.65); }
.rq-slots{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.rq-slot{
  flex:1 1 150px; min-height:66px; padding:10px 12px; border-radius:12px;
  border:1px solid rgba(255,255,255,.1); background:rgba(10,26,36,.82);
  display:flex; flex-direction:column; justify-content:center; gap:6px;
}
.rq-slot.is-empty{ align-items:center; color:rgba(180,200,212,.5); font-size:12px; border-style:dashed; }
.rq-slot.is-ready{ border-color:rgba(120,220,150,.6); background:rgba(28,76,48,.4); }
.rq-slot-title{ font-size:13px; color:#eef6fb; }
.rq-timer{ font-size:14px; color:#9fd0e0; font-variant-numeric:tabular-nums; }
.rq-claim{ padding:6px 10px; border:none; border-radius:9px; cursor:pointer; font-weight:700; color:#06210f; background:linear-gradient(180deg,#7fe0a0,#3fae6a); }
.rq-section-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.rq-section-head h3{ margin:0; font-size:14px; color:#dceaf2; }
.rq-hero{ font-size:12px; color:rgba(200,220,232,.7); }
.rq-hero select{ background:rgba(8,20,30,.92); color:#eaf3f8; border:1px solid rgba(255,212,111,.32); border-radius:7px; padding:3px 6px; font-size:12px; }
.rq-finds{ display:flex; flex-direction:column; gap:7px; max-height:240px; overflow-y:auto; }
.rq-find{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 11px; border-radius:10px; border:1px solid rgba(255,255,255,.08); background:rgba(8,22,32,.72); }
.rq-find-title{ font-size:13px; color:#eef6fb; display:flex; flex-direction:column; gap:1px; }
.rq-find-title small{ color:rgba(190,212,224,.6); font-size:11px; }
.rq-start{ padding:6px 13px; border:none; border-radius:9px; cursor:pointer; font-weight:700; color:#1a1206; background:linear-gradient(180deg,#ffe08a,#f4b23c); white-space:nowrap; }
.rq-start:disabled{ filter:grayscale(.6); opacity:.5; cursor:not-allowed; }
.rq-empty,.rz-soon{ color:rgba(210,226,236,.72); font-size:13px; line-height:1.45; }
.rq-restored{ margin-top:12px; padding:9px 12px; border-radius:10px; background:rgba(30,62,76,.5); color:#bfe3ea; font-size:12.5px; }
.rz-soon p{ margin:0 0 8px; }
.rz-soon-dim{ color:rgba(190,210,222,.5); font-size:12px; margin-top:10px; }
.rz-orders-list{ display:flex; flex-direction:column; gap:9px; }
.rz-order{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border-radius:12px; border:1px solid rgba(255,212,111,.2); background:linear-gradient(180deg, rgba(14,32,42,.9), rgba(7,18,28,.9)); }
.rz-order-main{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.rz-order-client{ font-family:var(--font-title); font-size:14px; color:#ffe7b0; }
.rz-order-want{ font-size:13px; color:#dceaf2; }
.rz-order-want b{ color:#fff; }
.rz-order-meta{ font-size:11.5px; color:rgba(200,220,232,.66); }
.rz-order-btn{ flex:0 0 auto; padding:8px 15px; border:none; border-radius:10px; cursor:pointer; font-weight:700; color:#1a1206; background:linear-gradient(180deg,#ffe08a,#f4b23c); box-shadow:0 8px 20px rgba(244,178,60,.28); }
.rz-order-btn:disabled{ filter:grayscale(.65); opacity:.5; cursor:not-allowed; box-shadow:none; }
.sc-collections{ display:flex; flex-direction:column; gap:8px; max-height:280px; overflow-y:auto; }
.sc-coll{ padding:9px 12px; border-radius:11px; border:1px solid rgba(255,255,255,.08); background:rgba(8,22,32,.7); }
.sc-coll.is-done{ border-color:rgba(120,220,150,.55); background:rgba(28,76,48,.32); }
.sc-coll-top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.sc-coll-title{ font-size:13px; color:#eef6fb; }
.sc-coll-count{ font-size:12px; color:#ffd46f; font-variant-numeric:tabular-nums; }
.sc-coll-bar{ height:5px; border-radius:3px; background:rgba(255,255,255,.1); margin-top:7px; overflow:hidden; }
.sc-coll-bar span{ display:block; height:100%; background:linear-gradient(90deg,#ffe08a,#f4b23c); }

/* Дерево исследований */
.rs-tree{ display:flex; flex-direction:column; gap:12px; max-height:330px; overflow-y:auto; }
.rs-tier-h{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#c8b88a; margin:0 0 6px; }
.rs-node{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; margin-bottom:7px; border-radius:11px; border:1px solid rgba(255,255,255,.1); background:rgba(10,26,36,.78); }
.rs-node.is-owned{ border-color:rgba(120,220,150,.55); background:rgba(28,72,46,.34); }
.rs-node.is-locked{ opacity:.55; }
.rs-node.is-cant{ border-color:rgba(255,150,120,.3); }
.rs-node-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.rs-node-body strong{ font-size:13.5px; color:#ffe7b0; }
.rs-node-desc{ font-size:12px; color:#dceaf2; }
.rs-cost{ display:flex; flex-wrap:wrap; gap:6px; margin-top:3px; }
.rs-btn{ flex:0 0 auto; padding:8px 14px; border:none; border-radius:10px; cursor:pointer; font-weight:700; color:#1a1206; background:linear-gradient(180deg,#ffe08a,#f4b23c); white-space:nowrap; }
.rs-btn:disabled{ filter:grayscale(.6); opacity:.55; cursor:not-allowed; }
.rs-node.is-owned .rs-btn{ background:linear-gradient(180deg,#9ff0bf,#4cae74); color:#06210f; }
.rs-status{ font:800 13px/1 Arial,sans-serif; white-space:nowrap; }
.rs-status.is-free{ color:#7fe0a0; }
.rs-status.is-busy{ color:#ffce7a; }

/* Разделитель-завиток под шапкой панелей зон */
.rz-head { position: relative; padding-bottom: 16px; }
.rz-head::after {
  content: ""; position: absolute; left: 50%; bottom: 1px; transform: translateX(-50%);
  width: min(300px, 82%); height: 14px; pointer-events: none; opacity: .92;
  background: url('/assets/museum_v7/ui/ui_divider.png?v=1') center / contain no-repeat;
}

/* === Читаемость: стоимость улучшения крупнее, текст в плашку/речь (2026-06-19) === */
/* Иконки и цифры стоимости постройки/улучшения в панели комнаты — крупнее */
.museum-ui-final .room-screen-panel .cost-ico,
.museum-ui-final .room-up .cost-ico { width: 30px !important; height: 34px !important; }
.museum-ui-final .room-screen-panel .cost-chip b,
.museum-ui-final .room-up .cost-chip b { font-size: 18px !important; }
.museum-ui-final .room-screen-panel .cost-chip,
.museum-ui-final .room-up .cost-chip { min-width: 80px !important; padding: 7px 12px !important; gap: 8px !important; }
.museum-ui-final .room-up-cost, .museum-ui-final .room-up .room-card-meta { gap: 10px !important; flex-wrap: wrap; }

/* Название комнаты — чистая CSS-плашка (как речь хранителя): синий центр + золотая кайма.
   Текст всегда внутри (плашка растёт по контенту), переполнения за рамку нет в принципе. */
.room-screen-plaque {
  background: linear-gradient(180deg, #28415c 0%, #172a3e 100%) !important;
  border: 2px solid #caa24c !important;
  border-radius: 12px !important;
  box-shadow: 0 6px 16px rgba(0,0,0,.5), inset 0 0 0 3px rgba(255,236,184,.22) !important;
  padding: 9px 28px 10px !important;
  max-width: min(62vw, 540px) !important;
}
.room-screen-plaque .rsp-title { font-size: 17px !important; letter-spacing: .03em; color: #ffe9b0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.room-screen-plaque small { color: #b9c8d6 !important; white-space: nowrap; }

/* Речь хранителя в комнате — чистая «пергаментная» плашка (CSS, без текстуры):
   всегда ровная на любом размере, не режется и ромбы не растягиваются. Ornate-уголки — псевдоэлементами. */
.museum-ui-final .room-screen-speech,
.room-screen-speech {
  background: linear-gradient(180deg, #f3e6c6 0%, #e9d8b0 100%) !important;
  border: 2px solid #b9913f !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.45), inset 0 0 0 4px rgba(255,250,232,.55), inset 0 0 0 5px rgba(160,120,60,.35) !important;
  padding: 15px 22px 16px !important;
  font-size: 14.5px !important; line-height: 1.5 !important;
  color: #3a2a14 !important;
  max-width: min(640px, 84vw) !important;
}
.museum-ui-final .room-screen-speech strong,
.room-screen-speech strong { display: block !important; font-size: 12px !important; margin-bottom: 6px !important; color: #7a5b1d !important; letter-spacing: .1em !important; text-transform: uppercase !important; }

/* === ФИКС: «Дела музея» — карточки видны и НЕ вылезают на кнопку ===
   Было: keeper-tasks overflow:auto со СКРЫТЫМ скроллбаром → карточки уезжали под обрез без полосы (виден только заголовок).
   Стало: пергамент клипает (нет вылезания вниз на кнопку); задачи прокручиваются ВНУТРИ с тонким ВИДИМЫМ скроллбаром;
   портрет чуть меньше — больше места под задачи, чтобы чаще влезали без прокрутки. */
.museum-ui-final .keeper-art { height: clamp(120px, 16vh, 185px) !important; min-height: 0 !important; max-height: 185px !important; }
.museum-ui-final .keeper-scroll { overflow: hidden !important; }
.museum-ui-final .keeper-tasks { flex: 1 1 auto !important; min-height: 64px !important; overflow-y: auto !important; }
.museum-ui-final .keeper-tasks { scrollbar-width: thin !important; -ms-overflow-style: auto !important; }
.museum-ui-final .keeper-tasks::-webkit-scrollbar { width: 5px !important; height: 5px !important; display: block !important; }
.museum-ui-final .keeper-tasks::-webkit-scrollbar-thumb { background: rgba(122,92,40,.55) !important; border-radius: 5px !important; }
.museum-ui-final .keeper-tasks::-webkit-scrollbar-track { background: transparent !important; }
.museum-ui-final .keeper-tasks .task-card.task-row { display: flex !important; }

/* ============================================================================
   === ГЛОБАЛЬНЫЙ ФИКС: текст не заходит на кнопки/бейджи/рамки (2026-06-19) ===
   Системная причина: в строках «текст + кнопка» (карточки исследований/дел/команды,
   заголовки панелей) текстовая колонка не сжималась (min-width:auto по умолчанию),
   поэтому длинный текст распирал колонку и наезжал на соседнюю кнопку/бейдж.
   Решение глобальное — для ВСЕХ flex-строк такого вида, без правок под конкретный экран.
   ============================================================================ */
/* Узкий безопасный фикс: текст в карточке исследования не наезжает на кнопку «Изучить».
   Только тело-колонка внутри строки; заголовки и карточки комнат НЕ трогаем. */
.rs-node > .rs-node-body, .rq-find > .rq-find-title { min-width: 0; }
.rs-node-desc, .rs-node-body > strong { overflow-wrap: break-word; }
.rs-node > .rs-btn { flex-shrink: 0; }

/* Шапка панелей зон: заголовок — одна строка (с правым отступом под крестик-закрытие),
   подпись (короткий счётчик ИЛИ длинное предложение) ВСЕГДА переносится на отдельную строку под заголовком.
   Так текст не лезет ни на крестик, ни на заголовок — и для «выставлено: N», и для длинных описаний. */
.room-zone-panel .rz-head, .cabinet-modal .rz-head {
  flex-wrap: wrap !important; align-items: baseline !important; row-gap: 3px !important; padding-right: 64px !important;
}
.room-zone-panel .rz-head > h2, .cabinet-modal .rz-head > h2 {
  flex: 0 1 auto !important; min-width: 0 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
.room-zone-panel .rz-head > span, .cabinet-modal .rz-head > span {
  flex: 1 1 100% !important; min-width: 0 !important; text-align: left !important; white-space: normal !important; margin: 0 !important;
}
/* === Менюшки: рамка-окно из кита (border-image 9-slice) вместо тёмного бокса (2026-06-20) === */
.museum-ui-final .cabinet-modal.room-zone-panel {
  background: #173434 !important;
  border: 32px solid transparent !important;
  border-image: url('/assets/museum_v7/panel_ui/frame_teal.png?v=1') 90 fill stretch !important;
  border-radius: 0 !important;
  box-shadow: 0 22px 55px rgba(0,0,0,.6) !important;
  /* угловые завитки рамки заходят внутрь глубже прямых краёв — даём контенту безопасный отступ от углов */
  padding: 18px 36px 34px !important;
}
/* крестик-закрытие — внутрь окна, на бирюзу (не на золотую кайму) */
.museum-ui-final .cabinet-modal.room-zone-panel .cabinet-close { top: 42px !important; right: 42px !important; }

/* === Шапка Личного кабинета — новая ornate-шапка из кита (вместо старой ромб-плашки) === */
.cabinet-modal:not(.heroes-modal) .cabinet-head {
  background: url('/assets/museum_v7/panel_ui/header_kit.png?v=1') center / 100% 100% no-repeat !important;
  height: 50px !important; min-height: 50px !important; margin: 0 14px !important;
}
.cabinet-modal:not(.heroes-modal) .cabinet-head::before,
.cabinet-modal:not(.heroes-modal) .cabinet-head::after { display: none !important; }
.cabinet-modal:not(.heroes-modal) .cabinet-head h2 { font-size: 16px !important; color: #3a2a10 !important; text-shadow: none !important; }

/* === Правка шапки кабинета: крестик не на плашку + «Личный кабинет» по центру плашки === */
.cabinet-modal:not(.heroes-modal) .cabinet-head {
  height: 56px !important; min-height: 56px !important; margin: 6px 60px 10px 16px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
}
.cabinet-modal:not(.heroes-modal) .cabinet-head h2 { margin: 0 !important; line-height: 1 !important; padding: 0 !important; }
.cabinet-modal:not(.heroes-modal) .cabinet-close { top: 14px !important; right: 12px !important; }

/* === Легендарные герои: заголовок секции + золотая карточка + высокий портрет под кота === */
.heroes-legend-head {
  margin: 18px 4px 10px; text-align: center;
  color: #ffdf86; font-family: var(--font-title); font-size: 16px; font-weight: 700; letter-spacing: .08em;
  text-shadow: 0 0 12px rgba(255,200,90,.55);
}
.museum-ui-final .cabinet-modal.heroes-modal--v2 .heroes-roster--legend {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
}
.museum-ui-final .heroes-card.is-legendary {
  border: 2px solid #ffd46f !important;
  background: linear-gradient(180deg, rgba(74,52,16,.55), rgba(40,28,8,.5)) !important;
  box-shadow: 0 0 18px rgba(255,200,90,.45), inset 0 0 0 1px rgba(255,230,150,.3) !important;
}
.museum-ui-final .heroes-card.is-legendary .heroes-card__portrait {
  height: 150px !important; width: 100% !important;
}
.museum-ui-final .heroes-card.is-legendary .heroes-card__portrait img {
  object-fit: contain !important; object-position: center bottom !important; max-height: 100% !important; width: auto !important; margin: 0 auto !important;
}

/* === Правки панелей/комнат (2026-06-20) === */
/* 1) Хотспоты комнат — выше правой панели (z-index:6), иначе она перекрывает кнопки справа */
.room-hotspot-layer { z-index: 9 !important; }
/* 2) Убрать мелкий текст-счётчик в шапке панелей (выставлено: N, изучено: N/М и подобное) */
.rz-head > span { display: none !important; }
/* 3) Убрать кривой завиток-разделитель под шапкой */
.rz-head::after { display: none !important; }
.rz-head { padding-bottom: 4px !important; }
/* 4) Окна панелей зон — крупнее */
.room-zone-panel { max-width: 720px !important; width: min(720px, 96vw) !important; }
.museum-ui-final .cabinet-modal.room-zone-panel { max-width: 720px !important; width: min(720px, 96vw) !important; }

/* === Шапка кабинета — симметричная лента (бирюза) вместо обрезающейся header_kit === */
.cabinet-modal:not(.heroes-modal) .cabinet-head {
  background: url('/assets/museum_v7/panel_ui/cab_header.png?v=2') center / 100% 100% no-repeat !important;
  height: 58px !important; min-height: 58px !important;
}
.cabinet-modal:not(.heroes-modal) .cabinet-head h2 {
  color: #ffe9b0 !important; text-shadow: 0 1px 2px rgba(0,0,0,.45) !important;
}

/* === Тематический скроллбар (золото на тёмной бирюзе) для прокручиваемых меню === */
.museum-ui-final ::-webkit-scrollbar,
.cabinet-modal ::-webkit-scrollbar,
.cabinet-modal::-webkit-scrollbar,
.room-screen-panel::-webkit-scrollbar,
.room-zone-panel ::-webkit-scrollbar { width: 15px; height: 15px; }

.museum-ui-final ::-webkit-scrollbar-track,
.cabinet-modal ::-webkit-scrollbar-track,
.cabinet-modal::-webkit-scrollbar-track,
.room-screen-panel::-webkit-scrollbar-track,
.room-zone-panel ::-webkit-scrollbar-track {
  background: rgba(8, 18, 16, .55); border-radius: 10px; box-shadow: inset 0 0 4px rgba(0,0,0,.5);
}
.museum-ui-final ::-webkit-scrollbar-thumb,
.cabinet-modal ::-webkit-scrollbar-thumb,
.cabinet-modal::-webkit-scrollbar-thumb,
.room-screen-panel::-webkit-scrollbar-thumb,
.room-zone-panel ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #e3bd63 0%, #b88f33 50%, #8a672a 100%);
  border-radius: 10px; border: 3px solid rgba(8, 18, 16, .55);
  box-shadow: inset 0 1px 0 rgba(255,240,200,.4);
}
.museum-ui-final ::-webkit-scrollbar-thumb:hover,
.cabinet-modal ::-webkit-scrollbar-thumb:hover,
.cabinet-modal::-webkit-scrollbar-thumb:hover,
.room-screen-panel::-webkit-scrollbar-thumb:hover,
.room-zone-panel ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #ffe08a 0%, #d4a544 50%, #a87c30 100%);
}
.museum-ui-final ::-webkit-scrollbar-corner,
.cabinet-modal ::-webkit-scrollbar-corner { background: transparent; }
/* Firefox */
.museum-ui-final .cabinet-modal, .museum-ui-final .room-screen-panel, .room-zone-panel {
  scrollbar-color: #c2933b rgba(8,18,16,.55); scrollbar-width: auto;
}

/* === Категории героев: вкладки + легендарный полный портрет (с кошкой) === */
.museum-ui-final .heroes-tabs { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 2px 0 16px; }
.museum-ui-final .heroes-tab {
  appearance: none; cursor: pointer; padding: 8px 24px; border-radius: 999px;
  font-family: var(--font-title); font-size: 14px; font-weight: 700; letter-spacing: .04em;
  color: #e9d9b0; background: linear-gradient(180deg, rgba(40,60,52,.7), rgba(22,36,30,.85));
  border: 1.5px solid rgba(201,162,76,.5); transition: color .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.museum-ui-final .heroes-tab:hover { border-color: #ffd46f; color: #fff3d6; }
.museum-ui-final .heroes-tab.is-active {
  color: #1c130a; background: linear-gradient(180deg, #f0cf7e, #c89a3c);
  border-color: #ffe9a8; box-shadow: 0 0 12px rgba(255,200,90,.4);
}
.museum-ui-final .heroes-empty { grid-column: 1 / -1; text-align: center; color: #b6c7be; padding: 34px 12px; }

.museum-ui-final .heroes-roster--legend {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px;
}
/* Полный портрет: inline-стиль задаёт background-image, тут только фон/размер/позиция (без shorthand!) */
.museum-ui-final .heroes-card__portrait--full {
  width: 100% !important; height: 340px !important;
  border-radius: 14px !important; border: 1px solid rgba(201,162,76,.45) !important;
  background-color: rgba(20,32,26,.5) !important;
  background-size: contain !important; background-position: center bottom !important; background-repeat: no-repeat !important;
}
.museum-ui-final .heroes-card__portrait--full::before,
.museum-ui-final .heroes-card__portrait--full::after { display: none !important; content: none !important; }
.museum-ui-final .heroes-card__portrait--full img { display: none !important; }
.museum-ui-final .heroes-card__unlock--gem { color: #ffd98a !important; text-shadow: 0 0 8px rgba(255,200,90,.45) !important; font-weight: 800 !important; }

/* === Детальный портрет легендарного героя: полная фигура с кошкой (contain) === */
.museum-ui-final .heroes-detail__portrait--full {
  background-color: rgba(20,32,26,.5) !important;
  background-size: contain !important; background-position: center bottom !important; background-repeat: no-repeat !important;
}
.museum-ui-final .heroes-detail__portrait--full img { display: none !important; }
.museum-ui-final .heroes-detail__portrait--full::before,
.museum-ui-final .heroes-detail__portrait--full::after { display: none !important; content: none !important; }

/* === Коллекции в Витринах: миниатюра набора + прогресс === */
.museum-ui-final .sc-coll {
  display: flex !important; align-items: center; gap: 14px;
  padding: 10px 12px; border-radius: 12px;
  background: linear-gradient(180deg, rgba(20,46,42,.55), rgba(12,30,27,.6));
  border: 1px solid rgba(201,162,76,.28);
}
.museum-ui-final .sc-coll.is-done { border-color: rgba(255,212,111,.6); box-shadow: 0 0 12px rgba(255,200,90,.22); }
.museum-ui-final .sc-coll-thumb {
  flex: 0 0 auto; width: 64px; height: 64px; border-radius: 10px;
  background-color: rgba(8,18,16,.5); background-size: contain; background-position: center; background-repeat: no-repeat;
  border: 1px solid rgba(201,162,76,.35);
}
.museum-ui-final .sc-coll-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.museum-ui-final .sc-collections { display: flex; flex-direction: column; gap: 10px; }

/* === Сцена-баннер в модалке события экспедиции === */
.museum-ui-final .exp-event-scene {
  width: 100%; height: 150px; margin: 4px 0 14px; border-radius: 12px;
  background-size: cover; background-position: center;
  border: 1px solid rgba(201,162,76,.5);
  box-shadow: inset 0 -34px 46px -20px rgba(12,24,20,.85);
}

/* === Поп-ап награды (сундук + вспышка) === */
.reward-overlay {
  position: fixed; inset: 0; z-index: 1200; display: none;
  align-items: center; justify-content: center;
  background: rgba(6,12,11,.72); backdrop-filter: blur(3px);
}
.reward-overlay.is-open { display: flex; animation: rewardFade .25s ease both; }
@keyframes rewardFade { from { opacity: 0; } to { opacity: 1; } }
.reward-card {
  position: relative; width: min(420px, 90vw); padding: 18px 22px 24px;
  display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
  animation: rewardPop .35s cubic-bezier(.2,1.3,.5,1) both;
}
@keyframes rewardPop { from { transform: scale(.7); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.reward-burst {
  position: absolute; top: -30px; left: 50%; width: 360px; height: 360px;
  transform: translateX(-50%); background-size: contain; background-position: center; background-repeat: no-repeat;
  opacity: .85; animation: rewardSpin 9s linear infinite, rewardPulse 2.2s ease-in-out infinite; pointer-events: none; z-index: 0;
}
@keyframes rewardSpin { to { transform: translateX(-50%) rotate(360deg); } }
@keyframes rewardPulse { 0%,100% { opacity:.6; } 50% { opacity:.95; } }
.reward-chest {
  position: relative; z-index: 1; width: 230px; height: 230px;
  background-size: contain; background-position: center bottom; background-repeat: no-repeat;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.5));
  animation: rewardBob 2.4s ease-in-out infinite;
}
@keyframes rewardBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.reward-title {
  position: relative; z-index: 1; margin: 4px 0 0; font-family: var(--font-title);
  font-size: 26px; color: #ffe09a; text-shadow: 0 2px 10px rgba(255,180,60,.5), 0 1px 0 #5a3d12;
}
.reward-sub { position: relative; z-index: 1; margin: 0; color: #e7d8b6; font-size: 15px; max-width: 320px; }
.reward-ok { position: relative; z-index: 1; margin-top: 10px; min-width: 160px; }

/* === Шапка локации в планировщике (виньетка + название) === */
.museum-ui-final .exp-loc-header {
  display: flex; align-items: center; gap: 14px; margin-bottom: 12px;
  padding: 10px 12px; border-radius: 14px;
  background: linear-gradient(180deg, rgba(20,46,42,.5), rgba(12,28,25,.6));
  border: 1px solid rgba(201,162,76,.3);
}
.museum-ui-final .exp-loc-vig {
  flex: 0 0 auto; width: 76px; height: 76px; border-radius: 50%;
  background-size: cover; background-position: center;
  border: 2px solid rgba(201,162,76,.6); box-shadow: 0 0 12px rgba(255,200,90,.25), inset 0 0 0 1px rgba(0,0,0,.3);
}
.museum-ui-final .exp-loc-head-txt { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.museum-ui-final .exp-loc-head-txt b { font-family: var(--font-title); font-size: 18px; color: #ffe09a; }
.museum-ui-final .exp-loc-head-txt small { color: #cbd8d0; font-size: 12.5px; line-height: 1.35; }

/* ===================== ВЕЛИКИЙ РАСКОП — Хаб «Стратиграфия» ===================== */
.dig-hub-btn {
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
  padding: 7px 16px; border-radius: 999px; font-family: var(--font-title); font-weight: 800; font-size: 14px;
  color: #2a1c08; background: linear-gradient(180deg,#ffd877,#d39f3f); border: 1.5px solid #ffe9a8;
  box-shadow: 0 3px 12px rgba(255,200,90,.35); transition: filter .15s, transform .1s; margin-right: 8px;
}
.dig-hub-btn:hover { filter: brightness(1.07); }
.dig-hub-btn:active { transform: translateY(1px); }

.dig-hub-overlay { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; background: rgba(6,12,11,.80); backdrop-filter: blur(3px); padding: 16px; }
.dig-hub { position: relative; width: min(640px,96vw); max-height: 92vh; overflow-y: auto; padding: 20px 22px 22px;
  background: linear-gradient(180deg,#17302e,#0e201d); border: 2px solid #c9a24c; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.6); }
.dig-hub .cabinet-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(201,162,76,.5); background: rgba(8,18,16,.7); color: #ffe09a; font-size: 16px; cursor: pointer; z-index: 2; }
.dig-hub-head { text-align: center; margin-bottom: 14px; }
.dig-hub-head h2 { font-family: var(--font-title); font-size: 24px; color: #ffe09a; margin: 0 0 2px; text-shadow: 0 2px 10px rgba(255,180,60,.4); }
.dig-hub-head p { margin: 0; color: #bcd0c7; font-size: 13px; }
.dig-site-tabs { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 10px; }
.dig-site-tab { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 86px; padding: 6px 4px; border-radius: 12px; border: 1px solid rgba(201,162,76,.3); background: rgba(20,40,36,.5); cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.dig-site-tab.is-active { border-color: #ffd46f; background: rgba(56,76,48,.55); box-shadow: 0 0 12px rgba(255,200,90,.3); }
.dig-site-tab.is-locked { opacity: .5; }
.dig-site-vig { width: 54px; height: 54px; border-radius: 50%; background-size: cover; background-position: center; border: 2px solid rgba(201,162,76,.5); }
.dig-site-name { font-size: 12px; font-weight: 700; color: #e9d9b0; text-align: center; }
.dig-site-info { text-align: center; color: #cbd8d0; font-size: 13px; margin-bottom: 10px; line-height: 1.4; }
.dig-active-strip { font-size: 12.5px; color: #d9c79a; background: rgba(8,18,16,.5); border: 1px solid rgba(201,162,76,.25); border-radius: 10px; padding: 8px 12px; margin-bottom: 14px; }
.dig-active-strip.dig-active-empty { color: #93a59b; text-align: center; }
.dig-active-chip { display: inline-block; padding: 2px 9px; margin: 2px; border-radius: 999px; background: rgba(40,60,52,.7); border: 1px solid rgba(201,162,76,.3); font-weight: 700; }
.dig-active-chip.is-ready { background: linear-gradient(180deg,#f0cf7e,#c89a3c); color: #1c130a; border-color: #ffe9a8; }
.dig-strata { border-radius: 12px; overflow: hidden; border: 1px solid rgba(201,162,76,.35); box-shadow: inset 0 0 24px rgba(0,0,0,.4); }
.dig-strata-cap { text-align: center; font-size: 11px; letter-spacing: .08em; color: #9bb0a6; padding: 6px; background: rgba(8,18,16,.65); }
.dig-layer { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid rgba(0,0,0,.35); }
.dig-layer-depth { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-title); font-weight: 800; color: #2a1c08; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.dig-layer-body { flex: 1 1 auto; min-width: 0; }
.dig-layer-top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.dig-layer-top b { color: #fff3d6; font-size: 15px; text-shadow: 0 1px 2px rgba(0,0,0,.5); }
.dig-layer-cost { color: #f0e4c0; font-size: 12px; flex: 0 0 auto; text-shadow: 0 1px 2px rgba(0,0,0,.5); }
.dig-layer-soil { height: 5px; margin-top: 7px; border-radius: 3px; background: linear-gradient(90deg, rgba(0,0,0,.25), rgba(255,240,200,.18), rgba(0,0,0,.25)); }
.dig-layer-go { flex: 0 0 auto; padding: 9px 16px; border-radius: 10px; border: 1px solid #ffe39a; background: linear-gradient(180deg,#ffd877,#d39f3f); color: #3a2a0c; font-weight: 800; cursor: pointer; white-space: nowrap; transition: filter .15s; }
.dig-layer-go:hover { filter: brightness(1.07); }
/* грунт по глубине: светлый песок (верх) -> тёмная древность (низ) */
.dig-layer[data-depth="1"] { background:#b79a6e; } .dig-layer[data-depth="1"] .dig-layer-depth { background:#e8d2a4; }
.dig-layer[data-depth="2"] { background:#a3855a; } .dig-layer[data-depth="2"] .dig-layer-depth { background:#ddc398; }
.dig-layer[data-depth="3"] { background:#8f7249; } .dig-layer[data-depth="3"] .dig-layer-depth { background:#d0b487; }
.dig-layer[data-depth="4"] { background:#7c6140; } .dig-layer[data-depth="4"] .dig-layer-depth { background:#c4a472; }
.dig-layer[data-depth="5"] { background:#6a5135; } .dig-layer[data-depth="5"] .dig-layer-depth { background:#b8945f; }
.dig-layer[data-depth="6"] { background:#58422b; } .dig-layer[data-depth="6"] .dig-layer-depth { background:#a8834c; }
.dig-layer[data-depth="7"] { background:#463422; } .dig-layer[data-depth="7"] .dig-layer-depth { background:#f0cf7e; box-shadow:0 0 10px rgba(255,200,90,.5); }
.dig-hub-foot { margin-top: 16px; text-align: center; }
.dig-self-btn { padding: 10px 22px; border-radius: 12px; border: 1.5px solid rgba(201,162,76,.55); background: linear-gradient(180deg, rgba(48,40,22,.85), rgba(18,16,8,.92)); color: #ffe9b0; font-weight: 800; font-size: 14px; cursor: pointer; transition: filter .15s; }
.dig-self-btn:hover { filter: brightness(1.12); border-color: #ffd46f; }

/* Раскоп: прогресс слоя + гейты */
.dig-layer-prog { height: 7px; margin-top: 7px; border-radius: 4px; background: rgba(0,0,0,.35); overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,.45); }
.dig-layer-prog > span { display: block; height: 100%; background: linear-gradient(90deg,#ffd877,#e0a83f); border-radius: 4px; transition: width .3s ease; }
.dig-layer.is-locked { opacity: .5; filter: grayscale(.45); }
.dig-layer.is-cleared .dig-layer-depth { background: linear-gradient(180deg,#bfe6a0,#7bc06a) !important; color: #163a16 !important; box-shadow: 0 0 8px rgba(140,220,120,.4); }
.dig-layer.is-cleared { box-shadow: inset 0 0 0 1px rgba(160,230,140,.3); }
.dig-layer-lock { flex: 0 0 auto; font-size: 12px; font-weight: 700; color: #e0d0a6; opacity: .85; white-space: nowrap; padding: 8px 10px; }
.dig-layer-lore { margin-top: 7px; font-size: 11.5px; line-height: 1.35; color: #f3e6c6; background: rgba(0,0,0,.28); border-left: 2px solid #ffd46f; padding: 5px 9px; border-radius: 6px; }

/* Пипсы уровня — CSS вместо <img> (производительность: убрали десятки картинок с каждого рендера) */
.museum-ui-final .level-pip { display: inline-block; border-radius: 50%; box-sizing: border-box; object-fit: unset; }
.museum-ui-final .level-pip.is-on { background: radial-gradient(circle at 38% 32%, #ffe9a8, #d39f3f 70%); box-shadow: 0 0 3px rgba(255,200,90,.6); border: 1px solid rgba(255,225,150,.55); }
.museum-ui-final .level-pip.is-off { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.16); }

/* ===================== КАРТА КРЫМА (прототип основного геймплея) ===================== */
.wm-open-btn { background: linear-gradient(180deg,#7fc8a0,#3f8f6a) !important; color: #0c2a1c !important; border-color: #bff0d8 !important; }
.wm-overlay { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; background: rgba(6,12,11,.9); padding: 16px; }
/* ПРОИЗВОДИТЕЛЬНОСТЬ: пока открыта полноэкранная карта — прячем анимированный музей под ней (он невидим, но грузил GPU) */
.museum-shell:has(.wm-overlay) .museum-main { display: none; }
.museum-shell:has(.wm-overlay) .museum-top-orders { display: none; }
.wm-screen { position: relative; width: min(740px,96vw); max-height: 92vh; overflow-y: auto; padding: 20px 22px 22px; background: linear-gradient(180deg,#1a2a1e,#0e1a12); border: 2px solid #c9a24c; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.6); }
.wm-screen .cabinet-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(201,162,76,.5); background: rgba(8,18,16,.7); color: #ffe09a; font-size: 16px; cursor: pointer; z-index: 2; }
.wm-head { text-align: center; margin-bottom: 12px; }
.wm-head h2 { font-family: var(--font-title); font-size: 24px; color: #ffe09a; margin: 0 0 2px; text-shadow: 0 2px 10px rgba(255,180,60,.4); }
.wm-head p { margin: 0; color: #bcd0c7; font-size: 13px; }
.wm-region-tabs { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 8px; }
.wm-region-tab { display: flex; align-items: center; gap: 7px; padding: 6px 13px 6px 6px; border-radius: 999px; border: 1px solid rgba(201,162,76,.3); background: rgba(20,40,30,.5); color: #e9d9b0; font-weight: 700; font-size: 13px; cursor: pointer; transition: border-color .15s, background .15s; }
.wm-region-tab.is-active { border-color: #ffd46f; background: rgba(56,76,48,.55); box-shadow: 0 0 10px rgba(255,200,90,.3); }
.wm-region-vig { width: 34px; height: 34px; border-radius: 50%; background-size: cover; background-position: center; border: 1.5px solid rgba(201,162,76,.5); }
.wm-region-info { text-align: center; color: #cbd8d0; font-size: 13px; margin-bottom: 14px; line-height: 1.4; }
.wm-grid { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 0; }
.wm-row { display: flex; gap: 8px; justify-content: center; }
.wm-row-odd { margin-left: 56px; }
.wm-cell { width: 104px; height: 118px; border: none; cursor: pointer; clip-path: polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 6px; color: #f3e6c6; font-weight: 700; text-align: center; transition: filter .15s, transform .1s; }
.wm-cell:hover:not([disabled]) { filter: brightness(1.1); transform: translateY(-2px); }
.wm-cell-name { font-size: 12px; line-height: 1.1; }
.wm-cell-biome { font-size: 10px; color: #d8c08a; font-weight: 600; }
.wm-open { background: linear-gradient(180deg,#5b7a3e,#33491f); box-shadow: inset 0 0 0 2px rgba(201,162,76,.45); }
.wm-locked { background: linear-gradient(180deg,#4a4030,#262016); opacity: .9; }
.wm-fog { background: repeating-linear-gradient(45deg,#1b2721,#1b2721 6px,#16201b 6px,#16201b 12px); color: #5e7065; }
.wm-cell.is-cleared { box-shadow: inset 0 0 0 2px rgba(160,230,140,.75); }
.wm-q { font-size: 26px; opacity: .6; }
.wm-lock { font-size: 20px; }
.wm-done { color: #9be88a; font-size: 13px; }
.wm-legend { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 14px; font-size: 11.5px; color: #bcd0c7; }

/* === Кнопка-вход на Карту Крыма — на воротах музея (низ карты) === */
.museum-gate-btn {
  position: absolute; left: 50%; bottom: 15%; transform: translateX(-50%); z-index: 6;
  display: flex; flex-direction: column; align-items: center; gap: 0; cursor: pointer;
  padding: 9px 28px; border: 2px solid #ffe09a; border-radius: 14px;
  background: linear-gradient(180deg, rgba(58,42,16,.93), rgba(28,20,8,.96));
  box-shadow: 0 6px 22px rgba(0,0,0,.55), 0 0 20px rgba(255,200,90,.4);
  animation: gatePulse 2.6s ease-in-out infinite; transition: filter .15s, transform .12s;
}
.museum-gate-btn:hover { filter: brightness(1.12); }
.museum-gate-btn:active { transform: translateX(-50%) translateY(1px); }
.museum-gate-btn .gate-ico { font-size: 22px; line-height: 1.1; }
.museum-gate-btn .gate-label { font-family: var(--font-title); font-weight: 800; font-size: 16px; color: #ffe09a; text-shadow: 0 1px 3px rgba(0,0,0,.6); letter-spacing: .03em; }
.museum-gate-btn .gate-sub { font-size: 11px; color: #d8c79c; margin-top: 1px; }
@keyframes gatePulse { 0%,100% { box-shadow: 0 6px 22px rgba(0,0,0,.55), 0 0 16px rgba(255,200,90,.32); } 50% { box-shadow: 0 6px 22px rgba(0,0,0,.55), 0 0 32px rgba(255,200,90,.62); } }

/* === Карта Крыма: экран обзора регионов + назад === */
.museum-ui-final .wm-head { position: relative; }
.wm-back { position: absolute; left: 0; top: 0; padding: 6px 13px; border-radius: 999px; border: 1px solid rgba(201,162,76,.45); background: rgba(20,40,30,.6); color: #e9d9b0; font-weight: 700; font-size: 13px; cursor: pointer; transition: border-color .15s, color .15s; }
.wm-back:hover { border-color: #ffd46f; color: #fff3d6; }
.wm-crimea { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; background-size: cover; background-position: center; border: 2px solid rgba(201,162,76,.5); box-shadow: inset 0 0 60px rgba(0,0,0,.5); overflow: hidden; margin-top: 4px; }
.wm-zone { position: absolute; transform: translate(-50%,-50%); display: flex; align-items: center; gap: 8px; padding: 5px 13px 5px 5px; border-radius: 999px; border: 2px solid #ffe09a; background: rgba(18,28,20,.84); cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.5), 0 0 14px rgba(255,200,90,.35); transition: filter .15s, transform .12s; }
.wm-zone:hover { filter: brightness(1.12); transform: translate(-50%,-50%) scale(1.05); }
.wm-zone-vig { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background-size: cover; background-position: center; border: 2px solid rgba(201,162,76,.6); }
.wm-zone-txt { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.wm-zone-txt b { font-family: var(--font-title); font-size: 14px; color: #ffe09a; }
.wm-zone-txt small { font-size: 11px; color: #d8c79c; }

/* === Карта Крыма: интерактивные элементы (маршруты, пульс, биомы) === */
.wm-routes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.wm-routes polyline { fill: none; stroke: rgba(255,212,111,.7); stroke-width: .6; stroke-dasharray: 2 2; stroke-linecap: round; filter: drop-shadow(0 0 2px rgba(255,200,90,.5)); animation: wmDash 1.2s linear infinite; }
@keyframes wmDash { to { stroke-dashoffset: -8; } }
.wm-zone { z-index: 2; }
.wm-zone-pin { position: absolute; left: 50%; bottom: -9px; width: 10px; height: 10px; transform: translateX(-50%); border-radius: 50%; background: #ffd46f; box-shadow: 0 0 8px rgba(255,200,90,.8); }
.wm-zone.has-open .wm-zone-pin::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid #ffd46f; animation: wmPing 1.8s ease-out infinite; }
@keyframes wmPing { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.3); opacity: 0; } }
.wm-cell-ico { font-size: 18px; line-height: 1; }
.wm-cell-pulse { position: absolute; inset: 5px; clip-path: polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%); border: 2px solid rgba(255,220,140,0); animation: wmCellPulse 2.2s ease-in-out infinite; pointer-events: none; }
@keyframes wmCellPulse { 0%,100% { border-color: rgba(255,220,140,0); } 50% { border-color: rgba(255,220,140,.55); } }

/* Карта Крыма: подвал панели клетки (кнопка разведки) */
.wm-cell-foot { margin-top: 14px; text-align: center; }

/* === Кнопка-вход в форме сложенной карты (плейсхолдер до арта №3) === */
.museum-gate-btn {
  background: linear-gradient(135deg, #ecdbb0 0%, #dcc790 55%, #cdb277 100%) !important;
  border: 2px solid #a9803c !important;
  clip-path: polygon(0 0, 85% 0, 100% 28%, 100% 100%, 0 100%);
  box-shadow: 0 6px 22px rgba(0,0,0,.5), inset 0 0 0 2px rgba(255,250,230,.25), 0 0 18px rgba(255,200,90,.35) !important;
  padding-right: 34px !important;
}
.museum-gate-btn::after {
  content: ''; position: absolute; left: 12%; right: 20%; top: 50%; height: 2px;
  background: repeating-linear-gradient(90deg, #b5462a 0 6px, transparent 6px 11px); opacity: .75; pointer-events: none;
}
.museum-gate-btn .gate-label { color: #5a3d12 !important; text-shadow: 0 1px 0 rgba(255,250,230,.5) !important; }
.museum-gate-btn .gate-sub { color: #7a5a28 !important; }

/* «Скоро»-регионы на карте — тусклее */
.wm-zone.is-soon { opacity: .58; filter: grayscale(.3); border-color: rgba(201,162,76,.5); }
.wm-zone.is-soon .wm-zone-pin { background: #b59a6b; box-shadow: 0 0 6px rgba(180,150,100,.6); }
.wm-zone.is-soon .wm-zone-txt small { color: #cbb48a; }

/* === Кнопка-вход = реальная картинка-карта (заменяет пергаментный плейсхолдер) === */
.museum-gate-btn { background: none !important; border: none !important; clip-path: none !important; box-shadow: none !important; padding: 0 !important; gap: 0 !important; }
.museum-gate-btn::after { display: none !important; }
.museum-gate-btn .gate-map { width: 134px; height: 123px; background-size: contain; background-position: center; background-repeat: no-repeat; filter: drop-shadow(0 4px 10px rgba(0,0,0,.55)); animation: gateBob 2.8s ease-in-out infinite; }
.museum-gate-btn:hover .gate-map { filter: drop-shadow(0 4px 14px rgba(255,200,90,.6)) brightness(1.06); }
.museum-gate-btn .gate-label { color: #ffe09a !important; font-family: var(--font-title); font-weight: 800; font-size: 15.5px; text-shadow: 0 2px 5px rgba(0,0,0,.75) !important; margin-top: -6px; }
@keyframes gateBob { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } }

/* Карта Крыма: компактнее пиллы регионов (меньше перекрытий) */
.wm-zone { padding: 4px 11px 4px 4px !important; gap: 6px !important; }
.wm-zone-vig { width: 40px !important; height: 40px !important; }
.wm-zone-txt b { font-size: 12.5px !important; }
.wm-zone-txt small { font-size: 10px !important; }

/* === Карта Крыма: большой экран (регионы разъезжаются, не налезают) === */
.wm-overlay .wm-screen { width: min(1240px, 97vw) !important; max-height: 95vh !important; padding: 14px 18px 16px !important; }
.wm-view-crimea .wm-crimea { aspect-ratio: 16 / 9; max-height: 82vh; }
/* пиллы регионов чуть крупнее снова — места теперь хватает */
.wm-view-crimea .wm-zone-vig { width: 48px !important; height: 48px !important; }
.wm-view-crimea .wm-zone-txt b { font-size: 14px !important; }
.wm-view-crimea .wm-zone-txt small { font-size: 11px !important; }

/* === Карта хабов: ВЕСЬ ЭКРАН === */
.wm-screen.wm-view-crimea, .wm-screen.wm-view-hub, .wm-screen.wm-view-region {
  width: 100vw !important; max-width: 100vw !important; height: 100vh; max-height: 100vh !important;
  padding: 0 !important; border: none !important; border-radius: 0 !important;
  box-shadow: none !important; display: block; overflow: hidden;
  /* фон под цвет моря карты — чёрной рамки на любом мониторе нет */
  background: radial-gradient(135% 115% at 62% 46%, #15363f 0%, #0c2229 52%, #07151a 100%) !important;
}
.wm-screen.wm-view-hub, .wm-screen.wm-view-region { background: radial-gradient(125% 105% at 50% 40%, #1c333b 0%, #0c1a1f 55%, #07151a 100%) !important; }

/* === Экран слоёв (раскоп локации) — большая резная панель === */
.wm-view-region .lyr-screen { position: relative; width: 100%; height: 100%; display: grid; place-items: center; padding: 24px; box-sizing: border-box; }
.lyr-panel {
  position: relative; width: min(1500px, 96vw); height: min(92vh, 980px); box-sizing: border-box;
  padding: 20px 40px 22px; border-radius: 24px; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  background: linear-gradient(165deg, #20392a 0%, #15281c 55%, #0e1b13 100%);
  border: 3px solid #c9a24c;
  box-shadow: 0 0 0 7px rgba(18,36,26,.7), 0 32px 90px rgba(0,0,0,.65), inset 0 0 80px rgba(0,0,0,.45);
}
.lyr-panel::before { content: ''; position: absolute; inset: 11px; border: 1.5px solid rgba(201,162,76,.4); border-radius: 15px; pointer-events: none; }
.lyr-head { text-align: center; }
.lyr-head h2 { margin: 0; font-family: var(--font-title); font-size: clamp(28px, 3vw, 40px); color: #ffe9b8; letter-spacing: .03em; text-shadow: 0 2px 14px rgba(255,180,60,.45); }
.lyr-head h2::before, .lyr-head h2::after { content: '✦'; color: #c9a24c; font-size: .5em; vertical-align: middle; margin: 0 .5em; opacity: .8; }
.lyr-head p { margin: 4px 0 0; font-size: 14px; color: #cdbf9a; }
.lyr-blurb { max-width: 760px; text-align: center; font-size: 13.5px; line-height: 1.5; color: #c2b793; margin: 2px 0 4px; }
.lyr-cards { gap: clamp(16px, 1.8vw, 30px); margin: 0; width: 100%; flex: 1 1 auto; min-height: 0; align-items: stretch; flex-wrap: nowrap; }
.wm-view-region .lyr-card { flex: 1 1 0; min-width: 0; max-width: 560px; width: auto; height: 100%; aspect-ratio: auto; }
.lyr-panel .lyr-meta em { display: none; }

/* === Обзор: боковая панель (описание/история/легенда) + карта === */
.wm-ov { display: flex; width: 100%; height: 100%; overflow: hidden; --side: clamp(290px, 24vw, 400px); }
.wm-ov-side {
  flex: 0 0 var(--side); width: var(--side); height: 100%; box-sizing: border-box;
  display: flex; flex-direction: column; gap: 14px; padding: 22px 20px; overflow-y: auto;
  background: linear-gradient(100deg, rgba(7,16,18,.82), rgba(7,16,18,.42));
  border-right: 1px solid rgba(201,162,76,.22);
}
.wm-ov-head { display: flex; flex-direction: column; gap: 10px; }
.wm-ov-head h2 { margin: 0; font-family: var(--font-title); font-size: 25px; color: #ffe9c0; text-shadow: 0 2px 12px rgba(255,180,60,.35); }
.wm-ov-icon { filter: saturate(1.1); }
.wm-ov-codex { position: static !important; align-self: flex-start; }
.wm-ov-intro { margin: 0; font-size: 13px; line-height: 1.55; color: #cdc1a4; }
.wm-ov-intro b { color: #ffe09a; font-weight: 700; }
.wm-ov-legend { display: flex; flex-direction: column; gap: 7px; margin-top: 2px; }
.wm-leg {
  display: flex; align-items: center; gap: 10px; padding: 8px 11px; border-radius: 11px; cursor: pointer;
  background: rgba(14,22,20,.55); border: 1px solid rgba(201,162,76,.18); transition: background .14s, border-color .14s, transform .12s;
  text-align: left;
}
.wm-leg:hover { background: rgba(22,32,28,.8); border-color: var(--hc); transform: translateX(2px); }
.wm-leg-dot { flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; background: var(--hc); box-shadow: 0 0 8px -1px var(--hc); border: 1.5px solid rgba(255,255,255,.45); }
.wm-leg-txt { flex: 1 1 auto; display: flex; flex-direction: column; line-height: 1.15; }
.wm-leg-txt b { font-family: var(--font-title); font-size: 14px; color: #ffe9c0; }
.wm-leg-txt small { font-size: 11px; color: #b8ad8f; }
.wm-leg-go { color: var(--hc); font-size: 12px; }
.wm-leg-soon { font-size: 10px; color: #8c8a72; text-transform: uppercase; letter-spacing: .04em; }
.wm-ov-hint { margin: auto 0 0; font-size: 11.5px; color: #8fa39a; line-height: 1.45; }
.wm-ov-map { flex: 1 1 auto; position: relative; display: grid; place-items: center; min-width: 0; overflow: hidden; }

/* === Экран региона (отдельная картинка + точки + инфо + кнопки) === */
.region-screen { position: relative; width: 100%; height: 100%; overflow: hidden; }
.region-stage { position: absolute; inset: 0; display: grid; place-items: center; padding: 96px 40px 40px; overflow: visible; }
.region-img { position: relative; display: inline-block; line-height: 0; }
.region-img-pic { display: block; max-height: 74vh; max-width: 66vw; width: auto; height: auto; filter: drop-shadow(0 14px 44px rgba(0,0,0,.65)); }
.region-head {
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%); z-index: 6;
  display: flex; align-items: center; gap: 12px; padding: 7px 22px 7px 10px; border-radius: 14px;
  background: rgba(8,14,12,.55); border: 1px solid color-mix(in srgb, var(--hc) 50%, rgba(201,162,76,.3));
}
.region-logo { flex: 0 0 auto; width: 62px; height: 62px; object-fit: contain; display: block; }
.region-head-txt { text-align: left; }
.region-head-txt h2 { margin: 0; font-family: var(--font-title); font-size: 22px; color: #fff3d6; text-shadow: 0 2px 10px rgba(255,180,60,.35); }
.region-head-txt p { margin: 0; font-size: 12px; color: #cdbf9a; }
.region-rail { position: absolute; top: 92px; right: 18px; z-index: 7; display: flex; flex-direction: column; gap: 10px; }
.region-railbtn {
  display: flex; flex-direction: column; align-items: center; gap: 2px; width: 62px; padding: 9px 6px;
  border-radius: 13px; cursor: pointer; color: #ffe9c0; font-size: 19px;
  background: linear-gradient(180deg, rgba(20,28,24,.92), rgba(8,14,12,.92));
  border: 1.5px solid var(--hc); box-shadow: 0 4px 12px rgba(0,0,0,.5); transition: filter .14s, transform .12s;
}
.region-railbtn span { font-size: 10px; font-weight: 800; }
.region-railbtn:hover { filter: brightness(1.14); transform: translateY(-1px); }
.region-info { left: 18px; bottom: 18px; }
.wm-crimea-full {
  width: min(calc(100vw - var(--side, 0px)), 177.78vh);
  height: min(calc((100vw - var(--side, 0px)) * 0.5625), 100vh);
  aspect-ratio: auto !important; max-height: none !important;
  border-radius: 0 !important; border: none !important; margin: 0 !important;
  box-shadow: none;
}
.wm-crimea-zoom { animation: wmZoomIn .42s ease-out both; }
@keyframes wmZoomIn { from { transform: scale(1.07); opacity: .35; } to { transform: scale(1); opacity: 1; } }
.wm-view-crimea .wm-head-float, .wm-view-hub .wm-head-float {
  position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 6;
  background: rgba(8,14,12,.5); padding: 6px 22px 8px; border-radius: 14px;
  border: 1px solid rgba(201,162,76,.28); margin: 0;
}
.wm-view-crimea .wm-head-float h2, .wm-view-hub .wm-head-float h2 { font-size: 22px; }
.wm-view-crimea .wm-head-float p, .wm-view-hub .wm-head-float p { font-size: 12px; }
.wm-view-crimea .cabinet-close, .wm-view-hub .cabinet-close, .wm-view-region .cabinet-close { z-index: 6; top: 16px; right: 18px; }
.wm-view-hub .wm-back { background: rgba(8,14,12,.6); border: 1px solid rgba(201,162,76,.4); color: #ffe09a; padding: 5px 13px; border-radius: 999px; cursor: pointer; font-size: 13px; }

/* точки-объекты внутри хаба */
.wm-pt {
  position: absolute; transform: translate(-50%,-50%); display: flex; align-items: center; gap: 7px;
  background: transparent; border: none; cursor: pointer; z-index: 3; padding: 0;
}
.wm-pt-dot {
  width: 18px; height: 18px; border-radius: 50%; border: 2px solid #fff;
  background: radial-gradient(circle at 35% 30%, #fff, var(--hc) 70%);
  box-shadow: 0 0 12px -1px var(--hc), 0 2px 6px rgba(0,0,0,.6); flex: 0 0 auto;
}
.wm-pt-name {
  font-family: var(--font-title); font-size: 14px; color: #ffe9c0; white-space: nowrap;
  padding: 3px 10px; border-radius: 999px; background: rgba(8,14,12,.78);
  border: 1px solid rgba(201,162,76,.45); text-shadow: 0 1px 4px rgba(0,0,0,.8);
}
.wm-pt:hover { filter: brightness(1.14); }
.wm-pt:hover .wm-pt-name { border-color: var(--hc); }
.wm-pt-open .wm-pt-dot { animation: ptpulse 1.8s ease-in-out infinite; }
@keyframes ptpulse { 0%,100% { box-shadow: 0 0 10px -2px var(--hc), 0 2px 6px rgba(0,0,0,.6); } 50% { box-shadow: 0 0 18px 1px var(--hc), 0 2px 6px rgba(0,0,0,.6); } }
.wm-pt-soon, .wm-pt-locked { filter: saturate(.5) brightness(.8); }
.wm-pt-soon .wm-pt-dot, .wm-pt-locked .wm-pt-dot { background: radial-gradient(circle, #9aa, #556 70%); border-color: #bcae8c; }
.wm-pt-soon .wm-pt-name, .wm-pt-locked .wm-pt-name { color: #cabf9c; }

/* === зоны хабов: цветная карта = база, наведение/клик по label-карте === */
.wm-zone-hot, .wm-zone-img {
  position: absolute; inset: 0; pointer-events: none;
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.wm-crimea-zonemap { cursor: pointer; }
.wm-zone-hot { z-index: 2; opacity: 0; transition: opacity .16s ease; }
.wm-zone-hot.on { opacity: .5; }
/* слой зоны в зум-виде (background-size/position заданы инлайн из hubFocusStyle) */
.wm-zone-img { z-index: 1; opacity: .5; }
.wm-zone-img-hub { opacity: .5; }

/* метка хаба слегка ярче, когда наведён её ореол (без квадратной тени!) */
.wm-hub.is-hot { filter: brightness(1.12); }
.wm-crimea[data-hover]:not([data-hover=""]) .wm-hub:not(.is-hot) { filter: saturate(.8) brightness(.85); }

/* === вид хаба: цветная рамка + чип + кнопка назад === */
.wm-hub-frame { position: absolute; inset: 0; pointer-events: none; z-index: 4;
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--hc) 70%, transparent), inset 0 0 90px color-mix(in srgb, var(--hc) 30%, transparent); }
.wm-head-hub { display: flex; align-items: center; gap: 12px; }
.wm-head-hub .wm-head-logo { flex: 0 0 auto; width: 64px; height: 64px; background-size: contain; background-position: center; background-repeat: no-repeat; filter: drop-shadow(0 3px 8px rgba(0,0,0,.6)); }
.wm-head-hub .wm-head-hub-txt { display: flex; flex-direction: column; text-align: left; }
.wm-head-hub h2 { color: #fff3d6; margin: 0; }
.wm-head-hub p { margin: 0; }
.wm-back-big {
  position: absolute; top: 14px; left: 16px; z-index: 7; display: flex; align-items: center; gap: 8px;
  padding: 11px 20px 11px 16px; border-radius: 999px; cursor: pointer;
  font-family: var(--font-title); font-weight: 800; font-size: 15px; color: #fff3d6;
  background: linear-gradient(180deg, rgba(20,28,24,.92), rgba(8,14,12,.92));
  border: 2px solid var(--hc); box-shadow: 0 6px 20px rgba(0,0,0,.5), 0 0 18px -4px var(--hc);
  transition: transform .12s, filter .15s;
}
.wm-back-big:hover { transform: translateY(-1px) scale(1.04); filter: brightness(1.12); }
.wm-back-big .wm-back-arr { font-size: 20px; line-height: 1; color: var(--hc); }

/* инфо-панель хаба (тема/флагман/слои/биомы) */
.wm-hub-info {
  position: absolute; left: 16px; bottom: 16px; z-index: 5; width: min(330px, 40vw);
  display: flex; flex-direction: column; gap: 7px; padding: 13px 15px;
  background: linear-gradient(180deg, rgba(12,18,15,.9), rgba(7,12,10,.92));
  border: 1px solid color-mix(in srgb, var(--hc) 55%, rgba(201,162,76,.4));
  border-left: 4px solid var(--hc); border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.5);
}
.wm-hub-info .whi-row { display: flex; gap: 9px; align-items: baseline; font-size: 12.5px; }
.wm-hub-info .whi-k { flex: 0 0 54px; color: var(--hc); font-weight: 800; text-transform: uppercase; font-size: 10.5px; letter-spacing: .04em; padding-top: 2px; }
.wm-hub-info .whi-v { color: #ecdfbf; line-height: 1.3; }
.wm-hub-info .whi-theme .whi-v { color: #fff3d6; }
.wm-hub-info .whi-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.wm-hub-info .whi-tags i {
  font-style: normal; font-size: 11px; color: #f0e6c8; padding: 2px 9px; border-radius: 999px;
  background: color-mix(in srgb, var(--hc) 24%, rgba(20,28,22,.8)); border: 1px solid color-mix(in srgb, var(--hc) 50%, transparent);
}
.wm-hub-info .whi-tags i.whi-bio { background: rgba(20,28,22,.7); border-color: rgba(201,162,76,.3); color: #cdbf9a; }

/* флагманская точка хаба */
.wm-pt.is-flag .wm-pt-dot { width: 24px; height: 24px; border-width: 3px; box-shadow: 0 0 16px 1px var(--hc), 0 2px 6px rgba(0,0,0,.6); }
.wm-pt.is-flag .wm-pt-name { font-size: 15px; border-color: var(--hc); background: rgba(8,14,12,.86); }
.wm-pt.is-flag.wm-pt-soon { filter: saturate(.75) brightness(.92); }

/* города-иконки на экране региона: эмблема (без текста) + подпись программно снизу */
.wm-pt-icon { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.wm-pt-emblem { position: relative; display: block; line-height: 0; }
.wm-pt-ico { width: clamp(56px, 5.4vw, 88px); height: auto; display: block; transition: transform .12s ease; }
.wm-pt-icon:hover { z-index: 5; }
.wm-pt-icon:hover .wm-pt-ico { transform: scale(1.06); }
.wm-pt-icon.is-flag .wm-pt-ico, .wm-pt-icon.wm-pt-open .wm-pt-ico { filter: drop-shadow(0 0 5px var(--hc)); }
.wm-pt-icon.wm-pt-soon .wm-pt-ico { filter: saturate(.55) brightness(.78); }
.wm-pt-cap {
  font-family: var(--font-title); font-size: 13px; font-weight: 800; color: #ffe9c0; white-space: nowrap;
  padding: 2px 11px; border-radius: 999px; line-height: 1.25;
  background: rgba(8,12,10,.82); border: 1px solid color-mix(in srgb, var(--hc) 55%, rgba(201,162,76,.4));
  text-shadow: 0 1px 3px #000;
}
.wm-pt-icon.wm-pt-soon .wm-pt-cap { color: #c9bd9a; }
.wm-pt-lock {
  position: absolute; top: 2%; right: 2%; width: 22px; height: 22px; display: grid; place-items: center;
  font-size: 11px; border-radius: 50%; background: rgba(10,8,4,.9);
  border: 1.5px solid color-mix(in srgb, var(--hc) 65%, #c9a24c); box-shadow: 0 2px 6px rgba(0,0,0,.55);
}

/* хаб-метки: резной медальон-логотип + подпись в его стилистике */
.wm-hub {
  position: absolute; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; gap: 0;
  background: none; border: none; padding: 0; cursor: pointer; z-index: 3;
  transition: transform .14s ease; outline: none; -webkit-tap-highlight-color: transparent;
}
.wm-hub-logo {
  width: clamp(78px, 7.6vw, 116px); height: auto; display: block;
  transition: transform .14s ease;
}
.wm-hub-label {
  display: flex; flex-direction: column; align-items: center; line-height: 1.08; margin-top: -8px;
  padding: 4px 14px; border-radius: 11px;
  background: linear-gradient(180deg, rgba(24,18,8,.9), rgba(10,8,4,.92));
  border: 1.5px solid color-mix(in srgb, var(--hc) 60%, #c9a24c);
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.wm-hub-label b {
  font-family: var(--font-title); font-size: clamp(14px, 1.25vw, 18px); font-weight: 800;
  color: #ffe6ad; letter-spacing: .03em; text-shadow: 0 1px 3px #000, 0 0 10px rgba(255,200,90,.25);
  white-space: nowrap;
}
.wm-hub-label small { font-size: 11px; color: #cdbf9a; white-space: nowrap; }
.wm-hub:hover, .wm-hub.is-hot { transform: translate(-50%,-50%) scale(1.07); z-index: 4; }
.wm-hub:hover .wm-hub-logo, .wm-hub.is-hot .wm-hub-logo { transform: scale(1.05); }
.wm-hub-aura {
  position: absolute; left: 50%; top: 38%; width: 150px; height: 150px; transform: translate(-50%,-50%);
  border-radius: 50%; background: radial-gradient(circle, var(--hc) 0%, transparent 62%);
  opacity: .26; pointer-events: none; z-index: -1;
}
.wm-hub.is-live .wm-hub-aura { animation: hubpulse 2.6s ease-in-out infinite; }
@keyframes hubpulse { 0%,100% { opacity: .22; } 50% { opacity: .42; } }
.wm-crimea[data-hover]:not([data-hover=""]) .wm-hub:not(.is-hot) { opacity: .55; }

/* Раскоп: дневной кулдаун слоя */
.dig-layer-cd { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; line-height: 1.05; padding: 8px 14px; border-radius: 10px; border: 1px solid rgba(160,230,140,.4); background: rgba(40,60,40,.5); color: #bfe6a0; font-weight: 800; font-size: 13px; white-space: nowrap; }
.dig-layer-cd small { font-size: 10px; color: #9bb88a; font-weight: 600; }

/* === Кодекс «Знания о Крыме» === */
.wm-codex-btn { position: absolute; left: 0; top: 0; padding: 6px 13px; border-radius: 999px; border: 1px solid rgba(201,162,76,.45); background: rgba(40,30,16,.6); color: #ffd98a; font-weight: 700; font-size: 13px; cursor: pointer; transition: border-color .15s, color .15s; }
.wm-codex-btn:hover { border-color: #ffd46f; color: #fff3d6; }

/* === Карточки слоёв (БИОМ × ЭПОХА) === */
.lyr-cards { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin: 14px 0 6px; }
.lyr-card { position: relative; width: min(260px, 30%); min-width: 200px; aspect-ratio: 3 / 4; border: 2px solid rgba(201,162,76,.55); border-radius: 16px; overflow: hidden; cursor: pointer; background-size: cover; background-position: center; box-shadow: 0 10px 30px rgba(0,0,0,.5); transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease; display: block; padding: 0; }
.lyr-card .lyr-grad { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,12,18,.05) 40%, rgba(8,12,18,.55) 70%, rgba(6,9,13,.92)); }
.lyr-card .lyr-meta { position: absolute; left: 12px; right: 12px; bottom: 44px; text-align: left; z-index: 2; }
.lyr-card .lyr-meta b { display: block; font-family: var(--font-title); font-weight: 800; font-size: 17px; color: #ffe7ad; text-shadow: 0 2px 6px rgba(0,0,0,.8); }
.lyr-card .lyr-meta small { display: block; font-size: 11px; color: #d9c79c; margin-top: 2px; text-shadow: 0 1px 4px rgba(0,0,0,.8); }
.lyr-card .lyr-go { position: absolute; left: 12px; bottom: 12px; z-index: 2; font-weight: 800; font-size: 13px; color: #1a1206; background: linear-gradient(180deg,#ffe9af,#d49b3c); border-radius: 999px; padding: 6px 14px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.lyr-open:hover { transform: translateY(-3px) scale(1.02); border-color: #ffd46f; box-shadow: 0 0 28px rgba(255,200,90,.4); }
.lyr-locked { cursor: pointer; }
.lyr-locked .lyr-grad { background: linear-gradient(180deg, rgba(8,12,18,.45), rgba(6,9,13,.85)); }
.lyr-locked { filter: grayscale(.35) brightness(.82); }
.lyr-locked .lyr-lock { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-60%); z-index: 2; font-size: 34px; filter: drop-shadow(0 3px 8px rgba(0,0,0,.7)); }
.lyr-locked .lyr-price { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 2; font-weight: 800; font-size: 14px; color: #fff0c4; background: rgba(20,14,6,.78); border: 1px solid rgba(201,162,76,.5); border-radius: 999px; padding: 5px 14px; white-space: nowrap; }

/* крупные карточки в резной панели */
.lyr-panel .lyr-card { border-width: 3px; }
.lyr-panel .lyr-meta { bottom: 70px; left: 16px; right: 16px; }
.lyr-panel .lyr-meta b { font-size: clamp(18px, 1.7vw, 24px); line-height: 1.08; overflow-wrap: anywhere; }
.lyr-panel .lyr-meta small { font-size: 12.5px; margin-top: 3px; }
.lyr-panel .lyr-meta em { display: block; font-style: normal; font-size: 11.5px; line-height: 1.35; color: #d2c7a2; margin-top: 5px; text-shadow: 0 1px 4px rgba(0,0,0,.85); }
.lyr-panel .lyr-go { left: 16px; right: 16px; bottom: 16px; text-align: center; font-size: clamp(14px, 1.3vw, 17px); padding: 11px 14px; box-shadow: 0 5px 16px rgba(0,0,0,.5); }
.lyr-panel .lyr-locked .lyr-lock { font-size: 44px; }
.lyr-panel .lyr-locked .lyr-price { font-size: 16px; padding: 8px 20px; line-height: 1; }
.lyr-panel .lyr-locked .lyr-price small { display: block; font-size: 9.5px; font-weight: 600; opacity: .8; margin-top: 2px; }
.lyr-panel .lyr-cryst { color: #c8a3ff; }

/* === Выбор героя перед забегом === */
.hero-sel-overlay { position: fixed; inset: 0; z-index: 1300; display: flex; align-items: center; justify-content: center; background: rgba(6,10,14,.82); backdrop-filter: blur(4px); padding: 16px; }
.hero-sel { position: relative; width: min(440px,95vw); padding: 20px 22px 22px; background: linear-gradient(180deg,#15212c,#0a1119); border: 2px solid #c9a24c; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.6); text-align: center; }
.hero-sel .cabinet-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(201,162,76,.5); background: rgba(8,18,16,.7); color: #ffe09a; font-size: 16px; cursor: pointer; z-index: 2; }
.hero-sel-list { display: flex; justify-content: center; gap: 12px; margin: 6px 0 14px; }
.hero-pick { position: relative; width: 200px; padding: 12px; border-radius: 14px; border: 2px solid rgba(201,162,76,.5); background: linear-gradient(180deg,rgba(40,58,40,.5),rgba(16,26,18,.8)); cursor: pointer; transition: transform .12s, border-color .12s, box-shadow .12s; }
.hero-pick.is-active, .hero-pick:hover { border-color: #ffd46f; box-shadow: 0 0 22px rgba(255,200,90,.3); transform: translateY(-2px); }
.hero-pick-art { display: block; width: 120px; height: 150px; margin: 0 auto 8px; background-size: contain; background-position: center bottom; background-repeat: no-repeat; }
.hero-pick b { display: block; font-family: var(--font-title); font-size: 16px; color: #ffe7ad; }
.hero-pick-pet { font-size: 12px; color: #bfe0c0; font-weight: 700; }
.hero-pick small { display: block; font-size: 11px; color: #bcae8a; margin-top: 3px; }
.hero-sel-start { margin-top: 4px; width: 100%; padding: 12px; border: none; border-radius: 12px; font-weight: 800; font-size: 15px; color: #2a1c08; background: linear-gradient(180deg,#ffe9af,#d49b3c); cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.4); }
.hero-sel-start:hover { filter: brightness(1.05); }
.codex-overlay { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; background: rgba(6,12,11,.82); backdrop-filter: blur(3px); padding: 16px; }
.codex-screen { position: relative; width: min(640px,96vw); max-height: 92vh; overflow-y: auto; padding: 20px 22px 22px; background: linear-gradient(180deg,#241a0e,#15100a); border: 2px solid #c9a24c; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.6); }
.codex-screen .cabinet-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(201,162,76,.5); background: rgba(8,18,16,.7); color: #ffe09a; font-size: 16px; cursor: pointer; z-index: 2; }
.codex-list { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.codex-entry { padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(201,162,76,.3); background: rgba(40,30,16,.5); }
.codex-entry.is-locked { opacity: .58; }
.codex-entry-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 5px; }
.codex-entry-head b { color: #ffe09a; font-family: var(--font-title); font-size: 15px; }
.codex-entry-text { margin: 0; color: #e7d8b6; font-size: 13px; line-height: 1.42; }
.codex-tag { flex: 0 0 auto; font-size: 10px; font-weight: 800; letter-spacing: .05em; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.tag-fact { background: rgba(120,200,120,.24); color: #bfe6a0; border: 1px solid rgba(140,220,120,.4); }
.tag-recon { background: rgba(120,180,220,.22); color: #a8d4f0; border: 1px solid rgba(120,180,220,.4); }
.tag-legend { background: rgba(255,200,90,.22); color: #ffd98a; border: 1px solid rgba(255,200,90,.45); }
.tag-fiction { background: rgba(160,160,160,.2); color: #cfcfcf; border: 1px solid rgba(180,180,180,.35); }
.wm-cell-note { margin: 10px 0 0; font-size: 11.5px; color: #bcd0c7; line-height: 1.4; }

/* === A5: тайлы биомов на клетках + пины-картинки на регионах === */
.wm-cell.has-tile { background-size: cover !important; background-position: center !important; background-repeat: no-repeat; }
.wm-cell.has-tile .wm-cell-name, .wm-cell.has-tile .wm-cell-biome, .wm-cell.has-tile .wm-cell-ico { text-shadow: 0 1px 3px rgba(0,0,0,.85), 0 0 2px rgba(0,0,0,.7); }
.wm-cell.has-tile .wm-cell-biome { color: #f3e6c6; }
/* пины регионов — реальные картинки (золото/бронза) */
.wm-zone-pin { width: 24px !important; height: 30px !important; background: none !important; box-shadow: none !important; bottom: -24px !important; background-image: url('/assets/museum_v7/ui/pin_open.png') !important; background-size: contain; background-repeat: no-repeat; background-position: center; }
.wm-zone.is-soon .wm-zone-pin { background-image: url('/assets/museum_v7/ui/pin_locked.png') !important; }
.wm-zone.is-soon .wm-zone-pin::after { display: none !important; }

/* ================================================================
   ХРАНИТЕЛЬ МУЗЕЯ — единый адаптивный блок (2026-06-25).
   Чинит обрезание/пустоты на разных мониторах. Заменяет
   фикс-высоты портрета/свитка и магическое calc(100svh-134px):
   - оболочка музея = flex-колонка, main сам заполняет остаток
     под верхней панелью ЛЮБОЙ высоты (без магических чисел);
   - панель Хранителя = текучая колонка: портрет и свиток
     заполняют/сжимаются, «Дела музея» скроллятся внутри,
     кнопка всегда видна снизу. Должно идти ПОСЛЕДНИМ в файле.
   ================================================================ */
@media (min-width: 761px) {
  .museum-shell.museum-ui-final {
    display: flex !important;
    flex-direction: column !important;
    height: 100svh !important;
    min-height: 100svh !important;
    overflow: hidden !important;
  }
  .museum-ui-final .top-hud { flex: 0 0 auto !important; }
  .museum-ui-final .museum-main {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }
}
.museum-ui-final .keeper-panel {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 0 !important;
  gap: clamp(6px, 1.1vh, 12px) !important;
  padding: clamp(8px, 0.9vw, 14px) !important;
  overflow: hidden !important;
}
.museum-ui-final .keeper-panel > .keeper-head { flex: 0 0 auto !important; }
.museum-ui-final .keeper-panel > .keeper-art {
  flex: 0 0 auto !important;
  height: clamp(110px, 18svh, 225px) !important;   /* портрет компактнее, особенно на низких экранах */
  min-height: 0 !important;
  max-height: 34% !important;                       /* не съедать больше трети панели */
}
.museum-ui-final .keeper-panel > .keeper-scroll {
  flex: 1 1 auto !important;                         /* свиток забирает всё оставшееся место */
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.museum-ui-final .keeper-panel > .keeper-scroll > .keeper-speech { flex: 0 0 auto !important; }
.museum-ui-final .keeper-panel > .keeper-scroll > .keeper-tasks {
  flex: 0 1 auto !important;
  min-height: 0 !important;
  overflow: visible !important;          /* без мерзкого скролла — всё влезает за счёт авто-фита */
}
.museum-ui-final .keeper-panel > .keeper-cta { flex: 0 0 auto !important; }

/* Авто-фит текста Хранителя: размер шрифта масштабируется переменной --kf
   (её ставит JS fitKeeperPanel), читаемый «средний» базовый размер, ужимается
   только если контент не влезает в свиток. Скроллбаров нет. */
.museum-ui-final .keeper-panel { --kf: 1; }
.museum-ui-final .keeper-panel .keeper-speech {
  font-size: calc(15.5px * var(--kf, 1)) !important;
  line-height: 1.42 !important;
}
.museum-ui-final .keeper-panel .keeper-tasks-title {
  font-size: calc(13.5px * var(--kf, 1)) !important;
}
.museum-ui-final .keeper-panel .keeper-tasks .task-card {
  font-size: calc(13px * var(--kf, 1)) !important;
  min-height: 0 !important;
}
.museum-ui-final .keeper-panel .keeper-tasks .task-card * {
  white-space: normal !important;        /* не обрезать «Библиоте…», переносить */
}

/* ================================================================
   ВЕРХНЯЯ ПАНЕЛЬ — адаптив без наложений (2026-06-25).
   Было: ресурсы-капсулы в один ряд (nowrap) -> на узком окне
   вылезали за центр и налезали на профиль (уровень/кнопки).
   Стало: ресурсы переносятся; на узких экранах лого+профиль
   сверху, ресурсы — отдельной строкой. Идёт ПОСЛЕДНИМ.
   ================================================================ */
.museum-ui-final .top-hud .museum-bottom {
  flex-wrap: wrap !important;          /* капсулы переносятся, не налезают */
  row-gap: 6px !important;
}
@media (max-width: 1180px) {
  .museum-ui-final .top-hud { gap: 10px !important; }
  .museum-ui-final .top-hud .museum-logo { width: clamp(150px, 12vw, 230px) !important; }
}
@media (max-width: 820px) {
  .museum-ui-final .top-hud {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    grid-template-areas: "logo profile" "center center" !important;
    align-items: center !important;
    row-gap: 8px !important;
  }
  .museum-ui-final .top-hud > .museum-logo { grid-area: logo !important; }
  .museum-ui-final .top-hud > .museum-profile { grid-area: profile !important; justify-self: end !important; }
  .museum-ui-final .top-hud > .hud-center { grid-area: center !important; }
  .museum-ui-final .top-hud .museum-bottom { justify-content: center !important; }
}

/* ================================================================
   ВЕРХНЯЯ ПАНЕЛЬ v3 (2026-06-25): «Карта» вынесена в правый кластер,
   стилизуем её как чистый золотой пилл (старые .museum-bottom стили
   не наследуются). + компактный режим на средних/узких экранах,
   чтобы все 6 ресурсов влезали в ОДИН ряд (подписи прячем, иконка=смысл).
   Идёт ПОСЛЕДНИМ.
   ================================================================ */
.museum-ui-final .top-hud .museum-profile .hud-map-btn {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  height: 48px !important; min-height: 48px !important; padding: 0 20px !important;
  border: 1.5px solid rgba(214,178,96,.85) !important; border-radius: 40px !important;
  background: linear-gradient(180deg, #f0cf7a, #d89b37) !important;
  color: #2a1c08 !important; font-family: var(--font-title, serif) !important;
  font-weight: 800 !important; font-size: 15px !important; white-space: nowrap !important;
  cursor: pointer !important; position: static !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 4px 12px rgba(0,0,0,.35) !important;
}
.museum-ui-final .top-hud .museum-profile .hud-map-btn .heroes-btn-icon {
  position: static !important; width: auto !important; height: auto !important;
  left: auto !important; font-size: 20px !important; filter: none !important;
}
.museum-ui-final .top-hud .museum-profile .hud-map-btn:hover { filter: brightness(1.06) !important; transform: translateY(-1px) !important; }

/* Компактный режим: все 6 ресурсов в один ряд */
@media (max-width: 1320px) {
  .museum-ui-final .top-hud .hud-capsule .capsule-value small { display: none !important; } /* подписи скрыты — иконка передаёт смысл */
  .museum-ui-final .top-hud .hud-capsule {
    height: 46px !important; min-height: 46px !important; max-height: 46px !important;
    padding: 0 13px 0 42px !important;
  }
  .museum-ui-final .top-hud .hud-capsule .capsule-socket { left: 5px !important; width: 34px !important; height: 34px !important; }
  .museum-ui-final .top-hud .hud-capsule .capsule-icon-img { width: 34px !important; height: 34px !important; }
  .museum-ui-final .top-hud .hud-capsule .capsule-value b { font-size: 15px !important; line-height: 1 !important; }
  .museum-ui-final .top-hud .museum-bottom { gap: 6px !important; }
  .museum-ui-final .top-hud .museum-logo { width: clamp(130px, 10vw, 190px) !important; }
  .museum-ui-final .top-hud .museum-profile { gap: 10px !important; }
  .museum-ui-final .top-hud .museum-profile .hud-map-btn { height: 44px !important; min-height: 44px !important; font-size: 14px !important; padding: 0 16px !important; }
}

/* ================================================================
   МЕНЮ КОМНАТ — единый премиальный стиль (Этап 1 «упаковка», 2026-06-25).
   Причёсывает разом: обмен / витрина / реставрация / исследования /
   команда / заказы. Изумрудно-золотая тема как у верхних капсул.
   Идёт ПОСЛЕДНИМ.
   ================================================================ */
.room-zone-panel { padding: 20px 22px 22px !important; }
.room-zone-panel .rz-head { align-items: center !important; margin-bottom: 14px !important; padding-bottom: 18px !important; }
.room-zone-panel .rz-head h2 { font-size: 23px !important; color: #ffe9c0 !important; }
.room-zone-panel .rz-head span {
  font-size: 12px !important; color: #e7d6ac !important; font-weight: 800 !important;
  padding: 3px 11px !important; border: 1px solid rgba(201,162,76,.45) !important;
  border-radius: 999px !important; background: rgba(201,162,76,.12) !important;
}
/* строки-карточки: глубина, золотая окантовка, ховер */
.room-zone-panel .rq-find,
.room-zone-panel .rs-node,
.room-zone-panel .sc-coll,
.room-zone-panel .rz-order {
  padding: 11px 14px !important; border-radius: 13px !important;
  border: 1px solid rgba(201,162,76,.30) !important;
  background: linear-gradient(180deg, rgba(24,50,42,.88), rgba(9,20,16,.93)) !important;
  box-shadow: inset 0 1px 0 rgba(255,238,190,.08) !important;
  transition: border-color .14s ease, transform .12s ease !important;
}
.room-zone-panel .rq-find:hover,
.room-zone-panel .rs-node:hover,
.room-zone-panel .rz-order:hover { border-color: rgba(201,162,76,.62) !important; transform: translateY(-1px) !important; }
.room-zone-panel .sc-coll.is-done,
.room-zone-panel .rs-node.is-owned { border-color: rgba(120,210,150,.55) !important; background: linear-gradient(180deg, rgba(28,72,48,.6), rgba(10,30,20,.85)) !important; }
.room-zone-panel .rq-find-title,
.room-zone-panel .rs-node-body strong,
.room-zone-panel .sc-coll-title { font-size: 14px !important; color: #f4ead0 !important; }
.room-zone-panel .rq-find-title small,
.room-zone-panel .rs-node-desc { font-size: 11.5px !important; color: #b9b094 !important; }
/* кнопки действий — единый золотой пилл (зелёный = «забрать/готово») */
.room-zone-panel .rq-start,
.room-zone-panel .rq-exhibit,
.room-zone-panel .rs-btn,
.room-zone-panel .rz-order-btn {
  padding: 9px 18px !important; border-radius: 999px !important; font-weight: 800 !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  background: linear-gradient(180deg, #f0cf7a, #d89b37) !important; color: #2a1c08 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 4px 12px rgba(0,0,0,.32) !important;
  transition: filter .12s ease, transform .1s ease !important;
}
.room-zone-panel .rq-claim { border-radius: 999px !important; background: linear-gradient(180deg, #9ff0bf, #4cae74) !important; color: #06210f !important; font-weight: 800 !important; }
.room-zone-panel .rq-start:hover:not(:disabled),
.room-zone-panel .rq-exhibit:hover:not(:disabled),
.room-zone-panel .rs-btn:hover:not(:disabled),
.room-zone-panel .rz-order-btn:hover:not(:disabled) { filter: brightness(1.07) !important; transform: translateY(-1px) !important; }
.room-zone-panel button:disabled { filter: grayscale(.55) !important; opacity: .5 !important; }
/* бейджи состояний — пилл */
.room-zone-panel .rs-status { padding: 4px 11px !important; border-radius: 999px !important; font-weight: 800 !important; font-size: 12px !important; }
.room-zone-panel .rs-status.is-free { background: rgba(80,200,120,.16) !important; color: #8fe7aa !important; border: 1px solid rgba(80,200,120,.42) !important; }
.room-zone-panel .rs-status.is-busy { background: rgba(230,180,90,.16) !important; color: #ffce7a !important; border: 1px solid rgba(230,180,90,.42) !important; }
/* заголовки секций / тиров */
.room-zone-panel .rq-section-head h3,
.room-zone-panel .rs-tier-h { color: #e8b96a !important; }
.room-zone-panel .rz-soon-dim { color: #9aa890 !important; }
/* коллекции: миниатюра крупнее */
.room-zone-panel .sc-coll { display: flex !important; gap: 12px !important; align-items: center !important; }
.room-zone-panel .sc-coll-thumb { width: 46px !important; height: 46px !important; border-radius: 10px !important; background-size: cover !important; background-position: center !important; border: 1px solid rgba(201,162,76,.45) !important; flex: 0 0 auto !important; }
.room-zone-panel .sc-coll-bar span { background: linear-gradient(90deg, #f0cf7a, #d89b37) !important; }
/* аккуратный тонкий скролл */
.room-zone-panel .rq-finds,
.room-zone-panel .rs-tree,
.room-zone-panel .sc-collections { max-height: min(46vh, 340px) !important; scrollbar-width: thin !important; scrollbar-color: rgba(201,162,76,.5) transparent !important; }
.room-zone-panel .rq-finds::-webkit-scrollbar,
.room-zone-panel .rs-tree::-webkit-scrollbar,
.room-zone-panel .sc-collections::-webkit-scrollbar { width: 6px !important; }
.room-zone-panel .rq-finds::-webkit-scrollbar-thumb,
.room-zone-panel .rs-tree::-webkit-scrollbar-thumb,
.room-zone-panel .sc-collections::-webkit-scrollbar-thumb { background: rgba(201,162,76,.5) !important; border-radius: 6px !important; }

/* ================================================================
   ОНБОРДИНГ (Этап 2): «Дела музея» как обучающая цепочка.
   Текущий шаг (первая задача) заметно подсвечен + клик ведёт
   прямо в нужную комнату (логика в actions.js). Идёт ПОСЛЕДНИМ.
   ================================================================ */
.museum-ui-final .keeper-tasks .task-card { cursor: pointer !important; }
.museum-ui-final .keeper-tasks .task-card:hover { transform: translateY(-1px) !important; filter: brightness(1.04) !important; }
.museum-ui-final .keeper-tasks .task-card.is-primary {
  border: 1px solid rgba(255,212,111,.7) !important;
  background: linear-gradient(180deg, rgba(48,40,16,.55), rgba(20,16,6,.6)) !important;
  animation: kkTaskPulse 2.6s ease-in-out infinite;
}
.museum-ui-final .keeper-tasks .task-card.is-primary::after {
  content: 'СЕЙЧАС'; position: absolute; top: -7px; right: 10px;
  font-size: 8.5px; font-weight: 900; letter-spacing: .08em; color: #2a1c08;
  background: linear-gradient(180deg, #f0cf7a, #d89b37); padding: 1px 7px; border-radius: 999px;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
}
.museum-ui-final .keeper-tasks .task-card { position: relative; }
.museum-ui-final .keeper-tasks .task-card.is-primary.is-done::after { content: '✓ ГОТОВО'; background: linear-gradient(180deg, #9ff0bf, #4cae74); color: #06210f; }
@keyframes kkTaskPulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255,212,111,.28), 0 5px 16px rgba(0,0,0,.32); }
  50% { box-shadow: 0 0 0 2px rgba(255,212,111,.5), 0 6px 20px rgba(0,0,0,.4); }
}

/* ================================================================
   ЭТАП 3 — единый визуальный язык + анимации-отклики (2026-06-25).
   1) Красивый тост уведомлений. 2) «+N» и пульс капсулы при награде.
   Уважает prefers-reduced-motion. Идёт ПОСЛЕДНИМ.
   ================================================================ */
.toast {
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(22px);
  z-index: 600; max-width: min(460px, 92vw); padding: 13px 22px;
  border-radius: 14px; border: 1px solid rgba(201,162,76,.62);
  background: linear-gradient(180deg, rgba(26,52,44,.98), rgba(10,20,16,.99));
  color: #f4ead0; font-weight: 700; font-size: 14px; line-height: 1.35; text-align: center;
  box-shadow: 0 18px 44px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,238,190,.12);
  opacity: 0; pointer-events: none;
  transition: opacity .24s ease, transform .26s cubic-bezier(.2,.9,.3,1.25);
}
.toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

/* прирост ресурса: «+N» всплывает + капсула пульсит золотом */
.hud-capsule { position: relative; }
.hud-gain-pop {
  position: absolute; top: -4px; right: 14px; pointer-events: none; z-index: 40;
  color: #9ff0bf; font-weight: 900; font-size: 13.5px; white-space: nowrap;
  text-shadow: 0 1px 4px rgba(0,0,0,.7), 0 0 10px rgba(120,230,150,.5);
  animation: hudGainPop 1.05s ease-out forwards;
}
@keyframes hudGainPop {
  0% { opacity: 0; transform: translateY(7px) scale(.8); }
  18% { opacity: 1; transform: translateY(0) scale(1.05); }
  100% { opacity: 0; transform: translateY(-24px) scale(1); }
}
.hud-capsule.is-gain { animation: hudGainPulse .62s ease; }
.hud-capsule.is-gain .capsule-value b { color: #fff6cf !important; text-shadow: 0 0 12px rgba(255,222,130,.85) !important; }
@keyframes hudGainPulse {
  0%, 100% { transform: scale(1); }
  35% { transform: scale(1.07); }
}

@media (prefers-reduced-motion: reduce) {
  .toast { transition: opacity .2s ease !important; transform: translateX(-50%) !important; }
  .toast.is-visible { transform: translateX(-50%) !important; }
  .hud-gain-pop, .hud-capsule.is-gain { animation: none !important; }
  .hud-gain-pop { opacity: 1; }
}

/* ================================================================
   ЭТАП 3 пасс#2 — левел-ап, пустые состояния, когезия (2026-06-25).
   Идёт ПОСЛЕДНИМ.
   ================================================================ */
/* --- Левел-ап музея --- */
.hud-level-wreath { position: relative; }
.hud-level-wreath.is-levelup { animation: lvlBadgePulse 1.4s ease; }
@keyframes lvlBadgePulse {
  0%, 100% { transform: scale(1); filter: none; }
  30% { transform: scale(1.18); filter: drop-shadow(0 0 14px rgba(255,212,111,.95)); }
}
.lvl-pop { color: #ffd46f !important; text-shadow: 0 1px 4px rgba(0,0,0,.7), 0 0 10px rgba(255,212,111,.6) !important; }
.levelup-banner {
  position: fixed; left: 50%; top: 13%; transform: translateX(-50%);
  z-index: 650; display: flex; flex-direction: column; align-items: center; gap: 1px;
  padding: 14px 32px; border-radius: 16px; pointer-events: none; text-align: center;
  background: linear-gradient(180deg, rgba(48,40,14,.97), rgba(20,14,4,.98));
  border: 1px solid rgba(255,212,111,.7);
  box-shadow: 0 18px 50px rgba(0,0,0,.6), 0 0 34px rgba(255,212,111,.28);
  animation: levelupIn 2.2s ease forwards;
}
.levelup-banner b { font-family: var(--font-title, serif); font-size: 23px; color: #ffe9c0; }
.levelup-banner small { font-size: 11px; color: #cabfa3; letter-spacing: .05em; text-transform: uppercase; }
.lvl-spark { font-size: 21px; color: #ffd46f; text-shadow: 0 0 12px rgba(255,212,111,.85); }
@keyframes levelupIn {
  0% { opacity: 0; transform: translateX(-50%) translateY(-14px) scale(.9); }
  12%, 80% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-10px) scale(1); }
}

/* --- Пустые состояния: иконка + аккуратная подача (не сухой текст) --- */
.room-zone-panel .rq-empty {
  display: flex !important; flex-direction: column !important; align-items: center !important; gap: 8px !important;
  padding: 26px 18px !important; text-align: center !important;
  color: #aebaa6 !important; font-size: 13px !important;
  border: 1px dashed rgba(201,162,76,.35) !important; border-radius: 14px !important;
  background: rgba(255,255,255,.02) !important;
}
.room-zone-panel .rq-empty::before {
  content: '✦'; font-size: 26px; color: rgba(201,162,76,.7);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.4));
}

/* --- Когезия: единый фокус и плавность для всех кнопок --- */
.museum-ui-final .button,
.museum-ui-final .cabinet-btn,
.museum-ui-final .keeper-cta,
.room-zone-panel button,
.howto-cta, .cabinet-btn,
.museum-ui-final .ui-settings-btn {
  transition: filter .12s ease, transform .1s ease, box-shadow .14s ease !important;
}
.museum-ui-final .button:focus-visible,
.museum-ui-final .cabinet-btn:focus-visible,
.museum-ui-final .keeper-cta:focus-visible,
.room-zone-panel button:focus-visible,
.howto-cta:focus-visible,
.museum-ui-final .ui-settings-btn:focus-visible,
.museum-ui-final .top-hud .hud-map-btn:focus-visible {
  outline: 2px solid rgba(255,212,111,.85) !important; outline-offset: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
  .hud-level-wreath.is-levelup, .levelup-banner { animation: none !important; }
  .levelup-banner { opacity: 1; }
}

/* ================================================================
   ФИКС меню зон (Лавка обмена и др.): кнопка закрытия кривая/не
   везде кликалась + текст налезал на рамку (2026-06-25). ПОСЛЕДНИМ.
   ================================================================ */
/* Кнопка закрытия — чистый круглый таргет, кликается целиком, поверх всего */
.museum-ui-final .cabinet-modal.room-zone-panel .cabinet-close {
  top: 38px !important; right: 38px !important;
  width: 42px !important; height: 42px !important;
  border-radius: 50% !important; z-index: 12 !important; padding: 0 !important;
  border: 1px solid rgba(255,224,150,.6) !important;
  background: rgba(8,20,18,.9) !important;
  display: grid !important; place-items: center !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.45) !important;
}
.museum-ui-final .cabinet-modal.room-zone-panel .cabinet-close .cabinet-close-img { display: none !important; }
.museum-ui-final .cabinet-modal.room-zone-panel .cabinet-close::after {
  content: '✕'; color: #ffe09a; font-size: 18px; font-weight: 800; line-height: 1;
}
.museum-ui-final .cabinet-modal.room-zone-panel .cabinet-close:hover { background: rgba(44,32,16,.95) !important; transform: scale(1.08) !important; }
/* Контент дальше от рамки + заголовок не лезет под крестик */
.museum-ui-final .cabinet-modal.room-zone-panel { padding: 26px 40px 40px !important; }
.museum-ui-final .cabinet-modal.room-zone-panel .rz-head { margin: 0 50px 12px 4px !important; }
.museum-ui-final .cabinet-modal.room-zone-panel .rz-soon-dim,
.museum-ui-final .cabinet-modal.room-zone-panel .rq-finds,
.museum-ui-final .cabinet-modal.room-zone-panel .rs-tree,
.museum-ui-final .cabinet-modal.room-zone-panel .sc-collections,
.museum-ui-final .cabinet-modal.room-zone-panel .rz-orders-list { padding: 0 2px !important; }

/* ================================================================
   ИКОНКИ-МЕДАЛЬОНЫ в строках меню (вместо эмодзи) — 2026-06-25. ПОСЛЕДНИМ.
   ================================================================ */
.room-zone-panel .rq-find { gap: 12px !important; }
.room-zone-panel .rq-med {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  background: radial-gradient(circle at 50% 32%, rgba(255,228,160,.24), rgba(8,20,16,.65));
  border: 1px solid rgba(201,162,76,.55);
  box-shadow: inset 0 1px 0 rgba(255,238,190,.18), 0 2px 7px rgba(0,0,0,.38);
}
.room-zone-panel .rq-med-img { width: 30px; height: 30px; object-fit: contain; }
.room-zone-panel .rq-find-title { flex: 1 1 auto; min-width: 0; }
.rq-cost-ico { width: 13px; height: 13px; object-fit: contain; vertical-align: -2px; display: inline-block; margin-left: 1px; }

/* ================================================================
   Лавка обмена — наглядно «золото → ресурс» + медальоны в заказах/
   исследованиях/команде (2026-06-25). ПОСЛЕДНИМ.
   ================================================================ */
.room-zone-panel .ex-row { gap: 10px !important; }
.ex-give { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.ex-coin { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto;
  background: radial-gradient(circle at 50% 32%, rgba(255,228,160,.28), rgba(8,20,16,.65)); border: 1px solid rgba(201,162,76,.5); }
.ex-coin .rq-med-img { width: 23px; height: 23px; object-fit: contain; }
.ex-give > b { font-size: 16px; color: #ffe9c0; font-variant-numeric: tabular-nums; }
.ex-arrow { flex: 0 0 auto; color: #c9a24c; font-size: 17px; font-weight: 900; }
.ex-get { display: inline-flex; align-items: center; gap: 9px; flex: 1 1 auto; min-width: 0; }
.ex-get-tx { display: flex; flex-direction: column; line-height: 1.12; }
.ex-get-tx b { font-size: 16px; color: #f4ead0; }
.ex-get-tx small { font-size: 11px; color: #b9b094; }
/* медальон не сжимается, текстовый блок занимает остаток */
.room-zone-panel .rs-node-body { flex: 1 1 auto !important; min-width: 0 !important; }
.room-zone-panel .rz-order-main { flex: 1 1 auto !important; min-width: 0 !important; }

/* === Прокачка персонажей (Команда) === */
.hero-lvl { color: #ffd46f; font-size: 12px; font-weight: 900; }
.room-zone-panel .hero-up-btn { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; line-height: 1.06 !important; padding: 7px 15px !important; }
.room-zone-panel .hero-up-btn small { font-size: 9.5px; opacity: .82; font-weight: 700; }

/* === Уровень героя в галерее === */
.heroes-card { position: relative; }
.heroes-card__lvl { position: absolute; top: 8px; left: 8px; z-index: 3; padding: 2px 9px; border-radius: 999px; font-size: 10.5px; font-weight: 900; color: #2a1c08; background: linear-gradient(180deg, #f0cf7a, #d89b37); box-shadow: 0 2px 6px rgba(0,0,0,.45); }
.heroes-detail__name .hero-lvl { font-size: 14px; vertical-align: 2px; }

/* === Ежедневный бонус + Достижения === */
.daily-modal { width: min(440px, 94vw) !important; text-align: center; }
.daily-reward { display: flex; justify-content: center; gap: 14px; margin: 18px 0 6px; }
.daily-chip { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 16px; border-radius: 14px; border: 1px solid rgba(201,162,76,.5); background: rgba(255,255,255,.04); min-width: 72px; }
.daily-ico { width: 38px; height: 38px; object-fit: contain; }
.daily-chip b { color: #ffe9c0; font-size: 16px; font-weight: 900; }
.ach-row .rq-find-title { gap: 3px; }
.ach-bar { display: block; height: 5px; border-radius: 3px; background: rgba(255,255,255,.12); margin-top: 6px; overflow: hidden; max-width: 240px; }
.ach-bar b { display: block; height: 100%; background: linear-gradient(90deg, #f0cf7a, #d89b37); }
.ach-prog { font-size: 12px; font-weight: 800; color: #c8b88a; white-space: nowrap; }
.room-zone-panel .ach-row.is-done { border-color: rgba(255,212,111,.55) !important; }

/* === Иконка-медальон в заголовке панели (вместо эмодзи) === */
.room-zone-panel .rz-head h2 { display: inline-flex !important; align-items: center !important; gap: 9px !important; }
.rz-head-ico { display: inline-grid; place-items: center; width: 30px; height: 30px; flex: 0 0 auto; }
.rz-head-ico-img { width: 27px; height: 27px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }

/* === Мелочи: читаемость текста в меню комнат === */
.room-zone-panel .rs-node-desc { color: #d2c7ab !important; font-size: 12px !important; }
.room-zone-panel .rz-soon-dim { color: #c3b894 !important; }
.room-zone-panel .rq-find-title small { color: #c3b894 !important; }
.room-zone-panel .rz-order-meta { color: #b6ac8e !important; }

/* === Иконки зон через background-image (ic_* лежат прямым путём) === */
.rz-head-ico { background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important; }
.rq-med .rq-med-bg { width: 30px; height: 30px; display: block; background-size: contain; background-position: center; background-repeat: no-repeat; }
.rz-head-ico-mf { background: none !important; display: inline-grid !important; place-items: center !important; }

/* === «Знания музея» (Библиотека): энциклопедия — об игре / слои / артефакты / герои === */
.knw-panel { max-width: 720px; }
.knw-panel .dev-pane { max-height: 56vh; overflow-y: auto; padding-right: 6px; }
.knw-sec { margin: 16px 2px 6px; font: 700 13px/1.2 var(--font-title, Georgia, serif); color: #e8c163; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid rgba(222,178,96,.25); padding-bottom: 5px; }
.knw-row { display: flex; gap: 11px; align-items: flex-start; padding: 8px 4px; border-bottom: 1px dashed rgba(222,178,96,.14); }
.knw-row i { font-style: normal; font-size: 19px; flex: 0 0 auto; line-height: 1.2; }
.knw-row b { display: block; font-size: 13.5px; color: #f2e7cd; }
.knw-row small { display: block; color: #b9b09a; font-size: 12.5px; line-height: 1.4; }
.knw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 10px; margin: 8px 0; }
.knw-art { background: rgba(20,34,26,.75); border: 1px solid rgba(222,178,96,.28); border-radius: 12px; padding: 9px; text-align: center; }
.knw-art .im { display: block; width: 100%; aspect-ratio: 1; border-radius: 9px; background: #0c130f center/cover no-repeat; margin-bottom: 7px; border: 1px solid rgba(222,178,96,.2); }
.knw-art b { display: block; font-size: 12px; color: #f2e7cd; line-height: 1.25; }
.knw-art small { color: #b9b09a; font-size: 11px; }
.knw-hero { display: flex; gap: 13px; align-items: flex-start; background: rgba(20,34,26,.75); border: 1px solid rgba(222,178,96,.28); border-radius: 13px; padding: 12px; margin: 9px 0; }
.knw-hero .hp { flex: 0 0 auto; width: 82px; height: 82px; border-radius: 12px; background: #0c130f center/cover no-repeat; border: 2px solid rgba(222,178,96,.45); }
.knw-hero b { font-size: 16px; color: #ffe1a0; }
.knw-hero small { display: block; color: #c9c0aa; font-size: 12.5px; line-height: 1.4; margin-top: 3px; }
.knw-hero .knw-role { display: inline; color: #8fbf9f; margin-left: 6px; }
.knw-hero .knw-sk { color: #e8c163; }

/* === Галерея Тавриды: полки по тирам + полёт экспоната на полку === */
.shelf { border: 1px solid rgba(222,178,96,.28); border-radius: 12px; padding: 10px 12px; margin: 8px 0; background: rgba(20,34,26,.6); }
.shelf-super { border-color: rgba(255,215,90,.65); box-shadow: 0 0 14px rgba(255,205,80,.12) inset; }
.shelf-legend { border-color: rgba(222,178,96,.45); }
.shelf-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.shelf-head b { color: #ffe1a0; font-size: 13.5px; }
.shelf-head small { color: #b9b09a; font-size: 11.5px; }
.shelf-items { display: flex; flex-wrap: wrap; gap: 6px; }
.shelf-card { background: linear-gradient(180deg, rgba(48,64,50,.9), rgba(22,36,28,.95)); border: 1px solid rgba(222,178,96,.35); border-radius: 8px; padding: 4px 9px; font-size: 12px; color: #f2e7cd; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shelf-empty { color: #7c8a86; font-size: 12px; font-style: italic; padding: 4px 2px; }
.rq-find.is-flying { animation: shelfFly .5s ease-in forwards; pointer-events: none; }
@keyframes shelfFly {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  35% { transform: translateY(-14px) scale(1.04); opacity: 1; }
  100% { transform: translateY(-70px) scale(.6); opacity: 0; }
}

/* === Карта Крыма: режим «Слои времени» === */
.wm-tabbar { display: flex; gap: 6px; margin: 10px 0 12px; }
.wm-tab { flex: 1; padding: 9px 10px; border-radius: 10px; border: 1px solid rgba(222,178,96,.35); background: rgba(20,30,24,.7); color: #d8cdb2; font: 700 13px/1 system-ui, sans-serif; cursor: pointer; transition: all .15s; }
.wm-tab.is-active { background: linear-gradient(180deg, #d9b53e, #b8922f); color: #20180a; border-color: #ffe39a; }
.wm-ov-layers { display: flex; flex-direction: column; gap: 8px; }
.wm-layercard { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 12px; border: 1px solid rgba(222,178,96,.3); background: rgba(18,28,22,.8); cursor: pointer; text-align: left; color: inherit; font-family: inherit; transition: border-color .15s; }
.wm-layercard:hover { border-color: var(--lc, #ffd46f); }
.wm-layercard.is-sel { border-color: var(--lc, #ffd46f); box-shadow: 0 0 0 1px var(--lc) inset, 0 0 18px rgba(232,193,99,.15); }
.wm-layercard.is-soon { opacity: .45; cursor: default; }
.wm-lc-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--lc, #7c8a86); box-shadow: 0 0 8px var(--lc, transparent); flex: 0 0 auto; }
.wm-lc-txt { flex: 1; min-width: 0; }
.wm-lc-txt b { display: block; font-size: 14px; color: #f2e7cd; }
.wm-lc-txt small { color: #b9b09a; font-size: 11.5px; }
.wm-lc-prog { font: 700 11px/1.2 system-ui, sans-serif; color: #e8c163; white-space: nowrap; }
.wm-crimea.is-layer-mode .wm-hub { opacity: .3; filter: saturate(.4); }
.wm-path { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 4; }
.wm-path polyline { fill: none; stroke-width: 3; stroke-dasharray: 7 7; vector-effect: non-scaling-stroke; opacity: .85; filter: drop-shadow(0 2px 4px rgba(0,0,0,.6)); animation: wmPathFlow 1.6s linear infinite; }
@keyframes wmPathFlow { to { stroke-dashoffset: -14; } }
.wm-locmark { position: absolute; z-index: 6; transform: translate(-50%, -50%); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--lc, #ffd46f); background: radial-gradient(circle at 40% 35%, #2c3a2e, #101c14); color: var(--lc, #ffd46f); font: 900 15px/1 system-ui, sans-serif; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.5), 0 0 14px rgba(232,193,99,.25); transition: transform .12s; }
.wm-locmark:hover { transform: translate(-50%, -50%) scale(1.15); }
.wm-locmark b { pointer-events: none; }
.wm-lm-cap { position: absolute; top: 110%; left: 50%; transform: translateX(-50%); background: rgba(10,16,12,.92); border: 1px solid rgba(222,178,96,.4); border-radius: 8px; padding: 3px 9px; white-space: nowrap; font: 700 11px/1.25 system-ui, sans-serif; color: #f2e7cd; pointer-events: none; }
.wm-lm-cap small { display: block; font-weight: 600; color: #b9b09a; font-size: 10px; }

/* Таблички комнат: длинные имена в две строки, текст по центру плашки */
.museum-ui-final .room-label .room-label__title { white-space: normal; max-width: 112px; line-height: 1.12; text-align: center; }
.museum-ui-final .room-label .rl-short,
.museum-ui-final .room-label .rl-full { white-space: normal; line-height: 1.12; }
.museum-ui-final .room-mark { flex-wrap: wrap; justify-content: center; }
