/* Единый каркас «Пульта судьи»: шапка страниц, нижняя панель, меню «Ещё», подсказка Легионерыча */
html.pbig { zoom: 1.12; }

/* ---------- шапка (на страницах Старты / Рейтинг / Атлет / Штаб) ---------- */
.pxh { display: flex; align-items: center; gap: 12px; padding: 9px 14px; background: #fff; border-bottom: 2px solid #111417; position: sticky; top: 0; z-index: 90; }
.pxh a { text-decoration: none; color: inherit; }
.pxh-logo { flex: none; width: 54px; height: 54px; border-radius: 14px; background: #fff; border: 1px solid #E2E8EC; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pxh-logo img { width: 100%; height: 100%; object-fit: contain; }
.pxh-mid { flex: 1 1 auto; min-width: 0; background: #111417; color: #fff; border-radius: 999px; padding: 9px 20px; line-height: 1.15; }
.pxh-mid b { display: block; font: 900 17px/1.15 system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pxh-mid small { display: block; font: 800 9.5px/1.2 system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #9DB4D8; }
.pxh-ico { flex: none; width: 50px; height: 50px; border-radius: 50%; border: 1px solid #D5DCE0; background: #F4F7FC; display: flex; align-items: center; justify-content: center; font-size: 24px; }

/* ---------- нижняя панель ---------- */
body.px-on { padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; }
#pxBar { position: fixed; z-index: 760; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-around; background: rgba(7,28,63,.98); border-top: 1px solid rgba(255,255,255,.16);
  padding: 6px 4px calc(env(safe-area-inset-bottom, 0px) + 6px); }
#pxBar button { flex: 1; background: none; border: 0; color: #CFE0FF; font: 700 11.5px/1.2 system-ui, sans-serif; padding: 6px 2px; display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 0; cursor: pointer; border-radius: 12px; }
#pxBar button b { display: flex; align-items: center; justify-content: center; height: 28px; font-size: 21px; line-height: 1; font-weight: 400; }
/* как в приложении: значки серо-голубые, выбранный раздел — золотой; «Направления» — многофункциональный спот WW */
#pxBar .pxspot { display: block; width: 28px; height: 28px; background: currentColor; -webkit-mask: url(/m2/multispot.png) center / contain no-repeat; mask: url(/m2/multispot.png) center / contain no-repeat; }
#pxBar button.on { color: #FFD54A; }
@media (min-width: 761px) { #pxBar { left: 50%; right: auto; transform: translateX(-50%); width: min(560px, 94vw); bottom: 10px; border-radius: 22px; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 10px 30px rgba(0,0,0,.35); } }

/* ---------- кнопка подсказки ---------- */
#pxHelp { position: fixed; z-index: 750; right: 12px; bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); width: 52px; height: 52px; border-radius: 50%; border: 2px solid #FFD54A;
  background: #0A0F3C url(/m2/pult_01_welcome.webp) center 8% / 118% auto no-repeat; box-shadow: 0 6px 18px rgba(0,0,0,.4); cursor: pointer; padding: 0; }
#pxHelp i { position: absolute; right: -4px; top: -4px; width: 22px; height: 22px; border-radius: 50%; background: #E3141B; color: #fff; font: 900 14px/22px system-ui, sans-serif; text-align: center; font-style: normal; border: 2px solid #fff; }
@media (min-width: 761px) { #pxHelp { bottom: 92px; } }

/* ---------- шторка «Ещё» и подсказка ---------- */
.pxo { position: fixed; inset: 0; z-index: 755; background: rgba(3,10,28,.62); display: none; align-items: flex-end; justify-content: center; }
.pxo.on { display: flex; animation: pxFade .18s ease-out; }
@keyframes pxFade { from { opacity: 0; } }
.pxp { width: min(560px, 100%); max-height: 82vh; overflow: auto; background: var(--panel, #fff); color: var(--text, #111417); border-radius: 24px 24px 0 0; padding: 16px 16px calc(env(safe-area-inset-bottom, 0px) + 96px); animation: pxUp .22s ease-out; }
@keyframes pxUp { from { transform: translateY(30px); opacity: .6; } }
@media (min-width: 761px) { .pxo { align-items: center; } .pxp { border-radius: 24px; padding-bottom: 20px; } }
.pxp h3 { margin: 2px 0 12px; font: 900 19px/1.2 system-ui, sans-serif; }
.pxg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pxg a, .pxg button { display: flex; align-items: center; gap: 10px; text-align: left; text-decoration: none; padding: 14px 12px; border-radius: 16px; border: 1px solid rgba(128,140,160,.35); background: var(--panel2, #F4F7FC); color: inherit; font: 800 14px/1.2 system-ui, sans-serif; cursor: pointer; min-height: 56px; }
.pxg span { font-size: 24px; flex: none; }
.pxg small { display: block; font-weight: 600; font-size: 11px; opacity: .7; margin-top: 2px; }
.pxg .map { background: linear-gradient(135deg, #FFD54A, #ff8a3d 55%, #E3141B); color: #fff; border-color: transparent; text-shadow: 0 1px 2px rgba(0,0,0,.28); }
.pxg .map small { opacity: .92; }
.pxg .wide { grid-column: 1 / -1; }
.pxguide { text-align: center; }
.pxguide img { max-height: 34vh; max-width: 62%; object-fit: contain; }
.pxguide h3 { margin-top: 6px; }
.pxguide p { margin: 0 0 12px; font: 500 16px/1.45 system-ui, sans-serif; text-align: left; }
.pxguide .row { display: flex; gap: 8px; margin-top: 6px; }
.pxguide .row button { flex: 1; padding: 13px 10px; border-radius: 14px; border: 0; font: 800 15px/1 system-ui, sans-serif; cursor: pointer; }
.pxguide .b1 { background: #E3141B; color: #fff; }
.pxguide .b2 { background: rgba(128,140,160,.22); color: inherit; }
@media (prefers-reduced-motion: reduce) { .pxo.on, .pxp { animation: none; } }

/* внутри нативного приложения свои шапка и панель */
html.pxapp .pxh, html.pxapp #pxBar, html.pxapp #pxHelp { display: none !important; }
html.pxapp body.px-on { padding-bottom: 0 !important; }

/* тёмная тема для страниц внутри приложения (классы ставит приложение) */
html.pxdark { filter: invert(1) hue-rotate(180deg); background: #fff; }
html.pxdark img, html.pxdark video, html.pxdark .jm { filter: invert(1) hue-rotate(180deg); }
/* симметричная шапка: слева и справа блоки одной ширины, название по центру */
.pxh-mid { text-align: center; }
.pxh-logo, .pxh-ico { width: 54px; height: 54px; }

/* экран направлений: последняя строка плиток не прячется под нижней панелью */
body.px-on #pultBox .pbody { padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 110px) !important; }
body.px-on #pultBox .pfoot, body.px-on #pultBox > :last-child { margin-bottom: 0; }
/* таблица номинаций: у стандартных номинаций вторая колонка скрыта; на телефоне строки раскладываются карточками */
#nomTbl td.nomsame .muted { font-size: 12.5px; }
@media (max-width: 640px) {
  #nomTbl, #nomTbl tbody { display: block; width: 100%; }
  #nomTbl tr:first-child { display: none; }
  #nomTbl tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 8px; padding: 10px 0; border-bottom: 1px solid rgba(128,140,160,.28); align-items: center; }
  #nomTbl td { display: block; padding: 0; border: 0; min-width: 0; }
  #nomTbl td:first-child { grid-column: 1 / -1; }
  #nomTbl td select, #nomTbl td input { width: 100% !important; max-width: 100%; box-sizing: border-box; }
  #nomTbl td.nomsame { display: none; }
  #nomTbl td.num { text-align: left; }
}

/* баннер «Пульт на телефоне» на экране направлений */
.papp { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 10px 10px 14px; border-radius: 16px; background: linear-gradient(90deg, #0A0F3C, #1E3A8A); color: #fff; }
.papp .papt { flex: 1 1 auto; min-width: 0; }
.papp .papt b { display: block; font: 900 14.5px/1.25 system-ui, sans-serif; }
.papp .papt span { display: block; font: 500 12px/1.3 system-ui, sans-serif; opacity: .85; margin-top: 2px; }
.papp .pab { flex: none; background: #FFD54A; color: #111417; text-decoration: none; font: 800 13px/1 system-ui, sans-serif; padding: 10px 12px; border-radius: 999px; }
.papp .pax { flex: none; background: transparent !important; border: 0 !important; color: #fff !important; font-size: 16px; padding: 4px 6px; cursor: pointer; box-shadow: none !important; }
/* готовые детские и ветеранские номинации */
.npre { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }
/* обновление 47: Легионерыч в углу «Стартов» и «Рейтинга» выше и меньше — не закрывает первую строку */
.w>.jm{top:2px;width:60px}
@media(max-width:560px){.w>.jm{top:4px;width:52px}}
/* полоска «Площадка» над судейством */
#pVnStrip{margin:0 0 10px}#pVnStrip summary{cursor:pointer;font-weight:800;font-size:13.5px;list-style:none;display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;background:var(--panel,#fff);border:1px solid var(--line,#E2E8EC)}
#pVnStrip summary::-webkit-details-marker{display:none}#pVnStrip .vs{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 4px;-webkit-overflow-scrolling:touch}
#pVnStrip .vs a{flex:none;width:132px;text-decoration:none;color:inherit;font-size:12px;line-height:1.25}#pVnStrip .vs img{width:132px;height:96px;object-fit:cover;border-radius:10px;display:block;margin-bottom:3px}
