/* ============================================================
   EV RACE — ARCADE 80s  (cleaned)

   Все изменения из ревизии 2026-05:
   - Введена система токенов в :root
     (spacing 4px-grid, letter-spacing, borders, accent, statusbar)
   - Убраны дубли .page-wrap и .op-badge
   - shine на прогресс-баре переписан через translateX
   - nav-mobile-drop привязан к --statusbar-h (JS выставляет реальную)
   - .upd-block, .gun-pill, бордеры и т.п. — через переменные
   - Мин. font-size для Press Start 2P поднят до 9px
   - Унифицирован border-color → --border-* токены
   - dot-indicator и фильтры — с transition

   Эстетика, цвета операторов и анимации (blink / flicker / shine)
   не тронуты.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Share+Tech+Mono&display=swap');

:root {
  /* ── базовая палитра ── */
  --green: #00ff41;
  --green-dim: #00aa2b;
  --green-dark: #003d0f;
  --yellow: #ffd700;
  --cyan: #00ffff;          /* акцент-2: was hardcoded в .upd-block / .start-point */
  --red: #ff4444;

  /* ── сезоны и тип зарядки (использовались на .month-btn / .badge-dc / .badge-ac
        но в оригинале не были объявлены — добавили) ── */
  --winter: #00e5ff;        /* зима — лёд */
  --spring: #aaff00;        /* весна — росток */
  --summer: #ff44aa;        /* лето — неон */
  --autumn: #ffaa00;        /* осень — янтарь */
  --dc:     var(--yellow);  /* DC: жёлтый — сильнее */
  --ac:     #00cfff;        /* AC: голубой — переменный ток */
  --bg: #0a0a0a;
  --card-bg: #0d1f0d;
  --text: var(--green);
  --text-dim: var(--green-dim);

  /* ── единые токены границ (раньше встречались хардкоды #1a3a1a / #0d1a0d) ── */
  --border-strong:   var(--green);       /* акцентные рамки */
  --border:          var(--green-dim);   /* стандартные рамки */
  --border-dim:      var(--green-dark);  /* фоновые/служебные */
  --border-faint:    #1a3a1a;            /* холодная зелень — арт-направление */
  --border-hairline: #0d1a0d;            /* нижние линии в таблицах */

  /* ── 4px-сетка spacing ── */
  --s-1:  4px;
  --s-2:  8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 40px;

  /* ── letter-spacing: три ступени, остальное унаследовать ── */
  --ls-tight: 1px;
  --ls:       2px;
  --ls-wide:  3px;

  /* ── layout ── */
  --statusbar-h: 60px;       /* реальное значение пересчитывает JS */
  --radius:      0;          /* перекрывается Tweaks */

  /* ── флаги анимаций (переключаются Tweaks-панелью) ── */
  --anim-flicker: 1;
  --anim-blink:   1;
  --anim-shine:   1;
}

/* ── reset ── */
* { margin:0; padding:0; box-sizing:border-box; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Share Tech Mono', monospace;
  min-height: 100vh;
  overflow-x: hidden;
}

/* CRT-сканлайны */
body::before {
  content:''; position:fixed; inset:0;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.1) 2px, rgba(0,0,0,.1) 4px);
  pointer-events:none; z-index:1000;
}

@keyframes flicker { 0%,100%{opacity:1} 93%{opacity:.87} 96%{opacity:.93} }
body { animation: flicker calc(8s / var(--anim-flicker)) infinite; }
:root[data-anim-flicker="0"] body { animation: none; }

.container { max-width: 1100px; margin: 0 auto; padding: 0; }
@media (min-width: 1280px) { .container { max-width: 1280px; } }
@media (min-width: 1600px) { .container { max-width: 1440px; } }
.page-wrap { padding: 0 var(--s-4) var(--s-4); }

/* ============================================================
   СТАТУС-БАР  +  МОБИЛЬНОЕ МЕНЮ
   ============================================================ */

.statusbar {
  display:flex; align-items:center; gap: var(--s-2);
  padding: var(--s-3) var(--s-4);
  margin-bottom: var(--s-5);
  border-bottom: 1px solid var(--border-dim);
  position: sticky; top:0; z-index: 200;
  background: var(--bg);
}

.burger-btn {
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:36px; height:36px; padding: var(--s-1) 6px;
  background:transparent; border:1px solid var(--border-dim);
  border-radius: var(--radius);
  cursor:pointer; flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  transition: border-color .2s;
}
.burger-btn span { display:block; height:2px; background:var(--text-dim); transition:all .2s; }
.burger-btn.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); background:var(--green); }
.burger-btn.open span:nth-child(2) { opacity:0; }
.burger-btn.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); background:var(--green); }

.nav-desktop { display:none; gap: var(--s-2); flex-wrap:wrap; flex:1; }

@media (min-width:600px) {
  .burger-btn       { display:none; }
  .nav-desktop      { display:flex; }
  .nav-mobile-drop  { display:none !important; }
}

.nav-link {
  font-family:'Share Tech Mono',monospace; font-size:10px;
  letter-spacing: var(--ls);
  padding: var(--s-2) var(--s-3);
  border:1px solid var(--border-dim);
  border-radius: var(--radius);
  background:transparent; color:var(--text-dim);
  text-decoration:none; transition: all .2s;
  -webkit-tap-highlight-color:transparent;
}
.nav-link:hover, .nav-link:active { border-color:var(--border); color:var(--green); }
.nav-link.active                  { border-color:var(--border-strong); color:var(--green); background:rgba(0,255,65,.05); }

/* сегмент-переключатель тем */
.theme-seg {
  display:flex; gap:2px; padding:3px;
  background: var(--card-bg);
  border: 1px solid var(--border-dim);
  border-radius: var(--radius);
  flex-shrink:0; margin-left:auto;
}
.theme-seg-btn {
  font-family:'Share Tech Mono',monospace; font-size:10px;     /* было 9px — поднял до читаемого */
  letter-spacing: var(--ls-tight);
  padding: var(--s-1) var(--s-2);
  border:none; background:transparent;
  color: var(--border-dim);
  cursor:pointer; white-space:nowrap;
  transition: all .15s;
  -webkit-tap-highlight-color:transparent;
}
.theme-seg-btn.active                       { background: rgba(0,255,65,.1); color: var(--green); }
.theme-seg-btn:not(.active):hover           { color: var(--text-dim); }

/* мобильное выпадающее меню — привязано к реальной высоте statusbar */
.nav-mobile-drop {
  display:none;
  position: fixed;
  top: var(--statusbar-h);
  left:0; right:0; z-index: 999;
  flex-direction:column;
  background: var(--card-bg);
  border: 1px solid var(--border-dim);
  border-top: none;
}
.nav-mobile-drop.open { display:flex; }

.nav-mobile-link {
  font-family:'Share Tech Mono', monospace;
  font-size: 13px;
  padding: 14px var(--s-4);
  color: var(--text-dim); text-decoration:none;
  border-bottom: 1px solid var(--border-dim);
  letter-spacing: var(--ls-tight);
  transition: color .15s, background .15s;
  -webkit-tap-highlight-color:transparent;
}
.nav-mobile-link:last-child { border-bottom:none; }
.nav-mobile-link.active     { color: var(--green); }
.nav-mobile-link:hover      { color: var(--green); background: rgba(0,255,65,.04); }

/* ============================================================
   HERO
   ============================================================ */

.hero {
  text-align:center;
  padding: var(--s-7) 0 var(--s-6);
  border-bottom: 2px solid var(--green);
  margin-bottom: var(--s-5);
}
.header-subtitle { font-size:10px; color:var(--text-dim); letter-spacing: var(--ls-wide); margin-bottom: 14px; line-height:1.6; }
.hero-title      { font-family:'Press Start 2P', monospace; font-size: clamp(22px, 6vw, 38px); color: var(--green); text-shadow: 0 0 20px var(--green), 0 0 40px var(--green-dim); line-height:1.3; margin-bottom: var(--s-3); }

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.cursor { animation: blink calc(1s / var(--anim-blink)) infinite; }
:root[data-anim-blink="0"] .cursor { animation: none; }

.header-year     { font-family:'Press Start 2P', monospace; font-size: clamp(11px, 3vw, 15px); color: var(--yellow); text-shadow: 0 0 10px var(--yellow); letter-spacing: 5px; margin-bottom: var(--s-6); }
.header-intro    { font-size: clamp(13px, 2vw, 16px); color: var(--text-dim); line-height: 2; text-align:left; }
.header-intro strong       { color: var(--green); }
.header-intro .highlight   { color: var(--yellow); font-family:'Press Start 2P', monospace; font-size: 11px; }

/* UPD-блок — все хардкоды #00ffff / #00aa2b / #003d0f / #00ff41 вынесены в переменные */
.upd-block {
  margin-top: var(--s-5);
  padding: 14px var(--s-4);
  border-left: 3px solid var(--cyan);
  background: rgba(0, 255, 255, 0.04);
  border-radius: var(--radius);
}
.upd-label { font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--cyan); letter-spacing: var(--ls); margin-bottom: var(--s-2); text-align:left; }
.upd-text  { font-size: clamp(13px, 2vw, 15px); color: var(--cyan); line-height: 1.9; text-align:left; }
.upd-sign  { margin-top: var(--s-3); font-size: 11px; color: var(--text-dim); letter-spacing: var(--ls-tight); border-top: 1px solid var(--border-dim); padding-top: var(--s-3); text-align:left; }
.upd-sign span { color: var(--green); font-family:'Press Start 2P', monospace; font-size: 9px; }

