/* шапка выставки */
.exhibit-bar{flex-shrink:0;display:flex;align-items:center;gap:1.5rem;
  padding:0.85rem var(--pad);background:var(--surface);border-bottom:1px solid var(--line)}
.eb-back{color:var(--malachite-mid);text-decoration:none;font-size:0.9rem;white-space:nowrap}
.eb-title{font-size:1.15rem;font-weight:600;letter-spacing:-0.02em;white-space:nowrap}
.eb-status{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.72rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;color:var(--live);
  background:rgba(206,82,56,.08);padding:0.25rem 0.65rem;border-radius:var(--pill)}
.eb-dot{width:0.45rem;height:0.45rem;border-radius:50%;background:var(--live);
  animation:pulse 1.7s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
.eb-meta{font-size:0.85rem;color:var(--muted);white-space:nowrap}
.eb-meta b{color:var(--ink-2);font-weight:600}
.eb-links{display:flex;gap:0.5rem;margin-left:auto}
.eb-link{font-size:0.85rem;color:var(--ink-2);text-decoration:none;padding:0.5rem 1rem;
  border:1px solid var(--line);border-radius:var(--pill);white-space:nowrap;transition:all .15s}
.eb-link:hover{border-color:var(--malachite-line);color:var(--malachite)}
.eb-link.primary{background:var(--malachite);color:var(--surface);border-color:var(--malachite)}

/* рабочее пространство холла */
.hall{flex:1;position:relative;overflow:hidden;background:
  radial-gradient(circle at 30% 20%, var(--line-soft), var(--stone) 60%)}

/* полотно зала (зумится/пануется) */
.world{position:absolute;top:0;left:0;width:2880px;height:1800px;
  transform-origin:0 0;cursor:grab}
.world.dragging{cursor:grabbing}
.world.dragging *{pointer-events:none}

/* зона-павильон */
.zone{position:absolute;border:1.5px dashed var(--malachite-line);border-radius:16px;
  background:rgba(var(--surface-rgb),.35)}
.zone-label{position:absolute;top:-0.6rem;left:1.2rem;background:var(--stone);
  padding:0.15rem 0.7rem;font-size:0.8rem;font-weight:600;color:var(--malachite);
  letter-spacing:-0.01em;border-radius:var(--pill)}

/* стенд */
.booth{position:absolute;border-radius:11px;background:var(--surface);
  border:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;
  align-items:flex-start;justify-content:flex-start;gap:5px;padding:11px 12px;overflow:hidden;
  transition:transform .12s,box-shadow .12s,border-color .12s;text-align:left}
.booth:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(var(--ink-rgb),.14);
  border-color:var(--malachite-mid);z-index:5}
.booth.premium{background:var(--malachite);border-color:var(--malachite-deep)}
.booth.premium .booth-logo{background:rgba(var(--surface-rgb),.18);color:var(--surface)}
.booth.premium .booth-name{color:var(--surface)}
.booth.premium .booth-tag{color:var(--malachite-line)}
.booth.premium .booth-foot{color:var(--malachite-line);border-color:rgba(var(--surface-rgb),.15)}
.booth-top{display:flex;align-items:center;gap:8px;width:100%}
.booth-logo{width:2.3rem;height:2.3rem;border-radius:8px;background:var(--malachite-soft);
  color:var(--malachite);display:flex;align-items:center;justify-content:center;
  font-size:0.82rem;font-weight:700;flex-shrink:0}
.booth-head{min-width:0;flex:1}
.booth-name{font-size:0.82rem;font-weight:600;line-height:1.15;letter-spacing:-0.01em;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booth-tag{font-size:0.68rem;color:var(--muted);line-height:1.2;margin-top:1px;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booth-foot{display:flex;align-items:center;gap:0.5rem;width:100%;margin-top:auto;
  padding-top:6px;border-top:1px solid var(--line-soft);font-size:0.6rem;color:var(--muted-2)}
.booth-foot .on{display:inline-flex;align-items:center;gap:0.25rem;color:var(--malachite-mid);font-weight:600}
.booth-foot .on::before{content:"";width:0.42rem;height:0.42rem;border-radius:50%;background:var(--malachite-mid)}
.booth.premium .booth-foot .on{color:var(--malachite-line)}
.booth-live{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;
  background:var(--malachite-mid);border:1.5px solid var(--surface)}
.booth.premium .booth-live{border-color:var(--malachite)}
.booth.dim{opacity:.25;filter:saturate(.4)}
.booth.match{outline:2px solid var(--malachite-mid);outline-offset:2px}

/* контролы зума (низ-право) */
.ctrl{position:absolute;right:var(--pad);bottom:var(--pad);display:flex;flex-direction:column;
  gap:6px;z-index:20}
.ctrl button{width:2.6rem;height:2.6rem;border:1px solid var(--line);background:var(--surface);
  border-radius:10px;font-size:1.3rem;color:var(--ink-2);cursor:pointer;display:flex;
  align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(var(--ink-rgb),.06);transition:all .12s}
.ctrl button:hover{border-color:var(--malachite-mid);color:var(--malachite)}

/* легенда (низ-лево) */
.legend{position:absolute;left:var(--pad);bottom:var(--pad);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);padding:0.8rem 1rem;z-index:20;
  box-shadow:0 2px 12px rgba(var(--ink-rgb),.06);font-size:0.78rem}
.legend-t{font-weight:600;margin-bottom:0.5rem;color:var(--ink)}
.legend-row{display:flex;align-items:center;gap:0.5rem;color:var(--ink-2);margin-top:0.3rem}
.legend-dot{width:0.7rem;height:0.7rem;border-radius:3px;flex-shrink:0}

/* поиск стенда (верх-лево внутри холла) */
.hall-search{position:absolute;left:var(--pad);top:var(--pad);z-index:20;width:min(20rem,40vw);pointer-events:none}
/* C2 — партнёры выставки. Блок шёл в обычном потоке внутри .hall и ложился
   на строку поиска. Ставим его в свободный правый верхний угол: слева сверху
   поиск, слева снизу легенда, справа снизу управление. */
.hall .partners{position:absolute;right:var(--pad);top:var(--pad);z-index:20;margin:0;
  max-width:min(22rem,42vw);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r,12px);padding:.7rem .8rem;box-shadow:0 2px .5rem rgba(0,0,0,.06)}
