/* ============================================================
   plant.voir.su — css/pages/equipment.css
   Страница «Оборудование» (владелец: chhatra).
   Префикс всех своих классов: .pequip-*
   Токены — только var() из base.css.
   ============================================================ */

/* ---------- hero / сцена с хотспотами ---------- */
.pequip-stage-wrap { position: relative; }
.pequip-stage { position: relative; }
.pequip-scene-hint { margin-top: .7rem; }

/* оверлей хотспотов: поверх scene-box, но ВНЕ него — pointer-capture
   сцены (вращение мышью) не перехватывает клики по точкам.
   Сам слой клики пропускает (pointer-events:none), кнопки — ловят. */
.pequip-hs-layer {
  position: absolute; inset: 0; z-index: 4;
  pointer-events: none;
  border-radius: var(--radius-lg);
}
.pequip-hotspot {
  position: absolute; pointer-events: auto;
  transform: translate(-50%, -50%);
  background: none; border: none; padding: 0; margin: 0;
  cursor: pointer; display: flex; align-items: center; gap: .4rem;
}
.pequip-hs-dot {
  width: 30px; height: 30px; flex: none;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  font-family: var(--font-mono); font-weight: 700; font-size: .85rem; color: #04211C;
  background: var(--teal); border: 2px solid rgba(7,11,20,.6);
  box-shadow: 0 0 0 4px var(--teal-soft), 0 0 18px rgba(47,184,166,.5);
  transition: transform .2s cubic-bezier(.2,.8,.2,1), background .2s, box-shadow .2s;
}
.pequip-hotspot:hover .pequip-hs-dot,
.pequip-hotspot:focus-visible .pequip-hs-dot,
.pequip-hotspot.pequip-hs-on .pequip-hs-dot {
  transform: scale(1.18); background: var(--amber); color: #1A1206;
  box-shadow: 0 0 0 5px var(--amber-soft), 0 0 22px rgba(232,163,61,.6);
}
.pequip-hotspot:focus-visible { outline: none; }
.pequip-hs-tip {
  font-family: var(--font-display); font-size: .74rem; font-weight: 600; letter-spacing: .02em;
  color: var(--ink); white-space: nowrap;
  background: rgba(7,11,20,.82); border: 1px solid var(--line);
  border-radius: var(--radius-pill); padding: .25rem .7rem;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  opacity: 0; transform: translateX(-4px); pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.pequip-hotspot:hover .pequip-hs-tip,
.pequip-hotspot:focus-visible .pequip-hs-tip,
.pequip-hotspot.pequip-hs-on .pequip-hs-tip { opacity: 1; transform: none; }

/* ---------- робот-манипулятор ---------- */
.pequip-robot-grid {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 1.4rem; align-items: start;
}
.pequip-robot-scene { min-height: 260px; }
.pequip-robot-side { display: flex; flex-direction: column; gap: .9rem; }
.pequip-robot-side .h3 { margin: 0; }
.pequip-robot-side .check-list li { font-size: .96rem; }
.pequip-robot-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem; margin: .2rem 0 0; }
.pequip-robot-note { flex: 1 1 220px; line-height: 1.4; }
.pequip-no-perf { margin: 0; }

/* ---------- узлы линии ---------- */
.pequip-unit-grid {
  list-style: none; padding: 0; margin: 0;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.pequip-unit { position: relative; padding-top: 1.8rem; scroll-margin-top: 90px; }
.pequip-unit-num {
  position: absolute; top: 1rem; right: 1.2rem;
  font-family: var(--font-mono); font-size: 2rem; font-weight: 700;
  color: var(--line); line-height: 1;
}
.pequip-unit.pequip-active {
  border-color: var(--teal);
  box-shadow: 0 0 0 1px var(--teal), var(--shadow-soft);
}
.pequip-unit.pequip-active .pequip-unit-num { color: var(--teal); }
.pequip-unit .h3 { font-size: clamp(1.02rem, 1.6vw, 1.25rem); margin-bottom: .4em; }
.pequip-unit p { font-size: .92rem; }

/* ---------- патенты (mono-таблица) ---------- */
.pequip-patents-card { padding: clamp(1rem, 2.4vw, 1.8rem); }
.pequip-patent-head {
  display: flex; gap: 1rem; flex-wrap: wrap; align-items: baseline;
  padding: 0 0 .55rem; margin-bottom: .3rem; border-bottom: 2px solid var(--line);
  font-family: var(--font-display); font-size: .72rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--muted);
}
.pequip-col-num { flex: 0 0 118px; }
.pequip-col-name { flex: 1 1 40%; }
.pequip-col-term { flex: 0 0 150px; text-align: right; margin-left: auto; }

.pequip-patents .trow { align-items: baseline; }
.pequip-num { flex: 0 0 118px !important; color: var(--amber) !important; font-weight: 700; }
.pequip-name { flex: 1 1 40% !important; text-align: left !important; color: #C6D2E0 !important; font-family: var(--font-body) !important; }
.pequip-term { flex: 0 0 150px !important; text-align: right !important; }
.pequip-expired { color: var(--muted); opacity: .85; }
.pequip-pending { color: var(--azure); }

/* ---------- адаптив ---------- */
@media (max-width: 900px) {
  .pequip-robot-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .pequip-hs-dot { width: 26px; height: 26px; font-size: .78rem; }
  .pequip-hs-tip { display: none; }
  .pequip-col-num, .pequip-col-term { display: none; }
  .pequip-num { flex: 1 1 100% !important; }
  .pequip-name { flex: 1 1 100% !important; }
  .pequip-term { flex: 1 1 100% !important; text-align: left !important; }
  .pequip-unit-num { font-size: 1.6rem; }
}

/* ---------- reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .pequip-hs-dot, .pequip-hs-tip { transition: none; }
}