/* UPD2 — более жёсткий тон: жёлтый акцент + лёгкий glow */
.upd-block.upd2 {
  border-left-color: var(--yellow);
  background: rgba(255,215,0,0.05);
  box-shadow: inset 2px 0 12px rgba(255,215,0,.08);
}
.upd-block.upd2 .upd-label { color: var(--yellow); text-shadow: 0 0 6px rgba(255,215,0,.5); }
.upd-block.upd2 .upd-text  { color: var(--yellow); }
.upd-block.upd2 .upd-sign span { color: var(--yellow); }

/* ============================================================
   COUNTDOWN
   ============================================================ */

.countdown-title   { text-align:center; font-size: clamp(12px, 2.5vw, 18px); color: var(--text-dim); letter-spacing: var(--ls-wide); margin: var(--s-6) 0 var(--s-3); }
.countdown-section { display:flex; justify-content:center; gap: var(--s-3); margin-bottom: var(--s-6); }
.countdown-block   { text-align:center; border: 1px solid var(--border); border-radius: var(--radius); padding: var(--s-3) var(--s-2); flex:1; max-width: 90px; background: var(--card-bg); }
.countdown-num     { font-family:'Press Start 2P', monospace; font-size: clamp(14px, 4vw, 22px); color: var(--yellow); text-shadow: 0 0 10px var(--yellow); display:block; }
.countdown-label   { font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-tight); margin-top: var(--s-1); display:block; } /* 8px → 9px */

.start-point       { text-align:center; font-family:'Press Start 2P', monospace; font-size: clamp(12px, 3vw, 22px); color: var(--cyan); text-shadow: 0 0 15px var(--cyan), 0 0 30px rgba(0,255,255,.3); line-height:1.5; padding: var(--s-4) 0 var(--s-5); letter-spacing: var(--ls); }

/* ============================================================
   ОБЩИЙ ПРОГРЕСС
   ============================================================ */

.total-section {
  border: 2px solid var(--border-strong);
  border-radius: var(--radius);
  padding: 18px var(--s-4);
  margin-bottom: var(--s-6);
  background: var(--card-bg);
  position: relative;
}
.total-section::before {
  content:' ОБЩИЙ ПРОГРЕСС ';
  position:absolute; top:-10px; left:14px;
  background: var(--bg); padding: 0 6px;
  font-size: clamp(10px, 2vw, 14px);
  color: var(--green); letter-spacing: var(--ls);
}
.total-section-label { display:none; }
.total-numbers       { display:flex; justify-content:space-between; align-items:baseline; margin-bottom: var(--s-3); flex-wrap:wrap; gap: var(--s-2); }
.total-count         { font-family:'Press Start 2P', monospace; font-size: clamp(22px, 6vw, 38px); color: var(--green); text-shadow: 0 0 20px var(--green); margin-bottom: var(--s-2); }
.total-goal          { font-size: 12px; color: var(--text-dim); }
.total-goal span     { color: var(--yellow); font-family:'Press Start 2P', monospace; font-size: 10px; }
.total-pct-block     { text-align:right; }
.total-pct-label     { font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-tight); margin-bottom: 6px; }
.total-pct-value     { font-family:'Press Start 2P', monospace; font-size: 20px; color: var(--yellow); text-shadow: 0 0 10px var(--yellow); }

.progress-bar-wrap   {
  background:#001a00;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  height: 22px;
  position: relative;
  overflow: hidden;
}

/* shine: было left/width magic numbers (40px → -100%/200%); теперь честный translateX.
   Бегает по самому wrap'у — поверх любого содержимого (stacked-сегменты или fill).  */
@keyframes shine {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}
.progress-bar-wrap::after {
  content:''; position:absolute; top:0; bottom:0; left:0;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  animation: shine calc(2.5s / var(--anim-shine)) infinite linear;
  pointer-events: none;
  will-change: transform;
}
:root[data-anim-shine="0"] .progress-bar-wrap::after { animation: none; opacity: 0; }

/* одиночный fill (используется на progress-баре оператора и т.п.) */
.progress-bar-fill   {
  height:100%;
  background: linear-gradient(90deg, var(--green-dim), var(--green));
  transition: width 1.5s ease;
}

.progress-bar-stacked { display:flex; height:100%; width:100%; }
.stack-seg            { height:100%; flex-shrink:0; transition: width 1.5s ease; }
.progress-pct         { display:none; }
.op-meta              { font-size: 10px; color: var(--text-dim); margin-top: 6px; letter-spacing: var(--ls-tight); } /* 9px → 10px (Share Tech Mono, не Press Start) */
.updated              { text-align:right; font-size: 10px; color: var(--text-dim); margin-top: 7px; }

/* ============================================================
   ОПЕРАТОРЫ
   ============================================================ */

.operators-title { font-family:'Press Start 2P', monospace; font-size: clamp(12px, 2.5vw, 18px); color: var(--text-dim); letter-spacing: var(--ls-wide); margin-bottom: 14px; text-align:center; }
.operators-grid  { display:flex; flex-direction:column; gap: var(--s-3); margin-bottom: var(--s-6); }

.op-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-bg);
  padding: 14px var(--s-4);
  transition: border-color .3s, box-shadow .3s;
  position: relative;
}
.op-card:hover { border-color: var(--border-strong); box-shadow: 0 0 12px rgba(0,255,65,.1); }

.op-rank {
  position:absolute; top:10px; right:14px;
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Press Start 2P', monospace;
  font-size: 9px;                 /* 8px → 9px (минимум для PS2P) */
  image-rendering: pixelated;
}
.medal     { width:28px; height:28px; position:relative; display:inline-block; image-rendering: pixelated; }
.medal svg { width:28px; height:28px; image-rendering: pixelated; shape-rendering: crispEdges; }

.op-top     { display:flex; align-items:center; gap: 14px; margin-bottom: var(--s-3); }
.op-logo    { width: 80px; height: 38px; object-fit: contain; flex-shrink: 0; }
.op-logo.dark-bg { background:#111; padding: var(--s-1); }
.op-name    { font-size: 12px; color: var(--text); letter-spacing: var(--ls-tight); flex:1; min-width:0; }
.op-score   { font-family:'Press Start 2P', monospace; font-size: clamp(13px, 3vw, 17px); color: var(--green); text-shadow: 0 0 10px var(--green); white-space:nowrap; margin-right: 36px; }
.op-score .score-x { color: var(--text-dim); font-size: .6em; }

.op-bar-wrap { background:#001a00; border: 1px solid var(--border-dim); border-radius: var(--radius); height: 5px; overflow:hidden; }
.op-bar-fill { height:100%; background: var(--green); transition: width 1.5s ease; box-shadow: 0 0 4px var(--green); }

/* ============================================================
   ГОЛОСОВАНИЕ
   ============================================================ */

.vote-section {
  border: 2px solid var(--yellow);
  border-radius: var(--radius);
  padding: var(--s-5) var(--s-4);
  margin-bottom: var(--s-6);
  background:#1a1500;
  position: relative;
}
.vote-section::before {
  content:' СДЕЛАЙ СТАВКУ ';
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background: var(--bg); padding: 0 var(--s-3);
  font-family:'Press Start 2P', monospace;
  font-size: clamp(10px, 2.5vw, 14px);
  color: var(--yellow); letter-spacing: var(--ls); white-space:nowrap;
}
.vote-section-label { display:none; }
.vote-question      { font-size: clamp(12px, 2.5vw, 15px); color: var(--yellow); letter-spacing: var(--ls-tight); margin-bottom: 18px; line-height: 1.9; }
.vote-options       { display:grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--s-2); margin-bottom: 14px; }

.vote-btn {
  border: 1px solid var(--yellow);
  border-radius: var(--radius);
  background: transparent; color: var(--yellow);
  font-family:'Share Tech Mono', monospace; font-size: 10px;
  padding: var(--s-3) 6px;
  cursor: pointer; transition: all .2s;
  text-align:center; display:flex; flex-direction:column; align-items:center; gap: 6px;
  -webkit-tap-highlight-color:transparent;
}
.vote-btn:hover, .vote-btn:active { background: rgba(255,215,0,.08); }
.vote-btn.selected { background: rgba(255,215,0,.15); border-width: 2px; box-shadow: 0 0 12px rgba(255,215,0,.25); }
.vote-btn img      { width: 65px; height: 30px; object-fit: contain; background:#111; padding: 3px; }

.vote-submit {
  display:block; width:100%;
  border: 2px solid var(--yellow);
  border-radius: var(--radius);
  background: transparent; color: var(--yellow);
  font-family:'Press Start 2P', monospace; font-size: 10px;
  padding: 14px;
  cursor:pointer; letter-spacing: var(--ls);
  transition: all .2s;
  -webkit-tap-highlight-color:transparent;
}
.vote-submit:hover:not(:disabled), .vote-submit:active:not(:disabled) { background: var(--yellow); color: #000; }
.vote-submit:disabled { opacity:.35; cursor:not-allowed; }

.vote-results          { display:none; }
.vote-result-item      { margin-bottom: var(--s-3); }
.vote-result-top       { display:flex; justify-content:space-between; font-size: 11px; margin-bottom: var(--s-1); }
.vote-result-top .rname{ color: var(--text); }
.vote-result-top .rpct { color: var(--yellow); font-family:'Press Start 2P', monospace; font-size: 9px; }
.vote-result-bar-wrap  { background:#1a1000; height: 10px; border: 1px solid #3d3000; border-radius: var(--radius); overflow:hidden; }
.vote-result-bar       { height:100%; background: var(--yellow); transition: width 1s ease; box-shadow: 0 0 5px var(--yellow); }
.vote-result-bar.mine  { background: var(--green); box-shadow: 0 0 6px var(--green); }
.vote-message          { font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--green); text-align:center; margin-bottom: 18px; line-height: 1.9; text-shadow: 0 0 10px var(--green); }
.vote-total-players    { text-align:center; font-size: 11px; color: var(--text-dim); margin-top: var(--s-3); letter-spacing: var(--ls); }  /* 10px → 11px (Share Tech) */

/* ============================================================
   ГОНКА
   ============================================================ */

.race-section     { margin-bottom: var(--s-6); }
.race-title-label { font-family:'Press Start 2P', monospace; font-size: clamp(10px, 2.5vw, 14px); color: var(--text-dim); letter-spacing: var(--ls-wide); text-align:center; margin-bottom: var(--s-3); }
.race-block       { border: 1px solid var(--border); border-radius: var(--radius); background: var(--card-bg); overflow:hidden; position:relative; }
.race-canvas      { display:block; width:100%; }
.race-foot        { text-align:center; font-size: 10px; color: var(--border-dim); letter-spacing: var(--ls); padding: var(--s-2); } /* 9px → 10px (Share Tech) */

/* ============================================================
   BIG PHRASE  +  АВТОР
   ============================================================ */

.big-phrase { text-align:center; font-family:'Press Start 2P', monospace; font-size: clamp(14px, 4vw, 28px); color: var(--yellow); text-shadow: 0 0 20px var(--yellow), 0 0 40px rgba(255,215,0,.3); line-height:1.5; padding: var(--s-6) 0; letter-spacing: var(--ls); }

.author-section {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5) var(--s-4);
  margin-bottom: var(--s-6);
  background: var(--card-bg);
  position: relative;
}
.author-section::before {
  content:' ARTSIOM KRIVTSOFF | АВТОР ПРОЕКТА ';
  position:absolute; top:-10px; left:14px;
  background: var(--bg); padding: 0 6px;
  font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls);
}
/* (дубликат .page-wrap из оригинала здесь — УБРАН) */

.author-about-btn {
  display:block; width:100%;
  border: 1px solid var(--green); border-radius: var(--radius);
  background: transparent; color: var(--green);
  font-family:'Share Tech Mono', monospace; font-size: 14px;
  padding: var(--s-4);
  cursor: pointer; letter-spacing: var(--ls); text-align:center; text-decoration:none;
  margin-bottom: var(--s-3);
  transition: all .2s;
  -webkit-tap-highlight-color:transparent; box-sizing: border-box;
}
.author-about-btn:hover, .author-about-btn:active { background: rgba(0,255,65,.08); box-shadow: 0 0 10px rgba(0,255,65,.12); }

.author-chat-btn {
  display:block; width:100%;
  border: 1px solid var(--green); border-radius: var(--radius);
  background: rgba(0,255,65,.05); color: var(--green);
  font-family:'Share Tech Mono', monospace; font-size: 14px;
  padding: 14px var(--s-4);
  cursor: pointer; letter-spacing: var(--ls-tight); text-align:center; text-decoration:none;
  margin-bottom: 18px;
  transition: all .2s;
  -webkit-tap-highlight-color:transparent; box-sizing: border-box; line-height: 1.6;
}
.author-chat-btn:hover, .author-chat-btn:active { background: rgba(0,255,65,.12); }
.author-chat-btn .chat-sub { display:block; font-size: 11px; color: var(--text-dim); letter-spacing: var(--ls-tight); margin-top: var(--s-1); }

.section-label { font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-wide); margin-bottom: var(--s-3); display:block; width:100%; }

