/* VolleyWood — стили портала.
   Палитра из логотипа, контраст рассчитан на экран под солнцем:
   текст и кнопки — всегда тёмное с белым или белое с тёмным. */
:root {
  --navy: #012255;
  --navy-2: #123A78;
  --ink: #012255;
  --slate: #3B4A63;
  --fog: #B8C4D6;
  --line: #D5DCE6;
  --bg: #F4F6FA;
  --soft: #EEF2F7;
  --orange: #EA5003;
  --orange-deep: #C2410C;
  --orange-soft: #FDEBE1;
  --sea: #015C9E;
  --sea-soft: #E1EDF8;
  --olive: #3F6212;
  --radius: 18px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 500 16px/1.5 'Manrope', system-ui, sans-serif; }
a { color: var(--sea); font-weight: 800; text-decoration: none; }
a:hover { color: var(--navy); }
h1, h2 { font-family: 'Unbounded', system-ui, sans-serif; letter-spacing: -0.02em; margin: 0; }
h1 { font-size: clamp(28px, 5vw, 48px); line-height: 1.08; font-weight: 700; }
h2 { font-size: clamp(20px, 2.4vw, 26px); font-weight: 600; }
.wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.muted { color: var(--slate); font-weight: 600; }
.small { font-size: 14px; }
.kick { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; color: var(--fog); text-transform: uppercase; }
.mt { margin-top: 28px; }