.hall .partners-row{max-height:9rem;overflow:auto}
.hall-search .field{position:relative;pointer-events:auto}
.hall-search input{pointer-events:auto}
.hall-search input{width:100%;height:2.7rem;border:1px solid var(--line);border-radius:var(--pill);
  background:var(--surface);padding:0 1rem 0 2.6rem;font-size:0.9rem;font-family:inherit;
  outline:none;box-shadow:0 2px 12px rgba(var(--ink-rgb),.06);color:var(--ink)}
.hall-search input:focus{border-color:var(--malachite-mid)}
.hall-search .si{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--muted);
  pointer-events:none;line-height:0}
.hall-search .si svg{width:1rem;height:1rem}
.hall-count{margin-top:0.5rem;font-size:0.75rem;color:var(--muted);padding-left:0.4rem}

/* баннер партнёра (верх-право) */
.partner{position:absolute;right:var(--pad);top:var(--pad);z-index:20;
  width:min(22rem,42vw);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:0.75rem 1rem;box-shadow:0 2px 12px rgba(var(--ink-rgb),.06);
  display:flex;align-items:center;gap:0.8rem}
.partner-badge{font-size:0.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted-2);writing-mode:vertical-rl;transform:rotate(180deg)}
.partner-box{flex:1;height:3.2rem;border:1px dashed var(--line);border-radius:8px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted)}
.partner-box .pb1{font-size:0.82rem;font-weight:500}
.partner-box .pb2{font-size:0.68rem;color:var(--muted-2)}

/* карточка стенда (поповер) */
.booth-card{position:absolute;z-index:40;width:19rem;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 12px 40px rgba(var(--ink-rgb),.18);
  overflow:hidden;display:none}
.booth-card.show{display:block}
.bc-cover{height:5.5rem;position:relative;display:flex;align-items:flex-end;padding:0.9rem}
.bc-cover .bc-logo{width:3rem;height:3rem;border-radius:10px;background:rgba(var(--surface-rgb),.92);
  color:var(--malachite);display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.bc-close{position:absolute;top:0.6rem;right:0.6rem;width:1.8rem;height:1.8rem;
  background:rgba(var(--surface-rgb),.9);border:none;border-radius:50%;cursor:pointer;
  font-size:1rem;color:var(--ink-2);display:flex;align-items:center;justify-content:center}
.bc-body{padding:1rem 1.1rem 1.1rem}
.bc-name{font-size:1.05rem;font-weight:600;letter-spacing:-0.02em}
.bc-cat{font-size:0.78rem;color:var(--malachite-mid);font-weight:500;margin-top:0.15rem}
.bc-desc{font-size:0.85rem;color:var(--ink-2);line-height:1.45;margin-top:0.6rem}
.bc-stats{display:flex;gap:1.2rem;margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid var(--line-soft)}
.bc-stat{font-size:0.75rem;color:var(--muted)}
.bc-stat b{display:block;font-size:0.95rem;color:var(--ink);font-weight:600}
.bc-online{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.72rem;
  color:var(--malachite-mid);font-weight:500;margin-top:0.7rem}
.bc-online::before{content:"";width:0.5rem;height:0.5rem;border-radius:50%;background:var(--malachite-mid)}
.bc-btn{display:block;text-align:center;background:var(--malachite);color:var(--surface);
  padding:0.7rem;border-radius:10px;font-size:0.9rem;font-weight:500;cursor:pointer;
  margin-top:0.9rem;text-decoration:none}
.bc-btn:hover{background:var(--malachite-deep)}

/* подсказка-хинт */
.hint{position:absolute;left:50%;bottom:var(--pad);transform:translateX(-50%);z-index:15;
  background:rgba(var(--ink-rgb),.82);color:var(--malachite-soft);font-size:0.75rem;padding:0.5rem 1rem;
  border-radius:var(--pill);pointer-events:none;transition:opacity .4s}

.bc-rep{font-size:.85rem;color:var(--ink-2,var(--ink-2));margin:.3rem 0 .1rem}

/* Логотип на карточке стенда в зале и в боковой карточке — вместо инициалов. */
.booth-logo img,#bc-logo img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
