/* AIRON.TV — план зала (сайт и панель управления) */
.pl-svg { display: block; width: 100%; height: auto; user-select: none; -webkit-user-select: none; touch-action: none; }
.pl-floor { stroke: none; }
.pl-gridline { stroke: rgba(255, 255, 255, .045); stroke-width: 1; }
.pl-wall { fill: none; stroke: #6b717b; stroke-width: 6; stroke-linejoin: round; }
.pl-screen { fill: #d2d6dc; }
.pl-stagebox { fill: rgba(255, 115, 45, .08); stroke: #ff732d; stroke-width: 2; }
.pl-row { fill: #23272e; }
.pl-prop { fill: none; stroke: #3a4049; stroke-width: 2; }
.pl-label { fill: #8d949c; font: 500 13px/1 "OSD", ui-monospace, monospace; letter-spacing: .1em; }
.pl-label--sm { font-size: 12px; }
.pl-label--xs { font-size: 11px; fill: #6b717b; }
.pl-label--stage { fill: #ff732d; font: 700 28px/1 "Tektur", "Arial Narrow", sans-serif; letter-spacing: .18em; }

.pl-cam { cursor: grab; outline: none; touch-action: none; transition: transform .6s cubic-bezier(.2, .7, .2, 1), opacity .3s; }
.pl-aim { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pl-cam.is-drag, .pl-cam.is-drag .pl-aim { transition: none; cursor: grabbing; }
.pl-cam.is-out { opacity: .35; }
.pl-fov { fill: rgba(255, 115, 45, .13); }
.pl-body { fill: #ff732d; stroke: #000; stroke-width: 1.5; }
.pl-lens { fill: #ffd2b8; }
.pl-person { fill: #fff; stroke: #000; stroke-width: 1.5; }
.pl-cam--ptz .pl-fov { fill: rgba(48, 209, 88, .13); }
.pl-cam--ptz .pl-body { fill: #30d158; }
.pl-cam--ptz .pl-lens { fill: #c9f5d5; }
.pl-cam--ptz .pl-person { display: none; }
.pl-hit { fill: transparent; }
.pl-num { fill: #fff; font: 700 17px/1 "Golos", system-ui, sans-serif; paint-order: stroke; stroke: #000; stroke-width: 4px; pointer-events: none; }
.pl-del { display: none; cursor: pointer; }
.pl-del circle { fill: #ff3b30; stroke: #000; stroke-width: 1.5; }
.pl-del path { stroke: #fff; stroke-width: 2.2; stroke-linecap: round; }
.pl-cam.is-sel .pl-del { display: block; }
.pl-cam.is-sel .pl-body, .pl-cam:focus-visible .pl-body { stroke: #fff; stroke-width: 3; }

.pl-ghost { position: fixed; z-index: 200; width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 8px; pointer-events: none; box-shadow: 0 6px 20px rgba(0, 0, 0, .6); }
.pl-ghost--op { background: #ff732d; }
.pl-ghost--ptz { background: #30d158; }

@media (prefers-reduced-motion: reduce) {
  .pl-cam, .pl-aim { transition: none; }
}