/* шапка и подвал */
.top { background: #fff; border-bottom: 1px solid var(--line); }
.top-in { height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.logo img { display: block; height: 52px; width: auto; }
.nav { display: flex; gap: 4px; }
.nav a { padding: 10px 14px; border-radius: 10px; color: var(--ink); white-space: nowrap; }
.nav a:hover { background: var(--soft); }
.foot { background: var(--navy); color: var(--fog); margin-top: 56px; }
.foot-in { padding: 40px 16px; display: grid; grid-template-columns: 2fr 1fr; gap: 32px; }
.foot-brand img { height: 72px; width: auto; display: block; }
.foot-brand p { max-width: 380px; margin: 12px 0 0; font-weight: 600; font-size: 15px; }
.foot-links { display: flex; flex-direction: column; gap: 10px; }
.foot-links a { color: #fff; }

/* кнопки и плашки */
.btn { display: inline-flex; align-items: center; justify-content: center; height: 54px; padding: 0 24px; border-radius: 14px; font-weight: 800; font-size: 16px; }
.btn-white { background: #fff; color: var(--navy); }
.btn-white:hover { color: var(--navy); background: var(--soft); }
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip-dark, .chip-accent { padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #fff; }
.chip-dark { background: var(--navy-2); }
.chip-accent { background: var(--orange-deep); }

/* главная */
.hero { margin-top: 24px; }
.hero-text { background: var(--navy); color: #fff; border-radius: 28px; padding: clamp(28px, 5vw, 56px); display: flex; flex-direction: column; gap: 18px; }
.hero-text p { margin: 0; color: var(--fog); font-weight: 600; font-size: 17px; max-width: 560px; }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.block { margin-top: 44px; display: flex; flex-direction: column; gap: 18px; }
.block-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.block-head > a { white-space: nowrap; }
.page-head { margin-top: 36px; display: flex; flex-direction: column; gap: 6px; }
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.empty { background: #fff; border: 2px dashed #9AA8BD; border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.empty-title { font-weight: 800; font-size: 17px; }
.empty .btn { align-self: flex-start; margin-top: 8px; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 720px; }
.stat { background: var(--navy); color: var(--fog); border-radius: var(--radius); padding: 18px 20px; display: flex; flex-direction: column; font-weight: 700; font-size: 14px; }
.stat .n { color: #fff; font-family: 'Unbounded', sans-serif; font-size: 30px; font-weight: 700; line-height: 1.2; }

/* карточка турнира */
.tcard { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; color: var(--ink); display: flex; flex-direction: column; gap: 14px; }
.tcard:hover { border-color: var(--navy); color: var(--ink); }
.tcard-top { display: flex; gap: 14px; }
.date { width: 64px; height: 68px; flex-shrink: 0; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.date .d { font-family: 'Unbounded', sans-serif; font-size: 22px; font-weight: 700; line-height: 1.1; }
.date .m { font-size: 11px; font-weight: 800; }
.date-beach { background: var(--orange-soft); color: var(--orange-deep); }
.date-classic { background: var(--sea-soft); color: var(--sea); }
.date-past { background: var(--soft); color: var(--slate); }
.tcard-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tag { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; }
.tag-beach { color: var(--orange-deep); }
.tag-classic { color: var(--sea); }
.tcard-title { font-size: 18px; font-weight: 800; line-height: 1.25; }
.tcard-foot { display: flex; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--soft); font-size: 14px; font-weight: 800; }
.st-open { color: var(--olive); }

/* страница турнира */
.thead { background: var(--navy); color: #fff; padding: 28px 0 32px; }
.thead .wrap { display: flex; flex-direction: column; gap: 14px; }
.back { color: var(--fog); }
.back:hover { color: #fff; }
.thead-meta { margin: 0; color: var(--fog); font-weight: 700; font-size: 17px; }
.facts { display: flex; gap: 12px; flex-wrap: wrap; }
.facts div { background: var(--navy-2); border-radius: 14px; padding: 10px 16px; display: flex; flex-direction: column; color: var(--fog); font-size: 13px; font-weight: 700; }
.facts .n { color: #fff; font-family: 'Unbounded', sans-serif; font-size: 20px; font-weight: 700; }
.podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; margin-bottom: 20px; }
.pod { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 0; }
.pod-name { font-weight: 800; font-size: 18px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pod-pts { color: var(--slate); font-weight: 700; font-size: 13px; }
.pod-bar { width: 100%; border-radius: 16px 16px 0 0; color: #fff; display: flex; align-items: center; justify-content: center; font-family: 'Unbounded', sans-serif; font-size: 30px; font-weight: 700; }
.pod-1 .pod-bar { background: var(--navy); height: 140px; }
.pod-2 .pod-bar { background: var(--navy-2); height: 104px; }
.pod-3 .pod-bar { background: #3A5A8C; height: 80px; }
.king { padding: 4px 10px; border-radius: 999px; background: var(--orange-deep); color: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; }
.jump { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.jump a { background: #fff; color: var(--navy); padding: 10px 16px; border-radius: 12px; font-size: 15px; }
.jump a:hover { background: var(--soft); color: var(--navy); }
/* «Поделиться» — как ссылки полосы .jump, но кнопкой; страница «Трансляция» (/t/<slug>/broadcast) */
.jump-share { display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--navy); padding: 10px 16px; border: 0; border-radius: 12px;
  font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; }
.jump-share:hover { background: var(--soft); }
.jump-share .ico { width: 18px; height: 18px; }
.wt-when { font-size: 22px; font-weight: 800; color: var(--navy); margin: 0 0 6px; }
.wt-courts { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.wt-courts a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 12px; background: var(--soft); color: var(--navy); }
.wt-acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.wt-acts .jump-share { background: var(--soft); }
.tlayout { margin-top: 36px; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }
.tmain { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tside { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.panel h3 { margin: 0; font-family: 'Unbounded', sans-serif; font-size: 17px; font-weight: 600; }
.pbig { background: var(--navy); color: var(--fog); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; font-size: 14px; font-weight: 700; }
.pbig .n { color: #fff; font-family: 'Unbounded', sans-serif; font-size: 28px; font-weight: 700; line-height: 1.2; }
.rec { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 14px; border-radius: 12px; background: var(--bg); border: 2px solid transparent; color: var(--ink); }
.rec:hover { border-color: var(--navy); color: var(--ink); }
.rec-l { font-size: 13px; font-weight: 800; color: var(--slate); align-self: center; }
.rec-v { font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 20px; text-align: right; }
.rec-t { grid-column: 1 / -1; display: flex; flex-direction: column; font-weight: 800; font-size: 15px; line-height: 1.35; }
.rec-t small { font-size: 14px; font-weight: 600; color: var(--slate); }
.rec-m { font-size: 13px; font-weight: 800; color: var(--sea); grid-column: 1 / -1; }
.rules { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; font-weight: 600; font-size: 15px; }
.rules li { padding-left: 18px; position: relative; }
.rules li::before { content: ''; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 2px; background: var(--orange); }
.tside .sponsors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.table { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 4px 16px; }
.tr { display: grid; grid-template-columns: 36px minmax(0, 1fr) 56px 60px 44px; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--soft); font-weight: 700; }
.tr:last-child { border-bottom: 0; }
.tr.th { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; color: var(--slate); text-transform: uppercase; }
.tr .pl { font-weight: 800; }
.tr.top .pl { color: var(--orange-deep); }
.tr .nm { font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr a.nm { color: var(--ink); }
.nmc { display: flex; align-items: center; gap: 8px; min-width: 0; }
.nmc .nm { min-width: 0; }
.itsme { flex-shrink: 0; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--line); color: var(--slate); background: #fff; }
.itsme:hover { background: var(--navy); color: #fff; }
.tr a.nm:hover { color: var(--sea); text-decoration: underline; }
.tr .nm small { margin-left: 6px; color: var(--slate); font-weight: 700; }
.rounds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.round { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.round-h { display: flex; justify-content: space-between; align-items: baseline; font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: 16px; }
.round-time { font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 800; color: var(--slate); }
.match { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 12px; background: var(--bg); border: 2px solid transparent; color: var(--ink); }
.match:hover { border-color: var(--navy); color: var(--ink); }
.match:target { border-color: var(--orange-deep); background: #fff; box-shadow: 0 0 0 4px var(--orange-soft); }
.round, #matches, #table { scroll-margin-top: 20px; }
.match { scroll-margin-top: 64px; }
.match-h { display: flex; justify-content: space-between; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
/* Шапка матча в раундах дня турнира — всегда две строки (корт и стадия, судья): карточки одной высоты. */
.match-h.two { flex-direction: column; gap: 2px; }
.match-h.two > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.match-h .court { color: var(--sea); }
.match-h .proto { color: var(--slate); text-transform: none; letter-spacing: 0; font-size: 13px; }
.team { display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 8px; align-items: center; min-height: 28px; font-weight: 600; color: var(--slate); }
.team .tn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team .ts { font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 18px; line-height: 28px; text-align: right; }
.team.win { color: var(--navy); font-weight: 800; }
.team.win .tn::after { content: ' ✓'; color: var(--olive); }
.team { position: relative; }
.team.mine::before { content: ''; position: absolute; left: -14px; top: 2px; bottom: 2px; width: 4px; border-radius: 0 3px 3px 0; background: var(--orange); }
.team .me { color: var(--navy); font-weight: 800; background: var(--orange-soft); border-radius: 4px; padding: 0 3px; }
.res { font-size: 11px; font-weight: 800; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 999px; color: #fff; margin-left: auto; margin-right: 10px; }
.res-w { background: var(--olive); }
.res-l { background: var(--slate); }
.mfilter { display: flex; flex-direction: column; gap: 6px; }
.mfilter label { font-size: 13px; font-weight: 800; color: var(--slate); }
.mf-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.mfilter select { height: 48px; min-width: 260px; max-width: 100%; padding: 0 40px 0 14px; border: 2px solid var(--navy); border-radius: 12px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23012255' stroke-width='2.4' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center; -webkit-appearance: none; appearance: none; font: 800 16px 'Manrope', sans-serif; color: var(--navy); }
.mf-btn { height: 48px; padding: 0 18px; border: 0; border-radius: 12px; background: var(--navy); color: #fff; font: 800 16px 'Manrope', sans-serif; }
.mf-reset { height: 48px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 12px; background: #fff; border: 1px solid var(--line); color: var(--navy); }
.mysum { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.mysum-name { font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: 18px; }
.mysum .mstats div { background: var(--bg); border: 0; }

/* протокол матча */
.board { display: flex; flex-direction: column; gap: 6px; max-width: 640px; }
.bteam { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; background: var(--navy-2); border-radius: 14px; padding: 12px 16px; color: var(--fog); }
.bteam .bn { font-size: 18px; font-weight: 800; }
.bteam .bs { font-family: 'Unbounded', sans-serif; font-size: 34px; font-weight: 700; }
.bteam.win { background: #fff; color: var(--navy); }
.legend { display: flex; gap: 18px; flex-wrap: wrap; font-weight: 700; }
.legend span { display: flex; align-items: center; gap: 8px; }
.legend i { width: 16px; height: 16px; border-radius: 4px; display: inline-block; }
.pa { background: var(--navy); color: #fff; }
.pb { background: var(--orange-deep); color: #fff; }
.rally { display: flex; flex-wrap: wrap; gap: 4px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; }
.rally span { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }
.mstats { display: flex; gap: 10px; flex-wrap: wrap; }
.mstats div { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; display: flex; flex-direction: column; font-size: 13px; font-weight: 700; color: var(--slate); }
.mstats .n { font-family: 'Unbounded', sans-serif; font-size: 20px; font-weight: 700; color: var(--ink); }
.log { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 4px 16px; max-width: 760px; }
.lr { display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--soft); font-weight: 600; align-items: center; }
.lr:last-child { border-bottom: 0; }
.lh { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--slate); }
.lr .lt { color: var(--slate); font-variant-numeric: tabular-nums; }
.lr .ls { font-family: 'Unbounded', sans-serif; font-weight: 700; text-align: right; }
.lr.ev-a .le { border-left: 4px solid var(--navy); padding-left: 8px; }
.lr.ev-b .le { border-left: 4px solid var(--orange-deep); padding-left: 8px; }
.lr.ev-swap, .lr.ev-undo, .lr.ev-sys { background: var(--bg); margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
.lr.ev-undo .le { color: var(--orange-deep); font-weight: 800; }
.lr.ev-void .le, .lr.ev-void .ls { color: var(--slate); text-decoration: line-through; }
.lr.ev-void .le em { text-decoration: none; display: inline-block; font-style: normal; font-size: 12px; font-weight: 800; color: var(--orange-deep); margin-left: 6px; }
.lr.ev-swap .le, .lr.ev-sys .le { font-weight: 800; }
.mnav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: stretch; margin-top: 36px; }
.mnav-top { margin-top: 20px; }
.mnav-b { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px; display: flex; flex-direction: column; color: var(--ink); min-width: 0; }
.mnav-b span { font-size: 13px; color: var(--slate); }
.mnav-b b { font-weight: 800; }
.mnav-b:hover { border-color: var(--navy); color: var(--ink); }
.mnav-b.nx { text-align: right; }
.mnav-all { background: var(--navy); color: #fff; border-radius: 14px; padding: 0 20px; display: flex; align-items: center; justify-content: center; }
.mnav-all:hover { background: var(--navy-2); color: #fff; }
.sponsors { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.sp { aspect-ratio: 1; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px; display: flex; align-items: center; justify-content: center; }
.sp img { width: 100%; height: 100%; object-fit: contain; }

/* вход, регистрация, кабинет */
.nav-in { background: var(--navy); color: #fff !important; }
.nav-in:hover { background: var(--navy-2) !important; }
.nav-me { border: 2px solid var(--navy); max-width: 180px; display: inline-flex; align-items: center; }
.nav-me .nm-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.nav-me .badge { flex: none; }
.auth { margin-top: 36px; display: flex; gap: 32px; align-items: flex-start; justify-content: center; }
.auth-card { width: 100%; max-width: 460px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(20px, 4vw, 32px); display: flex; flex-direction: column; gap: 14px; }
.auth-card.wide { max-width: 640px; }
.auth-card h1 { font-size: clamp(24px, 4vw, 32px); }
.auth-card p { margin: 0; }
.auth-side { flex: 0 1 380px; background: var(--navy); color: #fff; border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.perks { margin: 0; padding: 0; list-style: none; counter-reset: p; display: flex; flex-direction: column; gap: 12px; font-weight: 700; color: var(--fog); }
.perks li { counter-increment: p; display: flex; gap: 12px; align-items: center; }
.perks li::before { content: counter(p); width: 30px; height: 30px; flex-shrink: 0; border-radius: 8px; background: var(--orange-deep); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.auth-alt { padding-top: 14px; border-top: 1px solid var(--soft); font-weight: 700; }
.form { display: flex; flex-direction: column; gap: 16px; }
.frow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.field { display: flex; flex-direction: column; gap: 6px; border: 0; margin: 0; padding: 0; min-width: 0; }
.field > span, .field legend { font-size: 14px; font-weight: 800; color: var(--slate); padding: 0; margin-bottom: 6px; }
.field small { color: var(--slate); font-weight: 600; font-size: 13px; }
.field input:not([type=radio]):not([type=checkbox]), .other { height: 52px; padding: 0 14px; border: 2px solid var(--line); border-radius: 12px; font: 700 16px 'Manrope', sans-serif; color: var(--ink); background: #fff; width: 100%; }
.field input:focus, .other:focus { outline: none; border-color: var(--navy); }
.other { margin-top: 8px; }
.field textarea { padding: 12px 14px; border: 2px solid var(--line); border-radius: 12px; font: 600 16px/1.45 'Manrope', sans-serif; color: var(--ink); background: #fff; width: 100%; resize: vertical; }
.field textarea:focus { outline: none; border-color: var(--navy); }
.field.bad input:not([type=radio]):not([type=checkbox]) { border-color: var(--orange-deep); }
.ferr { color: var(--orange-deep); font-weight: 800; font-size: 14px; }
.alert { background: var(--orange-soft); color: var(--orange-deep); border-radius: 12px; padding: 12px 14px; font-weight: 800; }
.ok { background: #EAF2DD; color: var(--olive); border-radius: 12px; padding: 12px 14px; font-weight: 800; }
.btn-navy { background: var(--navy); color: #fff; border: 0; cursor: pointer; font-family: 'Manrope', sans-serif; }
.btn-navy:hover { background: var(--navy-2); color: #fff; }
.chips-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.pick { position: relative; }
.pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pick span { display: inline-flex; align-items: center; height: 44px; padding: 0 16px; border-radius: 12px; border: 2px solid var(--line); background: #fff; font-weight: 800; color: var(--navy); cursor: pointer; }
.pick input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.pick input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 2px; }
.check { display: flex; gap: 12px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.check input { width: 22px; height: 22px; margin: 1px 0 0; flex-shrink: 0; accent-color: var(--navy); }
.check.bad span { color: var(--orange-deep); }
.steps { display: flex; gap: 6px; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.steps span { flex: 1; padding-top: 8px; border-top: 4px solid var(--line); color: var(--slate); }
.steps .done { border-color: var(--olive); color: var(--olive); }
.steps .cur { border-color: var(--navy); color: var(--navy); }
.back-dark { font-size: 15px; }
.tr.hr { grid-template-columns: minmax(0, 1fr) 90px 60px 80px; color: var(--ink); }
a.tr.hr:hover { background: var(--bg); }
.tr.hr .nm { white-space: normal; }
.tr.hr .nm small { display: block; margin-left: 0; }
.kv { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.kv span { color: var(--slate); font-weight: 700; }
.kv.sub { margin-top: -8px; }
.kv b.wrap-b { white-space: normal; text-align: right; }
.my-reg { padding: 12px 14px; border-radius: 12px; font-weight: 800; }
.my-reg.st-confirmed { background: #EAF2DD; color: var(--olive); }
.my-reg.st-applied, .my-reg.st-waitlist { background: var(--sea-soft); color: var(--sea); }
.tr.me-row { background: #EAF2DD; margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
.tr.te { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.tr.te .nm { white-space: normal; }
.tr.te .nm small { display: block; margin-left: 0; font-weight: 600; }
.te-form { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; align-items: center; margin: 0; }
.te-form .oc-note { height: 38px; width: 200px; font-size: 13px; }
.te-form .btn { height: 38px; padding: 0 14px; font-size: 14px; width: auto; }
.te-form .btn-line { width: auto; padding: 0 14px; }
.add-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.add-row form { margin: 0; }
.te-new { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--soft); padding-top: 10px; }
.te-new p { margin: 0; }
.entry { display: flex; flex-direction: column; padding: 10px 12px; border-radius: 12px; background: var(--bg); color: var(--ink); border-left: 4px solid var(--line); }
.entry small { color: var(--slate); font-weight: 700; }
.entry.st-confirmed { border-left-color: var(--olive); }
.entry.st-applied, .entry.st-waitlist { border-left-color: var(--sea); }
.entry.st-declined { border-left-color: var(--orange-deep); }
.pk-chosen { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 6px 6px 12px; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 800; font-size: 14px; }
.pk-chip.me { padding-right: 12px; background: var(--navy-2); }
.pk-chip button { width: 24px; height: 24px; border-radius: 12px; border: 0; background: rgba(255,255,255,.2); color: #fff; font-size: 16px; line-height: 1; cursor: pointer; }
.pk-res { display: flex; flex-direction: column; }
.pk-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--soft); }
.pk-row span { display: flex; flex-direction: column; }
.pk-row small { color: var(--slate); font-weight: 600; }
.pk-row .btn-line { width: auto; padding: 0 14px; }
.rm-accepted { color: var(--olive); } .rm-invited { color: var(--sea); } .rm-declined, .rm-left { color: var(--orange-deep); }
.my-reg.st-forming { background: var(--orange-soft); color: var(--orange-deep); }
.my-reg.st-declined, .my-reg.st-withdrawn { background: var(--soft); color: var(--slate); }
.entry.st-forming { border-left-color: var(--orange-deep); }
.badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; margin-left: 6px; padding: 0 6px; border-radius: 10px; background: var(--orange-deep); color: #fff; font-style: normal; font-size: 12px; font-weight: 800; }
.pl-row.two { grid-template-columns: minmax(0, 1fr) auto; }
.invites { border: 2px solid var(--sea); }
.org-bar { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.org-bar .acts-row { display: flex; gap: 8px; flex-wrap: wrap; }
.org-bar .btn, .org-bar .btn-line { width: auto; height: 46px; padding: 0 20px; white-space: nowrap; }
.kv b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acts { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.acts form { margin: 0; }
.btn-line { display: flex; align-items: center; justify-content: center; width: 100%; height: 46px; border-radius: 12px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: 800 15px 'Manrope', sans-serif; cursor: pointer; }
.btn-line:hover { border-color: var(--navy); color: var(--navy); }
.soon { display: block; padding: 10px 12px; border-radius: 12px; background: var(--navy-2); color: #fff; font-size: 13px; font-weight: 800; }

.btn.full { width: 100%; }
.prose { font-weight: 600; line-height: 1.6; }
.tr.en { grid-template-columns: 36px minmax(0, 1fr) auto; }
.howto { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; font-weight: 700; }
.mono { font-family: ui-monospace, Menlo, monospace; font-size: 12px; word-break: break-all; }
.claim { margin-bottom: 14px; background: #fff; border: 2px solid var(--orange-deep); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.claim p { margin: 0; }
.kick-dark { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-deep); }
.claim-who { background: var(--bg); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.claim-name { font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: 18px; }
.claim-acts { display: flex; gap: 10px; flex-wrap: wrap; }
.claim-acts form { margin: 0; flex: 1 1 200px; }
.claim-acts .btn, .claim-acts .btn-line { width: 100%; height: 50px; }
.claim-wait { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.claim-wait form { margin: 0; }
.claim-wait .btn-line { width: auto; padding: 0 16px; }

.stiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.stiles div { background: var(--navy); color: var(--fog); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; font-size: 13px; font-weight: 700; }
.stiles .n { color: #fff; font-family: 'Unbounded', sans-serif; font-size: 24px; font-weight: 700; line-height: 1.25; }
.pro-tiles div { background: var(--sea); }
.form-line { display: flex; flex-direction: column; gap: 8px; }
.form-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fc { display: inline-flex; flex-direction: column; align-items: center; min-width: 58px; padding: 6px 8px; border-radius: 10px; color: #fff; font-size: 13px; font-weight: 800; line-height: 1.25; }
.fc b { font-size: 11px; letter-spacing: 0.04em; }
.fc-w { background: var(--olive); }
.fc-l { background: var(--slate); }
.fc:hover { color: #fff; filter: brightness(1.15); }
.recs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.recs .rec { background: #fff; border: 1px solid var(--line); }
.recs .rec:hover { border-color: var(--navy); }
.rec.static:hover { border-color: var(--line); }
.rec-v.sm { font-size: 16px; }
.people { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.pl-list { display: flex; flex-direction: column; }
.pl-row { display: grid; grid-template-columns: minmax(0, 1fr) 76px 52px; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--soft); font-weight: 700; font-size: 15px; }
.pl-row:last-child { border-bottom: 0; }
.pl-row.th { font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--slate); }
.pl-row .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-row span:not(:first-child) { text-align: right; }

.jump a.on { background: var(--orange-deep); color: #fff; }
.pod-name { color: var(--ink); }
.pod-name:hover { color: var(--sea); }
.org-list { display: flex; flex-direction: column; gap: 14px; }
.org-claim { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.org-claim p { margin: 0; }
.oc-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.oc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); gap: 10px; align-items: stretch; }
.oc-side { background: var(--bg); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.oc-side b { font-size: 17px; }
.oc-side .rec-l { align-self: flex-start; }
.oc-arrow { display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 800; color: var(--slate); }
.oc-form { display: flex; flex-direction: column; gap: 10px; }
.oc-note { height: 48px; padding: 0 14px; border: 2px solid var(--line); border-radius: 12px; font: 700 15px 'Manrope', sans-serif; color: var(--ink); width: 100%; max-width: 520px; background: #fff; }
.oc-note:focus { outline: none; border-color: var(--navy); }
.tr.od { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) 130px; }
.tr.ou { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 80px 160px; }
.tr.ow { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 80px 90px; }
.tr.od .nm, .tr.ou .nm, .tr.ow .nm { white-space: normal; }
.tr.ou .nm small, .tr.od .nm small { display: block; margin-left: 0; }
.role-form { margin: 0; }
.role-form select { height: 38px; padding: 0 8px; border: 2px solid var(--line); border-radius: 10px; font: 800 14px 'Manrope', sans-serif; color: var(--navy); background: #fff; max-width: 100%; }
.claimed { color: var(--orange-deep) !important; }

.thead.thin { padding: 20px 0 22px; }
.wz-top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.wz-top h1 { font-size: clamp(24px, 3.4vw, 36px); }
.wz-status { color: var(--fog); font-weight: 700; font-size: 14px; }
.wz { margin-top: 24px; display: grid; grid-template-columns: 240px minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.wz-steps { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 12px; }
.wz-step { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border: 0; border-radius: 12px; background: transparent; color: var(--navy); font: 700 15px 'Manrope', sans-serif; text-align: left; cursor: pointer; }
.wz-step i { width: 28px; height: 28px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 13px; font-weight: 800; background: #E4E9F0; color: #22314A; }
.wz-step span { display: flex; flex-direction: column; min-width: 0; }
.wz-step small { font-size: 12px; font-weight: 600; color: var(--slate); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wz-step.cur { background: var(--soft); font-weight: 800; }
.wz-step.cur i { background: var(--navy); color: #fff; }
.wz-step.done i { background: var(--olive); color: #fff; }
.wz-main { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(18px, 3vw, 28px); display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.wz-head h2 { margin-bottom: 6px; }
.wz-head p { margin: 0; }
.wz-cards { display: grid; gap: 10px; }
.wz-cards.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wz-cards.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wz-card { padding: 16px; border-radius: 16px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; text-align: left; background: #fff; border: 2px solid var(--line); color: var(--navy); font: 600 14px/1.4 'Manrope', sans-serif; cursor: pointer; }
.wz-card b { font-size: 17px; font-weight: 800; }
.wz-card span { color: var(--slate); }
.wz-card.on { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); }
.wz-card.dis { background: var(--bg); border-style: dashed; cursor: not-allowed; }
.wz-tag { align-self: flex-start; padding: 4px 9px; border-radius: 999px; font-size: 11px !important; font-weight: 800; letter-spacing: 0.04em; background: var(--soft); color: #22314A !important; }
.wz-card.on .wz-tag { background: var(--navy); color: #fff !important; }
.wz-swatch { width: 100%; height: 72px; border-radius: 10px; padding: 12px; display: flex; align-items: flex-start; }
.wz-swatch em { font-style: normal; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.wz-group { display: flex; flex-direction: column; gap: 10px; }
.wz-gt { font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--slate); }
.pick-b { height: 44px; padding: 0 16px; border-radius: 12px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: 700 15px 'Manrope', sans-serif; cursor: pointer; }
.pick-b.on { background: var(--navy); border-color: var(--navy); color: #fff; font-weight: 800; }
.wz-num { display: grid; grid-template-columns: minmax(0, 1fr) 44px 64px 44px; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--soft); }
.wz-num div { display: flex; flex-direction: column; }
.wz-num b { font-weight: 800; }
.wz-num small { color: var(--slate); font-weight: 600; font-size: 13px; }
.wz-num button { height: 44px; border-radius: 12px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: 800 22px 'Manrope', sans-serif; cursor: pointer; }
.wz-num > span { text-align: center; font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 18px; }
.wz-tog { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--soft); background: none; text-align: left; color: var(--navy); font: 600 14px 'Manrope', sans-serif; cursor: pointer; }
.wz-tog span { display: flex; flex-direction: column; }
.wz-tog b { font-size: 15px; font-weight: 800; }
.wz-tog small { color: var(--slate); }
.wz-tog i { width: 52px; height: 32px; flex-shrink: 0; border-radius: 16px; background: #C5CFDC; position: relative; }
.wz-tog i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 13px; background: #fff; transition: left .15s; }
.wz-tog.on i { background: var(--navy); }
.wz-tog.on i::after { left: 23px; }
.wz-keeper { background: var(--bg); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--slate); }
.wz-keeper b { color: var(--navy); font-size: 15px; }
.wz-day { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.wz-day-h { display: flex; justify-content: space-between; align-items: center; }
.wz-addday { align-self: flex-start; width: auto; padding: 0 18px; }
.wz-note { margin: 0; color: var(--slate); font-weight: 600; font-size: 14px; }
.wz-stage { border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 14px; }
.wz-stage-h { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.wz-est { padding: 14px 16px; border-radius: 14px; display: flex; flex-direction: column; gap: 4px; color: var(--navy); font-weight: 700; font-size: 14px; }
.wz-est b { font-size: 16px; }
.wz-est.fits { background: #EAF1E0; border: 2px solid var(--olive); }
.wz-est.nofit { background: var(--orange-soft); border: 2px solid var(--orange-deep); }
.wz-nav { display: flex; justify-content: space-between; gap: 10px; padding-top: 8px; border-top: 1px solid var(--soft); }
.wz-nav .btn, .wz-nav .btn-line { width: auto; height: 50px; padding: 0 22px; }
.wz-side { position: sticky; top: 12px; }
.wz-passport { display: flex; flex-direction: column; }
.wz-passport div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--soft); font-size: 15px; }
.wz-passport span { color: var(--slate); font-weight: 700; }
.wz-passport.sm div { grid-template-columns: 96px minmax(0, 1fr); font-size: 14px; padding: 6px 0; }
.wz-probs { margin: 8px 0 0; padding-left: 18px; }
.linklike { border: 0; background: none; padding: 0; color: var(--orange-deep); font: 800 15px 'Manrope', sans-serif; text-align: left; text-decoration: underline; cursor: pointer; }
.wz-pubform .btn:disabled { opacity: .45; cursor: not-allowed; }
.btn-line.sm { height: 38px; font-size: 14px; }
.tr.ot { grid-template-columns: minmax(0, 1.4fr) 140px 120px 360px; }
.ot-ent { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.ot-ent b { margin-right: auto; }
.ot-ent form { margin: 0; }
.ot-ent b { white-space: nowrap; }
.ot-ent .btn-line, .ot-ent .sm-btn { width: auto; padding: 0 14px; white-space: nowrap; }
.tr.ot .nm { white-space: normal; }
.tr.at { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 140px 110px; }
.tr.at .nm { white-space: normal; }
.tr.at .nm small { display: block; margin-left: 0; }
.tr.at { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 150px 190px; align-items: start; }
.tr.at.blocked { background: #FBF1EC; }
.st-block { color: var(--orange-deep); font-weight: 800; }
.d-block { display: block; }
.mt-s { margin-top: 16px; }
.acts-menu summary { cursor: pointer; font-weight: 800; color: var(--sea); list-style: none; }
.acts-menu summary::-webkit-details-marker { display: none; }
.acts-menu summary::after { content: ' ▾'; }
.acts-menu[open] summary::after { content: ' ▴'; }
.acts-form { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.acts-form .oc-note { height: 38px; font-size: 13px; }
.acts-form .btn-line { width: 100%; }
.btn-line.danger { color: var(--orange-deep); border-color: #F0C9B5; }
.tr.ot .nm small { display: block; margin-left: 0; }


/* ---------- день турнира: пульт ---------- */
.psteps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.pstep { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pstep p { margin: 0; }
.pstep form { margin: 0; }
.pstep .btn { width: 100%; height: 46px; }
.ps-h { display: flex; align-items: center; gap: 10px; }
.ps-h i { width: 28px; height: 28px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-style: normal; font-weight: 800; font-size: 13px; background: #E4E9F0; color: #22314A; }
.ps-h i.cur { background: var(--navy); color: #fff; }
.ps-h i.done { background: var(--olive); color: #fff; }
.yavka { display: flex; flex-wrap: wrap; gap: 6px; }
.yavka form { margin: 0; }
.yv { height: 36px; padding: 0 12px; border-radius: 10px; border: 2px solid var(--line); background: #fff; color: var(--navy); font: 700 14px 'Manrope', sans-serif; cursor: pointer; }
.yv.on { background: var(--olive); border-color: var(--olive); color: #fff; }
.acts-row { display: flex; gap: 6px; }
.acts-row form { flex: 1; }
.pult-grid { margin-top: 20px; }
.pult-rounds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pm { cursor: default; }
.pm.st-live { border-color: var(--orange-deep); }
.pm-edit summary { cursor: pointer; font-size: 13px; font-weight: 800; color: var(--sea); list-style: none; margin-top: 4px; }
.pm-form { display: flex; align-items: center; gap: 6px; margin: 6px 0; }
.pm-form input { width: 54px; height: 38px; border: 2px solid var(--line); border-radius: 10px; text-align: center; font: 800 16px 'Manrope', sans-serif; }
.pm-form .btn-line { width: auto; padding: 0 12px; }

/* ---------- живая страница ---------- */
.live-chip { background: var(--orange-deep) !important; }
.mine-day { border: 2px solid var(--navy); }
.md-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--soft); }
.md-row:last-child { border-bottom: 0; }
.md-when { display: flex; flex-direction: column; }
.md-when small { color: var(--slate); font-weight: 700; }
.md-row.duty .md-what { color: var(--sea); font-weight: 800; }
.md-row.st-done { opacity: .6; }
.md-score { font-family: 'Unbounded', sans-serif; font-weight: 700; }
.sm-btn { height: 38px; padding: 0 14px; font-size: 14px; }
.now-courts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.now-court { background: var(--navy); color: #fff; border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.now-court.st-done { background: var(--navy-2); opacity: .8; }
.nc-h { display: flex; justify-content: space-between; font-weight: 800; color: var(--fog); font-size: 14px; }
.now-court.st-live .nc-st { color: #FF7A2E; }
.nc-team { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; }
.nc-team b { font-family: 'Unbounded', sans-serif; font-size: 34px; }
.nc-ref { color: var(--fog); font-size: 13px; font-weight: 700; }
.round.cur { border-color: var(--orange-deep); box-shadow: inset 0 0 0 1px var(--orange-deep); }
.match.mine { box-shadow: inset 4px 0 0 var(--orange); }
.match.st-live { border-color: var(--orange-deep); }

/* ---------- табло судьи ---------- */
body.bare { background: var(--navy); }
.rb { height: 100vh; height: 100dvh; display: flex; flex-direction: column; color: #fff; padding: 8px 12px 10px; gap: 8px; overflow: hidden; }
.rb button { font-family: 'Manrope', sans-serif; touch-action: manipulation; cursor: pointer; }
.rb-bar { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.rb-back { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--navy-2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; }
.rb-title { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.rb-title b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-title span { color: var(--fog); font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-sets { background: var(--navy-2); border-radius: 10px; padding: 6px 12px; font-size: 14px; font-weight: 800; white-space: nowrap; }
.rb-clock { font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 18px; flex: none; }
.rb-menu { width: 40px; height: 40px; flex: none; border-radius: 12px; border: 0; background: var(--navy-2); color: #fff; font-size: 20px; font-weight: 800; }
.rb-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1fr); gap: 8px; }
.rb-team { background: #16305E; border: 2px solid transparent; border-radius: 18px; padding: 10px 12px; display: flex; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; }
.rb-team.srv { border-color: var(--orange); }
.rb-th { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rb-th b { font-size: 18px; font-weight: 800; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-tag { flex: none; background: var(--orange-deep); color: #fff; border-radius: 7px; padding: 3px 8px; font-size: 12px; font-weight: 800; }
.rb-row2 { display: flex; align-items: center; gap: 8px; min-height: 30px; margin-top: 2px; }
.rb-pl { flex: 1; min-width: 0; color: var(--fog); font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-pl i { color: #FF7A2E; font-style: normal; }
.rb-score { font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: clamp(44px, 14vh, 110px); line-height: 1; text-align: center; margin: auto 0 8px; }
.rb-btns { display: flex; gap: 8px; flex: none; height: clamp(54px, 15vh, 88px); }
.rb-plus { flex: 1; border: 0; border-radius: 16px; background: #fff; color: var(--navy); font-size: clamp(26px, 6vh, 40px); font-weight: 800; }
.rb-plus:active:not(:disabled) { transform: scale(.97); background: var(--orange-soft); }
.rb-minus { width: 64px; flex: none; border: 2px solid #8FA6CC; border-radius: 16px; background: var(--navy); color: #fff; font-size: 12px; font-weight: 700; line-height: 1.15; padding: 0; }
.rb-minus b { display: block; font-size: 20px; font-weight: 800; }
.rb button:disabled { opacity: .4; cursor: default; }
.rb.busy .rb-plus, .rb.busy .rb-minus { pointer-events: none; }
.rb-ctr { display: flex; flex-direction: column; gap: 8px; min-height: 0; min-width: 0; }
.rb-swi { background: var(--navy-2); border-radius: 14px; padding: 8px 4px; text-align: center; color: var(--fog); font-size: 12px; font-weight: 700; white-space: nowrap; flex: none; }
.rb-swi b { display: block; color: #fff; font-family: 'Unbounded', sans-serif; font-size: 26px; line-height: 1.15; }
.rb-endbtn { flex: none; height: 48px; border: 0; border-radius: 14px; background: #FF7A2E; color: var(--navy); font-size: 14px; font-weight: 800; }
.rb-th b { flex: 1; min-width: 0; }
.rb-to { flex: none; height: 32px; border: 1.5px solid #8FA6CC; border-radius: 10px; background: var(--navy); color: #fff; font-size: 13px; font-weight: 700; padding: 0 10px; white-space: nowrap; }
.rb-to.used { opacity: .45; }
.rb-tg { margin-top: auto; flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; background: var(--navy-2); border-radius: 12px; padding: 8px 6px; font-size: 13px; font-weight: 700; cursor: pointer; user-select: none; white-space: nowrap; }
.rb-sw { width: 40px; height: 24px; border-radius: 999px; background: #3B5A90; position: relative; flex: none; transition: background .2s; }
.rb-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: left .2s; }
.rb-sw.on { background: #2F9E5B; }
.rb-sw.on::after { left: 19px; }
.rb-zone { flex: none; min-height: 64px; display: flex; align-items: stretch; }
.rb.pro .rb-zone { height: 144px; }
.rb-zone > * { min-height: 0; }
.rb-idle { flex: 1; border: 2px dashed #2C4A80; border-radius: 16px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 12px; color: #8FA6CC; font-size: 14px; font-weight: 700; text-align: center; flex-wrap: wrap; }
.rb-sheet { flex: 1; background: #fff; color: var(--navy); border-radius: 16px; padding: 8px 12px 10px; display: flex; flex-direction: column; gap: 8px; }
.rb-sh { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 15px; font-weight: 700; }
.rb-skip { flex: none; height: 32px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; color: var(--slate); font-size: 14px; font-weight: 700; }
.rb-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rb-card { background: #EEF4FB; border: 1px solid #D6E3F3; border-radius: 14px; padding: 6px 8px 8px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rb-card.err { background: #FFF1E8; border-color: #F6D3BD; }
.rb-cn { font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-cb { display: flex; gap: 6px; }
.rb-cb button { flex: 1; min-width: 0; height: 40px; border: 1.5px solid #B9CBE3; border-radius: 10px; background: #fff; color: var(--navy); font-size: 14px; font-weight: 700; padding: 0 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rb-card.err .rb-cb button { border-color: #EFC2A6; color: #7A2E08; }
.rb-big { flex: 1; height: 64px; border: 0; border-radius: 16px; background: #FF7A2E; color: var(--navy); font: 800 20px 'Unbounded', sans-serif; }
.rb-done { flex: 1; background: #fff; color: var(--navy); border-radius: 16px; padding: 10px 14px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rb-done b { font-size: 17px; flex: 1; min-width: 200px; }
.rb-link { font-weight: 800; }
.rb-ghost { height: 38px; padding: 0 14px; border: 1.5px solid #8FA6CC; border-radius: 12px; background: transparent; color: inherit; font-size: 14px; font-weight: 700; }
.rb-done .rb-ghost, .rb-ghost.dark { color: var(--slate); border-color: var(--line); }
.rb-toast { position: fixed; left: 50%; top: 56px; transform: translateX(-50%); z-index: 40; background: #fff; color: var(--navy); border-radius: 12px; padding: 10px 14px; font-weight: 800; max-width: 90vw; text-align: center; }
.rb-toast.bad { background: var(--orange-soft); color: var(--orange-deep); }
.rb-ov { position: fixed; inset: 0; z-index: 30; background: rgba(1, 34, 85, .86); display: flex; align-items: center; justify-content: center; padding: 16px; }
.rb-pop { background: #fff; color: var(--navy); border-radius: 22px; padding: 18px 22px; width: min(360px, 100%); max-height: calc(100dvh - 32px); overflow: auto; text-align: center; display: flex; flex-direction: column; gap: 8px; }
.rb-pop.wide { width: min(560px, 100%); text-align: left; }
.rb-pop > b { font-size: 22px; font-weight: 800; }
.rb-pop p { margin: 0; color: var(--slate); font-size: 14px; font-weight: 600; }
.rb-ic { width: 48px; height: 48px; border-radius: 50%; background: var(--orange-soft); color: var(--orange-deep); display: flex; align-items: center; justify-content: center; margin: 0 auto; font-size: 24px; font-weight: 800; }
.rb-ic.win { background: #E6F2DA; color: var(--olive); }
.rb-ok { height: 50px; border: 0; border-radius: 14px; background: var(--navy); color: #fff; font-size: 17px; font-weight: 800; margin-top: 4px; }
.rb-cd { font-family: 'Unbounded', sans-serif; font-size: 80px; font-weight: 700; line-height: 1; color: var(--orange-deep); margin: 6px 0; }
.rb-setup { display: flex; flex-direction: column; gap: 6px; }
.rb-setup > span, .rb-sg > span { font-size: 13px; font-weight: 800; color: var(--slate); margin-top: 4px; display: block; }
.rb-sg { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rb-setup.two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 16px; }
.rb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-chip { min-height: 44px; padding: 0 14px; border-radius: 12px; border: 2px solid var(--line); background: #fff; color: var(--navy); font-size: 15px; font-weight: 800; }
.rb-chip.on { background: var(--navy); border-color: var(--navy); color: #fff; }
/* Телефон вертикально: команды друг под другом, центр — строкой между ними. */
@media (orientation: portrait) {
  .rb-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr); }
  .rb-ctr { flex-direction: row; flex-wrap: wrap; }
  .rb-ctr > * { flex: 1 1 30%; }
  .rb-tg { margin-top: 0; flex-direction: row; justify-content: space-between; padding: 8px 10px; }
  .rb-setup.two { grid-template-columns: minmax(0, 1fr); }
  .rb-bar { flex-wrap: wrap; row-gap: 6px; }
  .rb-sets { order: 5; width: 100%; text-align: center; }
  .rb.pro .rb-zone { height: 232px; }
  .rb-score { font-size: clamp(40px, 7.5vh, 76px); margin-bottom: 6px; }
  .rb-btns { height: clamp(52px, 8vh, 72px); }
  .rb-plus { font-size: clamp(24px, 4vh, 34px); }
  .rb-sh { font-size: 14px; }
  .rb-card.err .rb-cn { white-space: normal; line-height: 1.15; }
  .rb-cards { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .rb-card { flex-direction: row; align-items: center; gap: 8px; padding: 6px 8px; }
  .rb-cn { width: 96px; flex: none; font-size: 13px; }
  .rb-cb { flex: 1; min-width: 0; }
  .rb-cb button { height: 36px; font-size: 13px; }
}
/* Низкий экран (телефон боком): плотнее. */
@media (orientation: landscape) and (max-height: 430px) {
  .rb { padding: 6px 10px 8px; gap: 6px; }
  .rb-bar { min-height: 34px; }
  .rb-back, .rb-menu { width: 34px; height: 34px; }
  .rb-team { padding: 6px 10px; }
  .rb-th b { font-size: 15px; }
  .rb-pl { font-size: 12px; }
  .rb-row2 { min-height: 28px; }
  .rb.pro .rb-zone { height: 126px; }
  .rb-cb button { height: 32px; }
  .rb-sheet { padding: 6px 10px 8px; gap: 6px; }
  .rb-skip { height: 28px; }
  .rb-card { padding: 5px 8px 6px; gap: 5px; }
  .rb-score { font-size: clamp(36px, 11vh, 60px); margin-bottom: 4px; }
  .rb-btns { height: 50px; }
  .rb-plus { font-size: 26px; }
  .rb-swi b { font-size: 20px; }
  .rb-to { height: 28px; font-size: 12px; padding: 0 8px; }
  .rb-endbtn { height: 40px; }
  .rb-ov { padding: 8px; }
  .rb-pop { padding: 12px 16px; gap: 6px; border-radius: 18px; }
  .rb-pop > b { font-size: 19px; }
  .rb-chip { min-height: 38px; font-size: 14px; }
  .rb-ok { height: 44px; margin-top: 2px; }
  .rb-ghost { height: 34px; }
  .rb-cd { font-size: 64px; }
  .rb-setup > span, .rb-sg > span { margin-top: 0; }
}

/* ---------- ТВ ---------- */
.tv { min-height: 100vh; padding: 2vw; color: #fff; display: flex; flex-direction: column; gap: 1.5vw; }
.tv-top { display: flex; align-items: center; gap: 2vw; font-size: 2vw; }
.tv-top img { height: 4vw; }
.tv-top span { margin-left: auto; color: #FF7A2E; font-weight: 800; }
.tv-grid { flex: 1; display: grid; grid-template-columns: 2fr 1fr; gap: 1.5vw; }
.tv-courts { display: grid; grid-template-columns: repeat(auto-fit, minmax(28vw, 1fr)); gap: 1.5vw; align-content: start; }
.tv-court { background: var(--navy-2); border-radius: 1.5vw; padding: 1.5vw; display: flex; flex-direction: column; gap: .8vw; }
.tv-court.st-live { outline: .3vw solid #FF7A2E; }
.tv-ch { font-size: 1.4vw; font-weight: 800; color: var(--fog); display: flex; justify-content: space-between; }
.tv-t { display: flex; justify-content: space-between; align-items: center; font-size: 1.8vw; font-weight: 800; }
.tv-t b { font-family: 'Unbounded', sans-serif; font-size: 5vw; }
.tv-ref { color: var(--fog); font-size: 1.1vw; }
.tv-next { grid-column: 1 / -1; background: rgba(255,255,255,.08); border-radius: 1.5vw; padding: 1.2vw 1.5vw; font-size: 1.3vw; display: flex; flex-direction: column; gap: .4vw; }
.tv-table { background: #fff; color: var(--navy); border-radius: 1.5vw; padding: 1.5vw; display: flex; flex-direction: column; gap: .3vw; font-size: 1.3vw; }
.tv-table > b { font-family: 'Unbounded', sans-serif; font-size: 1.8vw; margin-bottom: .5vw; }
.tv-row { display: grid; grid-template-columns: 1fr 4vw 4vw; gap: .5vw; padding: .25vw 0; border-bottom: 1px solid var(--soft); font-weight: 700; }
.tv-row b { text-align: right; }
.tv-row span:last-child { text-align: right; color: var(--slate); }

@media (max-width: 1100px) {
  .wz { grid-template-columns: 220px minmax(0, 1fr); }
  .wz-side { grid-column: 2; position: static; }
}
@media (max-width: 900px) {
  .grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tlayout { grid-template-columns: minmax(0, 1fr); }
  .tside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .rounds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .top-in { height: 64px; }
  .logo img { height: 44px; }
  .grid3 { grid-template-columns: minmax(0, 1fr); }
  .foot-in { grid-template-columns: minmax(0, 1fr); }
  .hero-text { border-radius: 22px; }
  .stats { gap: 8px; }
  .stat { padding: 14px; }
  .stat .n { font-size: 24px; }
  .podium { gap: 6px; }
  .pod-name { font-size: 15px; }
  .pod-pts { font-size: 12px; }
  .tr { grid-template-columns: 28px minmax(0, 1fr) 44px 64px 32px; gap: 6px; font-size: 15px; }
  .tr.th { font-size: 11px; }
  .rounds { grid-template-columns: minmax(0, 1fr); }
  .bteam .bs { font-size: 28px; }
  .bteam .bn { font-size: 16px; }
  .rally span { width: 26px; height: 26px; }
  .mfilter select { min-width: 0; width: 100%; }
  .psteps { grid-template-columns: minmax(0, 1fr); }
  .pult-rounds { grid-template-columns: minmax(0, 1fr); }
  .md-row { grid-template-columns: 80px minmax(0, 1fr); }
  .md-row > :last-child { grid-column: 1 / -1; }
  .wz { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 14px; }
  .wz-steps { flex-direction: row; overflow-x: auto; position: static; padding-bottom: 4px; }
  .wz-step { flex-shrink: 0; }
  .wz-step small { display: none; }
  .wz-side { grid-column: auto; }
  .wz-cards.two, .wz-cards.three { grid-template-columns: minmax(0, 1fr); }
  .wz-num { grid-template-columns: minmax(0, 1fr) 40px 56px 40px; }
  .wz-passport div { grid-template-columns: 100px minmax(0, 1fr); }
  .tr.at.th span:nth-child(n+3) { display: none; }
  .tr.at { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); row-gap: 4px; }
  .tr.te { grid-template-columns: minmax(0, 1fr); }
  .te-form { justify-content: flex-start; }
  .te-form .oc-note { width: 100%; }
  .stiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stiles .n { font-size: 20px; }
  .recs, .people { grid-template-columns: minmax(0, 1fr); }
  .oc-cols { grid-template-columns: minmax(0, 1fr); }
  .oc-arrow { transform: rotate(90deg); height: 20px; }
  .tr.od, .tr.ou, .tr.ow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); row-gap: 4px; }
  .tr.od.th span:nth-child(n+3), .tr.ou.th span:nth-child(n+3), .tr.ow.th span:nth-child(n+3) { display: none; }
  .auth { flex-direction: column-reverse; align-items: stretch; margin-top: 20px; }
  .auth-side { flex: none; }
  .frow { grid-template-columns: minmax(0, 1fr); }
  .tr.hr { grid-template-columns: minmax(0, 1fr) 70px 44px 62px; }
  .nav a { padding: 10px; }
  .nav-org { display: none; }
  .nav-me { max-width: 210px; }
  .sponsors, .tside .sponsors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tside { grid-template-columns: minmax(0, 1fr); }
  .mnav { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .mnav-all { grid-column: 1 / -1; grid-row: 2; height: 48px; }
}

/* ---------- группы и плей-офф (постоянные команды) ---------- */
.grp { display: flex; flex-direction: column; gap: 2px; }
.grp + .grp { margin-top: 10px; }
.grp-h { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--slate); margin-bottom: 4px; }
.grp-row { display: grid; grid-template-columns: 1fr 28px 28px 48px 32px; gap: 6px; align-items: center; padding: 6px 8px; border-radius: 10px; font-size: 14px; }
.grp-row.th { font-size: 12px; color: var(--slate); font-weight: 700; padding-top: 0; padding-bottom: 0; }
.grp-row span:not(.nm) { text-align: center; }
.grp-row .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.grp-row.q { background: var(--sea-soft); }
.br-round { display: flex; flex-direction: column; gap: 6px; }
.br-round + .br-round { margin-top: 12px; }
.br-m { border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; }
.br-m.bye { background: var(--soft); }
.br-m.st-live { border-color: var(--orange-deep); }
.br-t { display: flex; justify-content: space-between; gap: 8px; font-weight: 700; font-size: 14px; }
.br-t span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.br-t.win { color: var(--olive); }
.br-t.tbd { color: var(--slate); font-weight: 600; }
.pm-sets, .m-sets { padding: 2px 12px 6px; }
.pm-sets-in { width: 100%; min-width: 0; }
.rally-h { display: block; margin: 10px 0 4px; font-size: 14px; }
.sets-line { font-weight: 700; }
.sw-b { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left: 6px; border-radius: 6px; background: var(--orange-deep); color: #fff; font-style: normal; font-size: 13px; font-weight: 800; vertical-align: 2px; }
.tv-t .sw-b { min-width: 1.5em; height: 1.5em; font-size: .7em; border-radius: .3em; vertical-align: .2em; }
.ref-grid { display: flex; flex-direction: column; gap: 8px; }
.ref-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.ref-row small { grid-column: 2 / -1; }
.t-groups-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 18px; align-items: start; }
.t-groups-main > .panel:only-child { grid-column: 1 / -1; }
@media (max-width: 760px) { .t-groups-main { grid-template-columns: minmax(0, 1fr); } }
.grp-row.out { opacity: .55; }
.seed-form { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.seed-row { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 8px; align-items: center; font-weight: 700; font-size: 14px; }
.seed-row select, .seed-row input { height: 36px; }

/* ---------- пульт: судьи и статисты ---------- */
.du-pool { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--line); border-radius: 14px; padding: 12px; }
.du-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.du-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--soft); border-radius: 999px; padding: 4px 4px 4px 12px; font-size: 14px; font-weight: 700; }
.du-chip button { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #fff; color: var(--orange-deep); font-size: 16px; font-weight: 800; cursor: pointer; }
.du-f { display: flex; gap: 6px; align-items: center; min-width: 0; }
.du-f .btn-line { width: auto; flex: none; padding: 0 14px; }
.du-f select, .du-f input { flex: 1; min-width: 0; height: 38px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 10px; font: 700 14px 'Manrope', sans-serif; color: var(--ink); background: #fff; }
.du-table { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.du-tr { display: grid; grid-template-columns: 76px repeat(auto-fit, minmax(0, 1fr)); gap: 10px; align-items: center; padding: 8px 12px; border-top: 1px solid var(--line); }
.du-tr:first-child { border-top: 0; }
.du-tr.th { background: var(--bg); font-size: 12px; font-weight: 800; color: var(--slate); text-transform: uppercase; letter-spacing: .03em; }
.du-h { font-size: 15px; }
.du-list { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.du-m { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 10px 12px; border-top: 1px solid var(--line); }
.du-m:first-child { border-top: 0; }
.du-m.live { background: #FFF8F4; }
.du-when { font-size: 12.5px; font-weight: 800; color: var(--slate); line-height: 1.3; }
.du-when b { display: block; color: var(--navy); font-size: 15px; }
.du-what { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.du-what b { font-size: 14.5px; }
.du-role { display: inline-block; margin-right: 12px; color: var(--slate); font-weight: 600; }
.du-none { color: #8FA6CC; }
.du-warn { background: var(--orange-soft); color: var(--orange-deep); border-radius: 6px; padding: 1px 7px; font-weight: 800; }
.du-live { background: var(--orange-deep); color: #fff; border-radius: 6px; padding: 1px 7px; font-size: 11px; font-weight: 800; margin-right: 6px; vertical-align: 2px; }
.du-do { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.du-edit { grid-column: 2 / -1; }
.du-edit > summary { list-style: none; display: inline-flex; align-items: center; cursor: pointer; color: var(--sea); font-size: 13px; font-weight: 800; }
.du-edit > summary::-webkit-details-marker { display: none; }
.du-edit .du-f { max-width: 460px; }
.du-er { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 8px; align-items: center; margin-top: 6px; font-size: 13px; font-weight: 800; }
@media (max-width: 720px) {
  .du-tr { grid-template-columns: minmax(0, 1fr); }
  .du-tr.th { display: none; }
  .du-m { grid-template-columns: 60px minmax(0, 1fr); }
  .du-do { grid-column: 1 / -1; align-items: stretch; }
  .du-edit { grid-column: 1 / -1; }
}

/* ---------- заявка команды: менеджер, номера, капитан, либеро ---------- */
.sw-tog { display: flex; align-items: center; gap: 12px; cursor: pointer; user-select: none; font: inherit; color: var(--ink); background: none; border: 0; padding: 0; text-align: left; }
.sw-tog input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sw-tog i { flex: none; width: 46px; height: 28px; border-radius: 999px; background: #C9D6E8; position: relative; transition: background .2s; }
.sw-tog i::after { content: ''; position: absolute; top: 4px; left: 4px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: left .2s; }
.sw-tog input:checked + i, .sw-tog i.on { background: var(--olive); }
.sw-tog input:checked + i::after, .sw-tog i.on::after { left: 22px; }
.sw-tog input:focus-visible + i { outline: 2px solid var(--navy); outline-offset: 2px; }
.sw-tog span { display: flex; flex-direction: column; }
.sw-tog small { color: var(--slate); font-weight: 600; font-size: 13px; }
.te-mgr { gap: 10px; }
.te-mgr-row { display: flex; align-items: center; gap: 10px; }
.te-mgr-row > span:last-child { display: flex; flex-direction: column; }
.te-mgr-row small { color: var(--slate); font-weight: 600; }
.te-av { width: 40px; height: 40px; border-radius: 50%; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; flex: none; }
.tr.te-c { grid-template-columns: 58px minmax(0, 1fr) auto; }
.te-no { width: 52px; height: 48px; border: 2px solid #B9CBE3; border-radius: 12px; text-align: center; font: 700 18px 'Unbounded', sans-serif; color: var(--navy); background: #fff; }
.te-no:focus { outline: none; border-color: var(--navy); }
.te-no.ro { display: flex; align-items: center; justify-content: center; border-color: var(--line); }
.te-ch { display: inline-flex; align-items: center; cursor: pointer; }
.te-ch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.te-ch span { height: 32px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 999px; display: inline-flex; align-items: center; font-size: 13px; font-weight: 800; color: var(--slate); background: #fff; }
.te-ch input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.te-ch.lib input:checked + span { background: var(--orange-deep); border-color: var(--orange-deep); }
.te-ch input:focus-visible + span { outline: 2px solid var(--navy); outline-offset: 2px; }
.te-acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.te-save { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.te-save .btn { width: auto; padding: 0 20px; }
.te-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 700; }
.te-checks .y { color: var(--olive); }
.te-checks .n { color: var(--orange-deep); }
.te-rm > summary { cursor: pointer; color: var(--sea); font-weight: 800; font-size: 14px; }
.te-rm-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.te-rm-list .btn-line { width: auto; padding: 0 12px; }
@media (max-width: 560px) {
  .tr.te-c { grid-template-columns: 58px minmax(0, 1fr); }
  .tr.te-c .te-acts { grid-column: 2; justify-content: flex-start; }
}

/* ---------- табло судьи: классика 6×6 ---------- */
.rc-main { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.rc-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 96px minmax(0, 1fr); gap: 8px; }
.rc-team { gap: 6px; padding: 8px 10px; }
.rc-team .rb-th { height: 24px; }
.rc-team .rb-th b { font-size: 17px; }
.rc-tools { display: flex; gap: 6px; height: 32px; flex: none; }
.rc-tl { flex: 1; min-width: 0; border: 1.5px solid #8FA6CC; border-radius: 10px; background: var(--navy); color: #fff; font-size: 13px; font-weight: 700; padding: 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-tl i { font-style: normal; color: var(--fog); }
.rc-tl.used { opacity: .5; }
.rc-tl.lb { flex: none; border-color: #FF7A2E; }
.rc-body { flex: 1; min-height: 0; display: flex; gap: 8px; }
.rc-team.r .rc-body { flex-direction: row-reverse; }
.rc-sc { width: 132px; flex: none; display: flex; flex-direction: column; gap: 6px; }
.rc-num { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; font: 700 clamp(40px, 13vh, 72px)/1 'Unbounded', sans-serif; }
.rc-sc .rb-plus { flex: none; height: clamp(48px, 14vh, 64px); }
.rc-minus { flex: none; width: auto; height: 36px; font-size: 16px; font-weight: 800; }
.rc-court { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 4px; background: #0E2550; border-radius: 12px; padding: 4px; }
.rc-z { background: #21417A; border: 0; border-radius: 9px; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; min-height: 0; position: relative; padding: 0 4px; }
.rc-z.front { background: #28508F; }
.rc-z b { font: 700 20px/1.05 'Unbounded', sans-serif; }
.rc-z span { font-size: 11px; font-weight: 700; color: var(--fog); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-z em { position: absolute; top: 2px; left: 6px; font-style: normal; font-size: 11px; font-weight: 800; color: #8FA6CC; }
.rc-z.server { background: #fff; color: var(--navy); }
.rc-z.server span { color: var(--slate); }
.rc-z.server em { color: var(--orange-deep); }
.rc-z.server::after { content: ''; position: absolute; right: 6px; top: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--orange); }
.rc-z.lib { background: #5A2A10; box-shadow: inset 0 0 0 2px #FF7A2E; }
.rc-z.lib span { color: #FFD7C2; }
.rc-z.lib em { color: #FFB48A; }
.rc-z.out { box-shadow: inset 0 0 0 2px #D62828; }
.rc-z.moved b::after { content: ' ↻'; font: 700 12px 'Manrope', sans-serif; color: #FFB48A; }
.rc-z.server.moved b::after { color: var(--orange-deep); }
.rc-ctr { display: flex; flex-direction: column; gap: 6px; min-height: 0; }
.rc-cb { background: var(--navy-2); border-radius: 14px; padding: 7px 4px; text-align: center; font-size: 12px; font-weight: 700; color: var(--fog); line-height: 1.25; }
.rc-cb b { display: block; color: #fff; font: 700 20px/1.2 'Unbounded', sans-serif; }
.rc-cb b.sm { font: 800 13px/1.25 'Manrope', sans-serif; }
.rc-net { flex: 1; display: flex; align-items: center; justify-content: center; position: relative; min-height: 24px; }
.rc-net::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 3px dashed #8FA6CC; }
.rc-net span { position: relative; background: var(--navy); padding: 4px 0; font-size: 11px; font-weight: 800; color: #8FA6CC; letter-spacing: .08em; writing-mode: vertical-rl; }
.rc-hist { display: flex; flex-direction: column; font-size: 12px; font-weight: 700; color: var(--fog); text-align: center; }
.rc-hist b { color: #fff; }
/* расстановка */
.rc-su { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 8px; }
.rc-suh { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rc-suh b { font-size: 16px; }
.rc-suh .rb-ghost { height: 38px; }
.rc-sug { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rc-sut { background: #fff; color: var(--navy); border-radius: 16px; padding: 8px 10px; display: flex; gap: 10px; min-height: 0; overflow: auto; }
.rc-sut.r { flex-direction: row-reverse; }
.rc-sul { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rc-tn { font-size: 15px; font-weight: 800; text-transform: uppercase; }
.rc-rost { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.rc-rc { height: 42px; border: 1.5px solid #B9CBE3; border-radius: 10px; background: #fff; color: var(--navy); padding: 0 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; overflow: hidden; }
.rc-rc i { font: 700 14px 'Unbounded', sans-serif; font-style: normal; }
.rc-rc span { font-size: 12px; font-weight: 700; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--slate); }
.rc-rc.used { background: #E7EDF6; color: #8FA6CC; }
.rc-rc.used span { color: #8FA6CC; }
.rc-rc.lb { border-color: var(--orange); opacity: .8; }
.rc-rc.bad { opacity: .4; }
.rc-mini { font-size: 12px; font-weight: 700; color: var(--slate); }
.rc-mc { width: 124px; flex: none; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, minmax(52px, 1fr)); gap: 4px; background: #E7EDF6; border-radius: 12px; padding: 4px; align-self: flex-start; }
.rc-mz { border-radius: 9px; background: #fff; border: 2px solid #C9D6E8; color: var(--navy); display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 0 2px; min-width: 0; }
.rc-mz em { position: absolute; top: 1px; left: 5px; font-style: normal; font-size: 11px; font-weight: 800; color: #8FA6CC; }
.rc-mz b { font: 700 17px/1 'Unbounded', sans-serif; }
.rc-mz span { font-size: 11px; font-weight: 700; color: var(--slate); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-mz.empty { border-style: dashed; }
.rc-mz.cur { border-color: var(--orange); border-style: solid; background: var(--orange-soft); }
.rc-sub { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: none; }
.rc-sub > span { font-size: 13px; font-weight: 700; color: var(--fog); }
.rc-seg { display: flex; background: var(--navy-2); border-radius: 12px; padding: 3px; gap: 3px; }
.rc-seg button { height: 38px; border: 0; border-radius: 9px; background: transparent; color: #fff; font-size: 14px; font-weight: 800; padding: 0 12px; white-space: nowrap; }
.rc-seg button.on { background: #fff; color: var(--navy); }
.rc-seg.light { background: var(--soft); }
.rc-seg.light button { color: var(--slate); }
.rc-seg.light button.on { background: var(--navy); color: #fff; }
.rc-go { margin-left: auto; height: 48px; border: 0; border-radius: 14px; background: #FF7A2E; color: var(--navy); font: 700 16px 'Unbounded', sans-serif; padding: 0 20px; }
.rc-go:disabled { opacity: .45; }
/* окна */
.rc-ph { display: flex; align-items: center; gap: 10px; }
.rc-ph b { font-size: 19px; font-weight: 800; flex: 1; }
.rc-cnt { background: var(--navy); color: #fff; border-radius: 8px; padding: 3px 10px; font-size: 13px; font-weight: 800; }
.rc-lbl { font-size: 13px; font-weight: 800; color: var(--slate); }
.rc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rc-pc { min-height: 44px; border: 2px solid var(--line); border-radius: 12px; background: #fff; color: var(--navy); font-size: 14px; font-weight: 800; padding: 0 10px; display: flex; align-items: center; gap: 6px; }
.rc-pc i { font: 700 15px 'Unbounded', sans-serif; font-style: normal; }
.rc-pc em { font-style: normal; font-size: 12px; color: var(--slate); font-weight: 700; }
.rc-pc.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.rc-pc.on em { color: var(--fog); }
.rc-pc.off { opacity: .4; }
.rc-note { font-size: 13px; font-weight: 600; color: var(--slate); background: var(--soft); border-radius: 10px; padding: 6px 10px; }
.rc-acts { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.rc-acts .rb-ok, .rc-acts .rb-ghost { margin-top: 0; }
.rc-acts .rb-ok:disabled { opacity: .45; }
.rc-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.rc-cd { border: 2px solid var(--line); border-radius: 12px; background: #fff; color: var(--navy); padding: 8px; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; }
.rc-cd b { font-size: 14px; font-weight: 800; display: flex; align-items: center; gap: 5px; }
.rc-cd b i { width: 12px; height: 16px; border-radius: 2px; display: inline-block; }
.rc-cd span { font-size: 12px; font-weight: 600; color: var(--slate); line-height: 1.3; }
.rc-cd.on { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); }
.rc-fr { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rc-fr > span { font-size: 13px; font-weight: 800; color: var(--slate); min-width: 140px; }
.rc-endp { text-align: center; }
.rc-big { font: 700 32px/1.15 'Unbounded', sans-serif; }
.rc-sets { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.rc-sets span { background: var(--soft); border-radius: 8px; padding: 4px 10px; font-weight: 800; font-size: 14px; }
.rc-sets span.w { background: var(--navy); color: #fff; }
.rc-endp .rc-acts { justify-content: center; }
.rc-done { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.rc-done > b { font-size: 22px; }
.rc-done p { margin: 0; color: var(--fog); font-weight: 700; }
.rc-link { display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; text-decoration: none; }
.rb.rc .rb-pop.wide { width: min(720px, 100%); text-align: left; }
/* вертикально: команды сверху и снизу, площадка 3 × 2 */
.rb.port .rc-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr); }
.rb.port .rc-team.r .rc-body { flex-direction: row; }
.rb.port .rc-court { grid-template-columns: repeat(3, 1fr); grid-template-rows: 1fr 1fr; }
.rb.port .rc-ctr { flex-direction: row; align-items: stretch; }
.rb.port .rc-ctr .rc-cb { flex: 1; padding: 5px 4px; }
.rb.port .rc-ctr .rc-cb b { font-size: 16px; }
.rb.port .rc-net, .rb.port .rc-hist { display: none; }
.rb.port .rc-sc { width: 112px; }
.rb.port .rc-sug { grid-template-columns: minmax(0, 1fr); }
.rb.port .rc-sut.r { flex-direction: row; }
.rb.port .rc-mc { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, minmax(48px, 1fr)); width: 150px; }
.rb.port .rc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rb.port .rc-sub > span { display: none; }
.rb.port .rc-go { margin-left: 0; width: 100%; }

/* ---------- экран статиста ---------- */
.sx { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; background: var(--bg); color: var(--navy); max-width: 640px; margin: 0 auto; }
.sx button { font-family: 'Manrope', sans-serif; touch-action: manipulation; cursor: pointer; }
.sx-top { background: var(--navy); color: #fff; padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 8px; position: sticky; top: 0; z-index: 5; }
.sx-bar { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.sx-sc { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; background: var(--navy-2); border-radius: 14px; padding: 8px 12px; }
.sx-sc .n { font-size: 13px; font-weight: 800; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sx-sc .n.r { text-align: right; }
.sx-sc .v { font: 700 28px/1 'Unbounded', sans-serif; }
.sx-hint { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--fog); }
.sx-hint b { color: #FFD7C2; }
.sx-list { flex: 1; padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.sx-empty { padding: 30px 16px; text-align: center; color: var(--slate); font-weight: 600; }
.sx-set { font-size: 12px; font-weight: 800; color: var(--slate); text-transform: uppercase; letter-spacing: .04em; margin: 6px 2px 0; }
.sx-it { min-height: 54px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 8px 12px; display: flex; align-items: center; gap: 10px; text-align: left; color: var(--navy); width: 100%; }
.sx-it .s { font: 700 13px 'Unbounded', sans-serif; width: 52px; flex: none; }
.sx-it .t { flex: 1; min-width: 0; font-size: 14px; font-weight: 800; line-height: 1.3; }
.sx-it .t span { display: block; color: var(--slate); font-weight: 600; font-size: 12.5px; }
.sx-it.todo { border-color: var(--orange); }
.sx-it.fresh { border: 2px solid var(--orange); }
.sx-it .k { color: var(--olive); font-weight: 800; font-size: 16px; }
.sx-it .tg { background: var(--orange-deep); color: #fff; border-radius: 7px; padding: 2px 7px; font-size: 11px; font-weight: 800; }
.sx-it .nw { background: var(--olive); color: #fff; border-radius: 7px; padding: 2px 7px; font-size: 11px; font-weight: 800; }
.sx-it.undo { opacity: .55; }
.sx-it.undo .t { text-decoration: line-through; }
.sx-mark { position: fixed; inset: 0; z-index: 20; background: var(--bg); display: flex; flex-direction: column; padding: 10px; max-width: 640px; margin: 0 auto; overflow: auto; }
.sx-card { flex: 1; background: #fff; border: 2px solid var(--navy); border-radius: 18px; padding: 12px; display: flex; flex-direction: column; gap: 12px; }
.sx-ch { display: flex; align-items: center; gap: 10px; }
.sx-ch .s { font: 700 22px 'Unbounded', sans-serif; }
.sx-ch .w { display: flex; flex-direction: column; min-width: 0; }
.sx-ch .w b { font-size: 15px; }
.sx-ch .w span { font-size: 12.5px; font-weight: 700; color: var(--slate); }
.sx-seg { display: grid; grid-template-columns: 1fr 1fr; background: var(--soft); border-radius: 12px; padding: 3px; gap: 3px; }
.sx-seg button { min-height: 50px; border: 0; border-radius: 9px; background: transparent; color: var(--slate); font-size: 14px; font-weight: 800; padding: 0 6px; }
.sx-seg button.on { background: var(--navy); color: #fff; }
.sx-seg button.on.err { background: var(--orange-deep); }
.sx-lb { font-size: 12.5px; font-weight: 800; color: var(--slate); }
.sx-ag { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.sx-ag.six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sx-ag button { min-height: 52px; border: 1.5px solid #B9CBE3; border-radius: 11px; background: #EEF4FB; color: var(--navy); font-size: 14px; font-weight: 800; padding: 0 4px; }
.sx-ag button.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.sx-pg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.sx-pg.few { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sx-pg button { min-height: 84px; border: 1.5px solid #B9CBE3; border-radius: 12px; background: #fff; color: var(--navy); padding: 0 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; }
.sx-pg button i { font: 700 22px 'Unbounded', sans-serif; font-style: normal; }
.sx-pg button span { font-size: 12px; font-weight: 700; color: var(--slate); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sx-pg button.sv { border: 2px solid var(--orange); }
.sx-pg button.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.sx-pg button.on span { color: var(--fog); }
.sx-help { margin: 0; color: var(--slate); font-weight: 600; }
.sx-foot { margin-top: auto; display: flex; align-items: center; gap: 8px; }
.sx-foot span { flex: 1; font-size: 13px; font-weight: 700; color: var(--slate); line-height: 1.35; }
.sx-skip { height: 52px; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; color: var(--slate); font-size: 15px; font-weight: 700; padding: 0 22px; flex: none; }
.sx-ok { height: 52px; border: 0; border-radius: 14px; background: var(--navy); color: #fff; font-size: 17px; font-weight: 800; padding: 0 34px; flex: none; }
.sx-ok:disabled { opacity: .5; }
.sx .rb-back { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--navy-2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; text-decoration: none; }
.sx .rb-title b { color: #fff; }

/* ---------- пульт: сбор сборных команд ---------- */
.dr-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.dr-stp { background: var(--navy); color: #fff; border-radius: 8px; padding: 4px 10px; font-size: 12.5px; font-weight: 800; white-space: nowrap; }
.dr-cfg { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dr-cfg > span { font-size: 13.5px; font-weight: 800; }
.dr-cfg .dr-go { width: auto; margin-left: auto; padding: 0 14px; }
.dr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; align-items: start; }
.dr-team { border: 1px solid var(--line); border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 4px; position: relative; }
.dr-rn input { width: 100%; height: 34px; border: 1.5px solid var(--line); border-radius: 9px; padding: 0 8px; font: 800 14px 'Manrope', sans-serif; color: var(--ink); }
.dr-name { font-size: 15px; }
.dr-pw { position: absolute; right: 12px; top: -9px; background: #fff; padding: 0 6px; font-size: 12px; font-weight: 800; color: var(--slate); }
.dr-p { display: flex; align-items: center; gap: 5px; min-height: 28px; }
.dr-p .nm { flex: 1; min-width: 0; font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dr-p .lv { font-size: 11px; font-weight: 800; border-radius: 6px; padding: 1px 6px; background: var(--soft); color: var(--slate); }
.dr-p .lv.l-pro { background: var(--navy); color: #fff; }
.dr-p .lv.l-mid { background: #DCE6F4; color: var(--navy); }
.dr-p .fem { font-size: 11px; font-weight: 800; color: var(--orange-deep); }
.dr-mv select { height: 26px; width: 46px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--sea); font: 800 12px 'Manrope', sans-serif; }
.dr-pool .dr-mv select { width: auto; max-width: 160px; }
.dr-f { display: flex; justify-content: space-between; border-top: 1px solid var(--line); margin-top: 4px; padding-top: 6px; font-size: 12px; font-weight: 800; color: var(--slate); }
.dr-f .good { color: var(--olive); }
.dr-f .bad { color: var(--orange-deep); }
.dr-pool { border: 1px dashed #8FA6CC; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
.dr-wl { border: 1px dashed #8FA6CC; border-radius: 12px; padding: 10px 14px; display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.dr-wl span { color: var(--slate); font-weight: 600; }
.dr-acts { display: flex; align-items: center; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.dr-acts .btn { width: auto; padding: 0 22px; }
.dr-acts .btn-line { width: auto; }

/* ---------- страница команды ---------- */
.tr.tp { grid-template-columns: minmax(0, 1fr) auto; }
.tr.tp-c { grid-template-columns: 44px minmax(0, 1fr) auto; }
.tp .nm small { display: block; font-weight: 600; color: var(--slate); }
.tp-no { width: 38px; height: 38px; border: 2px solid var(--line); border-radius: 10px; display: flex; align-items: center; justify-content: center; font: 700 15px 'Unbounded', sans-serif; }
.tr.tp-m { grid-template-columns: 120px minmax(0, 1fr) auto; text-decoration: none; color: var(--ink); }
.tp-m .nm small { display: block; font-weight: 600; color: var(--slate); }
.tp-w { color: var(--olive); }
.tp-l { color: var(--orange-deep); }
@media (max-width: 560px) { .tr.tp-m { grid-template-columns: minmax(0, 1fr) auto; } .tr.tp-m > span:first-child { grid-column: 1 / -1; } }

/* Итоговые места команд: шире колонка очков. */
.tr.tt { grid-template-columns: 36px minmax(0, 1fr) 60px 56px 76px; }
.tr.tt > span:nth-child(n+3) { text-align: right; white-space: nowrap; }
/* Рекорд с длинным счётом (несколько партий): подпись над счётом, без наложения. */
.rec.rec-wide { grid-template-columns: minmax(0, 1fr); }
.rec.rec-wide .rec-v { text-align: left; font-size: 17px; }
/* Шапка матча: табло и партии слева, сведения о матче справа. */
.mhead { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.mh-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bteam .bn a { color: inherit; text-decoration: none; }
.bteam .bn a:hover { text-decoration: underline; }
.msets { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.mh-l { font-size: 13px; font-weight: 800; color: var(--fog); text-transform: uppercase; letter-spacing: .04em; margin-right: 4px; }
.mset { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border-radius: 10px; background: var(--navy-2); color: #fff; font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 15px; }
.mset small { font-family: inherit; font-size: 11px; color: var(--fog); }
.minfo { margin: 0; background: var(--navy-2); border-radius: 14px; padding: 6px 16px; display: flex; flex-direction: column; }
.minfo > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.minfo > div:last-child { border-bottom: 0; }
.minfo dt { color: var(--fog); font-weight: 700; font-size: 14px; }
.minfo dd { margin: 0; color: #fff; font-weight: 800; font-size: 15px; text-align: right; }
@media (max-width: 860px) { .mhead { grid-template-columns: minmax(0, 1fr); } }
/* Расстановка в протоколе классики: две команды, игроки по зонам. */
.lu { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; font-weight: 600; }
.lu-t > b { display: block; font-size: 14px; margin-bottom: 4px; }
.lu-z { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 12px; }
.lu-z > span { display: flex; gap: 6px; align-items: baseline; min-width: 0; font-size: 14px; }
.lu-z small { flex: none; min-width: 26px; font-size: 11px; font-weight: 800; color: var(--slate); }
@media (max-width: 560px) { .lu-z { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Страница команды: сводка справа. */
.tsum { margin: 0; display: flex; flex-direction: column; }
.tsum > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--soft); }
.tsum > div:last-child { border-bottom: 0; }
.tsum dt { color: var(--slate); font-weight: 700; }
.tsum dd { margin: 0; font-weight: 800; }
.lu-n { font-size: 12px; font-weight: 600; color: var(--slate); }
/* «Король пляжа»: победы, очки, разница — шире колонки цифр. */
.tr.tk { grid-template-columns: 36px minmax(0, 1fr) 56px 56px 72px; }
.tr.tk > span:nth-child(n+3) { text-align: right; white-space: nowrap; }

/* «Ищут напарника / игроков»: турнир — группа строк; кому не подходит — свёрнуто (страница турнира, главная, /nuzhny-igroki). */
.wcols { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; align-items: start; }
.wgroup { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; margin-top: 12px; }
.wcols .wgroup { margin-top: 0; }
.wtour { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--soft); color: var(--ink); }
.wtour .date { width: 50px; height: 52px; border-radius: 12px; }
.wtour .date .d { font-size: 18px; }
.wtour-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wtour-t b { font-size: 16px; line-height: 1.25; }
.wtour-t small { color: var(--slate); font-weight: 700; font-size: 13px; }
.wtour:hover b { color: var(--sea); }
.wrow { display: flex; gap: 12px; padding: 14px 16px; border-top: 1px solid var(--soft); }
.wgroup > .wrow:first-child, .wtour + .wrow { border-top: 0; }
.wav { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.wav.f { background: var(--orange-deep); }
.wwho { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.wwho > b { font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.wwho > small { color: var(--slate); font-weight: 700; font-size: 13px; }
.wwho > q, .req q { display: block; color: var(--slate); font-weight: 600; font-size: 14px; quotes: '«' '»'; overflow-wrap: anywhere; }
.req q { padding: 8px 12px; border-radius: 10px; background: var(--bg); }
.wwho > q::before, .req q::before { content: open-quote; }
.wwho > q::after, .req q::after { content: close-quote; }
.wwho .wwarn { color: var(--orange-deep); }
.wwho .wwhy { color: var(--slate); font-style: italic; }
.wbtn { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 14px; margin-top: 6px; border-radius: 10px; border: 0; background: var(--navy); color: #fff; font: 800 14px 'Manrope', sans-serif; cursor: pointer; white-space: nowrap; }
.wbtn:hover { background: var(--navy-2); color: #fff; }
.wbtn.line { background: #fff; color: var(--navy); border: 2px solid var(--line); }
.wbtn.light { background: #fff; color: var(--navy); margin-top: 0; }
.wlink { margin-top: 4px; font-size: 14px; }
.wsent { display: inline-flex; align-items: center; height: 32px; padding: 0 10px; border-radius: 10px; background: var(--sea-soft); color: var(--sea); font-size: 13px; font-weight: 800; }
.wask-acts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.wask-acts .wbtn { margin-top: 0; }
.wask-acts .wbtn.line { padding: 0 12px; }
.wask { width: 100%; }
.wask summary { list-style: none; display: inline-flex; }
.wask summary::-webkit-details-marker { display: none; }
.wask[open] summary { display: none; }
.wask-form { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.wask-form .oc-note { max-width: none; height: 44px; }
.whidden > summary { list-style: none; cursor: pointer; padding: 12px 16px; background: var(--bg); border-top: 1px solid var(--soft); color: var(--slate); font-size: 14px; font-weight: 700; }
.wgroup > .whidden:first-child > summary, .wtour + .whidden > summary { border-top: 0; }
.whidden > summary::-webkit-details-marker { display: none; }
.whidden > summary::after { content: ' ▾'; }
.whidden[open] > summary::after { content: ' ▴'; }
.wrow.off .wav { background: var(--fog); }
.wrow.off .wwho > b { color: var(--slate); }
.wcta { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-top: 12px; padding: 14px 16px; border-radius: var(--radius); background: var(--navy); color: #fff; }
.wcta span { font-weight: 700; font-size: 14px; line-height: 1.4; }
@media (max-width: 600px) { .wcols { grid-template-columns: minmax(0, 1fr); } }
.wfilter { display: flex; flex-direction: column; gap: 8px; }
.wf-row { display: flex; flex-wrap: wrap; gap: 8px; }
.wf { padding: 8px 14px; border-radius: 999px; border: 2px solid var(--line); background: #fff; color: var(--navy); font-size: 14px; }
.wf.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.need-box.on { border: 2px solid var(--olive); }
.need-form { display: flex; flex-direction: column; gap: 10px; }
.need-form .oc-note { max-width: none; }
.need-note { display: flex; gap: 8px; }
.need-note .oc-note { max-width: none; flex: 1; min-width: 0; }
.need-note .btn-line { width: auto; padding: 0 14px; flex: none; height: 48px; }
.req-box { border: 2px solid var(--sea); }
.req { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--soft); }
.req:first-of-type { border-top: 0; padding-top: 0; }
.req .nm { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.req .nm small { color: var(--slate); font-weight: 700; }
.req-acts { display: flex; gap: 8px; flex: none; }
.req-acts .btn, .req-acts .btn-line { height: 44px; padding: 0 16px; width: auto; }
@media (max-width: 600px) {
  .req { flex-direction: column; align-items: stretch; }
  .req-acts form { flex: 1; }
  .req-acts .btn, .req-acts .btn-line { width: 100%; }
}
.solo-more > summary { cursor: pointer; font-weight: 800; color: var(--sea); list-style: none; }
.solo-more > summary::-webkit-details-marker { display: none; }
.solo-more > summary::after { content: ' ▾'; }
.solo-more[open] > summary::after { content: ' ▴'; }
.solo-more[open] { display: flex; flex-direction: column; gap: 16px; }
/* Кабинет: то, что ждёт действия игрока, — первым блоком (на телефоне боковая колонка уходит вниз). */
.act-box { border: 2px solid var(--orange-deep); margin-bottom: 18px; }
.act-row { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--orange-soft); color: var(--ink); }
.act-row small { color: var(--slate); font-weight: 700; }
.act-row:hover { color: var(--ink); background: #FBDCCB; }
.tmain > .panel + h2 { margin-top: 18px; }
.tmain > .panel.mb { margin-bottom: 18px; }
.entry.st-closed, .entry.st-withdrawn { border-left-color: var(--fog); }
.entry .ent-req { color: var(--orange-deep); }

/* Меню в шапке (кнопка с именем): разделы кабинета, портал, аккаунт. На телефоне — на всю ширину под шапкой. */
.top { position: relative; z-index: 30; }
.umenu { position: relative; }
.umenu > summary { list-style: none; cursor: pointer; gap: 8px; padding: 8px 12px; border-radius: 10px; color: var(--ink); font-weight: 800; }
.umenu > summary::-webkit-details-marker { display: none; }
.umenu > summary:hover { background: var(--soft); }
.um-ic { flex: none; width: 18px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
.um-ic::after { content: ''; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid currentColor; }
.umenu[open] .um-ic { border-color: transparent; }
.umenu[open] .um-ic::before, .umenu[open] .um-ic::after { content: ''; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid var(--ink); transform: rotate(45deg); }
.umenu[open] .um-ic::after { transform: rotate(-45deg); }
.um-panel { position: absolute; right: 0; top: calc(100% + 8px); width: 300px; max-height: calc(100vh - 100px); overflow-y: auto; background: #fff;
            border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 32px rgba(1, 34, 85, .18); padding: 8px; display: flex; flex-direction: column; gap: 4px; }
.um-g { display: flex; flex-direction: column; padding: 6px 0; border-top: 1px solid var(--soft); }
.um-g:first-child { border-top: 0; }
.um-h { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); padding: 4px 10px 6px; }
.um-panel a, .um-panel button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 11px 10px; border-radius: 10px;
            color: var(--ink); font: 700 15px 'Manrope', sans-serif; background: none; border: 0; text-align: left; cursor: pointer; }
.um-panel a:hover, .um-panel button:hover { background: var(--soft); color: var(--ink); }
.um-panel .um-hot { background: var(--orange-soft); color: var(--orange-deep); }
.um-panel form { margin: 0; }
.um-panel form button { color: var(--orange-deep); }

/* Кабинет: полоса переходов по разделам — прилипает к верху при прокрутке. */
.ksec { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--line); }
.ksec-in { display: flex; gap: 6px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; scrollbar-width: none; }
.ksec-in::-webkit-scrollbar { display: none; }
.ksec a { flex: none; padding: 7px 12px; border-radius: 999px; border: 2px solid var(--line); color: var(--navy); font-size: 14px; white-space: nowrap; }
.ksec a.hot { background: var(--orange-deep); border-color: var(--orange-deep); color: #fff; }
#respond, #entries, #requests, #history, #stats, #telegram, #organizing, #account { scroll-margin-top: 72px; }
html { scroll-behavior: smooth; }

@media (max-width: 600px) {
  .nav .hide-m { display: none; }
  .umenu { position: static; }
  .um-panel { position: absolute; left: 12px; right: 12px; width: auto; top: calc(100% - 4px); max-height: calc(100vh - 80px); }
  .umenu > summary { padding: 8px 10px; }
}


/* Главная: баннер (о портале / ваш турнир + «Идёт сейчас»), цифры, карточки ближайших, ищут напарника и результаты, организаторам. */
.hp { display: flex; flex-direction: column; gap: 28px; padding-top: 28px; padding-bottom: 48px; }
.hp-act { background: #fff; border: 2px solid var(--orange-deep); border-radius: var(--radius); padding: 14px 16px; display: flex; gap: 16px; align-items: center; }
.hp-act-h { font: 700 16px 'Unbounded', sans-serif; flex: none; }
.hp-act-list { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hp-hero { background: var(--navy); color: #fff; border-radius: 22px; padding: 30px 32px; display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 28px; align-items: stretch; }
.hp-hero.solo { grid-template-columns: minmax(0, 1fr); }
.hp-hero-t { display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.hp-h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.08; color: #fff; max-width: 680px; }
.hp-h1.sm { font-size: clamp(22px, 3vw, 32px); }
.hp-hero-t p { margin: 0; color: var(--fog); font-weight: 600; font-size: 17px; max-width: 600px; }
.hp-btns { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.hp-btns .btn { height: 50px; }
.hp-btns form { margin: 0; }
.hp-ghost { display: inline-flex; align-items: center; height: 50px; padding: 0 20px; border-radius: 14px; border: 2px solid #4A6290; color: #fff; }
.hp-ghost:hover { color: #fff; border-color: #fff; }
.hp-live { background: #fff; color: var(--ink); border-radius: 18px; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.hp-live:hover { color: var(--ink); box-shadow: 0 0 0 3px var(--orange-deep); }
.hp-live-k { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--orange-deep); }
.hp-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--orange-deep); animation: hp-pulse 1.6s infinite; }
@keyframes hp-pulse { 50% { opacity: .35; } }
.hp-live > b { font: 700 20px/1.25 'Unbounded', sans-serif; }
.hp-mut { color: var(--slate); font-weight: 700; font-size: 14px; }
.hp-scores { display: flex; flex-direction: column; gap: 6px; }
.hp-sc { display: flex; justify-content: space-between; gap: 10px; background: var(--bg); border-radius: 10px; padding: 8px 10px; font-weight: 800; font-size: 14px; }
.hp-sc span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-sc em { font: 700 15px 'Unbounded', sans-serif; font-style: normal; flex: none; }
.hp-lnk { color: var(--sea); font-weight: 800; font-size: 14px; margin-top: auto; }
.hp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.hp-stats div { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; display: flex; flex-direction: column; gap: 2px; }
.hp-stats b { font: 700 28px 'Unbounded', sans-serif; }
.hp-stats span { color: var(--slate); font-weight: 700; font-size: 14px; }
.hp-sec { display: flex; flex-direction: column; gap: 14px; min-width: 0; scroll-margin-top: 16px; }
.hp-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.hp-head h2 { margin-right: auto; }
.hp-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.hp-all { white-space: nowrap; font-size: 15px; }
.hp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.hp-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 12px; color: var(--ink); }
.hp-card:hover { border-color: var(--navy); color: var(--ink); }
.hp-card-top { display: flex; gap: 14px; }
.hp-card-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hp-card-t b { font-size: 18px; line-height: 1.25; overflow-wrap: anywhere; }
.hp-card-t small { color: var(--slate); font-weight: 700; font-size: 14px; }
.hp-bar { height: 6px; border-radius: 6px; background: var(--soft); overflow: hidden; }
.hp-bar i { display: block; height: 100%; background: var(--olive); border-radius: 6px; }
.hp-bar.full i { background: var(--orange-deep); }
.hp-fill { color: var(--slate); font-weight: 800; font-size: 13px; }
.hp-st { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; }
.hp-st .s { font-size: 12px; font-weight: 800; border-radius: 8px; padding: 3px 8px; }
.hp-st .s.ok { background: #EAF2DD; color: var(--olive); }
.hp-st .s.w { background: var(--orange-soft); color: var(--orange-deep); }
.hp-st .s.n { background: var(--soft); color: var(--slate); }
.hp-st .s.me { background: var(--navy); color: #fff; }
.hp-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.hp-list { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.hp-row { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-top: 1px solid var(--soft); color: var(--ink); }
.hp-row-top { align-items: flex-start; }
.hp-row:first-child { border-top: 0; }
.hp-row:hover { background: #F9FAFC; color: var(--ink); }
.hp-row .date { width: 48px; height: 50px; border-radius: 12px; flex: none; }
.hp-row .date .d { font-size: 17px; }
.hp-row-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hp-row-t b { font-size: 16px; line-height: 1.3; }
.hp-row-t small { color: var(--slate); font-weight: 700; font-size: 13px; }
.hp-ask { flex: none; background: var(--navy); color: #fff; border-radius: 10px; padding: 8px 12px; font-size: 13px; font-weight: 800; }
.hp-pod { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.hp-pod .pd { font-size: 12px; font-weight: 800; border-radius: 8px; padding: 3px 8px; background: var(--bg); }
.hp-pod .pd.g { background: #FDF3D8; color: #7A5A00; }
.hp-empty { background: #fff; border: 2px dashed #9AA8BD; border-radius: var(--radius); padding: 18px; color: var(--slate); font-weight: 600; }
.hp-org { background: #fff; border: 2px solid var(--navy); border-radius: 20px; padding: 22px 24px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.hp-org > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.hp-org b { font: 700 19px 'Unbounded', sans-serif; }
.hp-org span { color: var(--slate); font-weight: 600; }
.hp-org .btn-line { width: auto; height: 50px; padding: 0 20px; }
@media (max-width: 1000px) {
  .hp-hero { grid-template-columns: minmax(0, 1fr); }
  .hp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hp-two { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .hp { gap: 20px; padding-top: 16px; }
  .hp-act { flex-direction: column; align-items: stretch; }
  .hp-hero { padding: 20px 18px; border-radius: 18px; gap: 18px; }
  .hp-hero-t p { font-size: 15px; }
  .hp-btns .btn, .hp-ghost { height: 46px; }
  .hp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hp-stats div { padding: 12px 14px; }
  .hp-stats b { font-size: 22px; }
  .hp-cards { grid-template-columns: minmax(0, 1fr); }
  .hp-org { flex-direction: column; align-items: stretch; }
  .hp-ask { padding: 7px 10px; }
}

/* Страницы портала: «О проекте», «Контакты», «Демо». */
.pg { display: flex; flex-direction: column; gap: 22px; padding-top: 28px; padding-bottom: 48px; }
.pg-narrow { max-width: 760px; }
.pg-hero { background: var(--navy); color: #fff; border-radius: 22px; padding: 28px 30px; display: flex; flex-direction: column; gap: 10px; }
.pg-hero h1 { color: #fff; font-size: clamp(26px, 4vw, 40px); max-width: 820px; }
.pg-hero p { margin: 0; color: var(--fog); font-weight: 600; font-size: 17px; max-width: 760px; }
.pg-k { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--orange-deep); }
.pg-hero .pg-k { color: #FF7A2E; }
.pg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pg-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.pg-card h2 { font-size: 20px; }
.pg-new { border-color: var(--orange-deep); box-shadow: inset 0 0 0 1px var(--orange-deep); }
.pg-card p { margin: 0; color: var(--slate); font-weight: 600; }
.pg-list { margin: 4px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
.pg-list li { position: relative; padding-left: 22px; color: var(--slate); font-weight: 600; }
.pg-list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 10px; height: 10px; border-radius: 3px; background: var(--orange); }
.pg-cta { background: #fff; border: 2px solid var(--navy); border-radius: 20px; padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.pg-cta > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.pg-cta b { font: 700 18px 'Unbounded', sans-serif; }
.pg-cta span { color: var(--slate); font-weight: 600; }
.pg-cta .btn-line { width: auto; height: 50px; padding: 0 20px; }
.pg-form { gap: 14px; }
.pg-form .btn { align-self: flex-start; }
.pg-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pg-again { width: auto; align-self: flex-start; padding: 0 20px; }
.dm { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.dm-steps { display: flex; gap: 6px; }
.dm-sp { flex: 1; height: 6px; border-radius: 6px; background: var(--line); overflow: hidden; }
.dm-sp i { display: block; height: 100%; width: 0; background: var(--orange-deep); transition: width .2s linear; }
.dm-stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 22px; min-height: 320px; }
.dm-say { display: flex; flex-direction: column; gap: 8px; }
.dm-say b { font: 700 22px/1.25 'Unbounded', sans-serif; }
.dm-say p { margin: 0; color: var(--slate); font-weight: 600; font-size: 16px; }
.dm-scr { background: var(--bg); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 8px; font-weight: 700; }
.dm-fld { background: #fff; border: 2px solid var(--line); border-radius: 10px; padding: 9px 12px; display: flex; justify-content: space-between; gap: 10px; opacity: .25; transition: opacity .3s, border-color .3s; }
.dm-fld.on { opacity: 1; border-color: var(--olive); }
.dm-ent { background: #fff; border-radius: 10px; padding: 8px 12px; display: flex; justify-content: space-between; gap: 10px; opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s; }
.dm-ent.on { opacity: 1; transform: none; }
.dm-pill { font-size: 12px; font-weight: 800; border-radius: 8px; padding: 2px 8px; white-space: nowrap; }
.dm-pill.ok { background: #EAF2DD; color: var(--olive); }
.dm-pill.w { background: var(--orange-soft); color: var(--orange-deep); }
.dm-grp { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dm-gb { display: block; }
.dm-gb b { display: block; font-size: 12px; color: var(--orange-deep); margin-bottom: 4px; }
.dm-sc { background: var(--navy); color: #fff; border-radius: 12px; padding: 16px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; text-align: center; gap: 8px; }
.dm-sc em { font: 700 40px 'Unbounded', sans-serif; font-style: normal; }
.dm-sc small { display: block; color: var(--fog); font-size: 12px; }
.dm-pod { display: flex; align-items: flex-end; gap: 8px; justify-content: center; height: 170px; }
.dm-pc { width: 30%; border-radius: 10px 10px 0 0; background: var(--sea-soft); display: flex; flex-direction: column; align-items: center; padding: 10px 4px; font-size: 13px; text-align: center; }
.dm-pc.g { background: #FDF3D8; }
.dm-pc b { font: 700 20px 'Unbounded', sans-serif; }
.dm-ctl { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.dm-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.dm-btns .btn { height: 46px; }
.dm-btns .btn-line { width: auto; height: 46px; padding: 0 16px; }
@media (max-width: 900px) { .pg-grid { grid-template-columns: minmax(0, 1fr); } .dm-stage { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  .pg { gap: 16px; padding-top: 16px; }
  .pg-hero { padding: 20px 18px; border-radius: 18px; }
  .pg-hero p { font-size: 15px; }
  .pg-list { grid-template-columns: minmax(0, 1fr); }
  .pg-cta { flex-direction: column; align-items: stretch; }
  .dm { padding: 14px; }
  .dm-say b { font-size: 18px; }
  .dm-ent { font-size: 14px; }
  .dm-sc em { font-size: 30px; }
}

/* Шапка: разделы портала; на узких экранах прячутся в меню. Гостям меню нужно только там, где разделы не видны. */
.nav { align-items: center; }
.umenu.guest { display: none; }
.umenu.guest > summary { padding: 9px 11px; }
@media (max-width: 1100px) { .nav .hide-lg { display: none; } }
@media (max-width: 1100px) { .umenu.guest { display: block; } }
@media (max-width: 900px) { .nav .hide-md { display: none; } }
@media (max-width: 600px) { .umenu.guest { position: static; } }

/* Контакты: форма и пояснения в две колонки. */
.ct { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.ct-main, .ct-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ct-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.ct-topics { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-topic input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct-topic span { display: inline-flex; padding: 8px 14px; border-radius: 999px; border: 2px solid var(--line); background: #fff; font-weight: 800; font-size: 14px; cursor: pointer; }
.ct-topic input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.ct-topic input:focus-visible + span { outline: 2px solid var(--sea); outline-offset: 2px; }
.ct-need { margin-top: -6px; }
.ct-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; color: var(--slate); font-weight: 600; }
.ct-list b { color: var(--ink); }
.ct-side .btn-line { width: auto; align-self: flex-start; padding: 0 18px; }
.ct-done { align-items: flex-start; gap: 10px; }
.ct-ok { width: 48px; height: 48px; border-radius: 50%; background: #EAF2DD; color: var(--olive); display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 800; }
@media (max-width: 900px) { .ct { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .ct-row { grid-template-columns: minmax(0, 1fr); } }

/* Демо: кликабельные шаги, широкая сцена для табло судьи и ТВ. */
.dm-sp { border: 0; padding: 0; cursor: pointer; height: 8px; }
.dm-stage.wide { grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); }
.dm-ref { background: var(--navy); color: #fff; border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 10px; position: relative; }
.dm-ref-top { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; font-weight: 800; color: var(--fog); }
.dm-ref-sw { color: #FF7A2E; }
.dm-ref-main { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: stretch; }
.dm-ref-side { display: flex; flex-direction: column; gap: 6px; align-items: stretch; text-align: center; }
.dm-ref-side b { font-size: 14px; }
.dm-ref-srv { font-size: 12px; color: #FF7A2E; font-weight: 800; }
.dm-plus { height: 76px; border-radius: 14px; border: 0; background: #fff; color: var(--navy); font: 700 30px 'Unbounded', sans-serif; cursor: pointer; transition: transform .1s, background .2s; }
.dm-plus:hover { background: #E1EDF8; }
.dm-plus.hit { background: #FF7A2E; color: #fff; transform: scale(.96); }
.dm-minus { height: 36px; border-radius: 10px; border: 2px solid #4A6290; background: none; color: #fff; font-weight: 800; cursor: pointer; }
.dm-ref-score { display: flex; align-items: center; gap: 6px; font: 700 48px 'Unbounded', sans-serif; }
.dm-ref-score em { font-style: normal; min-width: 1.3em; text-align: center; }
.dm-ref-score i { font-style: normal; color: var(--fog); }
.dm-ref-pop { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #FF7A2E; color: #fff; padding: 14px 22px; border-radius: 14px; font-weight: 800; cursor: pointer; box-shadow: 0 10px 30px rgba(0, 0, 0, .3); }
.dm-hint { background: var(--orange-soft); color: var(--orange-deep); }
.dm-tv { background: #0B1B3A; color: #fff; border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 10px; aspect-ratio: 16 / 9; }
.dm-tv-h { display: flex; justify-content: space-between; align-items: center; font: 700 16px 'Unbounded', sans-serif; }
.dm-tv-live { color: #FF7A2E; font: 800 13px 'Manrope', sans-serif; }
.dm-tv-courts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dm-tv-c { background: #12285A; border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 6px; }
.dm-tv-c > span { font-size: 12px; color: var(--fog); font-weight: 800; }
.dm-tv-c div { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 14px; }
.dm-tv-c em { font: 700 26px 'Unbounded', sans-serif; font-style: normal; }
.dm-tv-low { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; font-size: 13px; }
.dm-tv-low > div { background: #12285A; border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
.dm-tv-low span { font-size: 12px; color: #FF7A2E; font-weight: 800; }
.dm-tv-low i { font-style: normal; color: var(--fog); float: right; }
@media (max-width: 900px) { .dm-stage.wide { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  .dm-plus { height: 64px; font-size: 24px; }
  .dm-ref-score { font-size: 36px; }
  .dm-tv { aspect-ratio: auto; }
  .dm-tv-courts, .dm-tv-low { grid-template-columns: minmax(0, 1fr); }
}
/* Демо, шаг 1: поле с выбором — варианты, бегущая подсветка, выбранный вариант. */
.dm-fld.choosing { opacity: 1; border-color: var(--sea); }
.dm-opts { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.dm-opts i { font-style: normal; font-size: 13px; padding: 2px 8px; border-radius: 8px; background: var(--soft); color: var(--slate); transition: background .15s, color .15s; }
.dm-opts i.hl { background: var(--sea-soft); color: var(--sea); }
.dm-opts i.sel { background: var(--navy); color: #fff; }

/* Фильтр списка: подписанные группы-переключатели. */
.flt { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.flt-g { display: flex; align-items: center; gap: 10px; min-width: 0; }
.flt-l { font-size: 13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.seg { display: inline-flex; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 3px; gap: 2px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.seg::-webkit-scrollbar { display: none; }
.seg-o { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 9px; color: var(--navy); font-size: 14px; font-weight: 800; white-space: nowrap; }
.seg-o:hover { background: var(--soft); color: var(--navy); }
.seg-o.on { background: var(--navy); color: #fff; }
.seg-o i { font-style: normal; font-size: 12px; color: var(--slate); background: var(--soft); border-radius: 6px; padding: 0 6px; }
.seg-o.on i { background: rgba(255, 255, 255, .18); color: #fff; }
.seg-o.off { color: #A3AEC0; cursor: default; }
.flt-reset { font-size: 14px; }
@media (max-width: 600px) { .flt-g { flex-direction: column; align-items: flex-start; gap: 6px; width: 100%; } .flt { gap: 12px; } }

/* Табло судьи в демо: только смотреть; «нажатие» робота на +1 видно подсветкой и кругом от пальца. */
.rb-demo { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; background: #FF7A2E; color: #fff; border-radius: 12px; padding: 8px 12px; font-size: 14px; font-weight: 700; }
.rb-demo-a { display: flex; gap: 6px; }
.rb-demo-a a { color: #fff; background: rgba(1, 34, 85, .35); border-radius: 8px; padding: 4px 10px; font-weight: 800; }
.rb-demo-a a.on { background: var(--navy); }
.rb.watch .rb-plus, .rb.watch .rb-minus { cursor: default; }
.rb.watch .rb-plus:disabled { opacity: 1; }
.rb-plus { position: relative; overflow: hidden; transition: transform .12s, background .2s; }
.rb-plus.tap { transform: scale(.94); background: #FF7A2E; color: #fff; }
.rb-plus.tap::after { content: ''; position: absolute; left: 50%; top: 50%; width: 60px; height: 60px; margin: -30px 0 0 -30px; border-radius: 50%; background: rgba(255, 255, 255, .55); animation: rb-tap 1s ease-out forwards; }
@keyframes rb-tap { from { transform: scale(.2); opacity: 1; } to { transform: scale(4); opacity: 0; } }
/* Демо-конструктор. */
.wz-demo { background: var(--orange-soft); color: var(--orange-deep); border-radius: 12px; padding: 12px 14px; font-weight: 700; }
.wz-demo b { color: var(--orange-deep); }
.wz-demo-end { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; background: var(--sea-soft); border-radius: 14px; padding: 16px; }
.wz-demo-end span { color: var(--slate); font-weight: 600; }

/* Демо: живой турнир и входы в него. */
.dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 16px; align-items: stretch; }
.dl-now { background: var(--navy); color: #fff; border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.dl-k { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #FF7A2E; }
.dl-now > b { font: 700 20px/1.25 'Unbounded', sans-serif; }
.dl-courts { display: flex; flex-direction: column; gap: 8px; }
.dl-c { background: #12285A; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
.dl-c > span { font-size: 12px; color: var(--fog); font-weight: 800; }
.dl-c div { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.dl-c b { font-size: 14px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dl-c em { font: 700 24px 'Unbounded', sans-serif; font-style: normal; }
.dl-now .hp-pod .pd { background: #12285A; color: #fff; }
.dl-now .hp-pod .pd.g { background: #FDF3D8; color: #7A5A00; }
.dl-now .muted { color: var(--fog); }
.dl-go { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.dl-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; align-items: center; color: var(--ink); }
.dl-card span { grid-column: 1; }
.dl-card i { grid-column: 2; grid-row: 1 / span 2; }
.dl-card:hover { border-color: var(--navy); color: var(--ink); }
.dl-card b { font: 700 17px 'Unbounded', sans-serif; }
.dl-card span { color: var(--slate); font-weight: 600; font-size: 14px; }
.dl-card i { font-style: normal; color: var(--sea); font-weight: 800; white-space: nowrap; }
.dl-wz .pg-k { display: block; }
.dl-h { margin-top: 8px; }
@media (max-width: 1000px) { .dl { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .dl-card { grid-template-columns: minmax(0, 1fr); } .dl-card i { grid-column: 1; grid-row: auto; padding-top: 4px; } }
/* Демо: кнопки табло не нажимаются — только «клики» робота. */
.rb.watch .rb-plus, .rb.watch .rb-minus, .rb.watch .rb-ov button, .rb.watch .rb-endbtn { pointer-events: none; }

/* подменю «Демо» в шапке: турниры и тренировки */
.nav-dd { position: relative; }
.nav-dd > summary { list-style: none; cursor: pointer; padding: 10px 14px; border-radius: 10px; color: var(--ink); font-weight: 800; white-space: nowrap; display: flex; align-items: center; gap: 6px; }
.nav-dd > summary::-webkit-details-marker { display: none; }
.nav-dd > summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.nav-dd[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.nav-dd > summary:hover, .nav-dd[open] > summary { background: var(--soft); }
.nav-dd-p { position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; width: 300px; max-width: calc(100vw - 32px); display: flex; flex-direction: column; gap: 2px; padding: 6px;
            background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 32px rgba(1, 34, 85, .14); }
.nav .nav-dd-p a { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; white-space: normal; }
.nav-dd-p small { color: var(--slate); font-weight: 600; font-size: 13px; }

/* Полноэкранное меню (кнопка с именем в шапке): блоки Портал, Турниры, Тренировки, Кабинет, Аккаунт. */
html.fm-open { overflow: hidden; }
.fm { position: fixed; inset: 0; z-index: 100; background: var(--soft); display: flex; flex-direction: column; overflow-y: auto; }
.fm-top { background: #fff; border-bottom: 1px solid var(--line); flex: none; }
.fm-top-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 76px; }
.fm-me { display: flex; align-items: center; gap: 14px; font-weight: 800; color: var(--ink); }
.fm-x { width: 46px; height: 46px; border-radius: 12px; border: 2px solid var(--navy); background: #fff; color: var(--navy); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.fm-x:hover { background: var(--navy); color: #fff; }
.fm-x .ico { width: 24px; height: 24px; }
.fm .fm-body, .fm .fm-top-in { max-width: 1440px; padding-left: 32px; padding-right: 32px; }
.fm-body { padding-top: 28px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 18px; }
.fm-hot { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 14px; background: var(--orange-soft); color: var(--orange-deep); }
.fm-hot:hover { background: #FBDCCB; color: var(--orange-deep); }
.fm-hot b { flex: 1; }
.fm-hot .mi-n { background: var(--orange-deep); color: #fff; }
.fm-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.fm-b { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 16px 12px 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fm-h { font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--slate); padding: 0 8px 8px; }
.fm-sep { height: 1px; background: var(--soft); margin: 6px 8px; }
.ico { width: 20px; height: 20px; flex: none; }
.fm .mi { position: relative; display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border-radius: 12px; color: var(--ink); font: 700 15px 'Manrope', sans-serif;
          white-space: nowrap; background: none; border: 0; text-align: left; cursor: pointer; }
.mi-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; background: var(--soft); color: var(--navy); display: flex; align-items: center; justify-content: center; transition: background .15s, color .15s; }
.mi-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.mi-n { flex: none; font-size: 12px; font-weight: 800; background: var(--soft); color: var(--navy); border-radius: 999px; padding: 2px 9px; }
.mi-go { position: absolute; right: 10px; top: 50%; margin-top: -9px; display: flex; color: var(--orange-deep); opacity: 0; transform: translateX(-4px); transition: opacity .15s, transform .15s; }
.mi-go .ico { width: 18px; height: 18px; }
.mi-ok { flex: none; display: flex; color: #1D9E75; }
.fm .mi:hover { background: var(--soft); color: var(--ink); }
.fm .mi:hover .mi-ic { background: var(--navy); color: #fff; }
.fm .mi:hover .mi-go { opacity: 1; transform: none; }
.fm .mi:hover .mi-t { padding-right: 22px; }
.fm-cta, .fm-cta button { margin: auto 0 0; }
.fm-cta { padding-top: 10px; }
a.fm-cta, .fm-cta button { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 11px 12px; border: 0; border-radius: 12px;
          background: var(--orange-deep); color: #fff; font: 800 15px 'Manrope', sans-serif; white-space: nowrap; cursor: pointer; }
a.fm-cta { margin-top: auto; }
a.fm-cta:hover, .fm-cta button:hover { background: var(--navy); color: #fff; }
.fm-out { margin: auto 0 0; padding-top: 6px; border-top: 1px solid var(--soft); }
.fm-out .mi { color: var(--orange-deep); }
.fm-out .mi-ic { background: var(--orange-soft); color: var(--orange-deep); }
@media (max-width: 1320px) { .fm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .fm-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .fm-top-in { min-height: 64px; } .fm .fm-body, .fm .fm-top-in { padding-left: 16px; padding-right: 16px; } }
@media (max-width: 520px) { .fm-grid { grid-template-columns: minmax(0, 1fr); } .fm-me { font-size: 0; } }

/* Футер: бренд с кнопками, колонки ссылок, нижняя строка с отметкой о разработке. */
.ft { display: grid; grid-template-columns: minmax(0, 2.2fr) repeat(4, minmax(0, 1fr)); gap: 32px; padding-top: 48px; padding-bottom: 36px; }
.ft-brand img { display: block; width: 170px; height: auto; }
.ft-brand p { color: #AEBBD3; margin: 14px 0 18px; max-width: 360px; line-height: 1.55; }
.ft-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.ft-b1, .ft-b2 { padding: 10px 16px; border-radius: 12px; font-weight: 800; }
.ft-b1 { background: var(--orange-deep); color: #fff; }
.ft-b2 { border: 2px solid rgba(255, 255, 255, .25); color: #fff; }
.ft-b1:hover { background: #fff; color: var(--navy); }
.ft-b2:hover { border-color: #fff; color: #fff; }
.ft-col { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; }
.ft-h { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #7F93B8; margin-bottom: 4px; }
.ft-col a { color: #fff; font-weight: 700; white-space: nowrap; }
.ft-col a:hover { color: var(--orange); }
.ft-bot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 18px; padding-bottom: 22px; border-top: 1px solid rgba(255, 255, 255, .12); color: #7F93B8; font-size: 14px; }
.ft-dev { display: flex; align-items: center; gap: 10px; color: #AEBBD3; font-weight: 700; }
.ft-dev img { height: 34px; width: auto; }
.ft-dev:hover { color: #fff; }
@media (max-width: 1000px) { .ft { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ft-brand { grid-column: 1 / -1; } }
@media (max-width: 600px) { .ft { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; } }
/* Гостю кнопка меню видна всегда: «О проекте» и «Контакты» есть только в меню. */
.umenu.guest { display: block; }

/* Фото игрока: кружок с фото или инициалами (Avatars::html). */
.ava { flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; overflow: hidden; background: var(--soft); color: var(--navy);
       font: 800 13px 'Manrope', sans-serif; width: 36px; height: 36px; }
.ava img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ava-sm { width: 28px; height: 28px; font-size: 11px; }
.ava-md { width: 40px; height: 40px; font-size: 14px; }
.ava-xl { width: 96px; height: 96px; font-size: 32px; }
.nav-me .ava-sm { margin: -3px 0 -3px -4px; }
.pf-photo { display: flex; align-items: center; gap: 18px; padding: 16px; margin: 6px 0 18px; border: 1px solid var(--line); border-radius: 16px; }
.pf-photo-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pf-photo-b { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.pf-photo-b form { margin: 0; }
.pf-photo-b label.btn { cursor: pointer; }
.pf-ok { color: #0F6E56; font-weight: 700; font-size: 14px; }
label.busy { opacity: .7; pointer-events: none; }

/* Страница игрока. */
.pp { display: flex; flex-direction: column; gap: 18px; padding-top: 28px; padding-bottom: 48px; }
.pp-hero { background: var(--navy); color: #fff; border-radius: 24px; padding: 30px 34px; display: flex; align-items: center; gap: 30px; }
.pp-ph { position: relative; flex: none; }
.ava-hero { width: 150px; height: 150px; font-size: 52px; border: 5px solid #fff; background: #2B4A7C; color: #fff; }
.pp-cam { position: absolute; right: 2px; bottom: 2px; margin: 0; }
.pp-cam label { width: 42px; height: 42px; border-radius: 50%; background: var(--orange-deep); color: #fff; border: 3px solid var(--navy); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.pp-cam label:hover { background: #fff; color: var(--navy); }
.pp-hi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.pp-k { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #9FB0CF; }
.pp-hi h1 { color: #fff; font-size: clamp(30px, 4vw, 46px); line-height: 1.05; margin: 0; overflow-wrap: anywhere; }
.pp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-chips span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 999px; background: rgba(255, 255, 255, .1); color: #DCE4F2; font-size: 14px; font-weight: 700; }
.pp-chips .ico { width: 17px; height: 17px; }
.pp-btns { flex: none; display: flex; flex-direction: column; gap: 10px; }
.pp-b1, .pp-b2 { padding: 11px 18px; border-radius: 12px; font-weight: 800; text-align: center; white-space: nowrap; }
.pp-b1 { background: var(--orange-deep); color: #fff; }
.pp-b1:hover { background: #fff; color: var(--navy); }
.pp-b2 { border: 2px solid rgba(255, 255, 255, .3); color: #fff; }
.pp-b2:hover { border-color: #fff; color: #fff; }
.pp-note { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--line); color: var(--slate); }
.pp-note .ico { color: var(--navy); margin-top: 2px; }
.pp-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
.pp-nums > div { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; display: flex; flex-direction: column; gap: 2px; }
.pp-nums b { font: 700 30px 'Unbounded', sans-serif; color: var(--navy); }
.pp-nums span { color: var(--slate); font-size: 14px; font-weight: 600; }
.pp-nums .up b { color: #0F6E56; } .pp-nums .dn b { color: #A32D2D; } .pp-nums .gold b { color: #B7791F; }
.pp-cols { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.pp-main, .pp-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.pp-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px; }
.pp-h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.pp-h h2 { font-size: 19px; margin: 0; }
.pp-h small { color: var(--slate); font-size: 13px; }
.pp-form { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-form a { width: 58px; padding: 7px 0; border-radius: 10px; text-align: center; font-size: 12px; font-weight: 700; }
.pp-form a b { display: block; font-size: 15px; }
.pp-form .w { background: #E1F5EE; color: #085041; } .pp-form .l { background: #FCEBEB; color: #791F1F; }
.pp-form a:hover { outline: 2px solid var(--navy); }
.pp-ts { display: flex; flex-direction: column; }
.pp-t { display: flex; align-items: center; gap: 14px; padding: 11px 6px; border-top: 1px solid var(--soft); border-radius: 10px; color: var(--ink); }
.pp-t:first-child { border-top: 0; }
.pp-t:hover { background: var(--soft); color: var(--ink); }
.pp-pl { flex: none; width: 48px; height: 48px; border-radius: 12px; background: var(--soft); display: flex; flex-direction: column; align-items: center; justify-content: center; font: 700 18px 'Unbounded', sans-serif; color: var(--navy); }
.pp-pl small { font: 600 10px 'Manrope', sans-serif; color: var(--slate); }
.pp-pl.p1 { background: #FAEEDA; color: #854F0B; } .pp-pl.p2 { background: #EEF0F3; color: #444441; } .pp-pl.p3 { background: #FAECE7; color: #993C1D; }
.pp-tt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pp-tt b { font-size: 15px; } .pp-tt small { color: var(--slate); font-size: 13px; }
.pp-tr { flex: none; text-align: right; font-size: 13px; color: var(--slate); display: flex; flex-direction: column; }
.pp-tr small { font-weight: 800; font-size: 13px; }
.pp-tr .up { color: #0F6E56; } .pp-tr .dn { color: #A32D2D; }
.pp-rec { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-top: 1px solid var(--soft); color: var(--ink); }
.pp-rec:first-of-type { border-top: 0; padding-top: 0; }
a.pp-rec:hover b { color: var(--orange-deep); }
.pp-rec > span { font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
.pp-rec b { font: 700 20px 'Unbounded', sans-serif; color: var(--navy); }
.pp-rec small { color: var(--slate); font-size: 13px; }
.pp-bar { display: block; height: 8px; border-radius: 99px; background: #FCEBEB; overflow: hidden; margin: 4px 0 2px; }
.pp-bar i { display: block; height: 100%; background: #1D9E75; }
.pp-prt { display: flex; align-items: center; gap: 12px; padding: 8px 6px; border-radius: 10px; color: var(--ink); }
.pp-prt:hover { background: var(--soft); color: var(--ink); }
.pp-prt span:last-child { display: flex; flex-direction: column; } .pp-prt small { color: var(--slate); font-size: 13px; }
.pp-pro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pp-pro div { background: var(--soft); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; }
.pp-pro b { font: 700 20px 'Unbounded', sans-serif; color: var(--navy); } .pp-pro span { font-size: 13px; color: var(--slate); }
.pp-pro .dn b { color: #A32D2D; }
.pp-kv { display: flex; justify-content: space-between; padding: 6px 0; } .pp-kv span { color: var(--slate); }
.pp-claim { font-size: 14px; color: var(--slate); text-align: center; }
@media (max-width: 900px) {
  .pp-hero { flex-wrap: wrap; padding: 24px; gap: 20px; }
  .pp-btns { flex-direction: row; flex-wrap: wrap; width: 100%; }
  .pp-cols { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .pp-hero { flex-direction: column; text-align: center; }
  .pp-chips { justify-content: center; }
  .ava-hero { width: 120px; height: 120px; font-size: 42px; }
  .pp-btns > a { flex: 1; }
  .pp-nums { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pp-nums b { font-size: 24px; }
}
/* Кнопки фото профиля — одной высоты и в одну линию. */
.pf-photo-b { align-items: center; }
.pf-photo-b .btn, .pf-photo-b .btn-line { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 18px; margin: 0;
  border-radius: 12px; font: 800 15px 'Manrope', sans-serif; line-height: 1; box-sizing: border-box; }
.pf-photo-b .btn-line { border-width: 2px; }
/* Главная: «Ищут напарника» и «Результаты» — блоки одной высоты. */
.hp-two { align-items: stretch; }
.hp-two > .hp-sec { display: flex; flex-direction: column; }
.hp-two > .hp-sec > .hp-list, .hp-two > .hp-sec > .hp-empty { flex: 1; }
.hp-empty-cta { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 12px; }
.hp-empty-cta .btn-line { width: auto; display: inline-flex; }
.hp-empty-cta .btn-line { padding: 0 20px; height: 44px; }
.hp-list > .hp-row:last-child { border-bottom: 0; }
/* Главная: живой счёт в карточке «Идёт сейчас» — новая цифра коротко подсвечивается. */
.hp-sc em i { font-style: normal; display: inline-block; }
.hp-sc em i.bump { animation: hp-bump .9s ease; }
@keyframes hp-bump { 0% { color: var(--orange-deep); transform: scale(1.25); } 100% { color: inherit; transform: none; } }

/* Языки: переключатель в шапке (RU | EN) и полоса «Switch to English» над шапкой. */
.nav-lang { display: inline-flex; align-items: center; gap: 2px; font-weight: 800; font-size: 13px; margin-right: 4px; }
.nav-lang b, .nav-lang a { padding: 8px 8px; border-radius: 8px; }
.nav-lang b { color: var(--ink); }
.nav-lang a { color: #015C9E; }
.lang-offer { background: var(--navy); color: #fff; font-size: 14px; font-weight: 700; }
.lang-offer-in { display: flex; align-items: center; gap: 12px; min-height: 40px; padding-top: 6px; padding-bottom: 6px; }
.lang-offer a { color: #FF7A2E; text-decoration: underline; }
.lang-offer .lang-offer-x { margin-left: auto; color: #fff; text-decoration: none; display: inline-flex; padding: 4px; }
.lang-offer .lang-offer-x .ico { width: 18px; height: 18px; }
@media (max-width: 600px) { .nav-lang { font-size: 12px; margin-right: 0; } .nav-lang b, .nav-lang a { padding: 8px 5px; } }
/* Мой профиль: слева фото и язык, справа форма. На узком экране — одной колонкой. */
.block.pf-page { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
.pf-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.pf-side .pf-photo { margin: 0; background: #fff; border-radius: var(--radius); padding: 22px 18px; flex-direction: column; text-align: center; }
.pf-side .pf-photo-b { justify-content: center; }
.pf-side .pf-lang { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; }
.pf-main { padding: clamp(18px, 3vw, 28px); gap: 16px; }
.auth-card .pf-lang { margin-top: 14px; }
@media (max-width: 860px) { .block.pf-page { grid-template-columns: minmax(0, 1fr); margin-top: 24px; } }

/* Оповещения: колокольчик в шапке, плашки под шапкой, «Настройки → Оповещения», лента. */
.nav a.nav-bell { position: relative; display: inline-flex; align-items: center; justify-content: center; padding: 10px; color: var(--navy); }
.nav-bell .ico { width: 22px; height: 22px; }
.nav-bell .badge { position: absolute; top: 2px; right: 0; margin: 0; min-width: 18px; height: 18px; font-size: 11px; padding: 0 5px; }
.nav-bell.off::after { content: ''; position: absolute; top: 8px; right: 7px; width: 9px; height: 9px; border-radius: 50%; background: var(--orange); border: 2px solid #fff; }
.mi-warn { flex: none; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 3px var(--orange-soft); }
.nbar { background: var(--orange-soft); border-bottom: 1px solid #F3D3C1; }
.nbar-in { display: flex; align-items: center; gap: 12px; padding-top: 10px; padding-bottom: 10px; color: var(--orange-deep); font-size: 14px; font-weight: 600; }
.nbar-in > .ico { flex: none; }
.nbar-in > span { flex: 1; min-width: 0; color: var(--ink); }
.nbar-in b { color: var(--orange-deep); }
.nbar-in .btn-line { width: auto; padding: 0 14px; flex: none; }
.nbar-x { flex: none; width: 34px; height: 34px; border: 0; border-radius: 10px; background: transparent; color: var(--orange-deep); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.nbar-x:hover { background: #FBDCCB; }
.btn-line.inline { display: inline-flex; width: auto; padding: 0 14px; }
.back-light { color: var(--fog); font-size: 15px; }
.back-light:hover { color: #fff; }

.set { display: flex; flex-direction: column; gap: 14px; padding-top: 28px; padding-bottom: 24px; }
.set-h { margin-top: 18px; }
.set-lead { margin: -6px 0 0; font-size: 15px; }
.set-sum { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: var(--radius); border: 2px solid var(--line); background: #fff; }
.set-sum form { margin: 0; flex: none; }
.set-sum .btn-line { width: auto; padding: 0 16px; }
.set-sum-ic { flex: none; width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.set-sum-ic .ico { width: 24px; height: 24px; }
.set-sum-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.set-sum-t span { color: var(--slate); font-weight: 600; font-size: 15px; }
.set-ok { border-color: #CFE3B8; } .set-ok .set-sum-ic { background: #EAF2DD; color: var(--olive); }
.set-warn { border-color: #F3D3C1; } .set-warn .set-sum-ic { background: var(--orange-soft); color: var(--orange-deep); }
.set-none { border-color: var(--orange-deep); } .set-none .set-sum-ic { background: var(--orange-deep); color: #fff; }
.set-check { position: relative; background: var(--sea-soft); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.set-check-row { display: flex; align-items: center; gap: 10px; }
.set-check-row > span { flex: 1; display: flex; align-items: center; gap: 8px; font-weight: 800; }
.set-check-row .btn-line { width: auto; padding: 0 18px; }
.set-check-row.done > span::after { content: '✓'; color: var(--olive); }
.set-check-row.done [data-no], .set-check-row.bad [data-yes] { opacity: .35; }
.set-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 16px; }
.set-card.dim { opacity: .6; }
.set-card p { margin: 0; }
.set-toggle { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.set-toggle input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--navy); }
.set-toggle > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.set-toggle small { color: var(--slate); font-weight: 600; font-size: 14px; }
.set-ch-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--soft); color: var(--navy); display: flex; align-items: center; justify-content: center; }
.set-devs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.set-dev { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--bg); }
.set-dev-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.set-dev-t b { overflow-wrap: anywhere; }
.set-dev-t small { color: var(--slate); font-weight: 600; font-size: 13px; }
.set-test { margin: 0; }
.set-check-x { position: absolute; top: 8px; right: 8px; color: var(--navy); }
.set-check > b { padding-right: 40px; }
.set-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.set-err { color: var(--orange-deep) !important; }
.set-dev-note { font-size: 13px; color: var(--orange-deep); font-weight: 700; padding: 0 12px 4px 34px; }
.set-here { font-style: normal; font-size: 12px; font-weight: 800; color: var(--sea); background: var(--sea-soft); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.set-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--fog); }
.set-dot.is-ok { background: #1D9E75; } .set-dot.is-warn { background: var(--orange); } .set-dot.is-bad { background: var(--orange-deep); }
.set-dev-m { position: relative; flex: none; }
.set-dev-m > summary { list-style: none; cursor: pointer; width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--slate); }
.set-dev-m > summary::-webkit-details-marker { display: none; }
.set-dev-m > summary:hover { background: #fff; }
.set-dev-p { position: absolute; right: 0; top: 40px; z-index: 5; width: 300px; max-width: 80vw; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 32px rgba(1, 34, 85, .16); padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.set-dev-p form { margin: 0; }
.set-rename { display: flex; flex-direction: column; gap: 8px; }
.set-rename input { height: 42px; padding: 0 12px; border: 2px solid var(--line); border-radius: 10px; font: 700 15px 'Manrope', sans-serif; color: var(--ink); }
.set-here-box { border-top: 1px solid var(--soft); padding-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.set-here-box > div { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.set-here-box p { margin: 0; }
.set-here-box p .ico { color: #1D9E75; vertical-align: -4px; }
.set-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.set-groups { gap: 14px; }
.set-groups .check small { font-size: 14px; }
.set-quiet { display: flex; gap: 14px; flex-wrap: wrap; font-weight: 700; color: var(--slate); }
.set-quiet input { height: 44px; padding: 0 10px; border: 2px solid var(--line); border-radius: 10px; font: 700 16px 'Manrope', sans-serif; color: var(--ink); margin-left: 6px; }
.set-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.set-list li { position: relative; padding-left: 28px; font-weight: 600; }
.set-list li::before { content: '☐'; position: absolute; left: 0; top: 0; color: var(--slate); }
.set-list li.done::before { content: '✅'; }
.set-list li.warn::before { content: '⚠️'; }
.set-list li.idea::before { content: '💡'; }
.set-list.small li { font-size: 14px; }
.set-list.small li::before { content: '•'; }
.set-fix > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 10px; }
.set-fix > summary::-webkit-details-marker { display: none; }
.set-fix > summary::after { content: '+'; font: 700 20px 'Manrope', sans-serif; color: var(--slate); line-height: 1; }
.set-fix[open] > summary::after { content: '−'; }
.set-save { margin: 4px 0 0; }
.set-toast { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 60; background: var(--navy); color: #fff; font-weight: 800; font-size: 14px;
             padding: 10px 16px; border-radius: 12px; box-shadow: 0 8px 24px rgba(1, 34, 85, .25); }
#browser, #telegram, #tips, #fix-tg, #fix-push, #check { scroll-margin-top: 16px; }

.nfeed { display: flex; flex-direction: column; gap: 8px; }
.nfeed-day { margin: 12px 0 2px; font: 800 13px 'Manrope', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.nfeed-i { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); font-weight: 600; }
.nfeed-i:hover { border-color: var(--navy); color: var(--ink); }
.nfeed-i.new { border-left: 4px solid var(--orange-deep); }
.nfeed-i.hot b { color: var(--orange-deep); }
.nfeed-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nfeed-t span { color: var(--slate); font-size: 15px; overflow-wrap: anywhere; }
.nfeed-i time { flex: none; color: var(--slate); font-size: 13px; font-weight: 700; }

/* «Нет команды? Сообщим…» на странице турнира и в «Ищут напарника». */
.watch:not(.rb) { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--sea-soft); font-weight: 600; font-size: 15px; }
.watch:not(.rb) > .ico { flex: none; color: var(--sea); }
.watch:not(.rb) > span { flex: 1; min-width: 0; }
.watch:not(.rb) form { margin: 0; flex: none; }
.watch:not(.rb) .btn-line { width: auto; padding: 0 14px; }
.nwarn { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--orange-soft); color: var(--orange-deep); font-size: 14px; font-weight: 700; }
.nwarn .ico { flex: none; }
.nwarn a { color: var(--orange-deep); text-decoration: underline; }

@media (max-width: 600px) {
  .nbar-in { flex-wrap: wrap; }
  .nbar-in > span { flex-basis: calc(100% - 80px); }
  .set-sum { flex-wrap: wrap; }
  .set-sum form { width: 100%; }
  .set-sum .btn-line { width: 100%; }
  .watch:not(.rb) { flex-wrap: wrap; }
  .watch:not(.rb) form, .watch:not(.rb) .btn-line { width: 100%; }
}

/* Переводы текстов турнира: оригинал слева, версия справа (на телефоне — друг под другом). */
.tr-lang { display: flex; flex-direction: column; gap: 18px; }
.tr-lang h2 { margin: 0; }
.tr-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.tr-orig { background: var(--soft); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
.tr-orig .prose { font-size: 15px; }
@media (max-width: 700px) { .tr-pair { grid-template-columns: 1fr; } }

/* Админка: каталог причин отказа. */
.tr.rs { display: grid; grid-template-columns: 1fr 150px 130px auto; gap: 12px; align-items: center; }
.tr.rs.off .nm { opacity: .55; }
.tr.rs .acts-row { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.tr.rs form { margin: 0; }
@media (max-width: 800px) { .tr.rs { grid-template-columns: 1fr; } .tr.rs.th { display: none; } .tr.rs .acts-row { justify-content: flex-start; } }

/* Админка: обновление базы. */
.upd .upd-list, .upd .upd-checks { margin: 0 0 16px; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.upd .upd-checks li.good { color: #3F6212; font-weight: 700; }
.upd .upd-checks li.bad { color: #C2410C; font-weight: 800; }
.upd .upd-log { white-space: pre-wrap; font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; background: #0F1B33; color: #E6ECF5; border-radius: 12px; padding: 14px; margin: 0 0 16px; }

/* Переключатель языков текстов в конструкторе. */
.lang-tabs { display: inline-flex; gap: 4px; padding: 4px; background: var(--soft); border-radius: 12px; margin-bottom: 14px; }
.lang-tab { border: 0; background: transparent; font: inherit; font-weight: 800; padding: 8px 16px; border-radius: 9px; color: var(--ink); cursor: pointer; position: relative; }
.lang-tab.on { background: #fff; box-shadow: 0 1px 3px rgba(1, 34, 85, .15); }
.lang-dot { position: absolute; top: 6px; right: 6px; width: 7px; height: 7px; border-radius: 50%; background: #EA5003; }

/* Редактор с форматированием (регламент). */
.rte { border: 2px solid var(--line); border-radius: 12px; background: #fff; overflow: hidden; }
.rte:focus-within { border-color: var(--navy); }
.rte-bar { display: flex; flex-wrap: wrap; gap: 2px; padding: 6px; border-bottom: 1px solid var(--line); background: var(--soft); }
.rte-bar button { border: 0; background: transparent; min-width: 34px; height: 32px; border-radius: 8px; font: inherit; font-weight: 800; color: var(--ink); cursor: pointer; }
.rte-bar button:hover { background: #fff; }
.rte-i.rte-italic { font-style: italic; } .rte-i.rte-underline { text-decoration: underline; }
.rte-area { min-height: 180px; padding: 12px 14px; outline: none; font-weight: 400; }
.prose.rules { font-weight: 400; }
.rte-area strong, .prose.rules strong, .rte-area b { font-weight: 800; }
.rte.empty .rte-area:before { content: attr(data-ph); color: #8A97AB; pointer-events: none; }
.rte-area h3, .prose.rules h3 { font-size: 18px; margin: 14px 0 6px; }
.rte-area h4, .prose.rules h4 { font-size: 16px; margin: 12px 0 4px; }
.rte-area p, .prose.rules p { margin: 0 0 8px; }
.rte-area ul, .rte-area ol, .prose.rules ul, .prose.rules ol { margin: 0 0 8px; padding-left: 22px; }
.prose.rules a, .rte-area a { color: #015C9E; text-decoration: underline; }

/* «Мои турниры»: на телефоне и планшете (и в повороте) — карточки: название во всю ширину, дата и статус строкой
   с подписями, кнопки в ряд. Подписи (.ot-k) на широком экране не нужны — их заменяет строка заголовков. */
.ot-k { display: none; }
@media (max-width: 1100px) {
  .tr.ot { grid-template-columns: minmax(0, 1fr) auto; row-gap: 10px; column-gap: 16px; padding: 14px 0; }
  .tr.ot.th { display: none; }
  .tr.ot .nm { grid-column: 1 / -1; }
  .tr.ot > span:nth-child(3) { text-align: right; }
  .tr.ot .ot-ent { grid-column: 1 / -1; justify-content: flex-start; }
  .ot-k { display: block; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--slate); margin-bottom: 2px; }
}

/* Шапка на узком телефоне: переключатель языков, колокольчик и меню должны помещаться при любом имени —
   имя прячем (остаётся аватар), логотип чуть меньше. */
@media (max-width: 480px) {
  .nav-me .nm-name { display: none; }
  .logo img { height: 44px; }
  .top-in { gap: 8px; }
}

/* ---------- Фильтр-чипы (_filter_chips.php): одна строка, у чипа выпадающий список ---------- */
.chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.chip-dd { position: relative; display: flex; }
.chip-dd > summary { list-style: none; }
.chip-dd > summary::-webkit-details-marker { display: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px 0 14px; border-radius: 12px; background: #fff; border: 1px solid var(--line);
        color: var(--navy); font-size: 14px; font-weight: 800; white-space: nowrap; cursor: pointer; user-select: none; }
.chip:hover, .chip-dd[open] > .chip { border-color: var(--navy); }
.chip-dd[open] > .chip { box-shadow: 0 0 0 3px rgba(1, 34, 85, .12); }
.chip .ico { width: 16px; height: 16px; stroke-width: 2.6; transition: transform .15s; }
.chip-dd[open] > .chip .ico { transform: rotate(180deg); }
.chip.set { background: var(--navy); border-color: var(--navy); color: #fff; padding-right: 40px; }
.chip-set { position: relative; display: inline-flex; }
.chip-x { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
          background: rgba(255, 255, 255, .2); color: #fff; }
.chip-x:hover { background: rgba(255, 255, 255, .35); color: #fff; }
.chip-x .ico { width: 14px; height: 14px; stroke-width: 2.8; }
.chip-pop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 230px; max-height: 360px; overflow-y: auto; background: #fff; border: 1px solid var(--line);
            border-radius: 14px; box-shadow: 0 16px 34px -14px rgba(1, 34, 85, .35); padding: 6px; display: flex; flex-direction: column; }
.chip-end .chip-pop { left: auto; right: 0; }
.chip-pop-h { display: none; }
.chip-o { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px; font-size: 14px; font-weight: 700; color: var(--navy); white-space: nowrap; }
.chip-o:hover { background: var(--soft); color: var(--navy); }
.chip-o .rd { flex: none; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #9AA8BD; }
.chip-o.on { font-weight: 800; }
.chip-o.on .rd { border: 5px solid var(--navy); }
.chip-o em { margin-left: auto; padding-left: 14px; font-style: normal; font-size: 12px; font-weight: 800; color: var(--slate); }
.chip-o.off { color: #A3AEC0; }
.chip-o.off:hover { background: none; color: #A3AEC0; }
.chips-reset { font-size: 14px; padding: 0 4px; }
.chips-r { margin-left: auto; display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 700; color: var(--slate); }
.chips-info b { color: var(--navy); }
@media (max-width: 600px) {
  .chips { gap: 6px; }
  .chip { height: 36px; font-size: 13px; padding: 0 10px 0 12px; }
  .chip.set { padding-right: 38px; }
  .chips-r { margin-left: 0; width: 100%; justify-content: space-between; }
  /* Список — листом снизу поверх затемнения */
  .chip-dd[open]::before { content: ''; position: fixed; inset: 0; z-index: 60; background: rgba(1, 34, 85, .45); }
  .chip-pop, .chip-end .chip-pop { position: fixed; top: auto; left: 0; right: 0; bottom: 0; z-index: 61; min-width: 0; max-height: 75vh; border-radius: 22px 22px 0 0; border: 0;
              padding: 14px max(14px, env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) max(14px, env(safe-area-inset-left, 0px)); }
  .chip-pop-h { display: block; font-family: 'Unbounded', system-ui, sans-serif; font-size: 18px; font-weight: 600; padding: 4px 10px 10px; }
  .chip-o { padding: 12px 10px; font-size: 15px; }
}

/* ---------- Каталог игроков (/players) ---------- */
.pl-search { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 16px; padding: 6px; max-width: 760px; margin-top: 4px; }
.pl-sf { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 10px; min-width: 0; cursor: text; }
.pl-sf .ico { flex: none; width: 22px; height: 22px; color: var(--navy); stroke-width: 2.4; }
.pl-sf input { flex: 1; min-width: 0; height: 46px; border: 0; outline: 0; background: none; font: 700 16px 'Manrope', system-ui, sans-serif; color: var(--navy); -webkit-appearance: none; appearance: none; }
.pl-sf input::placeholder { color: #8391A8; font-weight: 600; }
.pl-sf input::-webkit-search-cancel-button { display: none; }
.pl-search:focus-within { box-shadow: 0 0 0 3px rgba(234, 80, 3, .55); }
.pl-sx { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--soft); color: var(--slate); }
.pl-sx .ico { width: 16px; height: 16px; }
.pl-sb { flex: none; height: 46px; padding: 0 22px; border: 0; border-radius: 12px; background: var(--orange); color: #fff; font: 800 15px 'Manrope', system-ui, sans-serif; cursor: pointer; }
.pl-sb:hover { background: var(--orange-deep); }
.block.pl-res { margin-top: 24px; gap: 16px; }
.pl-res.busy .pl-grid { opacity: .5; transition: opacity .2s; }
.pl-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1100px) { .pl-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) { .pl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pl-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; display: flex; flex-direction: column; gap: 12px; color: var(--navy); min-width: 0; }
.pl-card:hover { border-color: var(--navy); color: var(--navy); }
.pl-top { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pl-ph { position: relative; flex: none; display: flex; }
.pl-ava { width: 52px; height: 52px; font-size: 18px; font-weight: 800; background: #2B4A7C; color: #fff; }
.pl-card.unreg .pl-ava { background: #fff; border: 2px dashed #9AA8BD; color: var(--slate); }
.pl-ck { position: absolute; right: -3px; bottom: -3px; width: 20px; height: 20px; border-radius: 50%; background: var(--olive); border: 2px solid #fff; display: grid; place-items: center; color: #fff; }
.pl-ck .ico { width: 12px; height: 12px; stroke-width: 3.2; }
.pl-n { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pl-n b { font-size: 16px; font-weight: 800; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-n small { font-size: 13px; font-weight: 700; color: var(--slate); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-n mark { background: #FFE4D2; color: var(--navy); border-radius: 3px; padding: 0 1px; }
.pl-line { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 22px; }
.pl-line .tag { text-transform: uppercase; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.tag-both { color: var(--navy); }
.pl-pill { flex: none; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; border-radius: 7px; padding: 2px 7px; white-space: nowrap; }
.pl-pill.navy { background: var(--navy); color: #fff; }
.pl-pill.hot { background: var(--orange-deep); color: #fff; }
.pl-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--soft); border-radius: 12px; }
.pl-nums > span { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; min-width: 0; }
.pl-nums > span + span { border-left: 1px solid #fff; }
.pl-nums b { font-size: 18px; font-weight: 800; line-height: 1.2; font-variant-numeric: tabular-nums; }
.pl-nums b.gold { color: var(--orange-deep); }
.pl-nums small { font-size: 11px; font-weight: 700; color: var(--slate); white-space: nowrap; }
.pl-nums.none { display: flex; justify-content: center; padding: 15px 8px; font-size: 13px; font-weight: 700; color: var(--slate); }
.pl-last { display: flex; gap: 4px; margin-top: -2px; font-size: 12px; font-weight: 700; color: var(--slate); white-space: nowrap; min-width: 0; }
.pl-last b { color: var(--sea); font-weight: 800; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pl-last em { flex: none; font-style: normal; }
.pl-more { align-self: center; border: 2px solid var(--navy); color: var(--navy); border-radius: 12px; padding: 10px 22px; font-size: 15px; }
.pl-more:hover { background: var(--navy); color: #fff; }
.pl-more.busy { opacity: .5; pointer-events: none; }
@media (max-width: 600px) {
  .pl-search { padding: 4px; border-radius: 14px; }
  .pl-sf { padding: 0 6px; }
  .pl-sf input { height: 42px; }
  .pl-sb { height: 42px; padding: 0 14px; }
  .pl-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  /* Строка вместо плитки: фото, имя, вид — слева; цифры — справа */
  .pl-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: 'ph n nums' 'ph line nums'; gap: 2px 12px; padding: 12px; align-items: center; }
  .pl-top { display: contents; }
  .pl-ph { grid-area: ph; }
  .pl-ava { width: 44px; height: 44px; font-size: 15px; }
  .pl-n { grid-area: n; }
  .pl-n b { white-space: normal; }
  .pl-line { grid-area: line; justify-content: flex-start; min-height: 0; }
  .pl-nums { grid-area: nums; background: none; grid-template-columns: repeat(2, auto); gap: 10px; }
  .pl-nums > span { padding: 0; }
  .pl-nums > span + span { border: 0; }
  .pl-nums > span:nth-child(2) { display: none; }
  .pl-nums b { font-size: 16px; }
  .pl-nums small { font-size: 10px; }
  .pl-nums.none { padding: 0; font-size: 12px; max-width: 70px; white-space: normal; text-align: center; line-height: 1.25; }
  .pl-last { display: none; }
}
.pp-back { align-self: flex-start; margin-bottom: -6px; }
.pp-chips a.pp-coach { display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 999px; background: #fff; color: var(--navy); font-size: 14px; font-weight: 800; }
.pp-chips a.pp-coach:hover { background: var(--soft); color: var(--navy); }
@media (max-width: 1180px) { .nav .hide-lg { display: none; } }
.pl-last.pl-hint { white-space: normal; line-height: 1.35; }

/* ===== Онлайн-трансляции (docs/PLAN-streams.md) ===== */
/* Переключатель «да / нет». */
.vw-switch { display: flex; align-items: flex-start; gap: 14px; cursor: pointer; }
.vw-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vw-switch > i { flex: none; position: relative; width: 52px; height: 30px; border-radius: 999px; background: var(--fog); transition: background .15s; margin-top: 2px; }
.vw-switch > i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(1, 34, 85, .3); transition: transform .15s; }
.vw-switch input:checked + i { background: var(--navy); }
.vw-switch input:checked + i::after { transform: translateX(22px); }
.vw-switch input:focus-visible + i { outline: 3px solid var(--sea); outline-offset: 2px; }
.vw-switch > span { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.vw-switch small { color: var(--slate); font-weight: 600; font-size: 14px; }

/* Настройки трансляции. */
.st-courts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 14px; }
.st-court input[type=text] { font-size: 15px; }
.st-url { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.st-url code { flex: 1 1 220px; min-width: 0; padding: 8px 10px; border-radius: 10px; background: var(--soft); color: var(--navy); }
.st-url .muted { flex-basis: 100%; }
.st-common { margin-top: 14px; }
.st-common > summary { cursor: pointer; font-weight: 800; color: var(--sea); padding: 6px 0; }
.st-common > .panel { margin-top: 8px; }
.st-steps { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; }
.st-now { display: flex; flex-direction: column; gap: 10px; }
.st-now-row { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.st-now-row > span { display: flex; flex-direction: column; min-width: 0; }
.st-on { color: var(--orange-deep); font-weight: 800; }
.st-pre { margin: 0; padding: 12px; border-radius: 10px; background: var(--soft); font: 600 13px/1.5 ui-monospace, Menlo, monospace; white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow: auto; }
.st-help > summary { cursor: pointer; }
.st-court .ferr { color: var(--orange-deep); font-weight: 800; }
.st-steps .mono { word-break: normal; white-space: nowrap; font-size: 13px; }
.st-obs > form { align-self: flex-start; }
.st-ch-h { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; }
.st-ch-h b { margin-right: auto; }
.st-help[open] > summary { margin-bottom: 4px; }

/* Плеер на страницах турнира и матча: сначала обложка и ▶ — YouTube грузится по нажатию. */
.tv-live { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
.tv-live-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tv-live-h h2 { margin-right: auto; }
.tv-live-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tv-live-tabs button { height: 36px; padding: 0 14px; border-radius: 999px; border: 2px solid var(--navy); background: #fff; color: var(--navy); font: 800 14px 'Manrope', sans-serif; cursor: pointer; }
.tv-live-tabs button.on { background: var(--navy); color: #fff; }
.yt-box { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: var(--navy) center / cover no-repeat; }
.yt-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; border: 0; background: linear-gradient(rgba(1, 34, 85, .35), rgba(1, 34, 85, .6)); color: #fff; font: 800 18px 'Manrope', sans-serif; cursor: pointer; }
.yt-play::before { content: ''; width: 76px; height: 76px; border-radius: 50%; background: var(--orange-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='30'%3E%3Cpath d='M2 2l22 13L2 28z' fill='%23fff'/%3E%3C/svg%3E") no-repeat 58% center; box-shadow: 0 6px 18px rgba(0, 0, 0, .3); }
.yt-play small { font-weight: 600; font-size: 13px; opacity: .85; }
.live-dot { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--orange-deep); color: #fff; font: 800 13px 'Manrope', sans-serif; letter-spacing: .04em; }
.live-dot::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: live-blink 1.4s infinite; }
@keyframes live-blink { 50% { opacity: .25; } }
.nc-tv { font-size: 13px; font-weight: 800; color: var(--orange-deep); }
.rec-list { display: flex; flex-direction: column; gap: 8px; }
.rec-list a { display: flex; align-items: center; gap: 10px; }
.film-note { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; background: var(--sea-soft); color: var(--navy); font-weight: 700; font-size: 15px; }

/* Табло для OBS: кадр 1920×1080, всё рисуется поверх видео. --k — масштаб (0.67 для 720p). */
body.bare .ovl { position: fixed; inset: 0; overflow: hidden; pointer-events: none; font-family: 'Manrope', system-ui, sans-serif; --k: 1; }
.ob-col { position: absolute; display: flex; gap: 12px; }
.ovl-corner .ob-col { left: 48px; top: 40px; flex-direction: column; align-items: flex-start; transform-origin: top left; transform: scale(var(--k)); }
/* style=widget: окно виджета в приложении на телефоне — табло прижато к левому верхнему углу окна. */
.ovl-widget .ob-col { left: var(--m, 0px); top: var(--m, 0px); flex-direction: column; align-items: flex-start; transform-origin: top left; transform: scale(var(--k)); }
.ovl-bar .ob-col { left: 50%; bottom: 48px; flex-direction: column-reverse; align-items: center; transform-origin: bottom center; transform: translateX(-50%) scale(var(--k)); }
.ob-bug { width: 640px; border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 8px 28px rgba(0, 0, 0, .35); }
.ob-h { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; background: var(--navy); color: #fff; font-weight: 800; font-size: 17px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.ob-h img { width: 28px; height: 28px; }
.ob-h span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ob-h em { margin-left: auto; font-style: normal; color: #FF7A2E; flex: none; }
.ob-r { display: flex; align-items: center; height: 64px; border-top: 1px solid var(--line); }
.ob-sv { flex: none; width: 14px; height: 14px; margin: 0 12px 0 16px; border-radius: 50%; }
.ob-sv.on { background: var(--orange); box-shadow: 0 0 0 4px rgba(234, 80, 3, .2); }
.ob-n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--navy); font-weight: 800; font-size: 28px; }
.ob-r.win .ob-n { color: var(--orange-deep); }
.ob-w { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 64px; background: var(--soft); color: var(--navy); font: 700 28px 'Unbounded', sans-serif; }
.ob-s { flex: none; display: flex; align-items: center; justify-content: center; width: 96px; height: 64px; background: var(--orange-deep); color: #fff; font: 700 38px 'Unbounded', sans-serif; }
.ob-r + .ob-r .ob-s { border-top: 1px solid rgba(255, 255, 255, .25); }
.ob-s.bump { animation: ob-bump .6s ease-out; }
@keyframes ob-bump { 0% { background: var(--orange); transform: scale(1.12); } 100% { background: var(--orange-deep); transform: none; } }
.ob-sets { padding: 6px 16px; background: var(--soft); color: var(--slate); font-weight: 800; font-size: 17px; border-top: 1px solid var(--line); }
.ob-flag { padding: 10px 18px; border-radius: 10px; background: var(--orange-deep); color: #fff; font-weight: 800; font-size: 24px; text-transform: uppercase; letter-spacing: .03em; box-shadow: 0 6px 18px rgba(0, 0, 0, .3); animation: ob-in .35s ease-out; white-space: nowrap; }
.ob-flag.win { background: var(--navy); }
.ob-next { max-width: 640px; padding: 8px 16px; border-radius: 10px; background: rgba(1, 34, 85, .88); color: #fff; font-weight: 700; font-size: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ob-next span { display: block; color: #FF7A2E; font-size: 15px; font-weight: 800; text-transform: uppercase; }
@keyframes ob-in { from { opacity: 0; } }
.ob-soon .ob-vs { display: flex; align-items: center; gap: 12px; padding: 14px 16px; color: var(--navy); font-weight: 800; font-size: 26px; }
.ob-soon .ob-vs span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ob-soon .ob-vs span:last-child { text-align: right; }
.ob-soon .ob-vs i { font-style: normal; color: var(--orange-deep); }
/* Полоса внизу (style=bar). */
.ob-bar { width: 1400px; border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 8px 28px rgba(0, 0, 0, .35); }
.ob-line { display: flex; align-items: center; height: 72px; }
.ob-line .ob-n { padding: 0 18px; font-size: 30px; display: flex; align-items: center; }
.ob-line .ob-n.a { justify-content: flex-end; }
.ob-line .ob-n.win { color: var(--orange-deep); }
.ob-line .ob-sv { margin: 0 12px; }
.ob-line .ob-s { height: 72px; width: 104px; font-size: 42px; }
.ob-line .ob-s + .ob-s { border-left: 2px solid rgba(255, 255, 255, .35); }
.ob-line .ob-w { height: 72px; }
.ob-bar .ob-sets { text-align: center; }
/* Общий эфир: все корты полосой. */
.ob-strip { border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 8px 28px rgba(0, 0, 0, .35); }
.ob-cs { display: flex; }
.ob-c { width: 360px; padding: 10px 16px; border-left: 1px solid var(--line); }
.ob-c:first-child { border-left: 0; }
.ob-c > div { display: flex; align-items: center; gap: 10px; height: 40px; }
.ob-c .ob-n { font-size: 22px; }
.ob-c b { font: 700 26px 'Unbounded', sans-serif; color: var(--navy); }
.ob-c.live b { color: var(--orange-deep); }
.ob-ct { display: block; color: var(--slate); font-weight: 800; font-size: 14px; text-transform: uppercase; }

/* Демо трансляции на /demo: ролик и поверх него табло (рисуется в 1920×1080 и масштабируется под ширину). */
.dcast { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 16px; align-items: start; margin-bottom: 24px; }
.dcast-box { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: var(--navy); }
.dcast-v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dcast-o { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; border: 0; background: transparent; transform-origin: top left; pointer-events: none; }
.dcast-tag { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: 999px; background: var(--navy); color: #fff; font: 800 13px 'Manrope', sans-serif; letter-spacing: .06em; }
.dcast-side { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.dcast-side p { margin: 0; color: var(--slate); font-weight: 600; }
.dcast-side .pg-list { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) { .dcast { grid-template-columns: minmax(0, 1fr); } }

/* Спонсоры турнира: редактор и слайды в эфире. */
.sp-sec input { max-width: 120px; }
.st-ad { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.st-ad > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sp-list { display: flex; flex-direction: column; gap: 12px; }
.sp-row { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.sp-logo { height: 100px; border-radius: 12px; background: repeating-conic-gradient(#E9EDF3 0 25%, #fff 0 50%) 0 0 / 16px 16px; display: flex; align-items: center; justify-content: center; padding: 8px; }
.sp-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sp-logo span { color: var(--slate); font-size: 13px; font-weight: 700; }
.sp-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 12px; }
.sp-side { display: flex; flex-direction: column; gap: 6px; }
.sp-side form { margin: 0; }
@media (max-width: 800px) { .sp-row { grid-template-columns: minmax(0, 1fr); } .sp-side { flex-direction: row; flex-wrap: wrap; } .sp-two { grid-template-columns: minmax(0, 1fr); } }
/* Табло: слайд спонсора в перерыве — той же ширины и высоты, что и табло со счётом, поэтому картинка не прыгает. */
.ob-sp .ob-spb { height: 128px; display: flex; align-items: center; justify-content: center; padding: 12px 28px; background: #fff; }
.ob-sp .ob-spl { max-width: 100%; max-height: 104px; object-fit: contain; }
.ob-sp .ob-spn { color: var(--navy); font: 700 34px 'Unbounded', sans-serif; text-align: center; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ob-sp { animation: ob-in .4s ease-out; }
.sp-page .field select { height: 52px; padding: 0 12px; border: 2px solid var(--line); border-radius: 12px; font: 700 16px 'Manrope', sans-serif; color: var(--ink); background: #fff; width: 100%; }
.sp-page .field select:focus { outline: none; border-color: var(--navy); }
.sp-page .field input[type=file] { height: auto; padding: 10px 12px; font-size: 14px; }
.st-livelist-rows { display: flex; flex-direction: column; gap: 8px; }
.st-ls { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; border-radius: 12px; background: var(--soft); }
.st-ls-t { display: flex; flex-direction: column; min-width: 0; flex: 1 1 220px; }
.st-ls-t b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-ls-t small { color: var(--slate); font-weight: 600; font-size: 13px; }
.st-ls select { height: 40px; border: 2px solid var(--line); border-radius: 10px; padding: 0 10px; font: 700 14px 'Manrope', sans-serif; color: var(--ink); background: #fff; max-width: 100%; }

/* «Мои турниры»: одно главное действие и меню «Ещё» вместо ряда кнопок. */
.ot-ent { flex-wrap: nowrap; }
.rowmenu { position: relative; }
.rowmenu > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: auto; padding: 0 14px; white-space: nowrap; user-select: none; }
.rowmenu > summary::-webkit-details-marker { display: none; }
.rowmenu > summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.rowmenu[open] > summary { border-color: var(--navy); }
.rowmenu[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.rowmenu-list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 230px; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 6px; box-shadow: 0 14px 34px rgba(1, 34, 85, .18); }
.rowmenu-list form { margin: 0; }
.rowmenu-list a, .rowmenu-list button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 42px; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--navy); font: 800 15px 'Manrope', sans-serif; text-align: left; text-decoration: none; cursor: pointer; }
.rowmenu-list a:hover, .rowmenu-list button:hover { background: var(--soft); color: var(--navy); }
.rowmenu-list .ico { width: 20px; height: 20px; flex: none; color: var(--slate); }
.rowmenu-list .danger, .rowmenu-list .danger .ico { color: var(--orange-deep); }
.rowmenu-list hr { border: 0; border-top: 1px solid var(--line); margin: 4px 6px; }
@media (max-width: 900px) { .ot-ent { flex-wrap: wrap; } .rowmenu-list { left: 0; right: auto; } }

/* ТВ-табло: спонсоры в левой колонке внизу (на светлой плашке — логотипы тёмные). Размеры в vw, как и всё на ТВ. */
.tv-left { display: flex; flex-direction: column; gap: 1.5vw; min-width: 0; }
.tv-sp { margin-top: auto; background: #fff; color: var(--navy); border-radius: 1.5vw; padding: 1.1vw 1.5vw; display: flex; align-items: stretch; gap: 2.2vw; }
.tv-sp small { display: block; margin-bottom: .6vw; color: var(--slate); font-size: .95vw; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.tv-sp-g { flex: none; padding-right: 2.2vw; border-right: 1px solid var(--line); }
.tv-sp-p { flex: 1; min-width: 0; }
.tv-sp-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6vw 1.6vw; }
.tv-sp i { display: flex; align-items: center; justify-content: center; font-style: normal; }
.tv-sp-g i { height: 5.6vw; }
.tv-sp-p i { height: 3.4vw; }
.tv-sp img { height: 100%; width: auto; max-width: 16vw; object-fit: contain; }
.tv-sp-g img { max-width: 20vw; }
.tv-sp i > span { font: 700 1.5vw 'Unbounded', sans-serif; color: var(--navy); }
/* Партнёры турнира на страницах: генеральный — крупно в первой строке, партнёры — сеткой ниже. */
.panel .sp-gen { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 10px; }
.sp-g { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 168px; padding: 30px 16px 28px; background: #fff; border: 1px solid var(--line); border-radius: 14px; text-decoration: none; }
.sp-g small { position: absolute; left: 14px; top: 10px; color: var(--slate); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sp-g-logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 96px; }
.sp-g-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sp-g-logo > span { font: 700 22px 'Unbounded', sans-serif; color: var(--navy); text-align: center; }
.sp-g em { position: absolute; right: 14px; bottom: 8px; color: var(--sea); font-style: normal; font-size: 13px; font-weight: 800; }
a.sp-g:hover { border-color: var(--navy); }

/* Управление аккаунтом: карточки друг под другом, не шире формы профиля */
.au-page { display: flex; flex-direction: column; gap: 16px; max-width: 760px; }
.au-page .panel h3 { margin: 0 0 12px; }
.au-page .au-head h2 { margin: 0 0 4px; }
.au-page select { height: 52px; padding: 0 14px; border: 2px solid var(--line); border-radius: 12px; font: 700 16px "Manrope", sans-serif; color: var(--ink); background: #fff; width: 100%; }

/* Юридические страницы: политика и условия */
.lg-body { gap: 12px; }
.lg-body h2 { margin: 18px 0 0; font-size: 19px; }
.lg-body p { font-weight: 500; line-height: 1.6; color: var(--ink); }
.lg-body a { color: var(--navy); text-decoration: underline; }
.lg-body mark { background: #FFE9B8; padding: 0 3px; border-radius: 4px; }
.lg-t { overflow-x: auto; }
.lg-t table { border-collapse: collapse; width: 100%; font-size: 14px; }
.lg-t th, .lg-t td { text-align: left; vertical-align: top; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.lg-t th { color: var(--slate); font-weight: 800; white-space: nowrap; }

/* Публикация турнира: согласие организатора */
.wz-consent { display: flex; flex-direction: column; gap: 12px; margin: 4px 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.wz-consent a { color: var(--navy); text-decoration: underline; }

/* Планшет корта: экран корта на общем планшете (assets/court.js) */
.tab-main { flex: 1; display: flex; flex-direction: column; gap: 12px; justify-content: center; max-width: 760px; width: 100%; margin: 0 auto; overflow: auto; }
.tab-card { background: var(--navy-2); border-radius: 22px; padding: 22px; display: flex; flex-direction: column; gap: 14px; text-align: center; align-items: center; }
.tab-when { color: var(--fog); font-weight: 800; font-size: 15px; letter-spacing: .03em; }
.tab-big { font: 700 24px 'Unbounded', sans-serif; }
.tab-vs { display: flex; flex-direction: column; gap: 2px; align-items: center; }
.tab-vs b { font: 700 clamp(24px, 5vw, 38px)/1.15 'Unbounded', sans-serif; }
.tab-vs i { color: var(--fog); font-style: normal; font-weight: 700; font-size: 14px; }
.tab-judge { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; justify-content: center; font-size: 18px; }
.tab-judge > span { color: var(--fog); font-weight: 700; }
.tab-judge b { font-weight: 800; font-size: 22px; }
.tab-judge small { color: var(--fog); font-size: 14px; font-weight: 700; }
.tab-judge em { flex-basis: 100%; font-style: normal; color: #FFB27A; font-size: 14px; font-weight: 700; }
.tab-judge.none { color: #FFB27A; font-weight: 800; }
.tab-acts { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; width: 100%; }
.tab-acts .rb-big { height: 76px; flex: 1 1 100%; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.tab-acts .rb-ghost { height: 54px; padding: 0 20px; font-size: 16px; }
.tab-next { display: flex; flex-direction: column; gap: 2px; align-items: center; color: var(--fog); font-size: 14px; font-weight: 700; text-align: center; }
.tab-next b { color: #fff; font-size: 17px; }
.tab-pop { gap: 12px; }
.tab-dots { display: flex; gap: 12px; justify-content: center; min-height: 18px; }
.tab-dots i { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--navy); }
.tab-dots i.on { background: var(--navy); }
.tab-err { color: #B42318; font-weight: 800; font-size: 14px; }
.tab-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tab-pad button { height: 58px; border: 0; border-radius: 14px; background: var(--soft); color: var(--navy); font: 800 24px 'Manrope', sans-serif; }
.tab-pad button:active { background: var(--fog); }
.tab-pad button:last-child { background: var(--navy); color: #fff; font-size: 18px; }
.tab-cancel { color: var(--navy) !important; border-color: var(--fog) !important; align-self: center; }
.tab-list { display: flex; flex-direction: column; gap: 8px; max-height: 50dvh; overflow: auto; }
.tab-list button { height: 52px; border: 0; border-radius: 14px; background: var(--soft); color: var(--navy); font: 800 17px 'Manrope', sans-serif; padding: 0 14px; text-align: left; }
.tab-qr { background: #fff; border-radius: 14px; padding: 8px; align-self: center; width: min(280px, 70vw); }
.tab-qr svg { width: 100%; height: auto; display: block; }

/* Планшеты кортов: настройки организатора и страница судьи */
.tb-courts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.tb-court { flex-direction: row; gap: 14px; align-items: flex-start; justify-content: space-between; }
.tb-court > div:first-child { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.tb-link { width: 100%; font-size: 12px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); color: var(--slate); }
.tb-qr { width: 120px; flex: none; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 4px; }
.tb-qr svg { width: 100%; height: auto; display: block; }
.tb-j { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--line); }
.tb-j:last-child { border-bottom: 0; }
.cj-pin { font: 700 56px 'Unbounded', sans-serif; letter-spacing: .12em; margin: 0; color: var(--navy); }
.cj-box { max-width: 480px; margin: 24px auto; }
.cj-h { font-size: 24px; }
.tb-inline { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }

.st-ll-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }

/* Плеер прямого эфира: свои кнопки (звук, полный экран) вместо родных элементов YouTube. */
.yt-ctl { position: absolute; right: 12px; bottom: 12px; display: flex; gap: 8px; z-index: 3; }
.yt-ctl button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(1, 34, 85, .72); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.yt-ctl button:hover { background: rgba(1, 34, 85, .92); }
.yt-ctl button:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.yt-box.yt-full { position: fixed; inset: 0; z-index: 1000; width: 100%; aspect-ratio: auto; border-radius: 0; background: #000; }
.yt-box:fullscreen { border-radius: 0; aspect-ratio: auto; background: #000; }

.tv-live-yt { font-size: 14px; font-weight: 800; color: var(--sea); white-space: nowrap; }

.dcast-note { padding: 4px 12px; border-radius: 999px; background: var(--navy); color: #fff; font: 800 13px "Manrope", sans-serif; white-space: nowrap; }

/* Пункт «Презентация» в шапке и в меню — выделен оранжевым. */
.nav a.nav-pres { background: var(--orange-deep); color: #fff; margin-left: 4px; }
.nav a.nav-pres:hover { background: #A8370A; color: #fff; }
.fm .mi.mi-pres { color: var(--orange-deep); }
.fm .mi.mi-pres .mi-ic { background: var(--orange-soft); color: var(--orange-deep); }
.fm .mi.mi-pres:hover .mi-ic { background: var(--orange-deep); color: #fff; }

/* Планшет судьи по PIN: очерёдность старта, «Выйти», автозакрытие матча */
.rb-block { margin: 0; color: #FFB27A; font-size: 14px; font-weight: 700; text-align: center; flex-basis: 100%; }
.rb-pop .rb-block, .rb-done .rb-block { color: #B45309; }
.rb-startbox { flex: 1; display: flex; flex-direction: column; gap: 8px; justify-content: center; }
.rb-startbox .rb-big { flex: none; }
.rb-endcd { margin: 0; font-size: 14px; font-weight: 700; color: var(--slate); }
.rb-endcd b { font-size: 18px; color: var(--navy); }
.rb-exit { width: auto !important; padding: 0 14px; border: 0; font: 800 15px 'Manrope', sans-serif; }
button.rb-link { border: 0; background: transparent; color: var(--sea); font-size: 16px; cursor: pointer; }
.tb-pin { margin-left: 10px; font: 700 20px 'Unbounded', sans-serif; letter-spacing: .08em; color: var(--navy); }
.tab-org { display: flex; gap: 10px; align-items: center; justify-content: space-between; background: var(--soft); border-radius: 14px; padding: 10px 12px; text-align: left; }
.tab-org > div:first-child { display: flex; flex-direction: column; gap: 2px; font-size: 14px; min-width: 0; }
.tab-oa { display: flex; flex-direction: column; gap: 6px; flex: none; }
.tab-oa button { height: 40px; border: 0; border-radius: 10px; background: var(--navy); color: #fff; font: 800 14px 'Manrope', sans-serif; padding: 0 12px; }
.tab-warn { color: #FFB27A; font-weight: 700; margin: 0; }
.tab-list button span { display: block; }
.tab-list button small { display: block; color: #B45309; font-weight: 700; font-size: 12px; }
.tab-list button { height: auto; min-height: 52px; padding: 8px 14px; }
body:has(.cc-page) { background: #fff; }
.cc-page { max-width: 900px; margin: 0 auto; padding: 24px 16px; color: var(--ink); }
.cc-top h1 { font-size: 22px; margin-bottom: 8px; }
.cc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 16px; }
.cc-card { border: 2px dashed var(--navy); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 4px; break-inside: avoid; }
.cc-card span { font-weight: 800; font-size: 18px; }
.cc-card b { font: 700 40px 'Unbounded', sans-serif; letter-spacing: .12em; color: var(--navy); }
.cc-card small { color: var(--slate); }
@media print { .no-print { display: none; } .cc-grid { grid-template-columns: repeat(2, 1fr); } }
.pm-tech { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.tab-sc { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 4px 0; }
.tab-sc span { min-width: 54px; color: var(--slate); font-weight: 700; font-size: 14px; text-align: right; }
.tab-sc input { width: 64px; height: 52px; border: 2px solid var(--line); border-radius: 12px; text-align: center; font: 800 22px 'Manrope', sans-serif; color: var(--navy); }
.tab-pop .rb-ok { margin-top: 6px; }

/* Раздел «Управление турниром»: общая шапка с вкладками (_manage_head.php). */
.mg-tabs { display: flex; gap: 4px; overflow-x: auto; margin: 2px -4px -22px; scrollbar-width: none; }
.mg-tabs::-webkit-scrollbar { display: none; }
.mg-tabs a { flex: none; padding: 12px 12px 14px; color: #B9C6DE; font-weight: 800; font-size: 15px; text-decoration: none; border-bottom: 3px solid transparent; }
.mg-tabs a:hover { color: #fff; }
.mg-tabs a.on { color: #fff; border-bottom-color: var(--orange, #EA5003); }
.mg-note { margin: 0; color: var(--fog); font-weight: 700; font-size: 14px; }
.mg-todo { display: grid; gap: 12px; }
.mg-todo-i { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.mg-todo-i p { margin: 4px 0 0; color: var(--ink-2, #44516B); }
.mg-todo-i.urgent { border: 2px solid var(--orange-deep); }
.mg-steps { display: flex; flex-direction: column; gap: 12px; }
.mg-step { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.mg-step i { width: 28px; height: 28px; border-radius: 50%; border: 2px solid #B9C6DE; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 13px; color: #5B6780; }
.mg-step i.done { background: var(--olive, #3F6212); border-color: transparent; color: #fff; }
.mg-step i.cur { background: var(--orange-deep); border-color: transparent; color: #fff; }
.mg-courts { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.mg-court { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit; }
.mg-court span { display: flex; justify-content: space-between; gap: 8px; }
.mg-court-h { font-size: 12px; font-weight: 800; color: var(--orange-deep); text-transform: uppercase; }
.mg-archive > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; }
.mg-archive > summary::-webkit-details-marker { display: none; }
.mg-archive > summary h2 { margin: 0; }
.mg-archive > summary::after { content: '▾'; font-size: 22px; color: var(--navy); }
.mg-archive[open] > summary::after { content: '▴'; }
.mg-archive > .table { margin-top: 14px; }
.mg-list { padding: 0; display: flex; flex-direction: column; }
.mg-list > a, .mg-list > .mg-li-off { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line, #EEF1F6); text-decoration: none; color: inherit; }
.mg-list > :last-child { border-bottom: 0; }
.mg-list span { display: flex; flex-direction: column; gap: 3px; }
.mg-list small { color: var(--ink-2, #44516B); font-size: 14px; }
.mg-list i { font-style: normal; font-weight: 800; }
.mg-li-off b { color: #5B6780; }
.mg-orgbar { margin-top: 24px; }
/* Табло судьи «Лайт»: жребий перед матчем. */
.rb-toss { width: 100%; margin: 12px 0 4px; border-color: var(--navy); }
.rb-toss-r { margin: 6px 0 0; font-weight: 700; color: var(--olive, #3F6212); }
/* ТВ-табло: значок подачи у подающей стороны (live.js по live.json → sv). */
.tv-sv { display: inline-block; width: .55em; height: .55em; margin-right: .35em; border-radius: 50%; background: transparent; vertical-align: middle; }
.tv-sv.on { background: var(--orange); box-shadow: 0 0 0 3px rgba(234, 80, 3, .25); }
