/* coach-live-shape:2026-10-28 – «Схема и позиции» по ходу матча (live-shape.js): та же доска, что в составе до матча */
.sheet .ls-pitch{height:min(60vh,470px);aspect-ratio:auto;width:100%;touch-action:pan-y pinch-zoom}
.sheet .ls-pitch .slot{width:19%;min-height:56px;touch-action:none;cursor:grab}
.sheet .ls-pitch .slot.ls-gk{cursor:default;opacity:.85}
.sheet .ls-pitch .slot .mag{width:44px;height:44px;font-size:15px}
.sheet .ls-pitch .slot.hole .mag.empty{border:2px dashed #fff;background:rgba(200,16,46,.35);animation:lsPulse 1.6s ease-in-out infinite}
.sheet .ls-pitch .slot.sel .mag{outline:3px solid var(--amber,#F2B233);outline-offset:3px;transform:scale(1.1)}
.sheet .ls-pitch .slot:focus-visible .mag{outline:3px solid var(--blue,#2F6FD6);outline-offset:2px}
.ls-head{margin:0}
.ls-head b{color:var(--ink)}
.ls-forms button{min-height:40px;min-width:56px}
.ls-note{margin:0}
.ls-row{display:flex;gap:8px;flex-wrap:wrap}
.ls-row .btn{flex:1 1 140px;min-height:44px}
.ls-to{display:grid;gap:6px}
.ls-to .label{margin:0}
.ls-to-list button{min-height:40px;font-size:var(--fs-sm,13px)}
.ls-to-list button.ls-hole{border-style:dashed;border-color:var(--red,#C8102E)}
.ls-to-note{margin:0}
.ls-to-board{justify-self:start}
.ctl.ls-alert i{background:var(--red,#C8102E);color:#fff}
@keyframes lsPulse{50%{box-shadow:0 0 0 5px rgba(255,255,255,.25)}}
@media (max-width:520px){
  .sheet .ls-pitch{height:min(56vh,420px)}
  .sheet .ls-pitch .slot{width:21%}
  .sheet .ls-pitch .slot .mag{width:40px;height:40px;font-size:14px}
  .sheet .ls-pitch .slot .nm{font-size:10px}
}
@media (prefers-reduced-motion:reduce){ .sheet .ls-pitch .slot.hole .mag.empty{animation:none} }