.author-links {
  display:grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--s-2);
  margin-bottom: 18px; width:100%; box-sizing:border-box;
}
.author-link-btn {
  border: 1px solid var(--border); border-radius: var(--radius);
  background: transparent; color: var(--text-dim);
  font-family:'Share Tech Mono', monospace; font-size: 11px;
  padding: var(--s-3) var(--s-1);
  text-align:center; text-decoration:none;
  display:flex; align-items:center; justify-content:center;
  transition: all .2s;
  -webkit-tap-highlight-color:transparent;
  width:100%; min-height: 44px; box-sizing: border-box;
  white-space: normal; word-break: break-word; line-height: 1.4;
}
.author-link-btn:hover, .author-link-btn:active { border-color: var(--green); color: var(--green); background: rgba(0,255,65,.05); }

.author-contacts {
  display:grid; grid-template-columns: 1fr 1fr; gap: var(--s-2);
  width:100%; box-sizing:border-box;
}
.author-contact-btn {
  border: 1px solid var(--border); border-radius: var(--radius);
  background: transparent; color: var(--text-dim);
  font-family:'Share Tech Mono', monospace; font-size: 11px;
  padding: 13px 6px;
  text-align:center; text-decoration:none;
  display:flex; align-items:center; justify-content:center;
  transition: all .2s;
  -webkit-tap-highlight-color:transparent;
  width:100%; min-height: 44px; box-sizing: border-box;
  white-space: normal; word-break: break-word; line-height: 1.4;
}
.author-contact-btn:hover, .author-contact-btn:active { border-color: var(--green); color: var(--green); }

/* ============================================================
   ПОСЕЩЕНИЯ  /  ПЕРЕКЛЮЧАТЕЛЬ ВНИЗУ  /  COOKIE  /  ФУТЕР
   ============================================================ */

.visit-counter      { text-align:center; font-size: 11px; color: var(--text-dim); margin-bottom: var(--s-5); letter-spacing: var(--ls); line-height: 1.8; }
.visit-counter span { color: var(--green); font-family:'Press Start 2P', monospace; font-size: 11px; }

.theme-footer-switch { padding: var(--s-4) 0; display:flex; justify-content:center; align-items:center; gap: var(--s-2); }
.theme-foot-lbl      { font-size: 10px; color: var(--border-dim); letter-spacing: var(--ls); margin-right: var(--s-1); }
.theme-foot-btn {
  font-size: 14px; width: 34px; height: 34px;
  border: 1px solid var(--border-dim); border-radius: var(--radius);
  background: transparent; color: var(--border-dim);
  cursor: pointer;
  display:flex; align-items:center; justify-content:center;
  transition: all .15s;
  -webkit-tap-highlight-color: transparent;
}
.theme-foot-btn.active             { background: rgba(0,255,65,.1); color: var(--green); border-color: var(--green); }
.theme-foot-btn:hover:not(.active) { border-color: var(--border); color: var(--text-dim); }

.cookie-banner {
  position: fixed; bottom:0; left:0; right:0;
  background: var(--card-bg);
  border-top: 2px solid var(--green);
  padding: var(--s-3) var(--s-4);
  display:flex; align-items:center; justify-content:space-between;
  gap: var(--s-3); z-index: 9999; flex-wrap: wrap;
}
.cookie-text { font-size: 11px; color: var(--text-dim); line-height: 1.6; flex:1; min-width: 180px; }
.cookie-btn  {
  border: 1px solid var(--green); border-radius: var(--radius);
  background: transparent; color: var(--green);
  font-family:'Share Tech Mono', monospace; font-size: 11px;
  padding: var(--s-2) 18px;
  cursor: pointer; white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
  transition: all .2s;
}
.cookie-btn:hover, .cookie-btn:active { background: var(--green); color:#000; }

.footer            { border-top: 1px solid var(--border-dim); padding: 18px 0 90px; text-align:center; color: var(--text-dim); line-height: 2; }
.footer-links      { font-size: 12px; margin-bottom: var(--s-3); }
.footer-links a    { color: var(--text-dim); text-decoration:none; margin: 0 var(--s-2); transition: color .15s; }
.footer-links a:hover { color: var(--green); }
.footer-disclaimer { font-size: 12px; line-height: 1.9; margin-bottom: 6px; }
.footer-privacy    { font-size: 11px; color: #006615; margin-bottom: 6px; }
.footer-copy       { font-size: 10px; }                 /* 9px → 10px */

@media (max-width: 400px) {
  .author-links    { grid-template-columns: 1fr; }
  .author-contacts { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .vote-options { grid-template-columns: 1fr 1fr; }
  .author-links { grid-template-columns: 1fr 1fr 1fr; }
}
@media (min-width: 640px) {
  .vote-options { grid-template-columns: repeat(5, 1fr); }
  .author-links { grid-template-columns: repeat(5, 1fr); }
}

/* ============================================================
   ТУРНИРНАЯ ТАБЛИЦА (классы используются на главной — оставлены)
   ============================================================ */

.meta-row     { display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-2); margin-bottom: var(--s-7); }
.meta-card    { background: var(--card-bg); border: 1px solid var(--border-dim); border-radius: var(--radius); padding: var(--s-3) var(--s-2); text-align:center; }
.meta-label   { font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-tight); margin-bottom: 5px; }
.meta-val     { font-family:'Press Start 2P', monospace; font-size: clamp(9px, 1.8vw, 12px); color: var(--yellow); text-shadow: 0 0 8px var(--yellow); line-height: 1.6; }

.section-head { font-size: 11px; color: var(--text-dim); letter-spacing: var(--ls); border-bottom: 1px solid var(--border-dim); padding-bottom: var(--s-2); margin-bottom: 14px; }

.cur-round    { border: 2px solid var(--yellow); border-radius: var(--radius); background: #1a1500; padding: 22px 18px; margin-bottom: var(--s-6); position:relative; }
.cur-round::before { content:' ТЕКУЩИЙ КРУГ '; position:absolute; top:-10px; left:14px; background: var(--bg); padding: 0 6px; font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--yellow); letter-spacing: var(--ls); }
.cur-round-header  { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom: 18px; flex-wrap:wrap; gap: var(--s-2); }
.cur-round-num     { font-family:'Press Start 2P', monospace; font-size: clamp(18px, 4vw, 26px); color: var(--yellow); }
.cur-round-dates   { font-size: 12px; color: var(--text-dim); text-align:right; }
.cur-round-table   { width:100%; border-collapse: collapse; font-size: 13px; }
.cur-round-table th{ font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-tight); padding: var(--s-2) 6px; border-bottom: 1px solid #3d3000; text-align:left; }
.cur-round-table td{ padding: var(--s-3) 6px; border-bottom: 1px solid #1a1000; vertical-align:middle; }
.cur-round-table tr:last-child td { border-bottom:none; }
.cur-no-data       { font-size: 12px; color: #3d3000; letter-spacing: var(--ls); padding: 14px 0; }

.standings        { width:100%; border-collapse: collapse; font-size: 14px; margin-bottom: var(--s-6); }
.standings th     { font-size: 10px; color: var(--text-dim); letter-spacing: var(--ls-tight); padding: 9px 6px; border-bottom: 1px solid var(--border-dim); text-align:left; }
.standings td     { padding: 11px 6px; border-bottom: 1px solid #001a00; vertical-align:middle; }
.standings tr:last-child td { border-bottom:none; }
.standings th.th-num   { text-align:center; }
.standings th.th-last  { text-align:right; }
.standings th.th-tempo { text-align:right; }
.standings td.td-wins  { text-align:center; }
.standings td.td-last  { text-align:right; }

.rank             { font-family:'Press Start 2P', monospace; font-size: 10px; color: var(--text-dim); }
.r1 { color: var(--yellow); } .r2 { color: #c0c0c0; } .r3 { color: #cd7f32; }
.dot              { display:inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: middle; flex-shrink: 0; transition: background .2s, opacity .2s; }
.pts              { font-family:'Press Start 2P', monospace; font-size: 11px; color: var(--green); }
.change-up   { color: var(--green); font-size: 11px; }
.change-down { color: var(--red);   font-size: 11px; }
.change-same { color: var(--border-dim); font-size: 11px; }

.td-tempo { text-align:right; background: rgba(0,255,65,.07); color: var(--green); font-family:'Press Start 2P', monospace; font-size: 10px; }
.th-tempo { text-align:right; background: rgba(0,255,65,.04); color: var(--text-dim) !important; }

.rounds-grid-wrap, .hist-grid-wrap { position:relative; margin-bottom: var(--s-2); overflow:hidden; }
.rounds-grid-wrap .rounds-grid-fade,
.hist-grid-wrap .hist-grid-fade   { position:absolute; bottom:0; left:0; right:0; height: 60px; background: linear-gradient(transparent, var(--bg)); pointer-events:none; transition: opacity .3s; }
.rounds-grid-wrap.expanded .rounds-grid-fade,
.hist-grid-wrap.expanded .hist-grid-fade { opacity:0; }

.rounds-grid      { display:grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.round-cell       { background: var(--card-bg); border: 1px solid #001a00; border-radius: var(--radius); padding: 9px 5px; text-align:center; }
.round-cell.active{ border-color: var(--green); background: rgba(0,255,65,.06); }
.round-cell.future{ opacity:.3; }
.r-num            { font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--text-dim); margin-bottom: var(--s-1); } /* 8px → 9px */
.r-win            { font-size: 9px; margin-bottom: 3px; line-height: 1.5; }
.r-date           { font-size: 9px; color: var(--text-dim); }

.rounds-toggle-btn, .hist-toggle-btn {
  display:block; width:100%;
  border: 1px solid var(--border-dim); border-radius: var(--radius);
  background: transparent; color: var(--text-dim);
  font-family:'Press Start 2P', monospace; font-size: 9px;
  padding: var(--s-3); cursor: pointer; letter-spacing: var(--ls);
  margin: var(--s-2) 0 var(--s-6); transition: all .2s;
  box-sizing: border-box; -webkit-tap-highlight-color: transparent;
}
.rounds-toggle-btn:hover, .hist-toggle-btn:hover { border-color: var(--green); color: var(--green); }

.forecast-hint   { font-size: 10px; color: var(--border-dim); letter-spacing: var(--ls-tight); line-height: 1.8; margin-bottom: var(--s-3); padding-bottom: var(--s-3); border-bottom: 1px solid var(--border-dim); }
.forecast-tilde  { font-family:'Share Tech Mono', monospace; font-size: 13px; color: var(--text-dim); margin-right: 2px; }

.hist-row        { padding: 11px 0; border-bottom: 1px solid #001a00; }
.hist-row:last-child { border-bottom:none; }
.hist-meta       { display:flex; align-items:baseline; gap: var(--s-3); margin-bottom: 6px; flex-wrap:wrap; }
.hist-round      { font-size: 12px; color: var(--yellow); min-width: 75px; }
.hist-dates      { font-size: 11px; color: var(--border-dim); }
.hist-ops        { display:flex; flex-wrap:wrap; gap: var(--s-3); align-items:center; }
.hist-op         { display:flex; align-items:center; gap: var(--s-1); font-size: 13px; white-space:nowrap; }
.sep             { color: var(--border-dim); font-size: 11px; }

.rules-title     { font-size: clamp(13px, 2.5vw, 17px); color: var(--text-dim); letter-spacing: var(--ls-wide); text-align:center; margin-bottom: var(--s-4); }
.rules-section   { border: 1px solid var(--border-dim); border-radius: var(--radius); background: var(--bg); padding: 18px var(--s-4); margin-bottom: var(--s-5); }
.rule-block      { margin-bottom: var(--s-4); }
.rule-block:last-child { margin-bottom: 0; }
.rule-h          { font-size: 13px; color: var(--green); letter-spacing: var(--ls-wide); margin-bottom: var(--s-2); border-bottom: 1px solid var(--border-dim); padding-bottom: 5px; }
.rule-t          { font-size: 13px; color: var(--text-dim); line-height: 2; }
.rule-t span     { color: var(--yellow); }
.rule-note       { font-size: 12px; color: var(--cyan); line-height: 1.8; margin-top: var(--s-2); }

.pts-row         { display:flex; align-items:center; gap: var(--s-3); padding: 3px 0; font-size: 13px; color: var(--text-dim); }
.pts-v           { margin-left:auto; font-size: 12px; }

.loading         { text-align:center; padding: var(--s-5); font-size: 12px; color: var(--border-dim); letter-spacing: var(--ls); }

@media (max-width: 480px) {
  .meta-row { grid-template-columns: repeat(2, 1fr); }
  .rounds-grid { grid-template-columns: repeat(3, 1fr); }
  .standings    { font-size: 12px; }
  .standings th { font-size: 9px; padding: 7px var(--s-1); } /* 8px → 9px */
  .standings td { padding: 9px var(--s-1); }
  .cur-round-table    { font-size: 12px; }
  .cur-round-table th { font-size: 9px; padding: 6px var(--s-1); }
  .cur-round-table td { padding: var(--s-2) var(--s-1); }
}

.new-badge { background: rgba(0,255,65,.12); color: var(--green); border: 1px solid var(--border-dim); border-radius: var(--radius); font-size: 9px; font-family:'Press Start 2P', monospace; padding: 2px 5px; margin-left: 6px; } /* 7px → 9px */

/* ПРОГНОЗ */
.forecast-section { border: 1px solid var(--border-dim); border-radius: var(--radius); background: var(--card-bg); padding: var(--s-4) var(--s-4) 14px; margin-bottom: var(--s-6); }
.forecast-item    { display:flex; align-items:center; justify-content:space-between; gap: var(--s-3); margin-bottom: var(--s-3); }
.forecast-item:last-child { margin-bottom: 0; }
.forecast-op      { display:flex; align-items:center; gap: 6px; font-size: 11px; color: var(--text-dim); flex-shrink: 0; }
.forecast-num     { font-size: 11px; color: var(--text-dim); text-align:right; white-space:nowrap; min-width: 80px; }
.forecast-num strong { color: var(--green); font-family:'Press Start 2P', monospace; font-size: 12px; }
.forecast-note    { font-size: 11px; color: var(--green); margin-top: var(--s-3); padding: var(--s-3); border: 1px solid var(--border-dim); border-radius: var(--radius); background: rgba(0,255,65,.04); letter-spacing: var(--ls-tight); line-height: 1.9; }
.forecast-table   { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: var(--s-3); }
.forecast-table th{ font-size: 10px; color: var(--text-dim); letter-spacing: var(--ls-tight); padding: 9px 6px; border-bottom: 1px solid var(--border-dim); text-align: left; font-weight: normal; }
.forecast-table th.num { text-align: right; }
.forecast-table td{ padding: 11px 6px; border-bottom: 1px solid #001a00; vertical-align: middle; font-size: 12px; }
.forecast-table tr:last-child td { border-bottom: none; }
.forecast-table td.op { display: flex; align-items: center; gap: 6px; }
.forecast-table td.num { text-align: right; }
.forecast-table td.tempo { color: var(--text-dim); font-family: 'Press Start 2P', monospace; font-size: 10px; background: rgba(0,255,65,.05); }
.forecast-table td.forecast strong { color: var(--green); font-family: 'Press Start 2P', monospace; font-size: 12px; }
.forecast-table td.forecast .unit { font-size: 10px; color: var(--text-dim); }
@media (max-width: 480px) {
  .forecast-table th { font-size: 9px; padding: 7px var(--s-1); }
  .forecast-table td { padding: 9px var(--s-1); font-size: 11px; }
  .forecast-table td.tempo { font-size: 9px; }
  .forecast-table td.forecast strong { font-size: 11px; }
}


/* ============================================================
   СТРАНИЦА СТАНЦИЙ — оставлено для совместимости HTML
   ============================================================ */

.stats-row  { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-2); margin-bottom: var(--s-5); }
.stat-card  { background: var(--card-bg); border: 1px solid var(--border-dim); border-radius: var(--radius); padding: var(--s-3) var(--s-2); text-align:center; }
.stat-label { font-size: 9px; color: var(--text-dim); letter-spacing: var(--ls-tight); margin-bottom: 5px; }
.stat-val   { font-family:'Press Start 2P', monospace; font-size: clamp(11px, 2vw, 15px); color: var(--yellow); text-shadow: 0 0 8px var(--yellow); }

.search-wrap       { display:flex; align-items:center; gap: var(--s-2); margin-bottom: var(--s-4); }
.search-input-wrap { flex:1; display:flex; align-items:center; border: 1px solid var(--border-dim); border-radius: var(--radius); background: var(--card-bg); padding: 0 var(--s-3); gap: var(--s-2); transition: border-color .15s; }
.search-input-wrap:focus-within { border-color: var(--border); }
.search-input      { flex:1; background: transparent; border: none; outline: none; font-family:'Share Tech Mono', monospace; font-size: 11px; color: var(--green); letter-spacing: var(--ls-tight); padding: 9px 0; caret-color: var(--green); width:100%; }
.search-input::placeholder { color: var(--border-dim); letter-spacing: var(--ls-tight); }
.search-clear      { color: var(--border-dim); font-size: 13px; cursor: pointer; display:none; flex-shrink: 0; padding: 2px var(--s-1); transition: color .15s; -webkit-tap-highlight-color: transparent; }
.search-clear:hover { color: var(--red); }

.filters-wrap   { margin-bottom: var(--s-4); }
.filter-row     { display:flex; align-items:center; gap: var(--s-2); flex-wrap: wrap; margin-bottom: var(--s-3); }
.filter-label   { font-size: 10px; color: var(--text-dim); letter-spacing: var(--ls); white-space: nowrap; min-width: 90px; }
.month-filters  { display:flex; gap: 5px; flex-wrap: wrap; }

.month-btn      { font-family:'Press Start 2P', monospace; font-size: 9px; padding: 5px 7px; border: 1px solid; border-radius: var(--radius); cursor: pointer; transition: all .2s; opacity: .55; white-space: nowrap; -webkit-tap-highlight-color: transparent; } /* 7px → 9px */
.month-btn:hover{ opacity: .8; }
.month-btn.on   { opacity: 1; box-shadow: 0 0 8px currentColor; }
.month-btn.winter        { color: var(--winter); border-color: rgba(0,229,255,.25); }
.month-btn.winter.on     { background: rgba(0,229,255,.08); border-color: var(--winter); }
.month-btn.spring        { color: var(--spring); border-color: rgba(170,255,0,.25); }
.month-btn.spring.on     { background: rgba(170,255,0,.08); border-color: var(--spring); }
.month-btn.summer        { color: var(--summer); border-color: rgba(255,68,170,.25); }
.month-btn.summer.on     { background: rgba(255,68,170,.08); border-color: var(--summer); }
.month-btn.autumn        { color: var(--autumn); border-color: rgba(255,170,0,.25); }
.month-btn.autumn.on     { background: rgba(255,170,0,.08); border-color: var(--autumn); }

.op-filters     { display:flex; gap: 6px; flex-wrap: wrap; }
.op-filter-btn  { font-family:'Press Start 2P', monospace; font-size: 9px; padding: 5px 9px; cursor: pointer; transition: all .2s; border: 1px solid transparent; border-radius: var(--radius); opacity: .55; -webkit-tap-highlight-color: transparent; } /* 7px → 9px */
.op-filter-btn:hover { opacity: .8; }
.op-filter-btn.on    { opacity: 1; box-shadow: 0 0 8px rgba(0,0,0,.5); }

.city-filters   { display:flex; gap: 5px; flex-wrap: wrap; }
.city-btn       { font-family:'Press Start 2P', monospace; font-size: 9px; padding: 5px var(--s-2); border: 1px solid var(--border-dim); border-radius: var(--radius); color: var(--text-dim); background: transparent; cursor: pointer; transition: all .2s; opacity: .55; -webkit-tap-highlight-color: transparent; } /* 7px → 9px */
.city-btn.on    { opacity: 1; border-color: var(--green); color: var(--green); background: rgba(0,255,65,.05); }
.city-btn:hover { opacity: .8; }

.reset-btn      { font-family:'Press Start 2P', monospace; font-size: 9px; padding: 5px var(--s-3); border: 1px solid var(--red); border-radius: var(--radius); color: var(--red); background: rgba(255,68,68,.1); cursor: pointer; transition: all .2s; display: none; box-shadow: 0 0 10px rgba(255,68,68,.4); } /* 7px → 9px */
.reset-btn.visible { display: inline-block; }
.reset-btn:hover{ background: rgba(255,68,68,.25); }

/* ── SHARED FILTER EXTRAS (letters + future pages) ── */
/* "ВСЕ" — зелёная нейтральная кнопка */
.op-filter-all { background: rgba(0,255,65,.06); color: var(--green-dim); border: 1px solid rgba(0,255,65,.2); }
.op-filter-all.on { background: rgba(0,255,65,.12); color: var(--green); border-color: var(--green); opacity:1; box-shadow:none; }

/* "ВСЕМ" — жёлтая кнопка */
.op-filter-yellow { background: rgba(255,215,0,.06); color: var(--yellow); border: 1px solid rgba(255,215,0,.25); }
.op-filter-yellow.on { background: rgba(255,215,0,.15); border-color: var(--yellow); opacity:1; box-shadow:none; }

/* Статус: ждёт ответа */
.op-filter-warn { background: rgba(255,136,0,.08); color: #ffaa44; border: 1px solid rgba(255,136,0,.28); }
.op-filter-warn.on { background: rgba(255,136,0,.18); border-color: #ff8800; color: #ffcc66; opacity:1; box-shadow:none; }

/* Статус: есть ответ */
.op-filter-replied { background: rgba(0,207,255,.08); color: #66ddff; border: 1px solid rgba(0,207,255,.28); }
.op-filter-replied.on { background: rgba(0,207,255,.18); border-color: #00cfff; opacity:1; box-shadow:none; }

/* Тег-фильтр */
.tag-filter-btn { font-family:'Press Start 2P', monospace; font-size: 9px; padding: 5px 9px; cursor: pointer; transition: all .2s; border: 1px solid rgba(255,215,0,.2); border-radius: var(--radius); background: rgba(255,215,0,.04); color: rgba(255,215,0,.5); opacity: .6; -webkit-tap-highlight-color: transparent; }
.tag-filter-btn:hover { opacity: .85; }
.tag-filter-btn.on { opacity: 1; border-color: var(--yellow); color: var(--yellow); background: rgba(255,215,0,.1); box-shadow: 0 0 6px rgba(0,0,0,.4); }

/* BADGES — все 7px подняты до 9px */
.badge-dc, .badge-ac, .badge-acdc, .op-badge {
  font-family:'Press Start 2P', monospace;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: var(--radius);
  white-space: nowrap;
}
.badge-dc   { background: rgba(255,215,0,.1);  color: var(--dc); border: 1px solid rgba(255,215,0,.25); }
.badge-ac   { background: rgba(0,207,255,.1);  color: var(--ac); border: 1px solid rgba(0,207,255,.25); }
.badge-acdc { background: rgba(180,79,255,.1); color: #cc88ff;   border: 1px solid rgba(180,79,255,.25); }

/* op-badge — единая декларация, без !important и без width:auto-дубля */
/* op-badge — единая декларация */
.op-badge   { display: inline-block; padding: 3px 7px; flex-shrink: 0; align-self: flex-start; }

/* ── LETTER BADGES — единая система высоты ── */
/* Базовые метрики: все бейджи карточки письма одной высоты */
.let-op-badge,
.let-tag,
.letter-want-reply,
.let-responded {
  display: inline-flex;
  align-items: center;
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  padding: 3px 7px;
  border-radius: var(--radius);
  white-space: nowrap;
  line-height: 1;
  flex-shrink: 0;
}
.let-op-badge {
  /* цвет берётся от .op-bf/.op-fo и т.д. */
  margin-right: 2px;
}
.let-tag {
  border: 1px solid rgba(255,215,0,.3);
  color: rgba(255,215,0,.65);
  background: rgba(255,215,0,.04);
}
.letter-want-reply {
  border: 1px solid rgba(255,136,0,.3);
  color: #ff8800;
  background: transparent;
}
.let-responded {
  border: 1px solid rgba(0,207,255,.4);
  color: #00cfff;
  background: rgba(0,207,255,.06);
}

/* ============================================================
   OP-BADGE — стиль для мелких/неизвестных операторов (op-other)
   + блок ".op-cell" с под-строкой "в <агрегатор>"
   ============================================================ */
.op-other {
  background: rgba(0,255,65,.04);
  color: var(--green-dim);
  border: 1px solid var(--green-dark);
}

/* контейнер: верхняя строка = .op-badge, под ней — .op-via */
.op-cell {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.1;
  vertical-align: top;
}
.op-via {
  font-family: 'Share Tech Mono', monospace;
  font-size: 10px;
  color: var(--green-dim);
  letter-spacing: var(--ls-tight);
  opacity: .85;
  white-space: nowrap;
  padding-left: 1px;
}
@media (max-width: 480px) {
  .op-via { font-size: 9px; }
}
.op-bf      { background: rgba(0,94,235,.15);   color: #4d8fff; border: 1px solid rgba(0,94,235,.25); }
.op-fo      { background: rgba(180,79,255,.15); color: #cc88ff; border: 1px solid rgba(180,79,255,.25); }
.op-za      { background: rgba(0,207,255,.15);  color: #66ddff; border: 1px solid rgba(0,207,255,.25); }
.op-uc      { background: rgba(245,130,31,.15); color: #ffaa55; border: 1px solid rgba(245,130,31,.25); }
.op-cs      { background: rgba(255,107,107,.15);color: #ff9999; border: 1px solid rgba(255,107,107,.25); }
.op-ma      { background: rgba(118,210,117,.15);color: #76d275; border: 1px solid rgba(118,210,117,.25); }
.op-ev      { background: rgba(131,42,245,.15); color: #b066ff; border: 1px solid rgba(131,42,245,.25); }
.op-or      { background: rgba(255,107,0,.15);  color: #ff8833; border: 1px solid rgba(255,107,0,.25); }
.op-pr      { background: rgba(36,195,211,.15); color: #24c3d3; border: 1px solid rgba(36,195,211,.25); }
.op-gt      { background: rgba(26,58,107,.15);  color: #4a7cc7; border: 1px solid rgba(26,58,107,.25); }

.gun-pill   { font-size: 10px; padding: 2px 7px; border: 1px solid var(--border-faint); border-radius: var(--radius); color: var(--green-dim); display: inline-flex; align-items: center; gap: 3px; }
.gun-dot    { width: 5px; height: 5px; background: var(--green); border-radius: 1px; flex-shrink: 0; display: inline-block; }

/* DESKTOP TABLE */
.table-wrap { overflow-x: auto; margin-bottom: var(--s-6); }
table.reg   { width: 100%; border-collapse: collapse; font-size: 12px; }
@media (max-width: 1023px) { table.reg { min-width: 740px; } }
table.reg thead tr { border-bottom: 1px solid var(--border-faint); }
table.reg th       { font-size: 9px; color: var(--text-dim); text-align: left; padding: var(--s-2); font-weight: normal; white-space: nowrap; letter-spacing: var(--ls-tight); }
table.reg th.center{ text-align: center; }
table.reg td       { padding: var(--s-2); border-bottom: 1px solid var(--border-hairline); color: var(--text-dim); vertical-align: middle; }
table.reg tr:hover td { background: rgba(0,255,65,.03); }
table.reg td.city  { color: var(--green); font-size: 12px; }
table.reg td.addr .loc-name    { font-size: 11px; color: var(--green); display:block; }
table.reg td.addr .loc-address { font-size: 10px; color: var(--text-dim); display:block; margin-top: 2px; }
.loc-addr-cell      { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.loc-page-btn       { display: inline-block; padding: 4px 8px; font-family: 'Share Tech Mono', monospace; font-size: 9px; letter-spacing: var(--ls-tight); text-align: center; text-decoration: none; border: 1px solid var(--green); color: var(--green); background: transparent; box-sizing: border-box; white-space: nowrap; }
.loc-page-btn:hover { background: rgba(0,255,65,.08); }
.loc-card .loc-city { display: block; }
table.reg td.addr  { max-width: 220px; }
table.reg td.power { color: var(--dc); font-family:'Press Start 2P', monospace; font-size: 10px; white-space: nowrap; }
table.reg td.center{ text-align: center; }
table.reg td.date  { font-size: 10px; color: var(--text-dim); }
.no-gun            { color: var(--border-faint); }

/* MOBILE CARDS */
.cards-wrap        { display: none; margin-bottom: var(--s-6); }
.loc-card          { background: var(--card-bg); border: 1px solid var(--border-faint); border-radius: var(--radius); padding: var(--s-3); margin-bottom: var(--s-3); }
.loc-head          { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom: var(--s-3); padding-bottom: var(--s-2); border-bottom: 1px solid #1a2a1a; }
.loc-head-left     { display:flex; flex-direction:column; gap: 5px; align-items: flex-start; }
.loc-city          { font-size: 13px; color: var(--green); }
.loc-name          { font-size: 11px; color: var(--green); }
.loc-addr          { font-size: 10px; color: var(--text-dim); }
.loc-head-right    { text-align:right; flex-shrink: 0; margin-left: var(--s-3); }
.loc-total-power   { font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--dc); }
.loc-total-label   { font-size: 9px; color: var(--text-dim); margin-top: 2px; }
.station-row       { display:flex; align-items:center; justify-content:space-between; padding: 7px 0; border-bottom: 1px solid #111; gap: 6px; }
.station-row:last-child { border-bottom: none; }
.st-left           { display:flex; align-items:center; gap: 6px; flex-wrap: wrap; flex: 1; }
.st-guns           { display:flex; gap: var(--s-1); flex-wrap: wrap; }
.st-right          { display:flex; align-items:center; gap: 6px; flex-shrink: 0; }
.st-power          { font-family:'Press Start 2P', monospace; font-size: 9px; color: var(--dc); white-space: nowrap; }
.loc-footer        { display:flex; align-items:flex-start; justify-content:space-between; gap: var(--s-2); margin-top: var(--s-2); padding-top: 7px; border-top: 1px solid #1a2a1a; }
.loc-footer-left   { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.loc-footer-right  { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
.loc-footer-right .loc-page-btn { font-size: 9px; padding: 5px 10px; }
.loc-date          { font-size: 10px; color: var(--text-dim); }

@media (min-width: 600px) { .stats-row { grid-template-columns: repeat(3, 1fr); } }

.show-all-btn      {
  display:block; width:100%;
  margin: var(--s-3) 0 var(--s-5);
  padding: var(--s-3);
  background: transparent;
  border: 1px solid var(--border-dim); border-radius: var(--radius);
  color: var(--text-dim);
  font-family:'Share Tech Mono', monospace; font-size: 11px;
  letter-spacing: var(--ls); cursor: pointer;
  transition: all .2s;
  -webkit-tap-highlight-color: transparent;
}
.show-all-btn:hover { border-color: var(--border); color: var(--green); }

@media (max-width: 640px) {
  .stats-row  { grid-template-columns: repeat(2, 1fr); }
  .table-wrap { display: none; }
  .cards-wrap { display: block; }
}

/* ============================================================
   STATIONS — новые компоненты (sticky filters, sort, heatmap,
   NEW-flash, rating-slot, view-toggle, scroll-top, locationKey)
   ============================================================ */

/* sticky-обёртка фильтров — раньше прилипала под statusbar;
   на мобиле перекрывала весь экран → отключили целиком */
.filters-sticky {
  background: var(--bg);
  margin: 0 calc(var(--s-4) * -1) var(--s-4);     /* выходит за page-wrap padding */
  padding: var(--s-3) var(--s-4);
  border-bottom: 1px solid var(--border-dim);
}

/* кликабельные заголовки таблицы — сортировка */
table.reg th.sortable {
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: color .15s;
}
table.reg th.sortable:hover { color: var(--green); }
table.reg th.sortable::after {
  content: ' ◇';                                  /* по умолчанию пустой ромб */
  opacity: .35;
  font-size: 8px;
}
table.reg th.sortable.sort-asc::after  { content: ' ▲'; opacity: 1; color: var(--green); }
table.reg th.sortable.sort-desc::after { content: ' ▼'; opacity: 1; color: var(--green); }

/* heatmap-фон на кнопках месяцев — управляется --heat: 0..1 через JS */
.month-btn {
  position: relative;
  --heat: 0;
}
.month-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: currentColor;
  opacity: calc(var(--heat) * 0.12);
  pointer-events: none;
  transition: opacity .3s;
}

/* подсветка NEW при загрузке (2 секунды) */
@keyframes new-flash-arcade {
  0%, 50% { box-shadow: inset 0 0 0 2px var(--green), 0 0 16px rgba(0,255,65,.35); background: rgba(0,255,65,.06); }
  100%    { box-shadow: inset 0 0 0 0 transparent, 0 0 0 transparent; background: transparent; }
}
.new-flash {
  animation: new-flash-arcade 2s ease-out 1;
}

/* slot под народный рейтинг (пока disabled, "СКОРО") */
.loc-rating {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  color: var(--border-dim);
  padding: 4px 8px;
  border: 1px dashed var(--border-faint);
  border-radius: var(--radius);
  cursor: not-allowed;
  white-space: nowrap;
  transition: all .2s;
}
.loc-rating:hover { color: var(--text-dim); border-color: var(--border-dim); }
.loc-rating-stars { letter-spacing: 1px; font-size: 10px; line-height: 1; }
.loc-rating-soon  { font-size: 8px; opacity: .7; }

/* в loc-head-right (мобайл) и в th "РЕЙТИНГ" (десктоп) — отдельные размещения */
.loc-card .loc-rating { margin-top: var(--s-2); }

/* view-toggle: "СПИСОК / ГРУППА" на десктопе */
.view-toggle {
  display: inline-flex; align-items: center; gap: 2px;
  padding: 3px;
  background: var(--card-bg);
  border: 1px solid var(--border-dim);
  border-radius: var(--radius);
  margin-left: auto;
}
.view-toggle-btn {
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  letter-spacing: var(--ls-tight);
  padding: 5px 10px;
  border: none; background: transparent;
  color: var(--border-dim);
  cursor: pointer;
  transition: all .15s;
  -webkit-tap-highlight-color: transparent;
}
.view-toggle-btn.active           { background: rgba(0,255,65,.1); color: var(--green); }
.view-toggle-btn:not(.active):hover { color: var(--text-dim); }
@media (max-width: 640px) {
  .view-toggle { display: none; }                  /* на мобиле только группа */
}

/* hover-подсветка locationId в группированном виде */
.loc-card[data-loc-id]:hover,
table.reg tbody tr[data-loc-id]:hover td {
  background: rgba(0,255,65,.05) !important;
}

/* "Показать ещё 50" — отдельный стиль (общий .show-all-btn уже есть) */
.load-more-btn {
  display: block; width: 100%;
  margin: var(--s-3) 0 var(--s-5);
  padding: var(--s-3);
  background: rgba(0,255,65,.04);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--green);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: var(--ls);
  cursor: pointer;
  transition: all .2s;
  -webkit-tap-highlight-color: transparent;
}
.load-more-btn:hover { background: rgba(0,255,65,.1); }
.load-more-btn .lm-rem { color: var(--yellow); }

/* scroll-top — раньше был inline в HTML, теперь через переменные темы */
#scroll-top {
  position: fixed;
  bottom: var(--s-5); right: var(--s-4);
  z-index: 500;
  width: 44px; height: 44px;
  border: 1px solid var(--green);
  border-radius: var(--radius);
  background: rgba(0,255,65,.12);
  color: var(--green);
  font-family: 'Share Tech Mono', monospace;
  font-size: 20px; line-height: 1;
  cursor: pointer;
  display: none; align-items: center; justify-content: center;
  transition: all .2s;
  -webkit-tap-highlight-color: transparent;
}
#scroll-top.visible { display: flex; }
#scroll-top:hover   { background: rgba(0,255,65,.25); }

/* стандартный класс для no-gun ячеек на мобиле */
.st-no-gun {
  color: var(--border-faint);
  font-size: 10px;
}

/* фикс: 8px на статах был нечитаем — заменили на 11px минимум */
.stat-val.stat-val--compound {
  font-size: clamp(11px, 1.8vw, 14px);
}
.stat-val-unit {
  font-size: .6em;
  color: var(--text-dim);
  font-family: 'Share Tech Mono', monospace;
}

/* алиасы выравнивания (вместо inline style="text-align:right") */
table.reg th.right, table.reg td.right { text-align: right; }

/* семантический оверрайд для section-head-stations */
.section-head.section-head-stations {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3);
}
.section-head-stations .view-toggle { margin-left: auto; }

/* reset-btn — добавлен счётчик */
.reset-btn .reset-count {
  background: rgba(255,68,68,.25);
  padding: 0 4px;
  margin-left: 4px;
  border-radius: 2px;
}

/* ============================================================
   DESKTOP SCALING — увеличиваем шрифты и контролы на больших экранах
   (Пользователи жаловались, что на компе всё мелкое)
   ============================================================ */
@media (min-width: 1024px) {
  /* Навигация */
  .nav-link             { font-size: 12px; padding: 10px 16px; }
  .theme-seg-btn        { font-size: 12px; padding: 6px 12px; }

  /* Стат-карточки */
  .stat-card            { padding: 16px var(--s-3); }
  .stat-label           { font-size: 11px; letter-spacing: var(--ls); margin-bottom: var(--s-2); }
  .stat-val             { font-size: clamp(15px, 1.6vw, 22px); }
  .stat-val--compound   { font-size: clamp(13px, 1.4vw, 18px); }

  /* Фильтры */
  .filter-label         { font-size: 12px; min-width: 110px; }
  .month-btn,
  .op-filter-btn,
  .city-btn,
  .reset-btn            { font-size: 10px; padding: 7px 11px; }

  /* Поиск */
  .search-input         { font-size: 13px; padding: 12px 0; }
  .search-input::placeholder { font-size: 12px; }

  /* Заголовки таблиц */
  .section-head         { font-size: 13px; padding-bottom: var(--s-3); }
  .view-toggle-btn      { font-size: 11px; padding: 7px 13px; }

  /* Таблица */
  table.reg             { font-size: 14px; }
  table.reg th          { font-size: 11px; padding: var(--s-3) var(--s-2); }
  table.reg td          { padding: var(--s-3) var(--s-2); }
  table.reg td.city     { font-size: 14px; }
  table.reg td.power    { font-size: 12px; }
  table.reg td.date     { font-size: 12px; }
  table.reg td.addr .loc-name    { font-size: 13px; }
  table.reg td.addr .loc-address { font-size: 12px; }

  /* Бейджи */
  .badge-dc, .badge-ac, .badge-acdc,
  .op-badge             { font-size: 10px; padding: 4px 8px; }
  .gun-pill             { font-size: 11px; padding: 3px 9px; }
  .new-badge            { font-size: 10px; padding: 3px 7px; }

  /* Рейтинг */
  .loc-rating           { font-size: 10px; padding: 5px 10px; }

  /* Большие плашки */
  .header-intro         { font-size: clamp(15px, 1.4vw, 18px); }
  .footer-disclaimer    { font-size: 13px; }
}

/* ============================================================
   READABILITY — для пользователей, кому glow/scanlines мешают
   (включается классом .reduced-fx на body — можно повесить через Tweaks)
   ============================================================ */
body.reduced-fx::before                  { display: none; }
body.reduced-fx                          { animation: none; }
body.reduced-fx .hero-title              { text-shadow: 0 0 6px var(--green); }
body.reduced-fx .total-count             { text-shadow: 0 0 6px var(--green); }
body.reduced-fx .total-pct-value         { text-shadow: none; }
body.reduced-fx .countdown-num           { text-shadow: 0 0 4px var(--yellow); }
body.reduced-fx .header-year             { text-shadow: 0 0 4px var(--yellow); }
body.reduced-fx .start-point             { text-shadow: 0 0 6px var(--cyan); }
body.reduced-fx .stat-val                { text-shadow: 0 0 4px var(--yellow); }
body.reduced-fx .op-score                { text-shadow: 0 0 4px var(--green); }
body.reduced-fx .big-phrase              { text-shadow: 0 0 6px var(--yellow); }

/* ============================================================
   READABILITY TOGGLE — кнопка-переключатель «АРКАДА / ЧЁТКО»
   Показывается только на десктопе (с эффектами на мобиле особо
   не проблема, там экран маленький).
   ============================================================ */
.fx-toggle {
  display: none;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: transparent;
  border: 1px solid rgba(255,215,0,.3);
  border-radius: var(--radius);
  cursor: pointer;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.fx-seg {
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  letter-spacing: var(--ls-tight);
  padding: 5px 9px;
  color: rgba(255,215,0,.4);
  transition: all .15s;
  white-space: nowrap;
}
.fx-seg.active { background: rgba(255,215,0,.12); color: var(--yellow); text-shadow: 0 0 6px var(--yellow); }
.fx-toggle:hover .fx-seg:not(.active) { color: rgba(255,215,0,.7); }
/* Видим на всех размерах — на мобиле слегка ужимаем */
.fx-toggle { display: inline-flex; }
@media (max-width: 599px) {
  .fx-seg { font-size: 8px; padding: 4px 6px; letter-spacing: 0; }
}
html[data-theme="tesla-light"] .fx-toggle,
html[data-theme="tesla-dark"]  .fx-toggle { display: none !important; }

/* ============================================================
   ОПЕРАТОРЫ — V2 (DC/AC split, debut state)
   Используется на index.html — главная страница
   ============================================================ */

.op-card.v2 {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: 16px var(--s-4) 14px;
}
.op-card.v2 .op-head {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding-right: 40px; /* место под медаль .op-rank */
}
.op-card.v2 .op-logo {
  width: 64px; height: 30px;
  object-fit: contain;
  flex-shrink: 0;
}
.op-card.v2 .op-name {
  font-size: 13px;
  color: var(--text);
  letter-spacing: var(--ls-tight);
  flex: 1;
  min-width: 0;
}

/* Total — крупная аркадная цифра */
.op-total {
  text-align: center;
  padding: var(--s-2) 0 var(--s-1);
}
.op-total-num {
  font-family: 'Press Start 2P', monospace;
  font-size: clamp(34px, 9vw, 52px);
  color: var(--green);
  text-shadow: 0 0 16px var(--green), 0 0 32px rgba(0,255,65,.35);
  line-height: 1;
  letter-spacing: var(--ls-tight);
  display: block;
}
.op-total-x {
  font-family: 'Press Start 2P', monospace;
  font-size: 0.4em;
  color: var(--text-dim);
  text-shadow: none;
  letter-spacing: var(--ls-tight);
  vertical-align: 0.7em;
  opacity: 0.55;
  margin-left: 2px;
}
.op-total-label {
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  color: var(--text-dim);
  letter-spacing: var(--ls-wide);
  margin-top: 10px;
  display: block;
}

/* Stacked-бар: DC + AC */
.op-bar-v2 {
  background: #001a00;
  border: 1px solid var(--border-dim);
  border-radius: var(--radius);
  height: 8px;
  display: flex;
  overflow: hidden;
}
.op-bar-v2 .seg-dc,
.op-bar-v2 .seg-ac {
  height: 100%;
  transition: width 1.5s ease;
}
.op-bar-v2 .seg-dc {
  /* цвет задаётся inline через background = op.color */
  filter: drop-shadow(0 0 4px currentColor);
}
.op-bar-v2 .seg-ac {
  /* тот же цвет inline + полупрозрачно */
  opacity: 0.4;
}

/* Чипсы DC X · AC Y под баром */
.op-split {
  display: flex;
  gap: var(--s-2);
  justify-content: center;
  flex-wrap: wrap;
}
.op-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius);
  font-family: 'Share Tech Mono', monospace;
  font-size: 11px;
  letter-spacing: var(--ls-tight);
  white-space: nowrap;
}
.op-chip.chip-dc {
  background: rgba(255,215,0,.08);
  color: var(--dc);
  border: 1px solid rgba(255,215,0,.3);
}
.op-chip.chip-ac {
  background: rgba(0,207,255,.08);
  color: var(--ac);
  border: 1px solid rgba(0,207,255,.3);
}
.op-chip b {
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
}

/* Debut state — для операторов с total=0 */
.op-card.v2.debut {
  border-style: dashed;
  border-color: var(--border-dim);
}
.op-card.v2.debut .op-logo,
.op-card.v2.debut .op-name {
  filter: grayscale(1) brightness(.75);
  opacity: .75;
}
.op-card.v2.debut .op-meta { opacity: .6; }
.op-debut {
  text-align: center;
  font-family: 'Press Start 2P', monospace;
  font-size: clamp(11px, 2.4vw, 14px);
  color: var(--cyan);
  letter-spacing: var(--ls-wide);
  line-height: 1.9;
  padding: 22px 6px;
  text-shadow: 0 0 8px rgba(0,255,255,.4);
  opacity: .85;
}
.op-debut .zzz {
  display: block;
  font-size: 18px;
  margin-bottom: 6px;
  opacity: .8;
  animation: blink calc(2.5s / var(--anim-blink)) infinite;
}
:root[data-anim-blink="0"] .op-debut .zzz { animation: none; }
.op-chip.dim {
  opacity: .45;
  filter: grayscale(.6);
}

/* Подиум-лейаут: на десктопе/планшете топ-3 на всю ширину, 4-5 половинками */
@media (min-width: 720px) {
  .operators-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--s-3);
  }
  /* первые три карточки (топ-3 в текущей сортировке) — на всю ширину */
  .operators-grid .op-card:nth-child(-n+3) {
    grid-column: 1 / -1;
  }
}
@media (min-width: 1100px) {
  .op-total-num { font-size: clamp(40px, 4.5vw, 60px); }
}

/* ============================================================
   STREAK-БЭЙДЖИ (tour.html — таблица очков)
   ============================================================ */
.streak-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 10px;
  letter-spacing: var(--ls-tight);
  padding: 2px 7px;
  border-radius: var(--radius);
  margin-left: var(--s-2);
  white-space: nowrap;
  vertical-align: middle;
}
.streak-badge.hot {
  color: #ffaa55;
  background: rgba(245,130,31,.08);
  border: 1px solid rgba(245,130,31,.35);
  text-shadow: 0 0 6px rgba(245,130,31,.5);
}
.streak-badge.cold {
  color: #66ddff;
  background: rgba(0,207,255,.06);
  border: 1px solid rgba(0,207,255,.3);
}
.streak-badge.sleep {
  color: var(--cyan);
  background: rgba(0,255,255,.05);
  border: 1px dashed rgba(0,255,255,.35);
}
.streak-badge .n {
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
}
@media (max-width: 480px) {
  .streak-badge {
    font-size: 9px;
    padding: 2px 5px;
    margin-left: 5px;
  }
  .streak-badge .n { font-size: 8px; }
}

/* ============================================================
   ТЕКУЩИЙ КРУГ — мини-таймер до конца + DC/AC сплит в таблице
   ============================================================ */
.cur-round-timer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 11px;
  color: var(--text-dim);
  letter-spacing: var(--ls-tight);
  margin-top: 4px;
}
.cur-round-timer .tmr-val {
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  color: var(--yellow);
  text-shadow: 0 0 6px var(--yellow);
}
.cur-round-timer .tmr-lbl { color: var(--border-dim); font-size: 9px; }

/* DC/AC сплит под цифрой станций в текущем круге */
.cr-split {
  display: inline-flex;
  gap: 4px;
  margin-left: 6px;
  vertical-align: middle;
  white-space: nowrap;
}
.cr-split .cr-pill {
  font-family: 'Press Start 2P', monospace;
  font-size: 8px;
  padding: 1px 4px;
  border-radius: var(--radius);
  letter-spacing: 0;
}
.cr-split .cr-pill.dc {
  color: var(--dc);
  background: rgba(255,215,0,.08);
  border: 1px solid rgba(255,215,0,.3);
}
.cr-split .cr-pill.ac {
  color: var(--ac);
  background: rgba(0,207,255,.08);
  border: 1px solid rgba(0,207,255,.3);
}
@media (max-width: 480px) {
  .cr-split { display: flex; margin-left: 0; margin-top: 3px; }
}

/* ============================================================
   STANDINGS — подсветка ОЧКИ + цветная колонка метрики
   ============================================================ */
.standings th.th-pts        { color: var(--yellow) !important; }
.standings td.td-pts        { background: rgba(255,215,0,.05); }
.standings td.td-pts .pts   { color: var(--yellow); text-shadow: 0 0 6px rgba(255,215,0,.5); }

.standings th.th-metric.stations { color: var(--green) !important; }
.standings td.td-metric.stations { color: var(--green); font-family: 'Press Start 2P', monospace; font-size: 11px; }

.standings th.th-metric.power    { color: var(--dc) !important; }
.standings td.td-metric.power    { color: var(--dc); font-family: 'Press Start 2P', monospace; font-size: 10px; }
.standings td.td-metric .unit    { font-family: 'Share Tech Mono', monospace; font-size: 9px; color: var(--text-dim); margin-left: 2px; }

/* ============================================================
   ПОДЗАГОЛОВОК В SECTION-HEAD (для рейтингов)
   ============================================================ */
.section-head .section-sub {
  color: var(--border-dim);
  letter-spacing: var(--ls-tight);
  font-size: 10px;
  margin-left: 6px;
  text-transform: none;
}
@media (max-width: 480px) {
  .section-head .section-sub { display: block; margin-left: 0; margin-top: 3px; font-size: 9px; }
}

/* ============================================================
   ЛЕГЕНДА ПОБЕДИТЕЛЕЙ КРУГОВ + улучшения сетки
   ============================================================ */
.rounds-legend {
  display: flex; align-items: center; gap: var(--s-2);
  flex-wrap: wrap;
  font-size: 10px; color: var(--text-dim);
  letter-spacing: var(--ls-tight);
  margin: -8px 0 var(--s-3);
}
.rounds-legend .lg-item b {
  color: var(--yellow); font-size: 12px; margin-right: 4px; font-weight: normal;
}
.rounds-legend .lg-item:nth-child(3) b { color: var(--cyan); }
.rounds-legend .lg-sep { color: var(--border-dim); }

/* Live-индикатор в активном круге сетки */
.round-cell .r-live {
  font-size: 9px; line-height: 1.5;
}
.round-cell .r-idet {
  font-family: 'Press Start 2P', monospace;
  font-size: 7px;
  color: var(--green);
  text-shadow: 0 0 6px var(--green);
  letter-spacing: var(--ls-tight);
  animation: blink calc(2s / var(--anim-blink)) infinite;
  margin-top: 2px;
}
:root[data-anim-blink="0"] .round-cell .r-idet { animation: none; }
.round-cell .r-empty {
  color: var(--border-dim); font-size: 9px; opacity: .7;
}

/* ============================================================
   READABILITY — дополнения для новых элементов V2
   ============================================================ */
body.reduced-fx .op-total-num   { text-shadow: 0 0 6px var(--green); }
body.reduced-fx .op-debut       { text-shadow: none; }
body.reduced-fx .op-bar-v2 .seg-dc { box-shadow: none; }
body.reduced-fx .streak-badge.hot  { text-shadow: none; }
body.reduced-fx .cur-round-timer .tmr-val { text-shadow: 0 0 3px var(--yellow); }
body.reduced-fx .op-debut .zzz  { animation: none; }

/* ============================================================
   LOCATION PAGE — Infrastructure Platform (Stage 2.2)
   ============================================================ */
.location-page .page-wrap { padding-bottom: var(--s-4); }
.loc-breadcrumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-size: 10px; color: var(--text-dim); margin-bottom: var(--s-3);
}
.loc-breadcrumbs a { color: var(--green); text-decoration: none; }
.loc-breadcrumbs a:hover { text-decoration: underline; }
.location-card {
  background: var(--card-bg); border: 1px solid var(--border-faint);
  border-radius: var(--radius); padding: var(--s-3); margin-bottom: var(--s-3);
}
.loc-identity { display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
@media (min-width: 720px) {
  .loc-identity { grid-template-columns: 1fr 280px; align-items: start; }
}
.loc-identity-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); margin-bottom: var(--s-2); }
.loc-identity-title {
  font-family: 'Press Start 2P', monospace; font-size: 11px; line-height: 1.6;
  color: var(--green); margin: 0 0 var(--s-2);
}
.loc-identity-addr { font-size: 12px; color: var(--text-dim); margin: 0 0 var(--s-2); }
.loc-agg-line { font-size: 10px; color: var(--cyan); margin-bottom: var(--s-2); }
.loc-single-tech { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; color: var(--text-dim); margin-bottom: var(--s-2); }
.loc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--s-2); }
.loc-btn {
  font-family: 'Press Start 2P', monospace; font-size: 8px;
  padding: 8px 12px; border: 1px solid var(--border-dim);
  background: transparent; color: var(--green); text-decoration: none;
  cursor: pointer; border-radius: var(--radius);
}
.loc-btn-primary { border-color: var(--green); background: rgba(0,255,65,.08); }
.loc-btn:hover { background: rgba(0,255,65,.12); }
.loc-map-embed { width: 100%; height: 220px; border: 1px solid var(--border-faint); border-radius: var(--radius); }
.location-rating-big { font-family: 'Press Start 2P', monospace; font-size: 14px; color: var(--yellow); }
.location-rating-count { font-size: 10px; color: var(--text-dim); margin-left: 8px; }
.loc-section-title {
  font-family: 'Press Start 2P', monospace; font-size: 9px;
  color: var(--green); margin: 0 0 var(--s-3);
}
.stations-summary {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-2); margin-bottom: var(--s-3);
}
@media (min-width: 520px) { .stations-summary { grid-template-columns: repeat(5, 1fr); } }
.stations-summary-cell {
  text-align: center; padding: var(--s-2); border: 1px solid var(--border-faint); border-radius: var(--radius);
}
.stations-summary-cell .ss-val { display: block; font-family: 'Press Start 2P', monospace; font-size: 10px; color: var(--dc); }
.stations-summary-cell .ss-lbl { display: block; font-size: 9px; color: var(--text-dim); margin-top: 4px; }
.loc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.loc-stations-table { min-width: 520px; }
.loc-st-agg { display: block; font-size: 9px; color: var(--cyan); margin-top: 2px; }
.loc-nearby-list { display: flex; flex-direction: column; gap: var(--s-2); }
.loc-nearby-item {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: var(--s-2); border: 1px solid var(--border-faint); border-radius: var(--radius);
  text-decoration: none; color: inherit; transition: border-color .15s;
}
.loc-nearby-item:hover { border-color: var(--green); }
.loc-nearby-title { flex: 1; min-width: 0; font-size: 11px; color: var(--text-dim); }
.loc-nearby-dist { font-size: 10px; color: var(--cyan); white-space: nowrap; }
.loc-nearby-empty, .loc-soon-text { font-size: 11px; color: var(--text-dim); margin: 0; }
.loc-community-soon { opacity: .85; }
