/* Кастомный шрифт для ЛК игрока */
@font-face {
  font-family: 'Foglihten';
  src: url('/assets/fonts/FoglihtenNo06.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ===== Общий layout кабинета (ЛК и админка) ===== */
:root {
  --bg: #0a0a0a;
  --surface: #0d0d0d;
  --surface2: #141414;
  --silver: #c0c0c0;
  --silver-bright: #e8e8e8;
  --silver-dim: #6a6a6a;
  --text-mute: #888;
  --border: rgba(192,192,192,0.12);
  --border-strong: rgba(192,192,192,0.22);
  --accent: #f0f0f0;
  --danger: #e85858;
  --success: #5ed07a;
  --warn: #ffb84d;
  --sidebar-w: 260px;
}

* { margin:0; padding:0; box-sizing:border-box }
html, body { height:100% }
body.cab-body {
  background: var(--bg);
  color: var(--accent);
  font-family:'Inter',sans-serif;
  line-height:1.6;
  overflow-x: hidden;
}
a { color: var(--silver); text-decoration:none }

/* ---- Layout ---- */
.cab-layout {
  display: grid;
  grid-template-columns: var(--sidebar-w) 1fr;
  min-height: 100vh;
}

/* ---- Sidebar ---- */
.cab-sidebar {
  background: #080808;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 24px 0;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
.cab-brand { padding: 0 24px 20px; border-bottom: 1px solid var(--border); }
.cab-logo {
  display: inline-block;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 4px;
  color: var(--accent);
  line-height: 1.1;
  text-decoration: none;
}
.cab-logo span { color: var(--silver-dim); }

.cab-profile {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}
.cab-profile-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(192,192,192,0.25), rgba(192,192,192,0.1));
  border: 1px solid var(--border-strong);
  color: var(--silver-bright);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.cab-profile-info { min-width: 0; flex: 1; }
.cab-profile-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cab-profile-email {
  font-size: 11px;
  color: var(--text-mute);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cab-profile-role {
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--warn);
  font-weight: 700;
  margin-top: 2px;
}

.cab-nav {
  padding: 12px 12px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cab-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  background: transparent;
  border: none;
  border-radius: 6px;
  color: var(--text-mute);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  text-align: left;
  width: 100%;
  position: relative;
}
.cab-nav-item:hover {
  background: rgba(192,192,192,0.04);
  color: var(--silver);
}
.cab-nav-item.is-active {
  background: rgba(192,192,192,0.08);
  color: var(--accent);
}
.cab-nav-item.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 2px;
  background: var(--silver);
  border-radius: 2px;
}
.cab-nav-icon {
  font-size: 14px;
  width: 18px;
  text-align: center;
  opacity: 0.7;
}
.cab-nav-item.is-active .cab-nav-icon { opacity: 1; color: var(--silver); }
.cab-nav-label { flex: 1; }
.cab-nav-badge {
  font-size: 10px;
  color: var(--text-mute);
  background: rgba(192,192,192,0.08);
  padding: 2px 7px;
  border-radius: 999px;
  min-width: 20px;
  text-align: center;
  font-weight: 600;
}
.cab-nav-badge:empty, .cab-nav-badge[data-count="0"] { display: none; }
.cab-nav-badge.live {
    background: rgba(255, 59, 59, 0.18);
    color: #ff5b5b;
    border: 1px solid rgba(255, 59, 59, 0.45);
    font-weight: 700;
    animation: cab-nav-live-pulse 1.8s infinite;
}
@keyframes cab-nav-live-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 59, 59, 0.4); }
    50%      { box-shadow: 0 0 0 4px rgba(255, 59, 59, 0); }
}

.cab-sidebar-footer {
  padding: 16px 20px 8px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cab-foot-link {
  padding: 8px 0;
  font-size: 12px;
  color: var(--silver-dim);
  letter-spacing: 0.5px;
  text-decoration: none;
  transition: color 0.15s;
}
.cab-foot-link:hover { color: var(--silver); }
.cab-foot-btn {
  padding: 10px 14px;
  background: transparent;
  border: 1px solid rgba(232,88,88,0.25);
  border-radius: 6px;
  color: var(--danger);
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.cab-foot-btn:hover {
  background: rgba(232,88,88,0.08);
  border-color: var(--danger);
}

/* ---- Main content ---- */
.cab-main {
  padding: 40px 48px 60px;
  overflow-x: hidden;
}
.cab-tab-head { margin-bottom: 28px; }
.cab-tab-head h1 {
  font-size: 28px;
  font-weight: 700;
  color: var(--accent);
  margin: 0 0 4px;
  letter-spacing: -0.3px;
}
.cab-tab-sub {
  font-size: 13px;
  color: var(--text-mute);
  margin: 0;
}
.cab-tab { display: none; }
.cab-tab.is-active { display: block; }

/* ---- Cards (tournaments) ---- */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
}
.t-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color 0.2s;
}
.t-card:hover { border-color: var(--border-strong); }
.t-card.signed {
  background: linear-gradient(180deg, var(--surface2), var(--surface));
  border-color: rgba(192,192,192,0.28);
}
.t-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.t-date-day {
  font-size: 10px;
  color: var(--silver-dim);
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 600;
}
.t-date-full {
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  margin-top: 3px;
}
.t-price {
  font-size: 22px;
  font-weight: 700;
  color: var(--silver);
  line-height: 1;
  white-space: nowrap;
}
.t-price.free {
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--success);
}
.t-format {
  font-size: 17px;
  font-weight: 600;
  color: var(--silver-bright);
  line-height: 1.3;
}
.t-desc {
  font-size: 13px;
  color: var(--text-mute);
  line-height: 1.55;
  flex: 1;
}
.t-seats {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.t-seats-count {
  font-size: 12px;
  color: var(--silver-dim);
  font-variant-numeric: tabular-nums;
  min-width: 50px;
}
.t-seats-bar {
  flex: 1;
  height: 3px;
  background: rgba(192,192,192,0.08);
  border-radius: 999px;
  overflow: hidden;
}
.t-seats-fill {
  height: 100%;
  background: var(--silver);
  transition: width 0.3s;
}
.t-seats-fill.hot { background: var(--warn); }
.t-seats-fill.full { background: var(--danger); }
.t-actions { display: flex; gap: 8px; }
.btn {
  padding: 11px 16px;
  border-radius: 6px;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.2s;
  flex: 1;
  text-align: center;
}
.btn-signup {
  background: var(--silver);
  color: #000;
  border-color: var(--silver);
}
.btn-signup:hover:not(:disabled) { background: #fff; }
.btn-cancel {
  background: transparent;
  color: var(--danger);
  border-color: rgba(232,88,88,0.3);
}
.btn-cancel:hover { background: rgba(232,88,88,0.06); border-color: var(--danger); }
.btn-full {
  background: transparent;
  color: var(--text-mute);
  border-color: var(--border);
  cursor: not-allowed;
}

/* ---- Empty states ---- */
.cab-empty {
  text-align: center;
  padding: 60px 20px;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: 8px;
  color: var(--text-mute);
}
.cab-empty h3 { font-size: 17px; color: var(--silver); margin-bottom: 8px; font-weight: 600; }
.cab-empty p { font-size: 13px; }

/* ---- Profile block ---- */
.profile-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 28px;
  max-width: 520px;
}
.profile-field {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  gap: 20px;
}
.profile-field:last-child { border-bottom: none; }
.profile-field-label {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-mute);
  font-weight: 600;
}
.profile-field-value {
  color: var(--accent);
  font-weight: 500;
  text-align: right;
}

/* ---- Gate (неавторизованный) — по дефолту всегда скрыт, показываем только классом ---- */
[hidden] { display: none !important; }
.cab-gate { display: none !important; }
.cab-gate.cab-gate-open {
  display: block !important;
  text-align: center;
  padding: 140px 20px 80px;
  max-width: 520px;
  margin: 0 auto;
}
.cab-gate h2 { font-size: 34px; margin-bottom: 14px; color: var(--accent); font-weight: 700; }
.cab-gate p { color: var(--text-mute); margin-bottom: 32px; line-height: 1.7; }
.cab-gate-btn {
  padding: 14px 32px;
  background: var(--silver);
  color: #000;
  border: none;
  border-radius: 6px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s;
}
.cab-gate-btn:hover { background: #fff; }

/* ---- Loading & toast ---- */
.cab-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--silver-dim);
  font-size: 14px;
  letter-spacing: 1px;
}

/* ===== Достижения: плитки в Статистике ===== */
.ach-section { margin-bottom: 26px; }
.ach-section-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin: 0 0 12px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(192, 192, 192, 0.1);
}
.ach-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
@media (max-width: 540px) {
  .ach-grid { grid-template-columns: 1fr; }
}
.ach-card {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(192, 192, 192, 0.14);
  border-radius: 14px;
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
}
.ach-card.is-bronze { border-color: rgba(205, 127, 50, 0.5); background: rgba(205, 127, 50, 0.04); }
.ach-card.is-silver { border-color: rgba(192, 192, 192, 0.55); background: rgba(220, 220, 230, 0.05); }
.ach-card.is-gold   { border-color: rgba(255, 215, 0, 0.55); background: rgba(255, 215, 0, 0.05); box-shadow: 0 0 18px rgba(255, 215, 0, 0.08); }
.ach-card.is-unlocked { border-color: rgba(255, 215, 0, 0.5); background: rgba(255, 215, 0, 0.04); }
.ach-card.is-none   { opacity: 0.85; }
.ach-card.is-secret-locked {
  border-color: rgba(140, 140, 160, 0.25);
  background: rgba(20, 20, 28, 0.4);
  opacity: 0.75;
}
.ach-card.is-secret-locked .ach-icon { color: rgba(180, 180, 200, 0.45); }
.ach-card.is-secret-locked .ach-name { color: rgba(220, 220, 230, 0.55); letter-spacing: 2px; }
.ach-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.ach-icon {
  font-size: 30px;
  line-height: 1;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4));
}
.ach-card.is-bronze .ach-icon { color: #cd7f32; }
.ach-card.is-silver .ach-icon { color: #d8d8d8; }
.ach-card.is-gold   .ach-icon { color: #ffd700; }
.ach-card.is-none   .ach-icon { color: rgba(192, 192, 192, 0.5); }
.ach-badge {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  flex-shrink: 0;
}
.ach-badge-bronze   { background: rgba(205, 127, 50, 0.18); color: #e0a070; }
.ach-badge-silver   { background: rgba(220, 220, 230, 0.16); color: #e8e8ee; }
.ach-badge-gold     { background: rgba(255, 215, 0, 0.18); color: #ffe066; }
.ach-badge-unlocked { background: rgba(255, 215, 0, 0.18); color: #ffe066; }
.ach-badge-secret   { background: rgba(140, 140, 160, 0.16); color: rgba(220, 220, 230, 0.7); }
.ach-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--silver-bright);
  margin-bottom: 10px;
}
.ach-progress-wrap { margin-top: 6px; }
.ach-progress {
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 6px;
}
.ach-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(205, 127, 50, 0.8), rgba(255, 215, 0, 0.9));
  border-radius: 2px;
  transition: width 0.5s ease-out;
}
.ach-progress-sub {
  font-size: 11px;
  color: var(--silver-dim);
  font-variant-numeric: tabular-nums;
}
.ach-single-sub {
  font-size: 12px;
  color: var(--silver-dim);
  margin-top: 4px;
  line-height: 1.4;
}
.ach-card.is-unlocked .ach-single-sub { color: #ffe066; }
.ach-lucky-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 4px;
}
.ach-lucky-cell {
  text-align: center;
  padding: 8px 4px;
  border: 1px dashed rgba(192, 192, 192, 0.2);
  border-radius: 8px;
  opacity: 0.4;
  transition: all 0.3s;
}
.ach-lucky-cell.is-on {
  opacity: 1;
  border-style: solid;
  border-color: rgba(255, 215, 0, 0.5);
  background: rgba(255, 215, 0, 0.06);
}
.ach-lucky-icon {
  font-size: 22px;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.5);
}
.ach-lucky-cell.is-on .ach-lucky-icon { color: #ffd700; }
.ach-lucky-lab {
  font-size: 10px;
  color: var(--silver-dim);
  letter-spacing: 0.5px;
}

/* ===== Попап «Новое достижение» ===== */
.ach-popup-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  transition: opacity 0.3s;
}
.ach-popup-backdrop.is-open { display: flex; opacity: 1; }
.ach-popup {
  background: linear-gradient(180deg, #1a1a1f 0%, #0c0c10 100%);
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  border-radius: 18px;
  padding: 32px 28px 24px;
  width: 100%;
  max-width: 380px;
  text-align: center;
  position: relative;
  animation: achPopIn 0.5s cubic-bezier(0.22, 1.6, 0.36, 1) both;
}
@keyframes achPopIn {
  0% { opacity: 0; transform: scale(0.7); }
  100% { opacity: 1; transform: scale(1); }
}
.ach-popup.is-bronze   { border-color: rgba(205, 127, 50, 0.7); box-shadow: 0 0 60px rgba(205, 127, 50, 0.35); }
.ach-popup.is-silver   { border-color: rgba(220, 220, 230, 0.7); box-shadow: 0 0 60px rgba(220, 220, 230, 0.3); }
.ach-popup.is-gold     { border-color: rgba(255, 215, 0, 0.8); box-shadow: 0 0 80px rgba(255, 215, 0, 0.45); }
.ach-popup.is-unlocked { border-color: rgba(255, 215, 0, 0.7); box-shadow: 0 0 60px rgba(255, 215, 0, 0.35); }
.ach-popup.is-secret {
  border-color: rgba(190, 130, 255, 0.7);
  box-shadow: 0 0 80px rgba(190, 130, 255, 0.45);
}
.ach-popup.is-secret .ach-popup-eyebrow { color: #d4a5ff; letter-spacing: 5px; }
.ach-popup.is-secret .ach-popup-icon { filter: drop-shadow(0 0 18px rgba(190, 130, 255, 0.7)); }

.ach-popup-eyebrow {
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
  margin-bottom: 18px;
}
.ach-popup-icon {
  font-size: 84px;
  line-height: 1;
  margin-bottom: 16px;
  animation: achIconShake 0.6s ease-out 0.3s both;
}
@keyframes achIconShake {
  0% { transform: rotate(0); }
  20% { transform: rotate(-8deg); }
  40% { transform: rotate(6deg); }
  60% { transform: rotate(-4deg); }
  80% { transform: rotate(2deg); }
  100% { transform: rotate(0); }
}
.ach-popup.is-bronze   .ach-popup-icon { color: #cd7f32; filter: drop-shadow(0 0 14px rgba(205, 127, 50, 0.6)); }
.ach-popup.is-silver   .ach-popup-icon { color: #e8e8ee; filter: drop-shadow(0 0 14px rgba(220, 220, 230, 0.6)); }
.ach-popup.is-gold     .ach-popup-icon { color: #ffd700; filter: drop-shadow(0 0 18px rgba(255, 215, 0, 0.7)); }
.ach-popup.is-unlocked .ach-popup-icon { color: #ffd700; filter: drop-shadow(0 0 18px rgba(255, 215, 0, 0.7)); }

.ach-popup-name {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}
.ach-popup-level {
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 4px;
}
.ach-popup.is-bronze   .ach-popup-level { color: #e0a070; }
.ach-popup.is-silver   .ach-popup-level { color: #e8e8ee; }
.ach-popup.is-gold     .ach-popup-level { color: #ffe066; }
.ach-popup.is-unlocked .ach-popup-level { color: #ffe066; }
.ach-popup.is-secret   .ach-popup-level { color: #d4a5ff; }
.ach-popup-value {
  font-size: 13px;
  color: var(--silver-dim);
  margin-bottom: 24px;
}
.ach-popup-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1px;
  padding: 12px 32px;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.ach-popup-btn:hover { background: rgba(255, 255, 255, 0.14); border-color: rgba(255, 255, 255, 0.4); }

/* ===== Экран выбора роли (играющие дилеры) ===== */
.cab-rolepick {
  position: fixed;
  inset: 0;
  background: radial-gradient(ellipse at center, #0a0a14 0%, #000 70%);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  overflow: auto;
}
.cab-rolepick[hidden] { display: none; }
.cab-rolepick-inner {
  max-width: 720px;
  width: 100%;
  text-align: center;
  animation: rolepickEnter 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes rolepickEnter {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.cab-rolepick-brand {
  font-family: 'Foglihten', serif;
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #e8e8e8 40%, #999 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin-bottom: 36px;
}
.cab-rolepick-brand span { display: block; }
.cab-rolepick-brand span:first-child { font-size: clamp(28px, 5vw, 44px); }
.cab-rolepick-brand span:last-child { font-size: clamp(22px, 4vw, 36px); letter-spacing: 14px; margin-top: 2px; }

.cab-rolepick-title {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 600;
  color: #f5f5f5;
  margin-bottom: 8px;
  letter-spacing: 0.5px;
}
.cab-rolepick-sub {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  margin-bottom: 36px;
  letter-spacing: 0.5px;
}
.cab-rolepick-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  max-width: 560px;
  margin: 0 auto;
}
@media (max-width: 540px) {
  .cab-rolepick-grid { grid-template-columns: 1fr; }
}
.cab-rolepick-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(192,192,192,0.18);
  border-radius: 14px;
  padding: 28px 20px 24px;
  cursor: pointer;
  color: #fff;
  font-family: inherit;
  text-align: left;
  transition: transform 0.2s, border-color 0.2s, background 0.2s;
}
.cab-rolepick-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.06);
}
.cab-rolepick-icon {
  font-size: 32px;
  color: #c0c0c0;
  margin-bottom: 14px;
}
.cab-rolepick-card-title {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 6px;
  color: #fff;
}
.cab-rolepick-card-sub {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  line-height: 1.4;
  letter-spacing: 0.3px;
}

/* Кнопка «В дилерскую» в LK игрока — золотистый акцент */
.cab-foot-btn-role {
  background: rgba(255, 184, 77, 0.08);
  border: 1px solid rgba(255, 184, 77, 0.3);
  color: #ffb84d;
}
.cab-foot-btn-role:hover { background: rgba(255, 184, 77, 0.16); border-color: #ffb84d; }

/* Кнопка «К личному кабинету» в дилерской — серебристый акцент */
.cab-foot-btn-role-silver {
  background: rgba(220, 220, 230, 0.06);
  border: 1px solid rgba(220, 220, 230, 0.28);
  color: #e0e0e8;
}
.cab-foot-btn-role-silver:hover { background: rgba(220, 220, 230, 0.14); border-color: #e8e8ee; color: #fff; }

/* Пункт «В дилерскую» в bnav-sheet — золотистый акцент */
.sheet-item.sheet-item-role { color: #ffb84d; }
.sheet-item.sheet-item-role svg { stroke: #ffb84d; }

/* Hyperspace warp лоудер — только в LK игрока (body.lk-body). Admin/dealer остаются с простым fallback. */
body.lk-body .cab-loading {
  position: fixed;
  inset: 0;
  top: 0; left: 0;
  transform: none;
  width: 100vw;
  height: 100vh;
  background: #000;
  z-index: 9999;
  overflow: hidden;
  opacity: 1;
  transition: opacity 0.45s ease-out;
}
body.lk-body .cab-loading.is-fading { opacity: 0; }
body.lk-body .cab-loading canvas {
  position: absolute;
  inset: 0;
  display: block;
  background: radial-gradient(ellipse at center, rgba(20,30,60,0.4) 0%, #000 80%);
}
body.lk-body .cab-loading .loader-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  background: radial-gradient(ellipse 700px 500px at center, transparent 30%, rgba(0,0,0,0.55) 100%);
}
body.lk-body .cab-loading .loader-stage {
  position: relative;
  z-index: 5;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
body.lk-body .cab-loading .loader-logo-wrap {
  position: relative;
  text-align: center;
  animation: lkLoaderEnter 1.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes lkLoaderEnter {
  0% { opacity: 0; transform: scale(0.7); filter: blur(20px); }
  100% { opacity: 1; transform: scale(1); filter: blur(0); }
}
body.lk-body .cab-loading .loader-ring {
  position: absolute;
  inset: -40px -80px;
  border: 1px solid rgba(180,200,255,0.18);
  border-radius: 50%;
  pointer-events: none;
  animation: lkRingPulse 2.5s ease-out infinite;
}
body.lk-body .cab-loading .loader-ring.r2 { animation-delay: 0.6s; }
body.lk-body .cab-loading .loader-ring.r3 { animation-delay: 1.2s; }
@keyframes lkRingPulse {
  0% { transform: scale(0.7); opacity: 0; }
  20% { opacity: 0.9; }
  100% { transform: scale(1.6); opacity: 0; }
}
body.lk-body .cab-loading .loader-logo {
  position: relative;
  font-family: 'Foglihten', serif;
  font-weight: 400;
  line-height: 0.92;
  text-align: center;
  letter-spacing: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f0f0f0 30%, #b8b8b8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 60px rgba(180,200,255,0.4);
  user-select: none;
}
body.lk-body .cab-loading .loader-logo span { display: block; }
body.lk-body .cab-loading .loader-logo .lo-1 { font-size: clamp(48px, 9vw, 96px); }
body.lk-body .cab-loading .loader-logo .lo-2 { font-size: clamp(40px, 7.5vw, 80px); letter-spacing: 22px; margin-top: 4px; }

body.lk-body .cab-loading .loader-progress-wrap {
  margin-top: 56px;
  text-align: center;
  animation: lkLoaderFadeUp 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.6s both;
}
@keyframes lkLoaderFadeUp {
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: translateY(0); }
}
body.lk-body .cab-loading .loader-progress {
  position: relative;
  width: clamp(220px, 32vw, 380px);
  height: 2px;
  margin: 0 auto;
  background: rgba(180,200,255,0.1);
  overflow: hidden;
  border-radius: 1px;
}
body.lk-body .cab-loading .loader-progress::before {
  content: '';
  position: absolute;
  inset: 0;
  width: 35%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,255,1) 50%, transparent 100%);
  box-shadow: 0 0 12px rgba(200,220,255,0.6);
  animation: lkLoaderWarp 1.8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes lkLoaderWarp {
  0% { transform: translateX(-200%); }
  100% { transform: translateX(400%); }
}
body.lk-body .cab-loading .loader-label {
  margin-top: 24px;
  font-size: 10px;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: rgba(200,220,255,0.6);
  font-weight: 500;
}
body.lk-body .cab-loading .loader-label::before,
body.lk-body .cab-loading .loader-label::after { content: '·'; margin: 0 12px; opacity: 0.4; }
.cab-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  padding: 14px 28px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  color: var(--silver-bright);
  font-size: 14px;
  z-index: 10001;
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
  box-shadow: 0 12px 40px rgba(0,0,0,0.5);
}
.cab-toast.show { opacity: 1; }
.cab-toast.err { border-color: rgba(232,88,88,0.4); color: var(--danger); }

/* ---- Burger (mobile) ---- */
.cab-burger {
  display: none;
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 200;
  width: 40px;
  height: 40px;
  background: #111;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  padding: 10px;
  flex-direction: column;
  justify-content: space-between;
}
.cab-burger span {
  display: block;
  height: 2px;
  background: var(--silver);
  border-radius: 1px;
}

/* ---- Admin-specific sections ---- */
.adm-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 20px;
}
.adm-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  gap: 16px;
  flex-wrap: wrap;
}
.adm-section-head h2 {
  font-size: 18px;
  font-weight: 700;
  color: var(--accent);
  margin: 0;
}
.adm-section-head .sub {
  font-size: 12px;
  color: var(--text-mute);
  margin-top: 2px;
}

/* Templates grid */
.templates-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.tpl-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.18s;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}
.tpl-card:hover {
  background: var(--surface2);
  border-color: var(--border-strong);
  transform: translateY(-1px);
}
.tpl-actions {
  position: absolute;
  top: 6px;
  right: 6px;
  display: flex;
  gap: 4px;
  opacity: 0;
  transition: opacity 0.18s;
}
.tpl-card:hover .tpl-actions { opacity: 1; }
.tpl-act-btn {
  background: rgba(0,0,0,0.5);
  border: 1px solid var(--border);
  color: var(--silver);
  width: 24px;
  height: 24px;
  border-radius: 5px;
  font-size: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
}
.tpl-act-btn:hover { background: var(--surface2); border-color: var(--accent); }
.tpl-act-btn.tpl-act-del:hover { border-color: var(--danger); color: var(--danger); }
.tpl-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.tpl-flag {
  font-size: 9px;
  letter-spacing: 1px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  text-transform: uppercase;
}
.tpl-flag-pko  { background: rgba(255, 184, 77, 0.18); color: var(--warn); }
.tpl-flag-phx  { background: rgba(255, 138, 76, 0.18); color: #ff8a4c; }
.tpl-flag-k2   { background: rgba(190, 130, 255, 0.18); color: #d4a5ff; }
.tpl-flag-cash { background: rgba(232, 199, 138, 0.18); color: #e8c78a; }
.tpl-card-add {
  background: transparent;
  border: 1px dashed var(--border-strong);
  color: var(--silver-dim);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: inherit;
  padding: 16px;
  border-radius: 7px;
  transition: all 0.18s;
  min-height: 100%;
}
.tpl-card-add:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(255, 255, 255, 0.02);
}
.tpl-add-plus { font-size: 28px; line-height: 1; }
.tpl-add-label { font-size: 12px; letter-spacing: 1px; text-transform: uppercase; font-weight: 600; }

/* Модалка управления шаблоном */
.tplmod-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 10000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 24px;
  overflow-y: auto;
}
.tplmod-backdrop.is-open { display: flex; }
.tplmod {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  width: 100%;
  max-width: 640px;
  padding: 18px 20px 16px;
  margin: auto 0;
}
.tplmod-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.tplmod-head h3 { margin: 0; font-size: 18px; color: var(--accent); }
.tplmod-close {
  background: transparent;
  border: 0;
  color: var(--silver-dim);
  font-size: 24px;
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  line-height: 1;
}
.tplmod-close:hover { color: var(--silver); }
.tplmod-form {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 14px;
}
.tplmod-form label { display: flex; flex-direction: column; gap: 4px; font-size: 11px; color: var(--silver-dim); letter-spacing: 1px; text-transform: uppercase; font-weight: 600; }
.tplmod-form label.full { grid-column: 1 / -1; }
.tplmod-form label.wide { grid-column: span 2; }
.tplmod-form input, .tplmod-form select, .tplmod-form textarea {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--silver-bright);
  font-family: inherit;
  font-size: 13px;
  padding: 8px 10px;
  border-radius: 6px;
  text-transform: none;
  letter-spacing: 0;
}
.tplmod-form input:focus, .tplmod-form select:focus, .tplmod-form textarea:focus {
  outline: none;
  border-color: var(--accent);
}
.tplmod-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.tplmod-foot .btn-primary {
  background: var(--silver);
  color: #000;
  border: 1px solid var(--silver);
  padding: 9px 18px;
  border-radius: 7px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
}
.tplmod-foot .btn-primary:hover { background: var(--silver-bright); }
@media (max-width: 640px) {
  .tplmod-form { grid-template-columns: repeat(2, 1fr); }
  .tplmod-form label.wide { grid-column: 1 / -1; }
  .tpl-actions { opacity: 1; }
}
.tpl-day {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.tpl-format {
  font-size: 16px;
  color: var(--accent);
  font-weight: 600;
  line-height: 1.2;
}
.tpl-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 6px;
  border-top: 1px solid var(--border);
}
.tpl-time {
  font-size: 12px;
  color: var(--silver-dim);
  font-variant-numeric: tabular-nums;
}
.tpl-price {
  font-size: 14px;
  color: var(--silver);
  font-weight: 700;
}
.tpl-next {
  font-size: 10px;
  color: var(--silver-dim);
  letter-spacing: 0.2px;
}
.btn-week {
  padding: 10px 18px;
  background: transparent;
  border: 1px solid var(--silver);
  color: var(--silver);
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.btn-week:hover { background: var(--silver); color: #000; }

/* Create form */
.create-form {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  align-items: end;
}
.create-form label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.create-form label.wide { grid-column: span 2; }
.create-form label.full { grid-column: 1 / -1; }
.create-form input,
.create-form textarea {
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 10px 12px;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  border-radius: 4px;
  transition: border-color 0.2s;
  letter-spacing: normal;
  text-transform: none;
}
.create-form input:focus,
.create-form textarea:focus {
  outline: none;
  border-color: var(--silver);
}
.create-form textarea { resize: vertical; min-height: 44px; font-family: inherit; }
.create-form button[type="submit"] {
  background: var(--silver);
  color: #000;
  padding: 12px;
  border: none;
  border-radius: 4px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s;
  grid-column: span 1;
}
.create-form button[type="submit"]:hover:not(:disabled) { background: #fff; }
.create-form button[type="submit"]:disabled { opacity: 0.5; cursor: wait; }

/* Tournaments table (admin) */
.t-table {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.t-row {
  display: grid;
  grid-template-columns: 140px 80px 260px 90px 200px 1fr;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  align-items: center;
  gap: 20px;
  cursor: pointer;
  transition: background 0.15s;
}
.t-row:last-child { border-bottom: none; }
.t-row:hover { background: var(--surface2); }
.t-row.head {
  cursor: default;
  background: var(--surface2);
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.t-row.head:hover { background: var(--surface2); }
.td-date { font-size: 14px; }
.td-time { font-variant-numeric: tabular-nums; color: var(--silver); }
.td-format { color: var(--accent); font-weight: 500; }
.td-price { font-size: 15px; font-weight: 600; color: var(--silver); }
.td-seats-plain {
  font-size: 16px;
  color: var(--accent);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.td-seats-plain .td-seats-sep { color: var(--silver-dim); font-weight: 400; }

.td-seats {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  background: rgba(192,192,192,0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.td-seats-count { font-size: 12px; color: var(--accent); min-width: 46px; font-weight: 600; font-variant-numeric: tabular-nums; }
.td-seats-bar { flex: 1; height: 4px; background: rgba(192,192,192,0.1); border-radius: 999px; overflow: hidden; min-width: 80px; }
.td-seats-fill { height: 100%; background: var(--silver); }
.td-seats-fill.hot { background: var(--warn); }
.td-seats-fill.full { background: var(--danger); }
.td-actions { display: flex; gap: 6px; justify-content: flex-end; }
.btn-sm {
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 10px;
  font-family: inherit;
  cursor: pointer;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--silver-dim);
  transition: all 0.15s;
}
.btn-sm:hover { color: var(--silver-bright); border-color: var(--border-strong); }
.btn-sm.danger { color: var(--danger); border-color: rgba(232,88,88,0.2); }
.btn-sm.danger:hover { background: rgba(232,88,88,0.06); border-color: var(--danger); }

/* Резервные столы («Столы выбывших») — приглушённые */
.lt-table.fallback,
.seat-card.fallback,
.reseat-table.fallback {
  opacity: 0.65;
  border-color: rgba(192,192,192,0.08);
}
.lt-table.fallback .lt-table-title,
.seat-card.fallback .seat-card-num,
.reseat-table.fallback .reseat-table-head {
  color: #8a8f98;
}

/* Сворачиваемая шторка для столов выбывших (нативный <details>/<summary>) */
.fallback-tables {
  margin-top: 18px;
}
.fallback-tables > summary {
  cursor: pointer;
  padding: 12px 14px;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  background: rgba(192,192,192,0.04);
  border: 1px solid var(--border);
  border-radius: 6px;
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fallback-tables > summary::-webkit-details-marker { display: none; }
.fallback-tables > summary::marker { display: none; content: ''; }
.fallback-tables > summary:hover { color: var(--silver-bright); }
.fallback-tables[open] > summary { color: var(--silver-bright); border-color: var(--border-strong); }
.fallback-tables[open] .fb-arrow { transform: rotate(180deg); }
.fb-arrow {
  display: inline-block;
  margin-left: auto;
  font-size: 14px;
  transition: transform 0.2s;
}
.fallback-tables-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 10px;
}

.t-cash-tag {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 7px;
  font-size: 9px;
  letter-spacing: 1.5px;
  font-weight: 700;
  color: #e8c78a;
  background: rgba(232,199,138,0.12);
  border: 1px solid rgba(232,199,138,0.4);
  border-radius: 3px;
  vertical-align: middle;
}

.btn-golden {
  padding: 9px 16px;
  border-radius: 6px;
  font-size: 11px;
  font-family: inherit;
  cursor: pointer;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  border: 1px solid rgba(205,185,138,0.45);
  background: linear-gradient(180deg, rgba(205,185,138,0.16) 0%, rgba(122,94,42,0.18) 100%);
  color: #e6cf95;
  transition: all 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.btn-golden:hover { background: linear-gradient(180deg, rgba(205,185,138,0.28) 0%, rgba(122,94,42,0.32) 100%); border-color: rgba(205,185,138,0.85); color: #f0dca8; }
.btn-golden:active { transform: scale(0.97); }

.signups-panel {
  grid-column: 1/-1;
  margin-top: 8px;
  padding: 18px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  display: none;
}
.t-row.open + .signups-panel { display: block; }
.signups-title {
  font-size: 12px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 10px;
  font-weight: 600;
}
.signups-table { width: 100%; border-collapse: collapse; }
.signups-table th, .signups-table td {
  text-align: left;
  padding: 8px 10px;
  font-size: 13px;
  border-bottom: 1px solid var(--border);
}
.signups-table th {
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.signups-table td { color: var(--accent); }
.signups-empty { color: var(--text-mute); font-style: italic; padding: 10px 0; }

/* LK summary bar */
.lk-summary-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 24px;
}
.lk-sm-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 18px;
}
.lk-sm-lab { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); margin-bottom: 6px; }
.lk-sm-val { font-size: 22px; color: var(--accent); font-variant-numeric: tabular-nums; }
.lk-sm-val strong { font-weight: 700; }
.lk-sm-val strong.warn { color: var(--warn); }
.lk-sm-val strong.ok { color: var(--success); }
.lk-sm-sub { font-size: 13px; color: var(--silver-dim); margin-left: 6px; font-weight: 400; }

/* My table (player) */
.mytable-wait {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 40px 32px;
  text-align: center;
  max-width: 640px;
}
.mytable-wait-eyebrow { font-size: 11px; color: var(--silver-dim); letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600; margin-bottom: 8px; }
.mytable-wait-head { font-size: 22px; color: var(--accent); font-weight: 700; margin-bottom: 8px; }
.mytable-wait-sub { font-size: 13px; color: var(--text-mute); }
.mytable-wait-time {
  margin-top: 16px;
  font-size: 16px;
  color: var(--silver-bright);
  font-weight: 600;
  letter-spacing: 1px;
}

.mytable-card {
  background: linear-gradient(180deg, var(--surface2), var(--surface));
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  padding: 28px 32px;
  max-width: 920px;
}
.mytable-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.mytable-eyebrow {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
  margin-bottom: 6px;
}
.mytable-title {
  font-size: 32px;
  font-weight: 700;
  color: var(--accent);
  line-height: 1.1;
  letter-spacing: -0.5px;
}
.mytable-dealer { font-size: 14px; color: var(--text-mute); margin-top: 10px; }
.mytable-dealer strong { color: var(--silver-bright); font-weight: 600; }

/* Долг по этому турниру — отдельный блок ниже карточки стола, красноватый */
.mytable-debt-block {
  background: linear-gradient(180deg, var(--surface2), var(--surface));
  border: 1px solid rgba(217,101,101,0.35);
  border-radius: 12px;
  padding: 22px 26px;
  max-width: 920px;
  margin-top: 22px;
}
.mytable-debt-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 14px; flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(217,101,101,0.20);
  margin-bottom: 16px;
}
.mytable-debt-lab {
  font-size: 11px;
  letter-spacing: 2px;
  color: rgba(232,140,140,0.90);
  text-transform: uppercase;
  font-weight: 700;
}
.mytable-debt-val {
  font-size: 26px;
  font-weight: 800;
  color: #e88c8c;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.3px;
}
.mytable-debt-rows { display: flex; flex-direction: column; gap: 8px; }
.mytable-debt-row {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: baseline;
  gap: 12px;
  font-size: 13px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.mytable-debt-row:last-child { border-bottom: none; }
.mytable-debt-row-time { color: var(--silver-dim); font-variant-numeric: tabular-nums; font-size: 11px; }
.mytable-debt-row-lab { color: var(--silver); }
.mytable-debt-row-amt { color: var(--silver-bright); font-variant-numeric: tabular-nums; font-weight: 600; text-align: right; }
.mytable-debt-row.is-refund .mytable-debt-row-lab { color: rgba(121,208,147,0.85); }
.mytable-debt-row.is-refund .mytable-debt-row-amt { color: #79d093; }
.mytable-debt-row.paid .mytable-debt-row-amt { color: #79d093; }
.mytable-debt-row.total {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(217,101,101,0.30);
  border-bottom: none;
  font-size: 15px;
}
.mytable-debt-row.total .mytable-debt-row-lab { color: rgba(232,140,140,0.90); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; font-size: 11px; }
.mytable-debt-row.total .mytable-debt-row-amt { color: #e88c8c; font-size: 18px; font-weight: 800; }
.mytable-debt-empty { color: var(--silver-dim); font-size: 13px; font-style: italic; padding: 6px 0; }
.mytable-countdown {
  padding: 8px 16px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--silver);
  font-weight: 600;
  white-space: nowrap;
}

.seats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
}
.seat {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
  text-align: center;
  transition: all 0.2s;
}
.seat.me {
  background: linear-gradient(135deg, rgba(192,192,192,0.16), rgba(192,192,192,0.06));
  border-color: var(--silver);
  box-shadow: 0 0 0 1px var(--silver);
}
.seat-num {
  font-size: 10px;
  color: var(--silver-dim);
  letter-spacing: 1.5px;
  margin-bottom: 6px;
  font-weight: 600;
}
.seat-name { font-size: 14px; color: var(--accent); font-weight: 500; }
.seat-tag {
  display: inline-block;
  margin-top: 6px;
  padding: 2px 8px;
  background: var(--silver);
  color: #000;
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 999px;
  font-weight: 700;
}

/* Dealer cabinet */
.shifts-list { display: flex; flex-direction: column; gap: 10px; }
.shift-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 120px 1fr 24px;
  gap: 16px;
  align-items: center;
  cursor: pointer;
  transition: all 0.15s;
}
.shift-card:hover { border-color: var(--border-strong); background: var(--surface2); }
.shift-card.today { border-left: 3px solid var(--success); }
.shift-card.past { opacity: 0.55; }
.shift-day { font-size: 20px; font-weight: 700; color: var(--accent); }
.shift-fullday { font-size: 12px; color: var(--text-mute); margin-top: 2px; }
.shift-format { font-size: 15px; color: var(--accent); font-weight: 600; }
.shift-meta { font-size: 12px; color: var(--silver-dim); margin-top: 4px; }
.shift-tag {
  display: inline-block;
  padding: 2px 8px;
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 4px;
  margin-left: 8px;
  font-weight: 700;
  vertical-align: middle;
}
.shift-tag.today { background: rgba(94,208,122,0.15); color: var(--success); }
.shift-tag.past { background: rgba(192,192,192,0.1); color: var(--silver-dim); }
.shift-arrow { color: var(--silver-dim); font-size: 20px; }

.live-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  gap: 16px;
  flex-wrap: wrap;
}
.live-format { font-size: 20px; font-weight: 700; color: var(--accent); }
.live-meta { font-size: 13px; color: var(--text-mute); margin-top: 2px; }
.live-shift-select {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 9px 14px;
  color: var(--accent);
  font-family: inherit;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
}

.dealer-table {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 16px;
}
.dealer-table.mine {
  background: linear-gradient(180deg, rgba(94,208,122,0.05), var(--surface));
  border-color: rgba(94,208,122,0.35);
  box-shadow: 0 0 0 1px rgba(94,208,122,0.3);
}
.dealer-table-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 12px;
  gap: 16px;
}
.dealer-table-title { font-size: 18px; font-weight: 700; color: var(--accent); }
.dealer-table-sub { font-size: 12px; color: var(--text-mute); }

.seats-grid.dense {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 6px;
}
.seats-grid.dense .seat {
  padding: 10px 8px;
  min-height: 54px;
}
.seats-grid.dense .seat.empty { border-style: dashed; opacity: 0.5; }
.seats-grid.dense .seat .seat-empty { color: var(--silver-dim); font-size: 14px; font-weight: 500; }
.seats-grid.dense .seat.clickable { cursor: pointer; }
.seats-grid.dense .seat.clickable:hover { background: var(--surface2); border-color: var(--silver); }

.other-tables-head {
  font-size: 14px;
  color: var(--silver-dim);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin: 28px 0 12px;
  font-weight: 600;
}
.other-tables { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.other-tables .dealer-table { margin-bottom: 0; }
.other-tables .seats-grid.dense .seat { min-height: 40px; padding: 8px; font-size: 12px; }

/* Player status: выбит — должно бросаться в глаза, не теряться */
.seat.seat-out {
  position: relative;
  background: rgba(232, 88, 88, 0.10);
  border-color: rgba(232, 88, 88, 0.55);
  box-shadow: 0 0 0 1px rgba(232, 88, 88, 0.25) inset;
}
.seat.seat-out .seat-name {
  text-decoration: line-through;
  color: #ff8b8b;
  font-weight: 600;
}
.seat-tag-out {
  display: block;
  margin-top: 6px;
  padding: 3px 9px;
  font-size: 10px;
  letter-spacing: 1.8px;
  font-weight: 800;
  color: #fff;
  background: var(--danger);
  border-radius: 4px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 1px 4px rgba(232,88,88,0.35);
}

/* Seat badges (дилер: Р = ребай, А = аддон) */
.seat-badges {
  display: flex;
  gap: 3px;
  justify-content: center;
  margin-top: 4px;
}
.seat-b {
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 700;
  border-radius: 3px;
  letter-spacing: 0.5px;
  line-height: 1.2;
}
.seat-b.rebuy { background: rgba(255, 184, 77, 0.18); color: var(--warn); }
.seat-b.addon { background: rgba(120, 180, 255, 0.18); color: #7eb3ff; }

/* Старый .seat-rb (используется в admin lt-seat — оставляем) */
.seat-rb {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 700;
  background: rgba(255, 184, 77, 0.15);
  color: var(--warn);
  border-radius: 3px;
  letter-spacing: 0.5px;
}
.seat.clickable.seat-out { cursor: pointer; }

/* Dealer feed */
.df-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  margin: 18px 0;
}
.df-title {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 8px;
  font-weight: 600;
}
.df-hint { color: #444; font-weight: 400; font-size: 10px; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.df-list { display: flex; flex-direction: column; gap: 4px; }
.df-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 5px;
  font-size: 13px;
}
.df-item.type-knockout { background: rgba(232,88,88,0.07); }
.df-item.type-rebuy    { background: rgba(255,184,77,0.07); }
.df-item.type-addon    { background: rgba(120,180,255,0.07); }
.df-item.is-cancelled { opacity: 0.4; }
.df-item.is-cancelled .df-text { text-decoration: line-through; }
.df-time { font-size: 11px; color: var(--silver-dim); min-width: 38px; font-variant-numeric: tabular-nums; }
.df-text { flex: 1; color: var(--accent); }
.df-text strong { color: var(--silver-bright); font-weight: 600; }
.df-cancel { width: 22px; height: 22px; background: transparent; border: 1px solid var(--border); border-radius: 4px; color: var(--silver-dim); cursor: pointer; font-size: 12px; }
.df-cancel:hover { color: var(--danger); border-color: var(--danger); }
.df-cancelled { font-size: 10px; color: var(--silver-dim); text-transform: uppercase; letter-spacing: 1px; }

/* Player action menu: badge/debt/hint */
.pm-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 3px;
  vertical-align: middle;
}
.pm-badge.out { background: rgba(232,88,88,0.15); color: var(--danger); }
.pm-debt {
  padding: 10px 14px;
  background: rgba(255,184,77,0.08);
  border: 1px solid rgba(255,184,77,0.2);
  border-radius: 6px;
  margin-bottom: 14px;
  color: var(--silver);
  font-size: 13px;
}
.pm-debt strong { color: var(--warn); font-size: 16px; }
.pm-hint {
  padding: 10px 14px;
  background: var(--bg);
  border-left: 3px solid var(--silver-dim);
  color: var(--silver-dim);
  font-size: 12px;
  margin-bottom: 14px;
  font-style: italic;
}
.pm-btn.revive {
  border-color: rgba(94,208,122,0.35);
  background: rgba(94,208,122,0.05);
}
.pm-btn.revive:hover { background: rgba(94,208,122,0.1); border-color: var(--success); }
.pm-btn.revive .pm-btn-lab { color: var(--success); }

/* Player action menu (в модалке пересадки) */
.pm-group { margin-bottom: 14px; }
.pm-group-title {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 8px;
  font-weight: 600;
}
.pm-btn {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  margin-bottom: 6px;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--accent);
  font-family: inherit;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
  text-align: left;
}
.pm-btn:hover { background: var(--surface2); border-color: var(--border-strong); }
.pm-btn.danger { border-color: rgba(232,88,88,0.25); }
.pm-btn.danger:hover { background: rgba(232,88,88,0.08); border-color: var(--danger); }
.pm-btn-lab {
  font-size: 13px;
  font-weight: 600;
}
.pm-btn-val {
  font-size: 12px;
  color: var(--silver-dim);
}
.pm-btn.danger .pm-btn-lab { color: var(--danger); }

/* Кнопки в модалке «Кто выбил?» — имя крупно и ярко, стол подпись */
.pm-btn-ko { padding: 12px 16px; }
.pm-btn-name {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.2px;
}
.pm-btn-meta {
  font-size: 11px;
  font-weight: 500;
  color: var(--silver-dim);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 3px 8px;
  background: rgba(255,255,255,0.04);
  border-radius: 4px;
}
.pm-btn-ko:hover .pm-btn-name { color: #ffb450; }

/* Хайхенд — золотистая обводка для бонус-кнопок */
.pm-btn.hh { border-color: rgba(255, 184, 77, 0.3); }
.pm-btn.hh:hover { background: rgba(255, 184, 77, 0.08); border-color: rgba(255, 184, 77, 0.6); }
.pm-btn.hh .pm-btn-lab { color: #ffb84d; }

/* Reseat modal */
.cab-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(6px);
  z-index: 99998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.cab-modal-backdrop[hidden] { display: none; }
.cab-modal {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  max-width: 560px;
  width: 100%;
  padding: 28px 28px 24px;
  position: relative;
  max-height: 80vh;
  overflow-y: auto;
}
.cab-modal h3 { font-size: 18px; color: var(--accent); margin-bottom: 16px; }
.reseat-table { margin-bottom: 14px; padding: 12px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; }
.reseat-table-head { font-size: 13px; color: var(--accent); font-weight: 600; margin-bottom: 8px; }
.reseat-seats { display: flex; flex-wrap: wrap; gap: 6px; }
.reseat-seat-btn {
  width: 38px; height: 38px;
  border: 1px solid var(--silver);
  background: transparent;
  color: var(--silver);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}
.reseat-seat-btn:hover:not(:disabled) { background: var(--silver); color: #000; }
.reseat-seat-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.reseat-seat-btn.is-current { border-color: var(--accent, #c9a76c); color: var(--accent, #c9a76c); opacity: 0.9; }
.reseat-seat-btn.is-swap {
  width: auto; min-width: 70px; max-width: 130px;
  padding: 0 10px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
  border-style: dashed;
}
.reseat-seat-btn.is-swap:hover { border-style: solid; }
.reseat-table.reseat-my { border-color: var(--accent, #c9a76c); background: rgba(201,167,108,0.04); }

/* Users table (admin) */
.users-search-wrap {
  margin-bottom: 16px;
}
#users-search {
  width: 100%;
  max-width: 460px;
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 12px 16px;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  border-radius: 6px;
  transition: border-color 0.2s;
}
#users-search:focus { outline: none; border-color: var(--silver); }

/* Универсальная панель поиска (должники / др. вкладки) */
.adm-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  max-width: 560px;
  flex-wrap: wrap;
}
.adm-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--silver-dim);
  pointer-events: none;
}
.adm-search-input {
  flex: 1 1 auto;
  min-width: 240px;
  width: 100%;
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 12px 40px 12px 40px;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  border-radius: 8px;
  transition: border-color 0.15s, background 0.15s;
}
.adm-search-input:hover { border-color: var(--border-strong); }
.adm-search-input:focus { outline: none; border-color: var(--silver); background: var(--surface2); }
.adm-search-input::placeholder { color: var(--silver-dim); }
.adm-search-input::-webkit-search-cancel-button { display: none; }
.adm-search-clear {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: none;
  background: rgba(192,192,192,0.12);
  color: var(--silver-dim);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.adm-search-clear:hover { background: rgba(232,88,88,0.18); color: #ff8686; }
.adm-search-meta {
  font-size: 12px;
  color: var(--silver-dim);
  letter-spacing: 0.5px;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .adm-search-input { min-width: 0; }
}
.users-table {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.user-row {
  display: grid;
  grid-template-columns: 40px 1.5fr 140px 180px 1fr;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  align-items: center;
  gap: 16px;
  cursor: pointer;
  transition: background 0.15s;
}
.user-row:last-of-type { border-bottom: none; }
.user-row:hover:not(.head) { background: var(--surface2); }
.user-row.head {
  cursor: default;
  background: var(--surface2);
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.user-num { font-size: 12px; color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.user-main { min-width: 0; }
.user-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.user-tag {
  display: inline-block;
  padding: 2px 8px;
  background: rgba(255, 184, 77, 0.12);
  color: var(--warn);
  font-size: 9px;
  letter-spacing: 1px;
  font-weight: 700;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}
.user-email {
  font-size: 12px;
  color: var(--text-mute);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.user-phone {
  font-size: 13px;
  color: var(--silver);
  font-variant-numeric: tabular-nums;
}
.user-signups {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.user-signups-num {
  font-size: 18px;
  font-weight: 700;
  color: var(--silver-bright);
}
.user-signups-label {
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--silver-dim);
}
.user-signups-upcoming {
  font-size: 10px;
  padding: 2px 7px;
  background: rgba(94, 208, 122, 0.12);
  color: var(--success);
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: 0.3px;
}
.user-dates {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 12px;
  color: var(--text-mute);
}
.user-date-item { display: flex; justify-content: space-between; gap: 10px; }
.user-date-label {
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--silver-dim);
}
.user-panel {
  grid-column: 1 / -1;
  margin-top: 8px;
  padding: 18px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  display: none;
}
.user-row.open + .user-panel { display: block; }

/* User tag variants */
.user-tag.dealer {
  background: rgba(120, 180, 255, 0.12);
  color: #7eb3ff;
}
.user-tag.waiter {
  background: rgba(126, 200, 140, 0.16);
  color: #7ec88c;
}

/* Dealer checkboxes in tournaments panel */
.dealer-checks {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 0;
}
.dealer-check {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}
.dealer-check:hover { border-color: var(--border-strong); background: var(--surface2); }
.dealer-check input { cursor: pointer; accent-color: var(--silver); }
.dealer-check span { color: var(--accent); font-size: 13px; }

/* Create dealer inline form */
.create-dealer-card {
  background: var(--surface2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 18px 20px;
  margin-bottom: 18px;
}
.create-dealer-card .section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Table-dealer assignment (admin) */
.table-dealers-list { display: flex; flex-direction: column; gap: 8px; }
.table-dealer-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 14px;
  align-items: center;
  padding: 10px 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
}
.tdr-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: 0.5px;
}
.tdr-select {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 9px 12px;
  color: var(--accent);
  font-family: inherit;
  font-size: 13px;
  border-radius: 5px;
  cursor: pointer;
}
.tdr-select:focus { outline: none; border-color: var(--silver); }

/* Levels editor table */
.levels-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
}
.levels-table th {
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  padding: 10px;
  text-align: left;
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
}
.levels-table td {
  padding: 6px 8px;
  border-bottom: 1px solid rgba(192,192,192,0.05);
  vertical-align: middle;
}
.levels-table input, .levels-table select {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 7px 10px;
  color: var(--accent);
  font-family: inherit;
  font-size: 13px;
  border-radius: 4px;
  width: 100%;
  box-sizing: border-box;
}
.levels-table input:focus, .levels-table select:focus { outline: none; border-color: var(--silver); }
.levels-table input:disabled { opacity: 0.35; }

/* Buyin settings (admin: Стек/Ребаи) */
.buyin-wrap { display: flex; flex-direction: column; gap: 16px; }
.buyin-field { display: flex; align-items: center; gap: 14px; padding: 12px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; }
.buyin-field label { font-size: 12px; color: var(--silver-dim); font-weight: 600; min-width: 180px; }
.buyin-field input { flex: 1; max-width: 200px; background: var(--surface); border: 1px solid var(--border); padding: 8px 12px; color: #fff; font-family: inherit; font-size: 14px; border-radius: 4px; }
.buyin-field input:focus { outline: none; border-color: var(--silver); }
.buyin-section { padding: 12px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; }
.buyin-section-title { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); font-weight: 600; margin-bottom: 10px; }
.buyin-opts { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.buyin-opt-row { display: grid; grid-template-columns: 1.5fr 100px 120px 34px; gap: 8px; align-items: center; }
.buyin-opt-row input { background: var(--surface); border: 1px solid var(--border); padding: 8px 10px; color: #fff; font-family: inherit; font-size: 13px; border-radius: 4px; }
.buyin-opt-row input:focus { outline: none; border-color: var(--silver); }

/* Drag-n-drop visual */
.seat.drag-source { opacity: 0.4; }
.seat.drag-over {
  border-color: var(--success);
  box-shadow: 0 0 0 2px var(--success);
  background: rgba(94, 208, 122, 0.08);
}
.dealer-table.drop-ok { box-shadow: 0 0 0 2px rgba(94, 208, 122, 0.3); }

/* Live pick tournament */
.lt-pick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.lt-pick-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px 22px;
  text-align: left;
  cursor: pointer;
  transition: all 0.2s;
  color: var(--accent);
  font-family: inherit;
}
.lt-pick-card:hover { background: var(--surface2); border-color: var(--border-strong); transform: translateY(-2px); }
.lt-pick-date { font-size: 11px; color: var(--silver-dim); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 8px; }
.lt-pick-format { font-size: 20px; font-weight: 700; color: var(--accent); }
.lt-pick-meta { font-size: 13px; color: var(--silver-dim); margin-top: 4px; }
.lt-pick-badge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-left: 6px;
    vertical-align: middle;
}
.lt-pick-badge.live {
    background: rgba(94,208,122,0.18);
    color: #5ed07a;
    border: 1px solid rgba(94,208,122,0.4);
}
.lt-pick-badge.wait {
    background: rgba(192,192,192,0.10);
    color: var(--silver-dim);
    border: 1px solid rgba(192,192,192,0.25);
}

/* Current tournament tab (admin) */
.live-grid { gap: 18px; }
@media (max-width: 1100px) { .live-grid { grid-template-columns: 1fr !important; } }

.lt-table {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.lt-table-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.lt-table-title { font-size: 15px; color: var(--accent); font-weight: 700; }
.lt-table-sub { font-size: 11px; color: var(--silver-dim); }
.lt-seats { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 4px; }
.lt-seat {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 8px 10px;
  font-size: 12px;
  display: flex;
  gap: 6px;
  align-items: center;
  position: relative;
  min-height: 36px;
  cursor: pointer;
  transition: all 0.15s;
}
.lt-seat:not(.empty):hover { background: var(--surface2); border-color: var(--border-strong); }
.lt-seat.empty { border-style: dashed; color: var(--silver-dim); opacity: 0.5; justify-content: center; }
.lt-seat.out {
  background: rgba(232, 88, 88, 0.12);
  border-color: rgba(232, 88, 88, 0.55);
}
.lt-seat.out .lt-seat-name {
  text-decoration: line-through;
  color: #ff8b8b;
  font-weight: 600;
}
.lt-seat.out::after {
  content: 'ВЫБИТ';
  margin-left: auto;
  padding: 1px 5px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #fff;
  background: var(--danger);
  border-radius: 3px;
  flex-shrink: 0;
}
.lt-seat-num { color: var(--silver-dim); font-weight: 600; font-size: 10px; min-width: 22px; }
.lt-seat-name { flex: 1; color: var(--accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lt-seat-rb {
  font-size: 9px;
  padding: 1px 5px;
  background: rgba(255, 184, 77, 0.15);
  color: var(--warn);
  border-radius: 3px;
  font-weight: 700;
}

/* Live events feed */
.lf-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  max-height: 70vh;
  overflow-y: auto;
  position: sticky;
  top: 20px;
}
/* Переключатель источника событий: «Турнир / Кэш» */
.ev-switcher {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.ev-switch-btn {
  background: transparent;
  border: none;
  color: var(--silver-dim);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 8px 18px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}
.ev-switch-btn:hover { color: var(--silver-bright); background: rgba(192,192,192,0.06); }
.ev-switch-btn.is-active {
  background: var(--silver);
  color: #000;
}

/* Селектор турнира/кэша внутри вкладки «События» — между переключателем и поиском */
.ev-tour-picker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0;
  flex-wrap: wrap;
}
.ev-tour-picker-lbl {
  font-size: 11px;
  color: var(--silver-dim);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
}
.ev-tour-select {
  flex: 1;
  min-width: 240px;
  background: #161616;
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 6px;
  padding: 9px 11px;
  font-family: inherit;
  font-size: 13px;
  color-scheme: dark;
}
.ev-tour-select option { background: #161616; color: var(--text); }
.ev-tour-select:focus {
  outline: none;
  border-color: var(--silver);
}

/* Селектор смены у дилера (когда несколько активных) */
.dlr-shift-picker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.dlr-shift-picker-lbl {
  font-size: 11px;
  color: var(--silver-dim);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
}
.dlr-shift-select {
  background: #161616;
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 6px;
  padding: 8px 11px;
  font-family: inherit;
  font-size: 13px;
  color-scheme: dark;
  min-width: 220px;
}
.dlr-shift-select option { background: #161616; color: var(--text); }
.dlr-shift-select:focus {
  outline: none;
  border-color: var(--silver);
}

/* Когда лента живёт в отдельной вкладке «События» — без sticky/border, скролл по доступной высоте */
.lf-fullpage {
  position: static;
  max-height: calc(100vh - 220px);
  border: none;
  background: transparent;
  padding: 4px 0 24px;
}
.lf-fullpage .lf-item {
  padding: 12px 12px;
  font-size: 14px;
}
.lf-fullpage .lf-time { font-size: 12px; min-width: 50px; }
@media (max-width: 768px) {
  .lf-fullpage { max-height: calc(100vh - 240px); }
}
.lf-title {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 10px;
  font-weight: 600;
}
.lf-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 8px;
  border-bottom: 1px solid rgba(192,192,192,0.06);
  font-size: 13px;
  line-height: 1.4;
}
.lf-item:last-child { border-bottom: none; }
.lf-item.type-knockout { border-left: 2px solid rgba(232,88,88,0.5); padding-left: 10px; }
.lf-item.type-rebuy    { border-left: 2px solid rgba(255,184,77,0.5); padding-left: 10px; }
.lf-item.type-addon    { border-left: 2px solid rgba(120,180,255,0.5); padding-left: 10px; }
.lf-item.is-cancelled { opacity: 0.4; }
.lf-item.is-cancelled .lf-text { text-decoration: line-through; }
.lf-time { font-size: 11px; color: var(--silver-dim); font-variant-numeric: tabular-nums; min-width: 40px; }
.lf-text { flex: 1; color: var(--accent); }
.lf-text strong { color: var(--silver-bright); font-weight: 600; }
.lf-recorder {
  font-size: 10px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
  border: 1px solid rgba(192,192,192,0.16);
  background: rgba(192,192,192,0.06);
  color: var(--silver-dim);
  flex-shrink: 0;
}
.lf-recorder-админ {
  background: rgba(232,199,138,0.12);
  border-color: rgba(232,199,138,0.3);
  color: #e8c78a;
}
.lf-recorder-дилер {
  background: rgba(120,180,255,0.10);
  border-color: rgba(120,180,255,0.28);
  color: #78b4ff;
}
@media (max-width: 540px) {
  .lf-recorder { display: none; }
}
.lf-cancel {
  width: 24px; height: 24px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--silver-dim);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  transition: all 0.15s;
}
.lf-cancel:hover { background: rgba(232,88,88,0.1); border-color: var(--danger); color: var(--danger); }
.lf-cancelled { font-size: 10px; letter-spacing: 1px; color: var(--silver-dim); text-transform: uppercase; }

/* Settlements (расчёты с игроками, admin live tab) */
.stl-grand { font-size: 13px; color: var(--silver-dim); }
.stl-grand strong { color: var(--warn); font-size: 18px; font-weight: 700; margin-left: 6px; }
.stl-list { display: flex; flex-direction: column; gap: 6px; }
.stl-row {
  display: grid;
  grid-template-columns: 180px 1fr 120px;
  gap: 14px;
  padding: 12px 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  align-items: center;
}
.stl-player { font-size: 14px; color: var(--accent); font-weight: 600; }
.stl-items { display: flex; flex-direction: column; gap: 4px; }
.stl-item {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  gap: 10px;
  align-items: center;
  font-size: 12px;
}
.stl-type {
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 10px;
  letter-spacing: 1px;
  font-weight: 700;
  text-align: center;
}
.stl-type.rebuy { background: rgba(255,184,77,0.15); color: var(--warn); }
.stl-type.addon { background: rgba(120,180,255,0.15); color: #7eb3ff; }
.stl-type.buyin { background: rgba(192,192,192,0.15); color: var(--silver); }
.stl-type.phoenix { background: rgba(255,138,76,0.15); color: #ff8a4c; }
.stl-type.order { background: rgba(94,208,122,0.15); color: #5ed07a; }

/* Модалка «Принять платёж» в архиве — таблица позиций */
.arch-pm-wrap { max-height: 320px; overflow-y: auto; margin-bottom: 14px; border: 1px solid var(--border); border-radius: 8px; }
.arch-pm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.arch-pm-table thead th {
    text-align: left;
    padding: 8px 10px;
    background: rgba(255,255,255,0.025);
    color: var(--silver-dim);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
}
.arch-pm-table tbody td {
    padding: 7px 10px;
    border-bottom: 1px solid rgba(192,192,192,0.05);
    color: var(--text);
}
.arch-pm-table tfoot td {
    padding: 7px 10px;
    border-top: 1px solid var(--border);
    color: var(--silver);
    font-size: 13px;
}
.arch-pm-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.arch-pm-table .arch-pm-debt td { color: var(--warn); font-size: 14px; padding-top: 10px; }
.arch-pm-count { color: var(--silver-dim); font-size: 11px; }

/* Модалка «Новое назначение дилера» */
.asg-form { display: flex; flex-direction: column; gap: 12px; }
.asg-form label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 12px;
    color: var(--silver-dim);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.asg-form input,
.asg-form select {
    background: #161616;
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 6px;
    padding: 9px 11px;
    font-family: inherit;
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    /* Чтобы нативный dropdown в Chrome/Edge/FF был в тёмной теме */
    color-scheme: dark;
}
.asg-form select option {
    background: #161616;
    color: var(--text);
}
.asg-form input:focus,
.asg-form select:focus {
    outline: none;
    border-color: var(--silver);
    background: #1f1f1f;
}
.asg-form select:disabled { opacity: 0.5; cursor: not-allowed; }
.asg-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
@media (max-width: 540px) {
    .asg-grid { grid-template-columns: 1fr; }
}

/* Плавающая кнопка «Меню» (дилер + официант) */
.menu-view-fab {
    position: fixed;
    right: 16px;
    bottom: 80px;
    z-index: 90;
    background: rgba(192,192,192,0.95);
    color: #000;
    border: 1px solid var(--silver);
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    padding: 9px 14px;
    border-radius: 999px;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(0,0,0,0.5);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 0.4px;
    transition: transform 0.15s, box-shadow 0.15s;
}
.menu-view-fab:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(0,0,0,0.65);
}
.menu-view-fab-icon { font-size: 14px; }
@media (min-width: 1100px) {
    .menu-view-fab { right: 24px; bottom: 24px; padding: 11px 18px; font-size: 13px; }
}

/* Модалка прайс-меню (read-only) */
.menu-view-group { margin-bottom: 14px; }
.menu-view-cat {
    font-size: 11px;
    color: var(--silver-dim);
    text-transform: uppercase;
    letter-spacing: 1.4px;
    margin: 0 0 8px;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--border);
}
.menu-view-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px dashed rgba(192,192,192,0.08);
    font-size: 14px;
}
.menu-view-row:last-child { border-bottom: none; }
.menu-view-name { color: var(--text); }
.menu-view-price { color: var(--silver); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ===== Архив сезонов ===== */
.season-list { display: flex; flex-direction: column; gap: 12px; }
.season-card {
    display: block;
    text-align: left;
    width: 100%;
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    color: var(--text);
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.15s, background 0.15s;
}
.season-card:hover {
    border-color: var(--silver);
    background: rgba(255,255,255,0.05);
    transform: translateY(-1px);
}
.season-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}
.season-card-label {
    font-size: 17px;
    font-weight: 700;
    color: var(--text);
}
.season-card-arrow {
    font-size: 18px;
    color: var(--silver-dim);
}
.season-card:hover .season-card-arrow { color: var(--silver); }
.season-card-meta {
    font-size: 12px;
    color: var(--silver-dim);
    margin-bottom: 10px;
}
.season-winner {
    font-size: 14px;
    color: var(--text);
    padding: 8px 12px;
    background: rgba(255,215,0,0.06);
    border: 1px solid rgba(255,215,0,0.2);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.season-winner-empty {
    background: rgba(255,255,255,0.025);
    border-color: var(--border);
    color: var(--silver-dim);
    font-style: italic;
}
.season-winner-pts {
    color: var(--silver-dim);
    font-size: 12px;
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}

.season-detail-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.season-rating-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.season-rating-table thead th {
    text-align: left;
    padding: 9px 10px;
    background: rgba(255,255,255,0.025);
    color: var(--silver-dim);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
}
.season-rating-table tbody td {
    padding: 9px 10px;
    border-bottom: 1px solid rgba(192,192,192,0.05);
    color: var(--text);
}
.season-rating-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.season-rating-table .pts { font-size: 14px; }
.season-rating-table .rank {
    color: var(--silver-dim);
    width: 36px;
    font-variant-numeric: tabular-nums;
}
.season-rating-table tr.is-winner {
    background: rgba(255,215,0,0.05);
}
.season-rating-table tr.is-winner td.name { font-weight: 700; color: #ffd966; }
.stl-label { color: var(--silver); }
.stl-subtotal { color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.stl-total {
  text-align: right;
  font-size: 18px;
  font-weight: 700;
  color: var(--warn);
  font-variant-numeric: tabular-nums;
}
@media (max-width: 700px) {
  .stl-row { grid-template-columns: 1fr; }
  .stl-total { text-align: left; }
}

/* Archive list */
.arch-list { display: flex; flex-direction: column; gap: 10px; }
.arch-row {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 130px 1fr 200px 140px 24px;
  gap: 16px;
  align-items: center;
  cursor: pointer;
  transition: all 0.15s;
}
.arch-row:hover { border-color: var(--border-strong); background: var(--surface2); transform: translateX(-2px); }
.arch-day { font-size: 20px; font-weight: 700; color: var(--accent); }
.arch-full { font-size: 12px; color: var(--text-mute); margin-top: 2px; }
.arch-format { font-size: 15px; font-weight: 600; color: var(--accent); }
.arch-meta { font-size: 12px; color: var(--silver-dim); margin-top: 4px; }
.arch-winner { display: flex; flex-direction: column; gap: 2px; }
.arch-win-lab { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); }
.arch-win-name { font-size: 14px; color: #ffd24d; font-weight: 600; }
.arch-money { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.arch-money-val { font-size: 16px; font-weight: 700; color: var(--warn); font-variant-numeric: tabular-nums; }
.arch-money-lab { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--silver-dim); }
.arch-arrow { color: var(--silver-dim); font-size: 18px; }
@media (max-width: 900px) {
  .arch-row { grid-template-columns: 1fr; gap: 8px; }
  .arch-winner, .arch-money { align-items: flex-start; }
}

/* Tournament results table */
.res-table { width: 100%; border-collapse: collapse; }
.res-table th { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); padding: 10px; text-align: left; border-bottom: 1px solid var(--border); }
.res-table td { padding: 10px; border-bottom: 1px solid rgba(192,192,192,0.06); font-size: 14px; color: var(--accent); }
.res-place { text-align: center; width: 40px; font-weight: 700; color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.res-place.gold { color: #ffd24d; font-size: 18px; }
.res-place.silver { color: #d8d8d8; font-size: 16px; }
.res-place.bronze { color: #d4875e; font-size: 15px; }
.res-points { text-align: right; color: var(--success); font-weight: 700; font-variant-numeric: tabular-nums; }

/* Stats cards */
.stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}
.stat-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px 22px;
}
.stat-card-label {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-mute);
  font-weight: 600;
  margin-bottom: 8px;
}
.stat-card-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}

/* ---- Адаптация под ноутбуки 13-14" (1200-1440px) ---- */
@media (min-width: 992px) and (max-width: 1440px) {
  :root { --sidebar-w: 220px; }
  .cab-main { padding: 30px 28px 50px; }
  .cab-profile { padding: 0 16px 18px; }
  .cab-profile-name { font-size: 13px; }
  .cab-profile-email { font-size: 11px; }
  .cab-nav-item { padding: 10px 16px; font-size: 13px; }
  .cab-brand { padding: 0 16px 16px; }
  .cab-sidebar-footer { padding: 14px 16px; }

  .t-row {
    grid-template-columns: 120px 70px 1fr 80px 180px 1fr;
    gap: 14px;
    padding: 12px 16px;
  }
  .td-seats { padding: 6px 12px; gap: 10px; }
  .td-seats-count { min-width: 40px; font-size: 11px; }
  .td-seats-bar { min-width: 60px; }
  .td-actions { gap: 4px; }
  .btn-sm { padding: 5px 10px; font-size: 10px; letter-spacing: 0.8px; }

  .user-row {
    padding: 12px 16px;
    gap: 14px;
  }
  .cab-tab-head h1 { font-size: 24px; }
  .create-form { gap: 14px; }

  .fin-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
  .fin-card { padding: 12px 14px; }
  .fin-card-val { font-size: 18px; }
  .fin-cols { gap: 14px; }
  .fin-panel { padding: 14px 16px; }
}

@media (min-width: 992px) and (max-width: 1280px) {
  :root { --sidebar-w: 200px; }
  .cab-main { padding: 24px 20px 40px; }
  .cab-nav-label { font-size: 12px; }
  .t-row {
    grid-template-columns: 110px 60px 1fr 70px 160px 110px;
    gap: 10px;
    padding: 10px 14px;
  }
  .t-row.head { font-size: 9px; letter-spacing: 1px; }
  .td-date { font-size: 13px; }
  .td-price { font-size: 13px; }
  .td-format { font-size: 13px; }
  .td-actions .btn-sm { padding: 4px 7px; font-size: 9px; }
}

/* ---- Responsive ---- */
@media (max-width: 991px) {
  .cab-layout { grid-template-columns: 1fr; }
  .cab-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sidebar-w);
    z-index: 150;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    box-shadow: 0 0 40px rgba(0,0,0,0.4);
  }
  .cab-layout.sidebar-open .cab-sidebar { transform: translateX(0); }
  .cab-burger { display: flex; }
  .cab-main { padding: 72px 16px 60px; }

  .create-form { grid-template-columns: repeat(2, 1fr) !important; }
  .create-form label.wide, .create-form label.full { grid-column: span 2 !important; }
  .create-form button[type="submit"] { grid-column: span 2 !important; }

  /* Турниры — мобильные карточки */
  .t-row { grid-template-columns: 1fr 1fr !important; gap: 10px 12px; font-size: 13px; padding: 14px 16px; }
  .t-row.head { display: none; }
  .td-seats-plain { grid-column: 1 / -1; text-align: left; font-size: 15px; }
  .td-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
  }
  .td-actions .btn-sm { flex: 1 1 auto; min-width: 0; font-size: 10px; padding: 7px 8px; }

  .user-row { grid-template-columns: 30px 1fr; gap: 8px; padding: 12px 14px; }
  .user-row.head { display: none; }
  .user-phone, .user-signups, .user-dates { grid-column: 2; }

  /* Быстрое действие: кнопка "создать неделю" переносится вниз */
  .adm-section-head { flex-direction: column; align-items: stretch; }
  .btn-week {
    width: 100%;
    text-align: center;
    white-space: normal;
    padding: 12px 14px;
    font-size: 11px;
    letter-spacing: 1px;
  }

  /* Archive row */
  .arch-row { grid-template-columns: 1fr !important; padding: 14px 16px; }
  .arch-arrow { display: none; }

  /* Buyin form */
  .buyin-opt-row { grid-template-columns: 1fr 70px 90px 30px !important; gap: 6px; }
  .buyin-opt-row input { font-size: 12px; padding: 6px 8px; }
  .buyin-field { flex-direction: column; align-items: stretch; }
  .buyin-field label { min-width: 0; }

  /* Live tab */
  .lt-pick-grid { grid-template-columns: 1fr !important; }
  .stats-row { grid-template-columns: repeat(2, 1fr) !important; }
  .live-head { flex-direction: column; align-items: stretch; }

  /* Dealer panel controls */
  .live-shift-select { max-width: 100%; width: 100%; }
}

@media (max-width: 600px) {
  .cab-main { padding: 64px 12px 40px; }
  .cab-tab-head h1 { font-size: 22px; }
  .stats-row { grid-template-columns: 1fr 1fr !important; gap: 8px; }
  .stat-card { padding: 14px 16px; }
  .stat-card-value { font-size: 22px; }
  .t-row { padding: 12px; }
  .td-actions .btn-sm { font-size: 9px; padding: 6px 7px; letter-spacing: 0.5px; }
}
@media (max-width: 767px) {
  .cab-tab-head h1 { font-size: 22px; }
  .cards-grid { grid-template-columns: 1fr; }
}

/* ===== Редактирование профиля ===== */
.profile-edit-form { display: flex; flex-direction: column; gap: 14px; }
.profile-edit-field { display: flex; flex-direction: column; gap: 6px; }
.profile-edit-form input {
  background: var(--surface2);
  border: 1px solid var(--border);
  padding: 11px 14px;
  color: var(--silver-bright);
  font-family: inherit;
  font-size: 14px;
  border-radius: 6px;
  transition: border-color 0.15s;
}
.profile-edit-form input:focus { outline: none; border-color: var(--silver); }
.profile-edit-form .profile-field-label { font-size: 11px; }

/* ===== Статистика в профиле игрока ===== */
.profile-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--silver-bright);
  margin: 24px 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.profile-section-title:first-child { margin-top: 0; }
.profile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
}
.lk-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}
.lk-stat {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
}
.lk-stat-lbl {
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 6px;
  font-weight: 600;
}
.lk-stat-val {
  font-size: 24px;
  font-weight: 700;
  color: var(--silver-bright);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.lk-stat-val .lk-stat-sub { font-size: 13px; color: var(--silver-dim); font-weight: 400; margin-left: 4px; }
.lk-stat-empty { font-size: 14px; color: var(--silver-dim); font-weight: 400; }
.lk-stat-foot { margin-top: 6px; font-size: 11px; color: var(--silver-dim); }

.lk-delta { font-weight: 600; font-size: 11px; letter-spacing: 0.3px; }
.lk-delta.up { color: #8de09e; }
.lk-delta.down { color: #ff8686; }
.lk-delta.zero { color: var(--silver-dim); }

.lk-social {
  margin-top: 14px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(255,184,77,0.08), rgba(192,192,192,0.02));
  border: 1px solid rgba(255,184,77,0.25);
  border-radius: 10px;
  color: var(--silver-bright);
  font-size: 13px;
  line-height: 1.5;
}
.lk-social strong { color: var(--warn); font-size: 15px; }

.lk-next-card {
  margin: 14px 0 8px;
  padding: 14px 18px;
  background: linear-gradient(135deg, rgba(94,208,122,0.08), rgba(192,192,192,0.02));
  border: 1px solid rgba(94,208,122,0.25);
  border-radius: 10px;
}
.lk-next-lbl {
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--success);
  margin-bottom: 4px;
  font-weight: 700;
}
.lk-next-val { font-size: 17px; font-weight: 700; color: var(--silver-bright); }
.lk-next-sub { font-size: 12px; color: var(--silver-dim); margin-top: 4px; }

.lk-sparkline-wrap {
  padding: 14px 16px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--warn);
}
.lk-spark { width: 100%; height: 80px; display: block; }
.lk-spark-empty { color: var(--silver-dim); font-size: 13px; text-align: center; padding: 20px 0; }

@media (max-width: 600px) {
  .lk-stat-val { font-size: 20px; }
  .lk-stat { padding: 12px 14px; }
  .profile-section-title { font-size: 12px; }
}

/* ===== Персональный кабинет игрока — шрифт Foglihten + логотип ===== */
.lk-body,
.lk-body .cab-sidebar,
.lk-body .cab-main,
.lk-body h1, .lk-body h2, .lk-body h3, .lk-body h4, .lk-body h5,
.lk-body p, .lk-body span, .lk-body div, .lk-body a, .lk-body button,
.lk-body td, .lk-body th, .lk-body label, .lk-body input, .lk-body select {
  font-family: 'Foglihten', 'Inter', sans-serif !important;
  letter-spacing: 0.3px;
}
/* UPPERCASE-подписи у Foglihten выглядят жестковато — чуть смягчим */
.lk-body .cab-tab-sub,
.lk-body .user-date-label,
.lk-body .profile-field-label {
  text-transform: none;
  letter-spacing: 0.8px;
  font-weight: 500;
}

/* Бейдж активной смены в кабинете официанта */
.wtr-shift-badge{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;
  background:rgba(94,208,122,0.12);border:1px solid rgba(94,208,122,0.35);
  border-radius:8px;
  font-size:12px;color:#5ed07a;letter-spacing:1px;font-feature-settings:'tnum';
}
.wtr-shift-badge[hidden]{display:none}
.wtr-shift-badge b{color:#fff;font-weight:600}
.wtr-shift-dot{
  width:8px;height:8px;border-radius:50%;background:#5ed07a;
  box-shadow:0 0 10px #5ed07a;
  animation:wtr-shift-pulse 1.6s infinite;
}
@keyframes wtr-shift-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.3)}
}

/* Брендинг в сайдбаре — крупная бело-серебристая надпись (всех кабинетов) */
.cab-body .cab-brand { padding: 8px 24px 22px; border-bottom: 1px solid var(--border); }
.cab-logo-big, a.cab-logo-big {
  display: block;
  text-decoration: none;
  font-family: 'Foglihten', serif !important;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: 5px;
  text-align: center;
  background: linear-gradient(180deg, #ffffff 0%, #e8e8e8 40%, #b8b8b8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 12px rgba(255,255,255,0.18);
  transition: filter 0.2s;
}
.cab-logo-big span { display: block; font-size: 26px; }
.cab-logo-big span:last-child { font-size: 22px; letter-spacing: 8px; margin-top: 2px; }
.cab-logo-big:hover { filter: brightness(1.15); }

/* На мобилке бургер не должен закрывать лого */
@media (max-width: 991px) {
  .cab-body .cab-burger { left: 14px !important; top: 14px !important; }
  .cab-body .cab-brand { padding: 10px 20px 18px; }
  .cab-logo-big span { font-size: 23px; letter-spacing: 4px; }
  .cab-logo-big span:last-child { font-size: 20px; letter-spacing: 7px; }
}

/* Sidebar overlay (mobile) */
.cab-layout.sidebar-open::after {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 140;
}

/* ===== Панель «Дилеры за столами» в live-вкладке ===== */
.dealer-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}
.dealer-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dealer-card-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.dealer-card-num { font-size: 15px; font-weight: 700; color: var(--silver-bright); letter-spacing: 0.3px; }
.dealer-card-occup { font-size: 12px; color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.dealer-card-current { font-size: 11px; color: var(--silver-dim); }
.dealer-card-current strong { color: var(--silver); font-weight: 600; }

/* ===== Карточки столов при посадке игрока ===== */
.seat-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 10px;
}
.seat-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.15s;
}
.seat-card:hover { border-color: var(--silver); }
.seat-card.full { opacity: 0.55; }
.seat-card-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.seat-card-num {
  font-size: 18px;
  font-weight: 700;
  color: var(--silver-bright);
  letter-spacing: 0.5px;
}
.seat-card-occup {
  font-size: 13px;
  color: var(--silver-dim);
  font-variant-numeric: tabular-nums;
}
.seat-card-dealer {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--silver);
  padding: 8px 10px;
  border-radius: 6px;
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
  width: 100%;
}
.seat-card-dealer:focus { outline: none; border-color: var(--silver); }
.seat-card-btn {
  background: rgba(94,208,122,0.12);
  border: 1px solid rgba(94,208,122,0.4);
  color: #5ed07a;
  padding: 12px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}
.seat-card-btn:hover:not(:disabled) {
  background: rgba(94,208,122,0.22);
  transform: translateY(-1px);
}
.seat-card-btn:disabled {
  background: rgba(192,192,192,0.06);
  border-color: var(--border);
  color: var(--silver-dim);
  cursor: not-allowed;
}

/* ===== Список ожидающих рассадки в live-вкладке ===== */
.awaiting-list { display: flex; flex-direction: column; gap: 8px; }
.awaiting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 14px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.awaiting-row:hover { border-color: var(--border-strong); }
.awaiting-name { font-weight: 600; color: var(--silver-bright); font-size: 14px; }
.awaiting-contact { font-size: 12px; color: var(--silver-dim); margin-top: 2px; }
.awaiting-actions { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.awaiting-row .btn-sm {
  white-space: nowrap;
  background: rgba(94,208,122,0.1);
  color: #5ed07a;
  border-color: rgba(94,208,122,0.4);
}
.awaiting-row .btn-sm:hover { background: rgba(94,208,122,0.2); border-color: #5ed07a; }
.awaiting-row .btn-sm.danger {
  background: rgba(231,76,76,0.10);
  color: #ff7373;
  border-color: rgba(231,76,76,0.4);
  width: 32px;
  padding: 0;
  font-size: 14px;
}
.awaiting-row .btn-sm.danger:hover {
  background: rgba(231,76,76,0.22);
  border-color: rgba(231,76,76,0.7);
  color: #fff;
}
@media (max-width: 600px) {
  .awaiting-row { flex-direction: column; align-items: stretch; }
  .awaiting-actions { justify-content: space-between; }
  .awaiting-row .btn-sm { flex: 1; }
  .awaiting-row .btn-sm.danger { flex: 0 0 44px; }
}
.awaiting-head {
  transition: opacity 0.12s;
  border-radius: 8px;
}
.awaiting-head:hover { opacity: 0.85; }
.awaiting-chev {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--silver);
  width: 32px; height: 32px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.awaiting-chev:hover { background: var(--surface); border-color: var(--silver-dim); color: var(--silver-bright); }
.awaiting-head.is-collapsed .sub { display: none; }
.awaiting-body[hidden] { display: none; }

/* Аналитика → смены дилеров: разбивка по сменам с assignment'ами */
.dlr-shifts-block { margin-top: 12px; padding: 14px; background: rgba(255,255,255,0.02); border-radius: 8px; border: 1px dashed var(--border); }
.dlr-shifts-block[hidden] { display: none; }
.dlr-shift-list { display: flex; flex-direction: column; gap: 10px; }
.dlr-shift-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
}
.dlr-shift-head {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--border);
  margin-bottom: 10px;
}
.dlr-shift-date {
  font-weight: 700;
  color: var(--silver-bright);
  font-size: 14px;
  letter-spacing: 0.5px;
}
.dlr-shift-stats { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; font-size: 12px; color: var(--silver-dim); }
.dlr-shift-stats b { color: var(--silver); margin-right: 4px; font-weight: 500; }
.dlr-shift-salary { cursor: pointer; color: var(--silver); }
.dlr-shift-salary:hover { color: var(--silver-bright); }

.dlr-asg-list { display: flex; flex-direction: column; gap: 4px; }
.dlr-asg-row {
  display: grid;
  grid-template-columns: 90px 1fr auto auto auto;
  gap: 10px;
  align-items: center;
  padding: 6px 8px;
  font-size: 12px;
  background: rgba(255,255,255,0.02);
  border-radius: 6px;
}
.dlr-asg-row:hover { background: rgba(255,255,255,0.05); }
.dlr-asg-time { color: var(--silver); font-variant-numeric: tabular-nums; font-weight: 600; }
.dlr-asg-place { color: var(--silver-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dlr-asg-cash {
  display: inline-block;
  padding: 1px 6px;
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: rgba(232,199,138,0.15);
  color: #e8c78a;
  border-radius: 3px;
  margin-left: 4px;
}
.dlr-asg-hours { color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.dlr-asg-salary { color: var(--silver-bright); font-weight: 600; font-variant-numeric: tabular-nums; min-width: 70px; text-align: right; }
.dlr-asg-actions { display: flex; gap: 4px; }
.dlr-asg-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--silver-dim);
  width: 26px; height: 26px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 12px;
  font-family: inherit;
  transition: all 0.15s;
  padding: 0;
}
.dlr-asg-btn:hover { color: var(--silver-bright); border-color: var(--silver); }
.dlr-asg-btn.danger:hover { color: #f87171; border-color: rgba(248,113,113,0.4); }
.dlr-asg-locked { color: var(--silver-dim); font-size: 14px; opacity: 0.6; padding: 0 6px; }
@media (max-width: 700px) {
  .dlr-asg-row { grid-template-columns: 1fr auto; row-gap: 4px; }
  .dlr-asg-time { grid-column: 1; }
  .dlr-asg-place { grid-column: 1 / -1; font-size: 11px; }
  .dlr-asg-hours { grid-column: 1; font-size: 11px; }
  .dlr-asg-salary { grid-column: 2; }
  .dlr-asg-actions { grid-column: 2; justify-self: end; }
}

/* Архив турнира — сворачивание секций */
.arch-head {
  transition: opacity 0.12s;
  border-radius: 8px;
}
.arch-head:hover { opacity: 0.85; }
.arch-head.is-collapsed .sub { display: none; }
.arch-chev {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--silver);
  width: 32px; height: 32px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.arch-chev:hover { background: var(--surface); border-color: var(--silver-dim); color: var(--silver-bright); }
.arch-body[hidden] { display: none; }

/* ===== Финансовая статистика (отдельная вкладка) ===== */
.fin-page { display: flex; flex-direction: column; gap: 22px; }
.fin-selector {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 14px;
}
.fin-selector label {
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
  white-space: nowrap;
}
.fin-selector select {
  flex: 1;
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--silver-bright);
  padding: 8px 12px;
  border-radius: 6px;
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
}
.fin-selector select:focus { outline: none; border-color: var(--silver); }
.fin-tour-head {
  background: linear-gradient(135deg, rgba(232,199,138,0.06), rgba(192,192,192,0.02));
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px 20px;
}
.fin-tour-title { font-size: 18px; font-weight: 700; color: var(--silver-bright); }
.fin-tour-sub { font-size: 13px; color: var(--silver-dim); margin-top: 4px; }

/* ===== Аналитика ===== */
.an-page { display: flex; flex-direction: column; gap: 30px; }
.an-section { display: flex; flex-direction: column; gap: 14px; }
.an-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--silver-bright);
  letter-spacing: 0.2px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
  margin: 0;
}
.an-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media (max-width: 900px) { .an-cols { grid-template-columns: 1fr; } }
.fin-cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 20px;
}
.fin-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px 20px;
}
.fin-panel-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--silver-bright);
  margin-bottom: 12px;
  letter-spacing: 0.3px;
}
.fin-debtor-rank { width: 28px; color: var(--silver-dim); font-weight: 700; font-variant-numeric: tabular-nums; text-align: center; }
.pay-list-wrap { max-height: 520px; overflow-y: auto; }
.pay-all-table { font-size: 12px; }
.pay-all-table th, .pay-all-table td { padding: 6px 8px; }
.pay-edit-row:hover { background: rgba(192,192,192,0.04); }
.fin-debtor-name { font-weight: 600; color: var(--silver-bright); font-size: 14px; }
.fin-debtor-contact { font-size: 12px; color: var(--silver-dim); margin-top: 2px; }
.fin-debtors-table .fin-debtor-row { cursor: pointer; }
.fin-debtors-table .fin-debtor-row:hover { background: rgba(192,192,192,0.04); }
.fin-debtor-panel > td { padding: 0; background: var(--bg); }
.fin-debtor-panel > td > * { padding: 16px 18px; }

.fin-action-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.btn-primary {
  background: var(--silver);
  color: #000;
  border: 1px solid var(--silver);
  padding: 11px 22px;
  border-radius: 6px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-primary:hover { background: #fff; }

/* Modal для accept-any */
.cab-modal-wrap {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 60px 20px 20px;
  overflow-y: auto;
}
.cab-modal-wrap.is-open { display: flex; }
.cab-modal-wrap .cab-modal {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px 28px 22px;
  max-width: 700px;
  width: 100%;
  position: relative;
  color: var(--silver-bright);
}
.cab-modal-wrap h3 { margin: 0 0 18px; font-size: 18px; }
.fin-accept-body { display: flex; flex-direction: column; gap: 14px; }
#fin-accept-search {
  width: 100%;
  padding: 12px 16px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
}
#fin-accept-search:focus { outline: none; border-color: var(--silver); }
.fin-accept-results { display: flex; flex-direction: column; gap: 4px; max-height: 280px; overflow-y: auto; }
.fin-accept-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 10px 14px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  color: var(--silver-bright);
  transition: background 0.1s;
}
.fin-accept-item:hover { background: rgba(192,192,192,0.08); border-color: var(--silver); }
.fin-accept-item-name { font-weight: 600; font-size: 14px; }
.fin-accept-item-meta { font-size: 12px; color: var(--silver-dim); }
.fin-accept-empty, .fin-accept-loading { color: var(--silver-dim); padding: 14px; text-align: center; font-size: 13px; }
.fin-accept-selected { margin-top: 8px; }

.cab-nav-badge:empty { display: none; }
@media (max-width: 900px) { .fin-cols { grid-template-columns: 1fr; } }
.fin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.fin-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
}
.fin-card-lbl {
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 4px;
}
.fin-card-val { font-size: 20px; font-weight: 700; color: var(--silver-bright); font-variant-numeric: tabular-nums; }
.fin-card-val.fin-green { color: #8de09e; }
.fin-card-val.fin-red { color: #ff8686; }
.fin-card-sub { font-size: 11px; color: var(--silver-dim); margin-top: 2px; }
.fin-debtors {
  padding: 12px 14px;
  background: rgba(232,88,88,0.05);
  border: 1px solid rgba(232,88,88,0.2);
  border-radius: 8px;
}
.fin-debtors-title {
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #ff8686;
  font-weight: 600;
  margin-bottom: 8px;
}
.fin-debtor {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  font-size: 13px;
}
.fin-debtor-name { color: var(--silver-bright); }
.fin-debtor-amount { color: #ff8686; font-weight: 600; font-variant-numeric: tabular-nums; }
.fin-debtor-more { font-size: 12px; color: var(--silver-dim); margin-top: 6px; font-style: italic; }

@media (max-width: 600px) {
  .fin-card-val { font-size: 17px; }
  .fin-stats-head { padding: 12px 14px; }
  .fin-stats-body { padding: 0 14px 14px; }
}

/* ===== Баланс игрока в списке ===== */
.user-balance {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2px;
  vertical-align: middle;
  white-space: nowrap;
}
.user-balance.debt { background: rgba(232,88,88,0.14); color: #ff8686; border: 1px solid rgba(232,88,88,0.3); }
.user-balance.credit { background: rgba(94,208,122,0.12); color: #8de09e; border: 1px solid rgba(94,208,122,0.3); }
.user-balance.ok { background: rgba(192,192,192,0.08); color: var(--silver-dim); border: 1px solid var(--border); }

/* ===== Payments section ===== */
.pay-section {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.pay-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  gap: 14px;
  flex-wrap: wrap;
}
.pay-summary {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.pay-sum-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pay-sum-item strong { font-size: 16px; color: var(--silver-bright); }
.pay-sum-lbl {
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--silver-dim);
}
.pay-sum-debt.pay-debt strong { color: #ff8686; }
.pay-sum-debt.pay-credit strong { color: #8de09e; }
.pay-sum-debt.pay-ok strong { color: var(--silver-dim); }

.pay-form {
  display: flex;
  gap: 8px;
  align-items: stretch;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.pay-form input[type="number"] {
  width: 140px;
  padding: 10px 12px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--silver-bright);
  font-family: inherit;
  font-size: 14px;
}
.pay-form input[type="text"] {
  flex: 1;
  min-width: 180px;
  padding: 10px 12px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--silver-bright);
  font-family: inherit;
  font-size: 14px;
}
.pay-form input:focus { outline: none; border-color: var(--silver); }
.pay-form button { padding: 10px 18px; white-space: nowrap; }

.pay-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.pay-col-title {
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-bottom: 8px;
  font-weight: 600;
}
.pay-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.pay-table th {
  text-align: left;
  padding: 6px 8px;
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--silver-dim);
  border-bottom: 1px solid var(--border);
  font-weight: 600;
}
.pay-table td {
  padding: 8px;
  border-bottom: 1px solid rgba(192,192,192,0.05);
}
.pay-table tr:last-child td { border-bottom: none; }
.pay-row-cancelled td { opacity: 0.4; text-decoration: line-through; }
.pay-amount-charge { color: #ff8686; font-weight: 600; white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.pay-amount-paid { color: #8de09e; font-weight: 600; white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.pay-kind {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: rgba(192,192,192,0.08);
  color: var(--silver-dim);
  border: 1px solid var(--border);
  margin-right: 6px;
}
.pay-kind-buyin { color: #e8c78a; border-color: rgba(232,199,138,0.3); }
.pay-kind-rebuy { color: #8dc7e0; border-color: rgba(141,199,224,0.3); }
.pay-kind-addon { color: #c78ae0; border-color: rgba(199,138,224,0.3); }
.pay-kind-order { color: #ffb450; border-color: rgba(255,180,80,0.4); }
.pay-cancelled-tag { font-size: 10px; color: var(--silver-dim); text-transform: uppercase; letter-spacing: 0.5px; }
.pay-override-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  font-size: 9px;
  color: #e8c78a;
  background: rgba(232,199,138,0.1);
  border: 1px solid rgba(232,199,138,0.35);
  border-radius: 3px;
  cursor: help;
}
.pay-empty { padding: 14px; text-align: center; color: var(--silver-dim); font-size: 13px; background: var(--surface2); border-radius: 6px; }
.pay-err { padding: 10px; color: #ff8686; font-size: 13px; }

.btn-xs {
  padding: 4px 8px;
  font-size: 11px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--silver-dim);
  border-radius: 4px;
  cursor: pointer;
  font-family: inherit;
}
.btn-xs:hover { color: #ff8686; border-color: rgba(232,88,88,0.4); }
.btn-ghost { background: transparent; }

@media (max-width: 768px) {
  .pay-grid { grid-template-columns: 1fr; }
  .pay-form { flex-direction: column; }
  .pay-form input[type="number"] { width: 100%; }
  .pay-form button { width: 100%; }
  .pay-table { font-size: 12px; }
  .pay-table th, .pay-table td { padding: 6px 5px; }
  .pay-summary { gap: 12px; }
  .pay-sum-item strong { font-size: 14px; }
}

/* ===== Карточка турнира — две кнопки в ряд ===== */
.t-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.t-actions .btn { flex: 1 1 auto; min-width: 0; }
.btn-detail {
    background: transparent;
    border: 1px solid rgba(192,192,192,0.25);
    color: #C0C0C0;
    padding: 10px 16px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.15s;
}
.btn-detail:hover { border-color: #C0C0C0; color: #fff; background: rgba(192,192,192,0.06); }

/* ===== Модалка деталей турнира ===== */
.lk-detail-backdrop {
    position: fixed; inset: 0; background: rgba(0,0,0,0.8); backdrop-filter: blur(4px);
    z-index: 99998; display: none; align-items: flex-start; justify-content: center;
    padding: 30px 16px; overflow-y: auto;
}
.lk-detail-backdrop.is-open { display: flex; }
.lk-detail {
    background: #0d0d0d; border: 1px solid rgba(192,192,192,0.15); border-radius: 12px;
    max-width: 720px; width: 100%; padding: 32px 28px; color: #f0f0f0; position: relative;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}
.lk-detail-close {
    position: absolute; top: 14px; right: 18px; background: transparent; border: none;
    color: #888; font-size: 28px; cursor: pointer; line-height: 1; padding: 4px 8px;
    transition: color 0.15s;
}
.lk-detail-close:hover { color: #fff; }
.lk-detail-loading, .lk-detail-err { padding: 40px; text-align: center; color: var(--silver-dim); }
.lk-detail-err { color: #ff6b6b; }

.lk-d-head { margin-bottom: 18px; padding-right: 30px; }
.lk-d-eyebrow { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); margin-bottom: 6px; }
.lk-d-title { font-size: 28px; margin: 0 0 12px; color: #fff; font-weight: 700; letter-spacing: -0.5px; }
.lk-d-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--silver); }
.lk-d-meta-item { display: inline-flex; align-items: center; gap: 6px; }
.lk-d-meta-item svg { flex-shrink: 0; opacity: 0.85; }

.lk-d-desc {
    background: rgba(255,255,255,0.03); border-left: 3px solid var(--silver);
    padding: 14px 18px; border-radius: 4px; margin: 18px 0; font-size: 14px; line-height: 1.6; color: #ddd;
}
.lk-d-action { margin: 22px 0; }
.lk-d-action .btn { width: 100%; padding: 14px; font-size: 14px; }
.lk-d-finished {
    padding: 14px; text-align: center; color: var(--silver-dim); font-size: 13px;
    letter-spacing: 1.5px; text-transform: uppercase; background: rgba(255,255,255,0.03); border-radius: 6px;
}

.lk-d-h3 {
    font-size: 14px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim);
    margin: 26px 0 12px; font-weight: 600; border-bottom: 1px solid rgba(192,192,192,0.1); padding-bottom: 8px;
}
.lk-d-buyins { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.lk-d-buyins li { background: rgba(255,255,255,0.04); padding: 10px 14px; border-radius: 6px; font-size: 13px; }
.lk-d-buyins li.addon { background: rgba(192,160,32,0.08); border: 1px solid rgba(192,160,32,0.2); }
.lk-d-buyins strong { color: #fff; }

.lk-d-levels { width: 100%; border-collapse: collapse; font-size: 13px; }
.lk-d-levels th {
    text-align: left; padding: 10px 12px; color: var(--silver-dim);
    font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600;
    border-bottom: 1px solid rgba(192,192,192,0.12);
}
.lk-d-levels td { padding: 10px 12px; border-bottom: 1px solid rgba(192,192,192,0.05); color: #e8e8e8; }
.lk-d-levels tr.break td, .lk-d-levels tr.addon td { color: #ffb84d; font-weight: 600; }
.lk-d-levels tr.break { background: rgba(255,184,77,0.04); }
.lk-d-levels tr.addon { background: rgba(255,184,77,0.08); }

.lk-d-signups { list-style: decimal; padding: 0 0 0 28px; columns: 2; gap: 12px; }
@media (max-width: 600px) { .lk-d-signups { columns: 1; } }
.lk-d-signups li { padding: 4px 0; font-size: 14px; color: #e0e0e0; break-inside: avoid; }
.lk-d-empty { color: var(--silver-dim); font-size: 13px; padding: 14px; text-align: center; background: rgba(255,255,255,0.03); border-radius: 6px; }

@media (max-width: 600px) {
    .lk-detail { padding: 24px 18px; }
    .lk-d-title { font-size: 22px; }
    .lk-d-meta { gap: 10px; font-size: 12px; }
    .lk-d-h3 { font-size: 12px; margin: 22px 0 10px; }
}

/* ===== Упрощённая таблица юзеров ===== */
.users-table--minimal .user-row {
    display: grid;
    grid-template-columns: 40px 1.5fr 1fr 1fr 130px;
    gap: 14px;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
}
.users-table--minimal .user-row.head {
    background: rgba(255,255,255,0.02);
    color: var(--silver-dim);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
}
.users-table--minimal .user-row:not(.head):hover { background: rgba(255,255,255,0.02); }
.user-tg-link { color: #229ED9; text-decoration: none; font-size: 13px; }
.user-tg-link:hover { text-decoration: underline; }
.user-tg-id { color: var(--silver-dim); font-size: 12px; font-family: ui-monospace, monospace; }
.user-edit { text-align: right; }

@media (max-width: 768px) {
    .users-table--minimal .user-row {
        grid-template-columns: 28px minmax(0, 1fr) 38px;
        gap: 8px; padding: 10px 10px;
    }
    .users-table--minimal .user-row > .user-tg,
    .users-table--minimal .user-row.head > div:nth-child(4),
    .users-table--minimal .user-row > .user-phone,
    .users-table--minimal .user-row.head > div:nth-child(3) { display: none; }
    .users-table--minimal .user-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
    .users-table--minimal .user-main::after {
        content: attr(data-phone);
        color: var(--silver-dim); font-size: 12px; opacity: 0.85;
    }
    .users-table--minimal .user-name { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .users-table--minimal .user-edit .btn-sm {
        padding: 6px 0; width: 34px; font-size: 0;
        background: transparent; border: 1px solid rgba(192,192,192,0.25); border-radius: 6px;
    }
    .users-table--minimal .user-edit .btn-sm::before {
        content: '✎'; font-size: 14px; color: #c0c0c0;
    }
}

/* ===== Модалка редактирования юзера ===== */
.edit-user-backdrop {
    position: fixed; inset: 0; background: rgba(0,0,0,0.8); backdrop-filter: blur(4px);
    z-index: 99998; display: none; align-items: center; justify-content: center; padding: 20px;
}
.edit-user-backdrop.is-open { display: flex; }
.edit-user {
    background: #0d0d0d; border: 1px solid rgba(192,192,192,0.15); border-radius: 10px;
    max-width: 420px; width: 100%; padding: 28px; color: #f0f0f0; position: relative;
}
.edit-user h3 { margin: 0 0 18px; font-size: 18px; color: #fff; }
.edit-user-close {
    position: absolute; top: 12px; right: 16px; background: transparent; border: none;
    color: #888; font-size: 24px; cursor: pointer; line-height: 1;
}
.edit-user-close:hover { color: #fff; }
.edit-user-form { display: flex; flex-direction: column; gap: 14px; }
.edit-user-form label {
    display: flex; flex-direction: column; gap: 6px;
    font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--silver-dim);
}
.edit-user-form input {
    background: #1a1a1a; border: 1px solid rgba(192,192,192,0.15); padding: 11px 14px;
    color: #fff; font-family: inherit; font-size: 14px; border-radius: 4px;
}
.edit-user-form input:focus { outline: none; border-color: var(--silver); }
.edit-user-tg {
    padding: 10px 14px; background: rgba(34,158,217,0.08);
    border: 1px solid rgba(34,158,217,0.2); border-radius: 4px;
    font-size: 13px; color: #80c8e8;
}
.edit-user-actions { display: flex; gap: 10px; margin-top: 4px; }
.edit-user-actions button {
    flex: 1; padding: 12px; border: none; border-radius: 4px; cursor: pointer;
    font-family: inherit; font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
}
.edit-user-actions button[type="submit"] { background: var(--silver); color: #0a0a0a; }
.edit-user-actions button[type="submit"]:hover { background: #fff; }
.edit-user-cancel {
    background: transparent !important; color: var(--silver-dim) !important;
    border: 1px solid rgba(192,192,192,0.15) !important;
}
.edit-user-cancel:hover { color: #fff !important; border-color: var(--silver) !important; }
.edit-user-err {
    color: #ff6b6b; font-size: 13px; padding: 8px 0; min-height: 18px;
}

/* ===== Любимая рука — карты в premium-стиле (серебро) ===== */
.pcard {
    display: inline-block;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    font-family: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 50%, #1a1a1a 100%);
    box-shadow:
        0 8px 28px rgba(0, 0, 0, 0.7),
        inset 0 0 0 1px rgba(192, 192, 192, 0.45),
        inset 0 0 0 2px rgba(192, 192, 192, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.pcard::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(120% 100% at 50% 0%, rgba(192, 192, 192, 0.10), transparent 55%),
        radial-gradient(80% 60% at 50% 110%, rgba(192, 192, 192, 0.06), transparent 60%);
    pointer-events: none;
}
.pcard-lg { width: 90px; height: 130px; }
.pcard-md { width: 64px; height: 92px; }
.pcard-sm { width: 42px; height: 60px; }

.pcard-corner {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    z-index: 2;
}
.pcard-corner.tl { top: 7px; left: 9px; }
.pcard-corner.br { bottom: 7px; right: 9px; transform: rotate(180deg); }
.pcard-corner .r {
    font-weight: 700;
    font-size: 22px;
    background: linear-gradient(180deg, #f0f0f0 0%, #c0c0c0 50%, #888 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    letter-spacing: -0.5px;
}
.pcard-corner .s { font-size: 13px; margin-top: 1px; }
.pcard-md .pcard-corner .r { font-size: 16px; }
.pcard-md .pcard-corner .s { font-size: 11px; }
.pcard-sm .pcard-corner .r { font-size: 11px; }
.pcard-sm .pcard-corner .s { font-size: 9px; }

.pcard-center {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 48px;
    z-index: 1;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
}
.pcard-md .pcard-center { font-size: 32px; }
.pcard-sm .pcard-center { font-size: 20px; }

.pcard.red .pcard-corner .s,
.pcard.red .pcard-center { color: #e2484e; }
.pcard.black .pcard-corner .s,
.pcard.black .pcard-center {
    background: linear-gradient(180deg, #e8e8e8, #a8a8a8);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ===== Блок «Любимая рука» в профиле ===== */
.profile-hand-section {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid rgba(192, 192, 192, 0.1);
}
.profile-hand-label {
    display: block;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    margin-bottom: 14px;
}
.profile-hand-view {
    display: flex;
    gap: 14px;
    align-items: center;
}
.profile-hand-empty {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 18px;
    border: 1px dashed rgba(192, 192, 192, 0.18);
    border-radius: 10px;
    flex-wrap: wrap;
}
.profile-hand-empty-txt { flex: 1; min-width: 180px; }
.profile-hand-empty-title {
    font-size: 14px;
    color: var(--silver-bright);
    font-weight: 600;
    margin-bottom: 4px;
}
.profile-hand-empty-sub { font-size: 12px; color: var(--silver-dim); }

.pcard-slot-empty {
    width: 60px; height: 86px;
    border: 1px dashed rgba(192, 192, 192, 0.25);
    border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    color: var(--silver-dim);
    font-size: 22px;
    background: rgba(192, 192, 192, 0.02);
}

/* ===== Edit-форма: picker карт ===== */
.profile-hand-edit {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(192, 192, 192, 0.1);
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.profile-hand-edit-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.pcard-slot-row {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 14px;
}
.pcard-slot-card {
    flex-shrink: 0;
    background: linear-gradient(180deg, rgba(192, 192, 192, 0.04), rgba(0, 0, 0, 0));
    border: 1px solid rgba(192, 192, 192, 0.18);
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.pcard-slot-label {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver);
}
.pcard-slot-controls {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.pcard-l {
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver);
}
.pcard-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pcard-rank-btn,
.pcard-suit-btn {
    background: transparent;
    border: 1px solid rgba(192, 192, 192, 0.2);
    border-radius: 6px;
    color: var(--silver);
    cursor: pointer;
    font-family: inherit;
    transition: all 0.2s;
}
.pcard-rank-btn { padding: 7px 11px; font-size: 13px; font-weight: 600; min-width: 36px; }
.pcard-suit-btn { padding: 6px 10px; font-size: 16px; min-width: 36px; line-height: 1; }
.pcard-rank-btn:hover,
.pcard-suit-btn:hover {
    border-color: var(--silver);
    color: var(--silver-bright);
}
.pcard-rank-btn.active,
.pcard-suit-btn.active {
    background: linear-gradient(180deg, #f0f0f0, #888);
    color: #0a0a0a;
    border-color: var(--silver-bright);
    box-shadow: 0 0 14px rgba(192, 192, 192, 0.35);
}
.pcard-suit-btn.red { color: #e2484e; }
.pcard-suit-btn.red.active {
    background: #e2484e;
    color: #fff;
    border-color: #e2484e;
    box-shadow: 0 0 14px rgba(226, 72, 78, 0.4);
}
.pcard-clear-btn {
    background: transparent;
    color: var(--silver-dim);
    border: 1px solid rgba(192, 192, 192, 0.18);
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    transition: all 0.2s;
}
.pcard-clear-btn:hover { color: var(--silver-bright); border-color: var(--silver); }

@media (max-width: 600px) {
    .pcard-slot-row { flex-direction: column; gap: 10px; }
    .pcard-rank-btn { padding: 6px 9px; font-size: 12px; min-width: 32px; }
}

/* ===== Боксы для выбора места при посадке ===== */
.seat-card .seat-boxes {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
    margin-top: 10px;
}
@media (max-width: 540px) {
    .seat-card .seat-boxes { grid-template-columns: repeat(4, 1fr); }
}
.seat-box {
    display: flex; align-items: center; justify-content: center;
    min-height: 48px;
    padding: 8px 6px;
    border-radius: 8px;
    border: 1px solid;
    font-family: inherit;
    text-align: center;
    transition: all 0.18s;
}
.seat-box-num {
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}
.seat-box.occupied {
    background: rgba(220, 53, 69, 0.12);
    border-color: rgba(220, 53, 69, 0.45);
    color: #ff6b6b;
    cursor: not-allowed;
}
.seat-box.empty {
    background: rgba(94, 208, 122, 0.12);
    border-color: rgba(94, 208, 122, 0.45);
    color: #7ed999;
    cursor: pointer;
}
.seat-box.empty:hover {
    background: rgba(94, 208, 122, 0.22);
    border-color: rgba(94, 208, 122, 0.7);
    color: #b6f0c1;
}
.seat-box.empty:active { transform: scale(0.94); }

/* ===== Счёт игрока (вкладка Bills) ===== */
.cab-nav-badge.bills {
    background: rgba(220, 53, 69, 0.18);
    color: #ff8a8a;
    border: 1px solid rgba(220, 53, 69, 0.3);
    font-variant-numeric: tabular-nums;
}
.cab-nav-badge.bills[data-count="0"] { display: none; }

.bills-total-bar {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px;
    padding: 22px 26px;
    border-radius: 14px;
    margin-bottom: 22px;
    border: 1px solid;
}
.bills-total-bar.debt {
    background: linear-gradient(180deg, rgba(220, 53, 69, 0.08), rgba(220, 53, 69, 0.02));
    border-color: rgba(220, 53, 69, 0.32);
}
.bills-total-bar.zero {
    background: linear-gradient(180deg, rgba(94, 208, 122, 0.08), rgba(94, 208, 122, 0.02));
    border-color: rgba(94, 208, 122, 0.28);
}
.bills-total-lab {
    font-size: 11px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.bills-total-bar.debt .bills-total-lab { color: #ff8a8a; }
.bills-total-bar.zero .bills-total-lab { color: #7ed999; }
.bills-total-val {
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #fff;
    font-variant-numeric: tabular-nums;
}
.bills-total-bar.debt .bills-total-val { color: #ff8a8a; }
.bills-total-bar.zero .bills-total-val { color: #7ed999; }
.bills-total-sub {
    margin-left: auto;
    font-size: 12px;
    color: var(--silver-dim);
    font-variant-numeric: tabular-nums;
}

.bills-tournament {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(192, 192, 192, 0.1);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 12px;
}
.bills-tournament-other {
    border-style: dashed;
    border-color: rgba(192, 192, 192, 0.18);
}
.bills-tournament-head {
    font-size: 13px;
    color: var(--silver);
    margin-bottom: 12px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.bills-charge-row,
.bills-payment-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed rgba(192, 192, 192, 0.06);
    font-size: 14px;
}
.bills-charge-row:last-of-type,
.bills-payment-row:last-of-type { border-bottom: none; }
.bills-charge-row.cancelled,
.bills-payment-row.cancelled {
    opacity: 0.4;
    text-decoration: line-through;
}
.bills-row-lab {
    color: #ddd;
    flex: 1;
    min-width: 0;
}
.bills-row-meta {
    color: var(--silver-dim);
    font-size: 12px;
    margin-left: 4px;
}
.bills-row-amt {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    flex-shrink: 0;
}
.bills-charge-row .bills-row-amt { color: #ffb84d; }
.bills-payment-row .bills-row-amt { color: #7ed999; }

.bills-tournament-foot {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(192, 192, 192, 0.12);
    font-size: 13px;
}
.bills-foot-lab {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--silver-dim);
}
.bills-tournament-foot.has-debt .bills-foot-lab { color: #ff8a8a; }
.bills-tournament-foot.no-debt .bills-foot-lab { color: #7ed999; }
.bills-foot-val {
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    font-variant-numeric: tabular-nums;
}
.bills-tournament-foot.has-debt .bills-foot-val { color: #ff8a8a; }
.bills-tournament-foot.no-debt .bills-foot-val { color: #7ed999; }

.bills-empty {
    background: rgba(255, 255, 255, 0.02);
    border: 1px dashed rgba(192, 192, 192, 0.15);
    border-radius: 12px;
    padding: 40px 28px;
    text-align: center;
}
.bills-empty h3 {
    font-size: 18px;
    color: var(--silver-bright);
    font-weight: 600;
    margin-bottom: 8px;
}
.bills-empty p {
    color: var(--silver-dim);
    font-size: 13px;
}

@media (max-width: 600px) {
    .bills-total-bar { padding: 18px 18px; }
    .bills-total-val { font-size: 26px; }
    .bills-total-sub { width: 100%; margin-left: 0; }
    .bills-tournament { padding: 14px 14px; }
}

/* ===== Floating-glass bottom-nav для LK игрока (только ≤768px) ===== */
.bnav { display: none; }
.sheet, .sheet-backdrop { display: none; }

@media (max-width: 768px) {
    /* Скрываем sidebar+burger только в LK игрока (body.lk-body) */
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .cab-sidebar { display: none !important; }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .cab-burger { display: none !important; }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .cab-main { padding-bottom: 110px !important; }

    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav {
        display: block;
        position: fixed; left: 50%; bottom: 18px;
        transform: translateX(-50%);
        z-index: 50;
        width: calc(100% - 28px); max-width: 440px;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-inner {
        display: grid; grid-template-columns: repeat(5, 1fr);
        background: rgba(20, 20, 20, 0.55);
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 24px;
        padding: 8px;
        backdrop-filter: blur(24px) saturate(160%);
        -webkit-backdrop-filter: blur(24px) saturate(160%);
        box-shadow:
            0 16px 40px rgba(0, 0, 0, 0.6),
            0 2px 6px rgba(0, 0, 0, 0.4),
            inset 0 1px 0 rgba(255, 255, 255, 0.07);
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn {
        position: relative;
        display: flex !important;
        flex-direction: column; align-items: center; gap: 4px;
        background: transparent; border: none; cursor: pointer;
        color: var(--silver-dim);
        padding: 10px 6px; border-radius: 16px;
        text-transform: none; letter-spacing: 0;
        transition:
            color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
            background-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn svg {
        width: 22px; height: 22px;
        transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), filter 0.4s ease;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn .bnav-lbl {
        font-size: 10.5px; font-weight: 500; letter-spacing: 0.2px;
        opacity: 0.7;
        transition: opacity 0.4s ease;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn:active { transform: scale(0.95); }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn.is-active {
        color: var(--silver-bright);
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn.is-active::after {
        content: ''; position: absolute;
        bottom: 4px; left: 50%;
        width: 22px; height: 3px; border-radius: 2px;
        background: linear-gradient(90deg, #e8e8e8, #a8a8a8);
        box-shadow: 0 0 12px rgba(232, 232, 232, 0.55);
        transform: translateX(-50%);
        animation: bnavGlowFade 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn.is-active .bnav-lbl { opacity: 1; }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn.is-active svg {
        transform: translateY(-2px);
        filter: drop-shadow(0 2px 6px rgba(232, 232, 232, 0.3));
    }

    /* Кнопка «Ещё» — три точки вместо svg */
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-more .bnav-dots {
        display: flex; gap: 3px; align-items: center; height: 22px;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-more .bnav-dot {
        width: 4px; height: 4px; border-radius: 50%;
        background: currentColor;
    }

    /* Прячем родные cab-nav-badge на bnav-btn (бейдж #badge-all и т.п. сидят в исходных кнопках сайдбара,
       а в bnav их нет — но если вдруг где-то остался badge внутри cab-nav-item.bnav-btn, скроем) */
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn .cab-nav-badge { display: none; }

    /* ===== Sheet (шторка снизу) ===== */
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-backdrop {
        display: block;
        position: fixed; inset: 0; z-index: 60;
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        opacity: 0; pointer-events: none;
        transition: opacity 0.35s ease;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-backdrop.is-open {
        opacity: 1; pointer-events: auto;
    }

    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet {
        display: flex;
        flex-direction: column;
        position: fixed; left: 8px; right: 8px; bottom: 0;
        z-index: 61;
        background: rgba(20, 20, 20, 0.78);
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-bottom: none;
        border-radius: 24px 24px 0 0;
        padding: 12px 14px 28px;
        backdrop-filter: blur(28px) saturate(170%);
        -webkit-backdrop-filter: blur(28px) saturate(170%);
        box-shadow:
            0 -16px 40px rgba(0, 0, 0, 0.6),
            0 -2px 6px rgba(0, 0, 0, 0.4),
            inset 0 1px 0 rgba(255, 255, 255, 0.08);
        transform: translateY(100%);
        transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
        max-width: 520px;
        margin: 0 auto;
        max-height: 88vh;
        overflow: hidden;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet.is-open { transform: translateY(0); }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-handle {
        width: 44px; height: 5px; border-radius: 3px;
        background: rgba(255, 255, 255, 0.18);
        margin: 0 auto 14px;
        flex-shrink: 0;
        cursor: pointer;
        position: relative;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-handle::before {
        content: ''; position: absolute; inset: -14px -40px;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-title {
        font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase;
        color: var(--silver-dim); font-weight: 600;
        text-align: center; margin-bottom: 14px;
        flex-shrink: 0;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-list {
        display: flex; flex-direction: column; gap: 2px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        flex: 1 1 auto;
        min-height: 0;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item {
        display: flex; align-items: center; gap: 14px;
        padding: 14px;
        background: rgba(255, 255, 255, 0.02);
        border: 1px solid transparent;
        border-radius: 14px;
        color: var(--silver-bright);
        font-size: 15px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1);
        text-align: left;
        font-family: inherit;
        text-transform: none; letter-spacing: 0;
        width: 100%;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item svg {
        width: 22px; height: 22px;
        color: var(--silver);
        flex-shrink: 0;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-arrow {
        margin-left: auto; color: var(--silver-dim); font-size: 18px;
        opacity: 0.5;
        transition: opacity 0.25s, transform 0.25s;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item:hover {
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.1);
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item:hover .sheet-arrow {
        opacity: 1; transform: translateX(3px);
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item.danger { color: #ff8a8a; }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item.danger svg { color: #ff8a8a; }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item.danger:hover {
        background: rgba(220, 53, 69, 0.08);
        border-color: rgba(220, 53, 69, 0.25);
    }

    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-badge {
        margin-left: auto;
        background: rgba(220, 53, 69, 0.18);
        color: #ff8a8a;
        border: 1px solid rgba(220, 53, 69, 0.3);
        padding: 3px 10px;
        border-radius: 999px;
        font-size: 11px;
        font-weight: 700;
    }
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-badge[data-count="0"] { display: none; }
}

@keyframes bnavGlowFade {
    0% { width: 0; opacity: 0; }
    100% { width: 22px; opacity: 1; }
}

/* ===== Анимация плавного перехода между вкладками в LK ===== */
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .cab-tab.is-active {
    animation: lkTabFade 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes lkTabFade {
    0%   { opacity: 0; transform: translateY(8px); }
    100% { opacity: 1; transform: translateY(0); }
}
/* Уважение к prefers-reduced-motion — пользователи с пониженной анимацией не получают переход */
@media (prefers-reduced-motion: reduce) {
    :is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .cab-tab.is-active { animation: none; }
}

/* ===== Упрощённая «Счёт» — только текущие долги ===== */
.bills-tournament-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
}
.bills-tournament .bills-tournament-head {
    margin-bottom: 0;
    font-weight: 600;
    color: var(--silver-bright);
    flex: 1;
    min-width: 0;
}
.bills-tournament-debt {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: 16px;
    color: #ff8a8a;
    flex-shrink: 0;
}
/* Расшифровка начислений в карточке турнира с долгом */
.bills-tournament .bills-charges {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed rgba(192, 192, 192, 0.12);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bills-tournament .bills-charge-row {
    padding: 4px 0;
    border-bottom: none;
    font-size: 13px;
    color: var(--silver-dim);
}
.bills-tournament .bills-charge-lab {
    flex: 1;
    min-width: 0;
}
.bills-tournament .bills-charge-val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: #ddd;
    flex-shrink: 0;
}
.bills-tournament .bills-charge-row.paid .bills-charge-lab { color: #7ed999; }
.bills-tournament .bills-charge-row.paid .bills-charge-val { color: #7ed999; }

/* На пустом счёте (только большая плашка 0 ₽) — центрируем число и убираем подпись */
.bills-total-bar.zero { justify-content: center; }
.bills-total-bar.zero .bills-total-val { font-size: 38px; }

/* Убираем синий tap-flash на мобиле во всех кабинетах (lk/adm/dlr) */
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body),
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) * { -webkit-tap-highlight-color: transparent; }
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) button:focus,
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) button:focus-visible,
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn:focus,
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .sheet-item:focus { outline: none; }

/* ===== Рейтинг (новая вкладка + live-блок на «Мой стол») ===== */
.rating-sum-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 18px;
}
.rating-sum-cell {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(192, 192, 192, 0.12);
    border-radius: 14px;
    padding: 14px 16px;
}
.rating-sum-lab {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin-bottom: 6px;
}
.rating-sum-val {
    font-size: 28px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
}
.rating-sum-sub { font-size: 14px; color: var(--silver-dim); font-weight: 500; }
.rating-sum-empty { font-size: 14px; color: var(--silver-dim); font-weight: 500; }

.rating-rules {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(192, 192, 192, 0.12);
    border-radius: 14px;
    margin-bottom: 18px;
    overflow: hidden;
}
.rating-rules > summary {
    list-style: none;
    cursor: pointer;
    padding: 14px 18px;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-bright);
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    user-select: none;
}
.rating-rules > summary::-webkit-details-marker { display: none; }
.rating-rules > summary::after {
    content: '＋';
    font-size: 18px;
    color: var(--silver-dim);
    transition: transform 0.2s ease;
    line-height: 1;
}
.rating-rules[open] > summary::after { transform: rotate(45deg); }
.rating-rules-body { padding: 4px 18px 18px; }
.rating-rules-intro {
    color: var(--silver);
    font-size: 13.5px;
    line-height: 1.55;
    margin-bottom: 14px;
}
.rating-rules-intro b { color: var(--silver-bright); font-weight: 600; }
.rating-rules-block { margin-bottom: 14px; }
.rating-rules-block:last-child { margin-bottom: 0; }
.rating-rules-block-title {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin-bottom: 6px;
}
.rating-rules-block-body {
    color: var(--silver-bright);
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    line-height: 1.55;
}
.rating-rules-places {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
}
.rating-rules-place {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.08);
    border-radius: 8px;
    padding: 8px 6px;
    text-align: center;
}
.rating-rules-place-num {
    color: var(--silver-dim);
    font-size: 11px;
    font-weight: 600;
}
.rating-rules-place-pct {
    color: var(--silver-bright);
    font-size: 14px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.rating-rules-hh {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 14px;
}
.rating-rules-hh-key { color: var(--silver); }
.rating-rules-hh-val { color: var(--silver-bright); font-weight: 600; }
@media (max-width: 540px) {
    .rating-rules-places { grid-template-columns: repeat(5, 1fr); gap: 4px; }
    .rating-rules-place { padding: 6px 2px; }
    .rating-rules-place-num { font-size: 10px; }
    .rating-rules-place-pct { font-size: 12px; }
}

.rating-history { display: flex; flex-direction: column; gap: 10px; }
.rating-row {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(192, 192, 192, 0.1);
    border-radius: 12px;
    padding: 14px 16px;
}
.rating-row-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px dashed rgba(192, 192, 192, 0.08);
}
.rating-row-date { font-weight: 600; color: var(--silver-bright); font-size: 14px; }
.rating-row-format { color: var(--silver); font-size: 13px; flex: 1; min-width: 0; }
.rating-row-place {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: #ffd58a;
    font-size: 13px;
}
.rating-row-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
    gap: 8px;
}
.rating-row-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rating-row-lab {
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.rating-row-val {
    font-size: 16px;
    font-weight: 600;
    color: #ddd;
    font-variant-numeric: tabular-nums;
}
.rating-row-cell.total .rating-row-val { color: #ffd58a; }
.rating-row-kx {
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
    color: #ffb84d;
    background: rgba(255, 184, 77, 0.12);
    padding: 1px 5px;
    border-radius: 4px;
    vertical-align: middle;
    letter-spacing: 0;
}

/* live-блок на «Мой стол» */
.rating-live-block {
    margin-top: 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.12);
    border-radius: 14px;
    padding: 14px 18px;
}
.rating-live-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 6px 0;
    border-bottom: 1px dashed rgba(192, 192, 192, 0.06);
}
.rating-live-row:last-of-type { border-bottom: none; }
.rating-live-lab { font-size: 13px; color: var(--silver-dim); }
.rating-live-val {
    font-size: 16px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
}
.rating-live-kx {
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
    color: #ffb84d;
    background: rgba(255, 184, 77, 0.12);
    padding: 1px 5px;
    border-radius: 4px;
    vertical-align: middle;
}
.rating-live-note {
    margin-top: 8px;
    font-size: 11px;
    color: var(--silver-dim);
    line-height: 1.4;
    font-style: italic;
}

/* Мобильный: уменьшаем колонки */
@media (max-width: 540px) {
    .rating-row-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .rating-sum-bar { grid-template-columns: 1fr; }
}

/* ===== Убираем синий tap-flash в админке ===== */
body.adm-body, body.adm-body * { -webkit-tap-highlight-color: transparent; }
body.adm-body button:focus,
body.adm-body button:focus-visible,
body.adm-body .bnav-btn:focus,
body.adm-body .sheet-item:focus,
body.adm-body .t-row:focus { outline: none; }

/* ===== Адаптация админки под мобилу ===== */
@media (max-width: 768px) {
  body.adm-body .cab-tab-head h1 { font-size: 22px; }
  body.adm-body .cab-tab-head .cab-tab-sub { font-size: 12px; }
  body.adm-body .cab-tab-head { padding: 14px 0 10px; }
  body.adm-body .cab-main { padding: 16px 14px 110px; }

  /* Секции компактнее */
  body.adm-body .adm-section { padding: 14px; margin-bottom: 14px; border-radius: 12px; }
  body.adm-body .adm-section-head { flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 12px; }
  body.adm-body .adm-section-head > div { min-width: 0; }
  body.adm-body .adm-section-head h2 { font-size: 17px; }
  body.adm-body .adm-section-head .sub { font-size: 12px; }
  /* Кнопка справа от заголовка (Пересадить дилеров, Завершить и т.п.) — на мобиле тянется на всю ширину */
  body.adm-body .adm-section-head > .btn-sm,
  body.adm-body .adm-section-head > button { width: 100%; min-height: 44px; }

  /* Кнопки — touch-friendly */
  body.adm-body .btn-sm { min-height: 38px; padding: 8px 14px; font-size: 13px; }
  body.adm-body button[type="submit"],
  body.adm-body .cab-foot-btn,
  body.adm-body .cab-gate-btn { min-height: 44px; }

  /* Все вообще таблицы → block с горизонтальным скроллом на случай если что-то не уместилось */
  body.adm-body .res-table,
  body.adm-body .users-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }

  /* ===== Карточки турниров (вкладка «Турниры») ===== */
  body.adm-body .t-table { display: block; }
  body.adm-body .t-row.head { display: none !important; }
  body.adm-body .t-row {
    display: block !important;
    padding: 16px;
    margin-bottom: 14px;
    border: 1px solid rgba(192,192,192,0.18);
    border-radius: 14px;
    background: rgba(255,255,255,0.025);
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  }
  body.adm-body .t-row.open { border-color: var(--silver-dim); background: rgba(255,255,255,0.04); }
  body.adm-body .t-row > div:not(.td-actions) {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
    font-size: 14px;
  }
  body.adm-body .t-row > div:nth-last-child(2) { border-bottom: none; padding-bottom: 4px; }
  body.adm-body .t-row .td-date {
    /* у td-date нестандартная структура (вложенные див с днём недели и датой) — выпрямим */
    flex-direction: row !important;
    flex-wrap: wrap;
    gap: 8px;
  }
  body.adm-body .t-row .td-date > div { font-size: 14px !important; color: var(--silver-bright) !important; margin: 0 !important; letter-spacing: 0 !important; text-transform: none !important; }
  body.adm-body .t-row .td-date::before { content: 'Дата'; }
  body.adm-body .t-row .td-time::before { content: 'Время'; }
  body.adm-body .t-row .td-format::before { content: 'Формат'; }
  body.adm-body .t-row .td-price::before { content: 'Цена'; }
  body.adm-body .t-row .td-seats-plain::before { content: 'Записей'; }
  body.adm-body .t-row .td-date::before,
  body.adm-body .t-row .td-time::before,
  body.adm-body .t-row .td-format::before,
  body.adm-body .t-row .td-price::before,
  body.adm-body .t-row .td-seats-plain::before {
    font-size: 11px;
    color: var(--silver-dim);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 600;
    flex-shrink: 0;
  }
  body.adm-body .t-row .td-seats-sep { color: var(--silver-dim); }
  body.adm-body .t-row .td-actions {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.08);
  }
  body.adm-body .t-row .td-actions .btn-sm {
    width: 100%;
    min-height: 44px;
    justify-content: center;
  }

  /* Раскрывающаяся панель «Стек/Ребаи» / «Записи» — нормальная вёрстка без переполнения */
  body.adm-body .signups-panel { padding: 0 !important; max-width: 100%; }
  body.adm-body .signups-panel > * { max-width: 100%; min-width: 0; box-sizing: border-box; }
  body.adm-body .buyin-wrap { padding: 14px; max-width: 100%; box-sizing: border-box; }
  body.adm-body .buyin-field input { width: 100%; }
  body.adm-body .buyin-section { margin-top: 14px; }
  body.adm-body .buyin-opt-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr 36px;
    gap: 8px;
    margin-bottom: 8px;
    align-items: center;
    max-width: 100%;
  }
  body.adm-body .buyin-opt-row input[class*="-label"] { grid-column: 1 / -1; }
  body.adm-body .buyin-opt-row input { min-width: 0; width: 100%; box-sizing: border-box; }
  body.adm-body .buyin-opt-row .btn-sm.danger { width: 36px; min-height: 36px; padding: 0; }

  /* Live tab — сетка из 2fr 1fr → одна колонка */
  body.adm-body .live-grid { grid-template-columns: 1fr !important; }

  /* Live-stats row — wrap, на мобиле в 2 колонки */
  body.adm-body .stats-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  body.adm-body .stats-row .stat-card { padding: 10px 12px; }
  body.adm-body .stats-row .stat-card-label { font-size: 10px; }
  body.adm-body .stats-row .stat-card-value { font-size: 18px; }

  /* Дилеры за столами — карточки в 1 колонку */
  body.adm-body .dealer-cards { grid-template-columns: 1fr !important; }

  /* Стол в live: 2 колонки на мобиле, имена корректно усекаются */
  body.adm-body .lt-table { padding: 10px 10px; min-width: 0; overflow: hidden; }
  body.adm-body .lt-seats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 4px; }
  body.adm-body .lt-seat {
      padding: 6px 8px; font-size: 11px; min-height: 32px;
      min-width: 0; overflow: hidden;
  }
  body.adm-body .lt-seat-num { min-width: 16px; font-size: 10px; flex-shrink: 0; }
  body.adm-body .lt-seat-name { font-size: 11px; min-width: 0; flex: 1 1 auto; }
  body.adm-body .lt-seat-rb { flex-shrink: 0; }

  /* Инпуты по ширине + box-sizing, чтобы не вылезали */
  body.adm-body .fin-input,
  body.adm-body .fin-textarea,
  body.adm-body input[type="number"],
  body.adm-body input[type="text"],
  body.adm-body input[type="date"],
  body.adm-body input[type="time"],
  body.adm-body input[type="search"],
  body.adm-body select,
  body.adm-body textarea {
    font-size: 16px;
    min-height: 40px;
    padding: 10px 12px;
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
  }
  /* Селект турнира в финансах и таймере — на всю ширину блока */
  body.adm-body #fin-tournament-select,
  body.adm-body #timer-tournament-select,
  body.adm-body #live-tab-select { max-width: 100%; width: 100%; min-width: 0; }

  /* Финансы: блоки должников / истории платежей — компакт */
  body.adm-body .fin-debtors,
  body.adm-body .fin-history,
  body.adm-body .fin-row,
  body.adm-body .fin-card,
  body.adm-body .fin-history-row {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.adm-body .fin-history-row,
  body.adm-body .fin-debtor-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
    border-radius: 10px;
    margin-bottom: 10px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.08);
  }
  body.adm-body .fin-history-row > *,
  body.adm-body .fin-debtor-row > * { flex-shrink: 1; min-width: 0; word-break: break-word; }

  /* Создать турнир — форма */
  body.adm-body .create-form {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px;
  }
  body.adm-body .create-form label.wide,
  body.adm-body .create-form label.full { grid-column: 1 / -1; }
  body.adm-body .create-form input,
  body.adm-body .create-form textarea { width: 100%; box-sizing: border-box; }

  /* Шаблоны турниров — 1 колонка */
  body.adm-body .templates-grid { grid-template-columns: 1fr !important; }

  /* Архив — карточки на всю ширину */
  body.adm-body .arch-list > * { max-width: 100%; box-sizing: border-box; }
}

/* ===== Дилерские смены (shift block + history) ===== */
.shift-card {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.18);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 18px;
    text-align: center;
}
.shift-card.is-active {
    border-color: rgba(94, 208, 122, 0.5);
    background: rgba(94, 208, 122, 0.06);
    box-shadow: 0 0 24px rgba(94, 208, 122, 0.12);
}
.shift-card.is-closed { border-color: rgba(192,192,192,0.25); opacity: 0.85; }
.shift-eyebrow {
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin-bottom: 12px;
}
.shift-card.is-active .shift-eyebrow { color: #5ed07a; }
.shift-timer {
    font-size: 38px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
    margin-bottom: 14px;
    letter-spacing: 1px;
}
.shift-summary { font-size: 16px; color: var(--silver); }
.shift-btn {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.2);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    padding: 12px 28px;
    min-height: 44px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.15s;
}
.shift-btn:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.4); }
.shift-btn.shift-btn-start {
    background: rgba(94,208,122,0.12);
    border-color: rgba(94,208,122,0.5);
    color: #5ed07a;
    font-size: 15px;
    padding: 14px 32px;
}
.shift-btn.shift-btn-start:hover { background: rgba(94,208,122,0.22); border-color: #5ed07a; }
.shift-btn.shift-btn-end {
    background: rgba(232,88,88,0.12);
    border-color: rgba(232,88,88,0.5);
    color: #e85858;
}
.shift-btn.shift-btn-end:hover { background: rgba(232,88,88,0.22); border-color: #e85858; }

/* History */
.shift-totals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 18px;
}
.shift-tot-cell {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 12px;
    padding: 14px 16px;
}
.shift-tot-lab { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim); font-weight: 600; margin-bottom: 4px; }
.shift-tot-val { font-size: 22px; font-weight: 700; color: var(--silver-bright); font-variant-numeric: tabular-nums; }

.shift-list { display: flex; flex-direction: column; gap: 10px; }
.shift-row {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.1);
    border-radius: 12px;
    padding: 12px 14px;
}
.shift-row-date {
    font-size: 13px;
    color: var(--silver-bright);
    font-weight: 600;
    margin-bottom: 8px;
}
.shift-row-open {
    display: inline-block;
    margin-left: 8px;
    font-size: 10px;
    color: #5ed07a;
    background: rgba(94,208,122,0.16);
    padding: 1px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.shift-row-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.shift-row-grid > div { display: flex; flex-direction: column; gap: 2px; }
.shift-row-lab { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--silver-dim); font-weight: 600; }
.shift-row-val { font-size: 14px; color: #ddd; font-weight: 600; font-variant-numeric: tabular-nums; }

@media (max-width: 540px) {
    .shift-totals { grid-template-columns: 1fr; }
    .shift-row-grid { grid-template-columns: repeat(2, 1fr); }
    .shift-timer { font-size: 32px; }
}

/* ===== Аналитика дилеров (admin) ===== */
.dlr-period-segs {
    display: flex;
    gap: 6px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 14px;
}
.dlr-period-segs button {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--silver-dim);
    font-family: inherit;
    font-size: 12px;
    letter-spacing: 1px;
    padding: 8px 10px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    min-height: 36px;
}
.dlr-period-segs button:hover { color: #fff; background: rgba(255,255,255,0.05); }
.dlr-period-segs button.is-active {
    background: var(--silver);
    color: #000;
    font-weight: 600;
}
.dlr-list { display: flex; flex-direction: column; gap: 10px; }
.dlr-row {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 12px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr auto;
    gap: 12px;
    align-items: center;
}
.dlr-row.is-paid { opacity: 0.7; }
.dlr-row-name { font-size: 14px; font-weight: 600; color: var(--silver-bright); }
.dlr-row-cell { display: flex; flex-direction: column; gap: 2px; }
.dlr-row-lab { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: var(--silver-dim); font-weight: 600; }
.dlr-row-val { font-size: 14px; color: #ddd; font-weight: 600; font-variant-numeric: tabular-nums; }
.dlr-row-cell.salary .dlr-row-val { color: #ffd58a; font-size: 16px; }
.dlr-pay-btn {
    background: rgba(94,208,122,0.12);
    border: 1px solid rgba(94,208,122,0.4);
    color: #5ed07a;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 10px 16px;
    border-radius: 8px;
    cursor: pointer;
    min-height: 38px;
    transition: all 0.15s;
}
.dlr-pay-btn:hover { background: rgba(94,208,122,0.22); border-color: #5ed07a; }
.dlr-paid-mark { font-size: 11px; color: #5ed07a; letter-spacing: 1px; text-transform: uppercase; }
.dlr-no-rate { font-size: 11px; color: #ff8a8a; letter-spacing: 1px; text-transform: uppercase; }

@media (max-width: 768px) {
    body.adm-body .dlr-row {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    body.adm-body .dlr-row-name { grid-column: 1 / -1; font-size: 16px; }
    body.adm-body .dlr-rate-btn { grid-column: 1 / -1; width: 100%; min-height: 44px; text-align: center; }
    body.adm-body .dlr-weeks-block { grid-column: 1 / -1; }
}

/* ===== Дилер-аналитика: clickable карточка + разбивка по неделям + редактир. суммы ===== */
.dlr-row.is-clickable { cursor: pointer; }
.dlr-row.is-clickable:hover { background: rgba(255,255,255,0.04); border-color: rgba(192,192,192,0.28); }
.dlr-row-arrow {
    display: inline-block;
    margin-left: 6px;
    color: var(--silver-dim);
    font-size: 11px;
    transition: transform 0.2s;
}
.dlr-row[aria-expanded="true"] .dlr-row-arrow { transform: rotate(180deg); }
.dlr-row-cell.salary { cursor: pointer; }
.dlr-row-cell.salary:hover .dlr-row-val { text-decoration: underline; text-decoration-style: dotted; }
.dlr-override-mark {
    color: #ffb84d;
    font-size: 11px;
    margin-left: 4px;
}
.dlr-rate-btn {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(192,192,192,0.2);
    color: var(--silver);
    font-size: 11px;
    letter-spacing: 0.5px;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    min-height: 36px;
    transition: all 0.15s;
}
.dlr-rate-btn:hover { background: rgba(255,255,255,0.1); color: #fff; }

/* Раскрывающийся блок недель внутри карточки */
.dlr-weeks-block {
    grid-column: 1 / -1;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(192,192,192,0.18);
}
.dlr-week-title {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    margin-bottom: 10px;
    font-weight: 600;
}
.dlr-week-list { display: flex; flex-direction: column; gap: 8px; }
.dlr-week-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.1);
    border-radius: 10px;
    padding: 10px 12px;
}
.dlr-week-period {
    font-size: 13px;
    color: var(--silver-bright);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.dlr-week-cells {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 12px;
    color: #ccc;
    font-variant-numeric: tabular-nums;
}
.dlr-week-cells b { color: var(--silver-dim); font-weight: 600; margin-right: 4px; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
.dlr-week-salary {
    cursor: pointer;
    color: #ffd58a;
    font-weight: 600;
    margin-left: auto;
}
.dlr-week-salary:hover { text-decoration: underline; text-decoration-style: dotted; }
.dlr-week-edit { font-size: 10px; color: var(--silver-dim); margin-left: 4px; }

@media (max-width: 768px) {
    body.adm-body .dlr-week-cells { gap: 10px; font-size: 13px; }
    body.adm-body .dlr-week-salary { margin-left: 0; width: 100%; padding-top: 4px; border-top: 1px dashed rgba(192,192,192,0.1); }
}

/* Красная иконка для «Выйти» в bnav (дилер) */
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn-danger svg { stroke: #ff8a8a; }
:is(body.lk-body, body.adm-body, body.dlr-body, body.wtr-body) .bnav-btn-danger .bnav-lbl { color: #ff8a8a; }

/* ===== Юр. блок в cab-gate (на /lk.html для незалогиненных) ===== */
.cab-gate-legal {
    margin-top: 28px;
    font-size: 12px;
    color: var(--silver-dim, #888);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}
.cab-gate-legal a { color: var(--silver-dim, #aaa); text-decoration: underline; text-decoration-color: rgba(170,170,170,0.3); }
.cab-gate-legal a:hover { color: #fff; text-decoration-color: #fff; }
.cab-gate-age {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid #c8c8d8;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
    color: #c8c8d8;
    margin-right: 4px;
}

/* ===== Архив: фильтры ===== */
.arch-filter {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    align-items: stretch;
}
.arch-filter input,
.arch-filter select {
    background: #1a1a1c;
    border: 1px solid rgba(192,192,192,0.18);
    color: #fff;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    min-height: 38px;
}
.arch-filter-input { flex: 2 1 240px; }
.arch-filter-date { flex: 1 1 120px; max-width: 160px; }
.arch-filter-format { flex: 1 1 140px; max-width: 200px; }
.arch-filter button { flex-shrink: 0; }
.arch-filter-stats {
    font-size: 11px;
    color: var(--silver-dim);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 12px;
}
@media (max-width: 540px) {
    .arch-filter input, .arch-filter select { min-height: 44px; }
    .arch-filter-input, .arch-filter-date, .arch-filter-format { flex-basis: 100%; max-width: 100%; }
}

/* ===== Архив-детали: блок финансов ===== */
.arch-fin-totals {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}
.arch-fin-cell {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 10px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.arch-fin-cell.debt { border-color: rgba(232,88,88,0.3); }
.arch-fin-cell.debt .arch-fin-val { color: #ff8a8a; }
.arch-cell-lab {
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.arch-fin-val {
    font-size: 18px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
}
.arch-fin-subtitle {
    font-size: 13px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin: 22px 0 10px;
}
.arch-fin-hint {
    font-size: 12px;
    color: var(--text-mute);
    margin: -4px 0 12px;
    font-style: italic;
}

.arch-debtors { display: flex; flex-direction: column; gap: 10px; }
.arch-debtor-row {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 10px;
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 1.5fr repeat(3, 1fr) auto;
    gap: 12px;
    align-items: center;
}
.arch-debtor-name {
    font-weight: 600;
    color: var(--silver-bright);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.arch-debtor-phone { font-size: 11px; color: var(--silver-dim); font-weight: 400; }
.arch-debtor-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    color: #ddd;
}
.arch-debtor-cell.debt { color: #ff8a8a; font-weight: 600; }

.arch-pays { display: flex; flex-direction: column; gap: 10px; }
.arch-pay-row {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.12);
    border-radius: 10px;
    padding: 12px 14px;
}
.arch-pay-row.is-cancelled { opacity: 0.5; }
.arch-pay-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 4px;
}
.arch-pay-player {
    font-weight: 600;
    color: var(--silver-bright);
    flex: 1;
    min-width: 0;
}
.arch-pay-amount {
    font-weight: 700;
    color: #7ed999;
    font-variant-numeric: tabular-nums;
}
.arch-pay-row.is-cancelled .arch-pay-amount { color: #888; text-decoration: line-through; }
.arch-pay-cancelled {
    font-size: 10px;
    color: #ff8a8a;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.arch-pay-meta {
    font-size: 11px;
    color: var(--silver-dim);
    margin-bottom: 4px;
}
.arch-pay-note {
    font-size: 13px;
    color: #ccc;
    font-style: italic;
    margin: 4px 0;
}
.arch-pay-actions {
    display: flex;
    gap: 6px;
    margin-top: 6px;
}

@media (max-width: 768px) {
    body.adm-body .arch-fin-totals { grid-template-columns: 1fr; }
    body.adm-body .arch-debtor-row {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    body.adm-body .arch-debtor-name { grid-column: 1 / -1; }
    body.adm-body .arch-debtor-row .dlr-pay-btn { grid-column: 1 / -1; width: 100%; min-height: 44px; }
}

/* ===== Вкладка «Должники» ===== */
.dbt-totals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 18px;
}
.dbt-totals-cell {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 12px;
    padding: 14px 16px;
}
.dbt-totals-cell.debt { border-color: rgba(232,88,88,0.3); }
.dbt-totals-cell.debt .dbt-totals-val { color: #ff8a8a; }
.dbt-totals-lab {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin-bottom: 4px;
    display: block;
}
.dbt-totals-val {
    font-size: 22px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
}

.dbt-list { display: flex; flex-direction: column; gap: 10px; }
.dbt-row {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 12px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 1.5fr 2fr auto;
    gap: 16px;
    align-items: center;
}
.dbt-row-info { display: flex; flex-direction: column; gap: 2px; }
.dbt-row-name { font-weight: 600; color: var(--silver-bright); font-size: 14px; }
.dbt-row-phone { font-size: 11px; color: var(--silver-dim); }
.dbt-row-cells {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.dbt-row-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}
.dbt-cell-lab {
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.dbt-row-cell.debt { color: #ff8a8a; font-weight: 600; }

@media (max-width: 768px) {
    body.adm-body .dbt-totals { grid-template-columns: 1fr; }
    body.adm-body .dbt-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    body.adm-body .dbt-row-cells { grid-template-columns: repeat(3, 1fr); }
    body.adm-body .dbt-row .dlr-pay-btn { width: 100%; min-height: 44px; }
}

/* ===== Заказы кухни в LK игрока ===== */
.orders-block {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.orders-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13px;
}
.orders-row.preparing {
    background: rgba(255,180,80,0.10);
    border: 1px solid rgba(255,180,80,0.3);
    color: var(--accent);
}
.orders-row-status {
    color: #ffb450;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.orders-called {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(126,179,255,0.10);
    border: 1px solid rgba(126,179,255,0.35);
    border-radius: 8px;
    color: #7eb3ff;
    font-weight: 500;
}
.orders-cancel-btn { padding: 6px 12px; font-size: 12px; }
.btn-waiter-call {
    width: 100%;
    padding: 14px 18px;
    background: linear-gradient(180deg, #fafafc 0%, #c8c8cc 100%);
    border: 1px solid #c8c8cc;
    color: #0a0a0c;
    border-radius: 8px;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.4px;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 14px rgba(232,232,236,0.12), inset 0 1px 0 rgba(255,255,255,0.6);
}
.btn-waiter-call:hover {
    background: linear-gradient(180deg, #fff 0%, #e0e0e4 100%);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(232,232,236,0.20), inset 0 1px 0 rgba(255,255,255,0.7);
}
.btn-waiter-call:disabled { opacity: 0.5; cursor: wait; transform: none; }

/* ===== Очередь официанта (waiter.js + admin Kitchen) ===== */
.wq-section { margin-bottom: 24px; }
.wq-section-title {
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
    margin: 0 0 10px;
}
.wq-section-called { color: #7eb3ff; }
.wq-section-preparing { color: #ffb450; }
.wq-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: 8px;
}
.wq-row.is-called {
    background: rgba(126,179,255,0.06);
    border-color: rgba(126,179,255,0.3);
}
.wq-row.is-preparing {
    background: rgba(255,180,80,0.05);
    border-color: rgba(255,180,80,0.3);
}
.wq-info { min-width: 0; }
.wq-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--accent);
}
.wq-position { color: #ffb450; font-weight: 500; }
.wq-seat {
    margin-top: 4px;
    font-size: 13px;
    color: var(--silver-dim);
}
.wq-time {
    margin-top: 4px;
    color: var(--silver-dim);
    font-variant-numeric: tabular-nums;
    font-size: 12px;
}
.wq-actions { display: flex; gap: 8px; flex-shrink: 0; }
.wq-actions .btn { padding: 8px 14px; font-size: 13px; }
.wq-customer-note {
    margin-top: 6px;
    padding: 6px 10px;
    background: rgba(255,180,80,0.10);
    border-left: 2px solid #ffb450;
    border-radius: 4px;
    color: #f0d9a8;
    font-size: 13px;
    line-height: 1.4;
    font-style: italic;
    word-break: break-word;
}
.wq-customer-note-inline {
    display: inline-block;
    margin: 4px 0 0;
    padding: 3px 8px;
    font-size: 12px;
}
.wq-fill-form {
    display: grid;
    grid-template-columns: 130px 1fr 100px auto;
    gap: 8px;
    align-items: center;
    grid-column: 1 / -1;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed var(--border);
}
.wq-fill-form select,
.wq-fill-form input {
    padding: 9px 11px;
    background: rgba(20,20,20,0.85);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--accent);
    font-size: 14px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.wq-fill-form select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23aaa' stroke-width='1.5'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 28px;
}
.wq-fill-form select option {
    background: #181818;
    color: var(--accent);
}
.wq-fill-form select:focus,
.wq-fill-form input:focus { outline: none; border-color: var(--silver); }
.wq-fill-actions { display: flex; gap: 6px; }
.wq-fill-actions .btn { padding: 8px 12px; font-size: 13px; }

@media (max-width: 768px) {
    .wq-row { grid-template-columns: 1fr; }
    .wq-actions { width: 100%; }
    .wq-actions .btn { flex: 1; }
    .wq-fill-form { grid-template-columns: 1fr 1fr; }
    .wq-fill-form select,
    .wq-fill-form input[name="note"] { grid-column: 1 / -1; }
    .wq-fill-actions { grid-column: 1 / -1; }
}

/* Тег PKO рядом с форматом турнира */
.t-pko-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #ffb450;
    background: rgba(255,180,80,0.14);
    border: 1px solid rgba(255,180,80,0.4);
    border-radius: 4px;
    vertical-align: middle;
}
.rating-live-pko {
    margin-left: 6px;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #ffb450;
    background: rgba(255,180,80,0.16);
    border-radius: 3px;
}

/* Переключатель Очередь / История внутри вкладки «Кухня» */
.kitchen-toggle {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin: 0 0 18px;
    background: rgba(192,192,192,0.06);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.kitchen-toggle-btn {
    background: transparent;
    border: 0;
    color: var(--silver-dim);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    border-radius: 7px;
    transition: background 0.2s, color 0.2s;
}
.kitchen-toggle-btn:hover { color: var(--silver-bright); }
.kitchen-toggle-btn.is-active {
    background: linear-gradient(135deg, rgba(255,180,80,0.18), rgba(255,180,80,0.06));
    color: #ffb450;
}

/* Плашка нового вызова сверху страницы официанта */
.wtr-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 14px 20px;
    background: linear-gradient(135deg, #ff8a3a, #ff5a3a);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    text-align: center;
    box-shadow: 0 4px 18px rgba(255,90,58,0.5);
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.wtr-banner.is-pulsing {
    animation: wtrPulse 0.9s ease-in-out infinite alternate;
}
@keyframes wtrPulse {
    from { background: linear-gradient(135deg, #ff8a3a, #ff5a3a); transform: translateY(0); }
    to   { background: linear-gradient(135deg, #ffa454, #ff7a4a); transform: translateY(2px); }
}

#wtr-permission-bar {
    margin: 0 0 18px;
    padding: 12px 14px;
    background: rgba(126,179,255,0.08);
    border: 1px solid rgba(126,179,255,0.3);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.wtr-perm-hint {
    color: var(--silver-dim);
    font-size: 12px;
}

/* Кнопка «+ Принять заказ» сверху очереди */
.wq-newbtn-row {
    margin-bottom: 18px;
    display: flex;
    justify-content: flex-end;
}
.wq-newbtn {
    padding: 10px 18px !important;
    font-weight: 600;
    letter-spacing: 0.3px;
}

/* Модалка «Принять заказ» — список гостей + форма */
.wcm-guest-list {
    max-height: 280px;
    overflow-y: auto;
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.wcm-guest {
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.wcm-guest:hover {
    border-color: var(--border-strong);
    background: rgba(192,192,192,0.04);
}
.wcm-guest.is-selected {
    border-color: #ffb450;
    background: rgba(255,180,80,0.08);
}
.wcm-guest-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--accent);
}
.wcm-guest-meta {
    font-size: 11px;
    color: var(--silver-dim);
    margin-top: 3px;
}
.wcm-guest.is-noseat { opacity: 0.78; }
.wcm-guest.is-noseat .wcm-guest-name { color: var(--silver); }
.wcm-guest-nseat {
    color: var(--silver-dim);
    font-style: italic;
}
.wcm-only-seated {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--silver);
    cursor: pointer;
    user-select: none;
}
.wcm-only-seated input[type="checkbox"] {
    accent-color: #ffb450;
    cursor: pointer;
}

.ocm-modal { max-width: 540px; }
.ocm-meta {
    display: grid;
    gap: 6px;
    margin: 14px 0 18px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.1);
    border-radius: 10px;
}
.ocm-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    font-size: 13px;
    line-height: 1.4;
}
.ocm-meta-row > span {
    color: var(--silver-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 11px;
    flex-shrink: 0;
}
.ocm-meta-row > strong {
    color: var(--silver-bright);
    font-weight: 600;
    text-align: right;
    word-break: break-word;
}
.ocm-customer-note {
    color: #f0d9a8 !important;
    font-style: italic;
    font-weight: 500 !important;
    text-align: right;
}
.ocm-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ocm-lab {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--silver-dim);
    font-weight: 600;
}
.ocm-lab > select,
.ocm-lab > input {
    text-transform: none;
    letter-spacing: normal;
    font-size: 14px;
    color: var(--silver-bright);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(192, 192, 192, 0.2);
    border-radius: 8px;
    padding: 9px 12px;
    font-weight: 500;
}
.ocm-lab > select:focus,
.ocm-lab > input:focus {
    outline: none;
    border-color: #ffb450;
}
.ocm-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}
.ocm-actions-right {
    display: flex;
    gap: 8px;
}

/* Красивая строка поиска в истории кухни */
.khist-search {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0 0 14px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
    border: 1px solid rgba(192,192,192,0.16);
    border-radius: 12px;
    padding: 0 14px 0 12px;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
}
.khist-search:focus-within {
    border-color: rgba(255, 180, 80, 0.5);
    background: linear-gradient(180deg, rgba(255,180,80,0.05), rgba(255,180,80,0.02));
    box-shadow: 0 0 0 3px rgba(255, 180, 80, 0.08);
}
.khist-search-icon {
    color: var(--silver-dim);
    flex-shrink: 0;
    margin-right: 8px;
}
.khist-search:focus-within .khist-search-icon { color: #ffb450; }
.khist-search input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: 0;
    outline: none;
    color: var(--silver-bright);
    font-size: 14px;
    font-family: inherit;
    padding: 11px 0;
    font-weight: 500;
}
.khist-search input::placeholder { color: var(--silver-dim); font-weight: 400; }
.khist-search input::-webkit-search-cancel-button { display: none; }
.khist-search-clear {
    background: rgba(192,192,192,0.1);
    border: 0;
    color: var(--silver-dim);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    cursor: pointer;
    line-height: 1;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}
.khist-search-clear:hover {
    background: rgba(255, 138, 138, 0.15);
    color: #ff8a8a;
}
.khist-search-meta {
    color: var(--silver-dim);
    font-size: 11px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}
@media (max-width: 540px) {
    .khist-search { padding: 0 10px 0 10px; }
    .khist-search input { font-size: 13px; padding: 10px 0; }
    .khist-search-meta { display: none; }
}

/* Кэш-сессия в истории «Мой рейтинг» — компактнее и с тёплой подсветкой */
.rating-row-cash { border-color: rgba(232, 199, 138, 0.25); background: rgba(232, 199, 138, 0.04); }
.rating-row-cash-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(232, 199, 138, 0.18);
    color: #e8c78a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    vertical-align: middle;
}

/* Кэш-стол: модалка завершения «впиши фишки» */
.fc-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 50vh;
    overflow-y: auto;
    padding-right: 4px;
}
.fc-row {
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.1);
    border-radius: 10px;
}
.fc-row-name {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.fc-row-name strong { color: var(--silver-bright); font-weight: 600; font-size: 14px; }
.fc-row-seat {
    color: var(--silver-dim);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.fc-row-input {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(192,192,192,0.2);
    border-radius: 8px;
    padding: 9px 12px;
    color: var(--silver-bright);
    font-size: 14px;
    font-family: inherit;
    font-weight: 600;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.fc-row-input:focus { outline: none; border-color: #ffb450; }
.fc-row-input::placeholder { color: var(--silver-dim); font-weight: 400; text-align: left; }
@media (max-width: 540px) {
    .fc-row { grid-template-columns: 1fr 110px; padding: 8px 10px; gap: 8px; }
    .fc-row-input { padding: 8px 10px; font-size: 13px; }
}

/* Финансы: фильтры + список турниров */
.fin-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
    align-items: center;
}
.fin-filter-dates {
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--silver-dim);
    font-size: 12px;
}
.fin-filter-dates label {
    display: flex;
    align-items: center;
    gap: 4px;
}
.fin-filter-dates input[type="date"] {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(192,192,192,0.16);
    border-radius: 8px;
    padding: 7px 10px;
    color: var(--silver-bright);
    font-family: inherit;
    font-size: 13px;
}
.fin-filter-dates input[type="date"]:focus { outline: none; border-color: #ffb450; }
.fin-filter-tabs {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}
.fin-tab {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 8px;
    padding: 7px 12px;
    color: var(--silver-dim);
    font-size: 12px;
    cursor: pointer;
    font-family: inherit;
    font-weight: 600;
    letter-spacing: 0.3px;
    transition: all 0.15s;
}
.fin-tab:hover { color: var(--silver-bright); border-color: rgba(192,192,192,0.3); }
.fin-tab.is-active {
    background: rgba(255,180,80,0.12);
    border-color: rgba(255,180,80,0.4);
    color: #ffb450;
}

.fin-summary {
    display: flex;
    gap: 14px;
    padding: 14px 18px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(192,192,192,0.1);
    border-radius: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.fin-sum-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 120px;
}
.fin-sum-item span {
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--silver-dim);
}
.fin-sum-item strong {
    font-size: 18px;
    color: var(--silver-bright);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.fin-sum-debt strong { color: #ff8a8a; }

.fin-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.fin-row {
    display: grid;
    grid-template-columns: 90px 1fr repeat(5, 110px);
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.1);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.fin-row:hover {
    border-color: rgba(255,180,80,0.4);
    background: rgba(255,180,80,0.04);
}
.fin-row-date {
    font-size: 12px;
    color: var(--silver);
    font-weight: 600;
    line-height: 1.3;
}
.fin-row-date span { color: var(--silver-dim); font-weight: 400; font-size: 11px; }
.fin-row-format-name { color: var(--silver-bright); font-weight: 600; font-size: 14px; }
.fin-row-format-meta { color: var(--silver-dim); font-size: 11px; margin-top: 2px; }
.fin-row-status {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.fin-row-status.live { background: rgba(94,208,122,0.15); color: #5ed07a; }
.fin-row-status.done { background: rgba(120,180,255,0.12); color: #78b4ff; }
.fin-row-status.del { background: rgba(255,138,138,0.12); color: #ff8a8a; }
.fin-row-status.soon { background: rgba(232,199,138,0.12); color: #e8c78a; }
.fin-row-num {
    text-align: right;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    font-size: 13px;
}
.fin-row-num-lbl {
    display: block;
    font-size: 10px;
    color: var(--silver-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    margin-bottom: 2px;
}
.fin-row-debt { color: #ff8a8a; }
@media (max-width: 1100px) {
    .fin-row { grid-template-columns: 80px 1fr repeat(3, 90px); }
    .fin-row > div:nth-child(7), .fin-row > div:nth-child(8) { display: none; } /* Скрываем счётчики ребаев и кухни на узких экранах */
}
@media (max-width: 720px) {
    .fin-row { grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px; }
    .fin-row-num { text-align: left; }
}

/* Админ: вкладка «Рейтинг» */
.rt-adm-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.rt-adm-row {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(192, 192, 192, 0.1);
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.15s, background 0.15s;
}
.rt-adm-row:hover { border-color: rgba(192, 192, 192, 0.2); }
.rt-adm-row.is-open { border-color: rgba(255, 180, 80, 0.3); }
.rt-adm-head {
    display: grid;
    grid-template-columns: 36px 1fr auto 100px;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
}
.rt-adm-rank {
    color: var(--silver-dim);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: center;
}
.rt-adm-name { color: var(--silver-bright); font-weight: 600; font-size: 14px; }
.rt-adm-meta {
    color: var(--silver-dim);
    font-size: 12px;
    white-space: nowrap;
}
.rt-adm-total {
    color: var(--silver-bright);
    font-weight: 700;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.rt-adm-adj {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.rt-adm-adj.pos { color: #5fc97a; }
.rt-adm-adj.neg { color: #ff8a8a; }
.rt-adm-body {
    padding: 14px 16px;
    border-top: 1px dashed rgba(192, 192, 192, 0.15);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.rt-adm-form {
    display: grid;
    grid-template-columns: 130px 1fr auto;
    gap: 8px;
}
.rt-adm-form input {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(192, 192, 192, 0.2);
    border-radius: 8px;
    padding: 9px 12px;
    color: var(--silver-bright);
    font-size: 14px;
}
.rt-adm-form input:focus { outline: none; border-color: #ffb450; }
.rt-adm-adjlist { display: flex; flex-direction: column; gap: 6px; }
.rt-adm-adjrow {
    display: grid;
    grid-template-columns: 90px 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.08);
    border-radius: 8px;
    font-size: 13px;
}
.rt-adm-adjval { font-weight: 700; font-variant-numeric: tabular-nums; }
.rt-adm-adjval.pos { color: #5fc97a; }
.rt-adm-adjval.neg { color: #ff8a8a; }
.rt-adm-adjreason { color: var(--silver-bright); }
.rt-adm-adjmeta { color: var(--silver-dim); font-size: 11px; white-space: nowrap; }
.rt-adm-noadj { color: var(--silver-dim); font-size: 13px; font-style: italic; }
@media (max-width: 720px) {
    .rt-adm-head { grid-template-columns: 28px 1fr 80px; gap: 8px; padding: 10px; }
    .rt-adm-meta { display: none; }
    .rt-adm-form { grid-template-columns: 1fr; }
    .rt-adm-adjrow { grid-template-columns: auto 1fr auto; gap: 6px; padding: 8px; }
    .rt-adm-adjmeta { display: none; }
}

.wcm-form {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.wcm-form-title {
    font-size: 12px;
    color: var(--silver-dim);
    letter-spacing: 0.4px;
}
.wcm-form select,
.wcm-form input {
    padding: 9px 11px;
    background: rgba(20,20,20,0.85);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--accent);
    font-size: 14px;
    -webkit-appearance: none;
    appearance: none;
}
.wcm-form select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23aaa' stroke-width='1.5'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 28px;
}
.wcm-form select option { background: #181818; color: var(--accent); }
.wcm-form select:focus,
.wcm-form input:focus { outline: none; border-color: var(--silver); }

/* История заказов — сворачиваемый блок */
.wq-history-details { margin-top: 28px; }
.wq-history-details > summary {
    cursor: pointer;
    padding: 12px 14px;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--silver-dim);
    background: rgba(192,192,192,0.04);
    border: 1px solid var(--border);
    border-radius: 6px;
    user-select: none;
    list-style: none;
    font-weight: 600;
}
.wq-history-details > summary::-webkit-details-marker { display: none; }
.wq-history-details[open] > summary {
    color: var(--silver-bright);
    border-color: var(--border-strong);
}
.wq-history-count { color: var(--accent); margin-left: 4px; font-weight: 500; }
.wq-history-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-size: 13px;
}
.wq-history-table th {
    text-align: left;
    padding: 8px 10px;
    color: var(--silver-dim);
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}
.wq-history-table td {
    padding: 9px 10px;
    border-bottom: 1px solid rgba(192,192,192,0.06);
    color: var(--accent);
}
.wq-history-row.cancelled td { color: var(--silver-dim); text-decoration: line-through; }
.wq-stat {
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.wq-stat.done { background: rgba(126,200,140,0.15); color: #7ec88c; }
.wq-stat.cancelled { background: rgba(255,138,138,0.12); color: #ff8a8a; }
@media (max-width: 768px) {
    /* Карточный вид: каждая строка превращается в плитку */
    .wq-history-table thead { display: none; }
    .wq-history-table,
    .wq-history-table tbody,
    .wq-history-table tr,
    .wq-history-table td { display: block; width: 100%; }
    .wq-history-table tr {
        margin-bottom: 10px;
        padding: 12px 14px;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: rgba(192,192,192,0.04);
    }
    .wq-history-table tr.cancelled { opacity: 0.6; }
    .wq-history-table td {
        padding: 4px 0;
        border: 0;
        font-size: 13px;
    }
    /* Лейблы перед значениями */
    .wq-history-table td:nth-child(1)::before { content: '📅 '; }
    .wq-history-table td:nth-child(2) { font-weight: 600; color: var(--accent); font-size: 14px; }
    .wq-history-table td:nth-child(3) { color: var(--silver-dim); font-size: 12px; }
    .wq-history-table td:nth-child(4) { color: var(--accent); }
    .wq-history-table td:nth-child(5) {
        display: inline-block;
        width: auto;
        margin-right: 10px;
        font-weight: 600;
        color: #ffb450;
    }
    .wq-history-table td:nth-child(6) { display: inline-block; width: auto; }
    .wq-history-row.cancelled td { text-decoration: none; }
}

/* ===== Heatmap «Часы пиковой нагрузки» ===== */
.ph-wrap { overflow-x: auto; }
.ph-table {
    border-collapse: separate;
    border-spacing: 3px;
    font-size: 12px;
}
.ph-table thead th {
    color: var(--silver-dim);
    font-weight: 500;
    text-align: center;
    padding: 4px 6px;
    font-size: 11px;
}
.ph-day {
    color: var(--silver-dim);
    text-align: right;
    padding-right: 8px;
    font-weight: 600;
    width: 36px;
}
.ph-cell {
    width: 38px;
    height: 32px;
    text-align: center;
    border-radius: 4px;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
}
.ph-cell.ph-empty {
    background: rgba(192,192,192,0.04);
    color: transparent;
}
.ph-cell strong { font-weight: 600; font-size: 12px; }
.ph-legend {
    margin-top: 10px;
    font-size: 11px;
    color: var(--silver-dim);
    line-height: 1.4;
}

/* ===== Модалка выбора турнира при «Принять платёж» ===== */
.dpd-summary {
    margin: 4px 0 12px;
    font-size: 13px;
    color: var(--silver-dim);
}
.dpd-summary strong { color: #ff8a8a; font-size: 15px; }
.dpd-prepay {
    padding: 8px 12px;
    background: rgba(126,179,255,0.1);
    border: 1px solid rgba(126,179,255,0.3);
    border-radius: 6px;
    color: #7eb3ff;
    font-size: 12px;
    margin-bottom: 12px;
    line-height: 1.4;
}
.dpd-section-title {
    margin: 16px 0 8px;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 700;
}
.dpd-section-title:first-child { margin-top: 4px; }
.dpd-kitchen-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 280px;
    overflow-y: auto;
}
.dpd-kitchen-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: rgba(255, 180, 80, 0.04);
    border: 1px solid rgba(255, 180, 80, 0.18);
    border-radius: 8px;
}
.dpd-kitchen-info { min-width: 0; }
.dpd-kitchen-label { color: var(--silver-bright); font-weight: 600; font-size: 14px; }
.dpd-kitchen-meta { color: var(--silver-dim); font-size: 11px; margin-top: 2px; }
.dpd-kitchen-tag {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(192, 192, 192, 0.1);
    font-weight: 600;
}
.dpd-kitchen-amount {
    font-weight: 700;
    color: #ffb450;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.dpd-kitchen-actions { display: flex; gap: 4px; }

.dpd-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 340px;
    overflow-y: auto;
    padding-right: 4px;
}
.dpd-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    font-size: 13px;
    color: var(--accent);
}
.dpd-row:hover {
    border-color: var(--border-strong);
    background: rgba(192,192,192,0.04);
}
.dpd-row.is-selected {
    border-color: var(--accent);
    background: rgba(192,192,192,0.08);
}
.dpd-row-meta {
    margin-top: 3px;
    font-size: 11px;
    color: var(--silver-dim);
}
.dpd-row-debt {
    color: #ff8a8a;
    font-weight: 600;
    white-space: nowrap;
    font-size: 14px;
}
.dpd-pay-form {
    margin-top: 14px;
    display: grid;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}
.dpd-pay-form-title {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.dpd-pay-form label {
    display: grid;
    gap: 4px;
    font-size: 12px;
    color: var(--silver-dim);
}
.dpd-pay-form input {
    padding: 9px 11px;
    background: rgba(192,192,192,0.05);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--accent);
    font-size: 14px;
}
.dpd-pay-form input:focus {
    outline: none;
    border-color: var(--silver);
}

/* Список начислений (Вход / Ребай / Аддон) при выбранном турнире */
.dpd-charges-title {
    margin-top: 16px;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.dpd-charges-list {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.dpd-charge-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 8px 10px;
    background: rgba(255,180,80,0.05);
    border: 1px solid rgba(255,180,80,0.18);
    border-radius: 6px;
}
.dpd-charge-row.dpd-charge-buyin {
    background: rgba(192,192,192,0.05);
    border-color: var(--border);
}
.dpd-charge-row.is-editing { background: rgba(192,192,192,0.08); border-color: var(--silver); }
.dpd-charge-info {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.dpd-charge-label {
    font-size: 13px;
    color: var(--accent);
}
.dpd-charge-amount {
    font-weight: 600;
    color: #ffb450;
    font-size: 14px;
    margin-left: auto;
}
.dpd-charge-row.dpd-charge-buyin .dpd-charge-amount { color: var(--accent); }
.dpd-charge-tag {
    margin-left: 6px;
    padding: 1px 6px;
    font-size: 10px;
    color: var(--silver-dim);
    background: rgba(192,192,192,0.08);
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.dpd-charge-actions { display: flex; gap: 6px; }
.dpd-charge-actions .btn-sm { font-size: 12px; padding: 6px 10px; }
.dpd-charge-cancel { color: #ff8a8a !important; border-color: rgba(255,138,138,0.3) !important; }
.dpd-charge-edit {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 8px;
    align-items: center;
}
.dpd-charge-edit input {
    padding: 7px 9px;
    background: rgba(192,192,192,0.06);
    border: 1px solid var(--border);
    border-radius: 5px;
    color: var(--accent);
    font-size: 13px;
}
.dpd-charge-edit input:focus { outline: none; border-color: var(--silver); }

/* Список существующих платежей при выбранном турнире */
.dpd-payments-title {
    margin-top: 16px;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}
.dpd-payments-list {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dpd-payment-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 8px 10px;
    background: rgba(126,179,255,0.05);
    border: 1px solid rgba(126,179,255,0.2);
    border-radius: 6px;
}
.dpd-payment-row.is-editing { background: rgba(192,192,192,0.06); border-color: var(--silver); }
.dpd-payment-info { min-width: 0; }
.dpd-payment-amount {
    font-weight: 600;
    color: #7eb3ff;
    font-size: 14px;
}
.dpd-payment-meta {
    margin-top: 2px;
    font-size: 11px;
    color: var(--silver-dim);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dpd-payment-actions {
    display: flex;
    gap: 6px;
}
.dpd-payment-actions .btn-sm {
    font-size: 12px;
    padding: 6px 10px;
}
.dpd-payment-cancel {
    color: #ff8a8a !important;
    border-color: rgba(255,138,138,0.3) !important;
}
.dpd-payment-edit {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 6px;
}
.dpd-payment-edit input {
    padding: 7px 9px;
    background: rgba(192,192,192,0.06);
    border: 1px solid var(--border);
    border-radius: 5px;
    color: var(--accent);
    font-size: 13px;
}
.dpd-payment-edit input:focus { outline: none; border-color: var(--silver); }
@media (max-width: 768px) {
    body.adm-body .dpd-row { grid-template-columns: 1fr; }
    body.adm-body .dpd-row-debt { text-align: right; }
}

/* ===== LK: Bills внутри «Мой стол» ===== */
.bills-section-title {
    margin: 28px 2px 12px;
    font-size: 11px;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--silver-dim);
    font-weight: 600;
}

/* ===== LK: Рейтинг — переключатель ===== */
.rating-toggle {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin: 0 0 18px;
    background: rgba(192,192,192,0.06);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.rating-toggle-btn {
    background: transparent;
    border: 0;
    color: var(--silver-dim);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    border-radius: 7px;
    transition: background 0.2s, color 0.2s;
}
.rating-toggle-btn:hover { color: var(--silver-bright); }
.rating-toggle-btn.is-active {
    background: linear-gradient(135deg, rgba(192,192,192,0.18), rgba(192,192,192,0.08));
    color: var(--accent);
    box-shadow: 0 1px 0 rgba(255,255,255,0.05) inset;
}

/* ===== LK: Рейтинг клуба ===== */
.club-sort-toggle {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin: 0 0 14px;
    background: rgba(192,192,192,0.04);
    border: 1px solid var(--border);
    border-radius: 8px;
}
.club-sort-btn {
    background: transparent;
    border: 0;
    color: var(--silver-dim);
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.3px;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.18s, color 0.18s;
    font-family: inherit;
}
.club-sort-btn:hover { color: var(--silver-bright); }
.club-sort-btn.is-active {
    background: linear-gradient(135deg, rgba(192,192,192,0.18), rgba(192,192,192,0.08));
    color: var(--silver-bright);
    box-shadow: 0 1px 0 rgba(255,255,255,0.05) inset;
}
.club-row-sub {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: var(--silver-dim);
    margin-top: 2px;
    letter-spacing: 0.2px;
}
.club-rating {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 110px; /* отступ под sticky-плашку */
}
.club-row {
    display: grid;
    grid-template-columns: 44px 1fr auto auto;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    background: rgba(192,192,192,0.03);
    border: 1px solid var(--border);
    border-radius: 8px;
    transition: background 0.2s;
}
.club-row:hover { background: rgba(192,192,192,0.06); }
.club-row.me {
    background: linear-gradient(90deg, rgba(126,179,255,0.10), rgba(126,179,255,0.02));
    border-color: rgba(126,179,255,0.35);
}
.club-row-rank {
    font-size: 18px;
    font-weight: 700;
    color: var(--silver-dim);
    text-align: center;
}
.club-row.me .club-row-rank { color: #7eb3ff; }
.club-row-name {
    font-size: 14px;
    color: var(--accent);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.club-row-tag {
    margin-left: 6px;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #7eb3ff;
    background: rgba(126,179,255,0.14);
    border-radius: 4px;
}
.club-row-stats {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--silver-dim);
}
.club-row-stats em {
    font-style: normal;
    font-size: 10px;
    letter-spacing: 0.5px;
    margin-left: 2px;
    opacity: 0.7;
}
.club-row-points {
    font-size: 16px;
    font-weight: 700;
    color: var(--accent);
    min-width: 80px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.club-row.me .club-row-points { color: #7eb3ff; }

/* Sticky bar — фиксируется внизу viewport, пока не доскроллим до своей строки */
.rating-sticky {
    position: fixed;
    left: 50%;
    transform: translateX(-50%) translateY(0);
    bottom: 24px;
    width: min(560px, calc(100% - 32px));
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    background: linear-gradient(135deg, rgba(126,179,255,0.22), rgba(126,179,255,0.08));
    border: 1px solid rgba(126,179,255,0.5);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(0,0,0,0.5);
    z-index: 50;
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.25s ease, transform 0.3s ease;
}
.rating-sticky.is-merged {
    opacity: 0;
    transform: translateX(-50%) translateY(20px);
    pointer-events: none;
}
.rating-sticky-rank {
    font-size: 22px;
    font-weight: 800;
    color: #7eb3ff;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.rating-sticky-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--accent);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rating-sticky-points {
    font-size: 18px;
    font-weight: 700;
    color: #7eb3ff;
    font-variant-numeric: tabular-nums;
}
.rating-sticky-sub {
    font-size: 11px;
    color: var(--silver-dim);
    font-weight: 500;
    margin-left: 4px;
    letter-spacing: 0.4px;
}
.rating-sticky-empty {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--silver-dim);
    font-size: 13px;
}

@media (max-width: 768px) {
    .club-row {
        grid-template-columns: 36px 1fr auto;
        gap: 10px;
        padding: 10px 12px;
    }
    .club-row-stats { display: none; }
    .club-row-rank { font-size: 16px; }
    .club-row-points { font-size: 14px; min-width: 60px; }
    .rating-sticky {
        padding: 11px 14px;
        grid-template-columns: 44px 1fr auto;
        bottom: 100px; /* над bnav */
        width: calc(100% - 28px);
    }
    .rating-sticky.is-merged { transform: translateX(-50%) translateY(15px); }
    .rating-sticky-rank { font-size: 18px; }
    .rating-sticky-points { font-size: 15px; }
    .rating-toggle { width: 100%; }
    .rating-toggle-btn { flex: 1; padding: 10px 8px; font-size: 12px; }
}

/* ========== Меню кухни (вкладка ЛК «Меню») ========== */
.menu-call-wrap {
    margin-bottom: 18px;
}
.menu-call-btn {
    width: 100%;
    background: linear-gradient(180deg, #1a1a1d 0%, #0e0e10 100%);
    color: #f0f0f0;
    border: 1px solid rgba(192,192,192,0.25);
    border-radius: 8px;
    padding: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.18s;
}
.menu-call-btn:hover:not(:disabled) {
    border-color: #c0c0c0;
    background: linear-gradient(180deg, #232326 0%, #161618 100%);
}
.menu-call-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.menu-not-seated {
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.25);
    color: #ffb4b4;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin-bottom: 18px;
}
.menu-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 2px 2px 14px;
    margin: 0 -2px 4px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.menu-chips::-webkit-scrollbar { display: none; }
.menu-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    background: rgba(255,255,255,0.035);
    border: 1px solid rgba(192,192,192,0.14);
    border-radius: 999px;
    color: var(--silver);
    font-size: 13px;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s, transform .12s;
    flex-shrink: 0;
}
.menu-chip:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(192,192,192,0.30);
    color: var(--silver-bright);
}
.menu-chip:active { transform: scale(0.96); }
.menu-chip.is-active {
    background: linear-gradient(135deg, rgba(232,199,138,0.22), rgba(232,199,138,0.08));
    border-color: rgba(232,199,138,0.55);
    color: var(--accent);
    box-shadow: 0 0 0 1px rgba(232,199,138,0.18) inset;
}
.menu-chip-icon { font-size: 14px; line-height: 1; }
.menu-chip-lab { font-weight: 600; letter-spacing: 0.3px; }
.menu-chip-count {
    background: rgba(255,255,255,0.06);
    color: var(--text-mute);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 999px;
    min-width: 18px;
    text-align: center;
}
.menu-chip.is-active .menu-chip-count {
    background: rgba(232,199,138,0.18);
    color: var(--accent);
}
.menu-group {
    margin-bottom: 26px;
}
.menu-group-title {
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(192,192,192,0.12);
}
.menu-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 16px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 8px;
    margin-bottom: 10px;
    transition: border-color 0.15s;
}
.menu-item:hover { border-color: rgba(192,192,192,0.22); }
.menu-item-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}
.menu-item-name {
    font-size: 15px;
    font-weight: 600;
    color: #f0f0f0;
}
.menu-item-price {
    font-size: 13px;
    color: #c0c0c0;
    letter-spacing: 0.5px;
}
.menu-item-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: space-between;
}
.menu-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(192,192,192,0.25);
    border-radius: 999px;
    overflow: hidden;
    flex-shrink: 0;
}
.menu-qty-btn {
    width: 36px;
    height: 36px;
    background: transparent;
    color: #f0f0f0;
    border: none;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.12s;
}
.menu-qty-btn:hover:not(:disabled) { background: rgba(192,192,192,0.10); }
.menu-qty-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.menu-qty-val {
    min-width: 28px;
    text-align: center;
    color: #f0f0f0;
    font-size: 14px;
    font-weight: 600;
}
.menu-order-btn {
    flex: 1;
    background: linear-gradient(180deg, #fafafc 0%, #c8c8cc 100%);
    color: #0a0a0c !important;
    border: none;
    border-radius: 999px;
    padding: 10px 18px;
    font-weight: 700;
    letter-spacing: 1px;
    font-size: 12px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.18s;
}
.menu-order-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #fff 0%, #e0e0e4 100%);
    box-shadow: 0 8px 20px rgba(232,232,236,0.18);
}
.menu-order-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Комментарий игрока к позиции меню */
.menu-note-add {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 10px;
    background: transparent;
    border: none;
    color: rgba(192,192,192,0.65);
    font-size: 12px;
    letter-spacing: 0.3px;
    cursor: pointer;
    padding: 4px 0;
    transition: color 0.12s;
}
.menu-note-add:hover { color: #f0f0f0; }
.menu-item-note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}
.menu-note-input {
    flex: 1;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(192,192,192,0.20);
    border-radius: 10px;
    color: #f0f0f0;
    padding: 8px 12px;
    font-size: 13px;
    font-family: inherit;
    transition: border-color 0.12s, background 0.12s;
}
.menu-note-input:focus {
    outline: none;
    border-color: rgba(192,192,192,0.45);
    background: rgba(255,255,255,0.06);
}
.menu-note-input::placeholder { color: rgba(192,192,192,0.40); }
.menu-note-close {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background: transparent;
    border: 1px solid rgba(192,192,192,0.20);
    border-radius: 50%;
    color: #c0c0c0;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.12s;
}
.menu-note-close:hover { border-color: rgba(232,232,232,0.5); color: #fff; }

/* ========== Список документов (вкладка ЛК «О клубе и документы») ========== */
.docs-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.docs-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 8px;
    color: #d0d0d0;
    text-decoration: none;
    transition: all 0.15s;
}
.docs-item:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(192,192,192,0.25);
    color: #fff;
}
.docs-item-title { font-size: 14px; font-weight: 500; }
.docs-item-arrow { color: #888; font-size: 16px; }

/* ========== Админ: меню кухни (CRUD таблица) ========== */
.amenu-add {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.12);
    border-radius: 8px;
}
.amenu-add input,
.amenu-add select {
    background: #1a1a1a;
    color: #fff;
    border: 1px solid rgba(192,192,192,0.20);
    padding: 8px 10px;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
}
.amenu-add input[type="text"] { flex: 1; min-width: 180px; }
.amenu-add input[type="number"] { width: 110px; }
.amenu-add button {
    background: #c0c0c0;
    color: #0a0a0a;
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-size: 12px;
}
.amenu-add button:hover { background: #fff; }

.amenu-table {
    width: 100%;
    border-collapse: collapse;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 8px;
    overflow: hidden;
}
.amenu-table th,
.amenu-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(192,192,192,0.08);
    text-align: left;
}
.amenu-table th {
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #888;
    font-weight: 600;
    background: rgba(0,0,0,0.25);
}
.amenu-row.is-inactive {
    opacity: 0.5;
}
.amenu-row input[type="text"],
.amenu-row input[type="number"],
.amenu-row select {
    background: #1a1a1a;
    color: #f0f0f0;
    border: 1px solid rgba(192,192,192,0.15);
    padding: 6px 8px;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
    width: 100%;
}
.amenu-row input[type="number"] { width: 90px; }
.amenu-actions { display: flex; gap: 6px; white-space: nowrap; }
.amenu-save,
.amenu-del {
    background: transparent;
    border: 1px solid rgba(192,192,192,0.25);
    color: #c0c0c0;
    padding: 6px 12px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    transition: all 0.15s;
}
.amenu-save:hover { background: rgba(192,192,192,0.1); color: #fff; }
.amenu-del:hover { background: rgba(220,53,69,0.15); border-color: #dc3545; color: #ff6b6b; }
.amenu-active { width: 18px; height: 18px; cursor: pointer; accent-color: #c0c0c0; }
.amenu-empty { text-align: center; color: #888; padding: 20px; }

@media (max-width: 600px) {
    .amenu-add { flex-direction: column; }
    .amenu-add input[type="text"],
    .amenu-add input[type="number"],
    .amenu-add select { width: 100%; }
    .amenu-table { font-size: 12px; }
    .amenu-table th, .amenu-table td { padding: 6px 4px; }
    .menu-item-actions { flex-direction: column; align-items: stretch; }
    .menu-qty { align-self: center; }
}

/* Активные заказы внутри вкладки «Меню» — список с кнопкой отмены */
.menu-active-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
    padding: 12px;
    background: rgba(192,192,192,0.05);
    border: 1px solid rgba(192,192,192,0.18);
    border-radius: 8px;
}
.menu-active-order {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: rgba(0,0,0,0.25);
    border-radius: 6px;
}
.menu-active-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}
.menu-active-name {
    color: #f0f0f0;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.menu-active-status {
    color: #888;
    font-size: 12px;
}
.menu-active-cnote {
    color: #f0d9a8;
    font-size: 12px;
    font-style: italic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.menu-active-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.menu-active-price {
    color: #c0c0c0;
    font-size: 13px;
    font-weight: 500;
}
.menu-active-cancel {
    background: transparent;
    border: 1px solid rgba(220, 53, 69, 0.4);
    color: #ff8a8a;
    border-radius: 4px;
    padding: 6px 12px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.15s;
}
.menu-active-cancel:hover {
    background: rgba(220, 53, 69, 0.15);
    border-color: #dc3545;
    color: #ff6b6b;
}
.orders-cancel-btn {
    margin-left: auto;
}

/* ========== Админ: Дилеры → График ========== */
.dsch-list { display: flex; flex-direction: column; gap: 18px; }
.dsch-day {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 10px;
    padding: 14px 16px;
}
.dsch-day-head {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 12px; padding-bottom: 8px;
    border-bottom: 1px solid rgba(192,192,192,0.12);
}
.dsch-day-label { font-size: 13px; font-weight: 600; color: #f0f0f0; letter-spacing: 0.5px; text-transform: uppercase; }
.dsch-day-date { font-size: 12px; color: var(--silver-dim, #888); }
.dsch-tour {
    background: rgba(0,0,0,0.25);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
}
.dsch-tour:last-child { margin-bottom: 0; }
.dsch-tour-head {
    display: flex; gap: 12px; align-items: baseline; margin-bottom: 8px;
}
.dsch-tour-time { font-size: 14px; font-weight: 700; color: #c0c0c0; min-width: 48px; }
.dsch-tour-title { font-size: 14px; color: #f0f0f0; flex: 1; }
.dsch-badge {
    display: inline-block; padding: 1px 8px; margin-left: 6px;
    border-radius: 999px; font-size: 10px; letter-spacing: 0.5px;
    text-transform: uppercase; font-weight: 600;
}
.dsch-badge.cash { background: rgba(126,179,255,0.15); color: #7eb3ff; }
.dsch-badge.pko { background: rgba(255,184,77,0.15); color: #ffb84d; }
.dsch-dealers { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dsch-dealer {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 4px 10px; background: rgba(192,192,192,0.10);
    border: 1px solid rgba(192,192,192,0.20);
    border-radius: 999px; font-size: 12px; color: #e8e8e8;
}
.dsch-dealer-x {
    background: transparent; border: none; color: #888; cursor: pointer;
    padding: 0 0 0 4px; font-size: 14px; line-height: 1;
}
.dsch-dealer-x:hover { color: #ff6b6b; }
.dsch-empty { color: var(--silver-dim, #888); font-size: 12px; font-style: italic; }
.dsch-add-btn {
    background: transparent; border: 1px dashed rgba(192,192,192,0.30); color: #c0c0c0;
    padding: 4px 12px; border-radius: 999px; font-size: 12px; cursor: pointer;
    transition: all 0.15s;
}
.dsch-add-btn:hover { border-color: #c0c0c0; background: rgba(192,192,192,0.10); color: #fff; }

/* Модалка назначения дилеров */
.dsch-modal-sub { color: var(--silver-dim, #888); font-size: 13px; margin-bottom: 14px; }
.dsch-pick-list { display: flex; flex-direction: column; gap: 6px; max-height: 300px; overflow-y: auto; margin-bottom: 16px; }
.dsch-pick {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 10px; border: 1px solid rgba(192,192,192,0.10);
    border-radius: 6px; cursor: pointer; transition: background 0.15s;
}
.dsch-pick:hover { background: rgba(255,255,255,0.04); }
.dsch-pick input[type="checkbox"] { width: 18px; height: 18px; accent-color: #c0c0c0; cursor: pointer; }
.dsch-pick span { color: #f0f0f0; font-size: 14px; }
.dsch-modal-actions { display: flex; gap: 10px; justify-content: flex-end; }

/* ========== Админ: Дилеры → Список ========== */
.dlist-add {
    display: flex; gap: 8px; flex-wrap: wrap;
    margin-bottom: 16px; padding: 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.12);
    border-radius: 8px;
}
.dlist-add input {
    background: #1a1a1a; color: #fff;
    border: 1px solid rgba(192,192,192,0.20);
    padding: 8px 10px; border-radius: 4px;
    font-family: inherit; font-size: 13px;
}
.dlist-add input[type="text"], .dlist-add input[type="tel"] { flex: 1; min-width: 160px; }
.dlist-add input[type="number"] { width: 100px; }
.dlist-add button {
    background: #c0c0c0; color: #0a0a0a; border: none;
    padding: 8px 16px; border-radius: 4px; font-weight: 700;
    cursor: pointer; letter-spacing: 0.5px; text-transform: uppercase; font-size: 12px;
}
.dlist-add button:hover { background: #fff; }
.dlist-table { width: 100%; border-collapse: collapse; background: rgba(255,255,255,0.02); border: 1px solid rgba(192,192,192,0.10); border-radius: 8px; overflow: hidden; }
.dlist-table th, .dlist-table td { padding: 10px 12px; border-bottom: 1px solid rgba(192,192,192,0.08); text-align: left; }
.dlist-table th { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #888; font-weight: 600; background: rgba(0,0,0,0.25); }
.dlist-rate { width: 90px; background: #1a1a1a; color: #fff; border: 1px solid rgba(192,192,192,0.15); padding: 6px 8px; border-radius: 4px; font-family: inherit; font-size: 13px; }
.dlist-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.btn-sm {
    background: transparent; border: 1px solid rgba(192,192,192,0.25); color: #c0c0c0;
    padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.15s;
}
.btn-sm:hover { background: rgba(192,192,192,0.1); color: #fff; }
.btn-sm.danger:hover { background: rgba(220,53,69,0.15); border-color: #dc3545; color: #ff6b6b; }

@media (max-width: 600px) {
    .dlist-add { flex-direction: column; }
    .dlist-add input { width: 100%; }
    .dlist-table { font-size: 12px; }
    .dlist-table th, .dlist-table td { padding: 6px 4px; }
    .dlist-actions { flex-direction: column; }
    .dsch-tour-head { flex-direction: column; gap: 4px; }
}

/* ========== ЛК дилера: «Мой график» ========== */
.msch-list { display: flex; flex-direction: column; gap: 10px; }
.msch-card {
    padding: 16px 18px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(192,192,192,0.15);
    border-radius: 10px;
    transition: all 0.15s;
}
.msch-card:hover { border-color: rgba(192,192,192,0.30); background: rgba(255,255,255,0.06); }
.msch-card.is-today {
    border-color: rgba(126,179,255,0.45);
    background: linear-gradient(135deg, rgba(126,179,255,0.08), rgba(126,179,255,0.02));
}
.msch-day {
    font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
    color: #c0c0c0; font-weight: 600; margin-bottom: 6px;
}
.msch-card.is-today .msch-day { color: #7eb3ff; }
.msch-fmt { font-size: 17px; font-weight: 600; color: #fff; margin-bottom: 4px; }
.msch-meta { font-size: 12px; color: var(--silver-dim, #888); }
.msch-pko { color: #ffb84d; font-weight: 700; }

/* Модалка назначения дилеров — расширенная с временами прихода/ухода */
.dsch-pick { flex-direction: column; align-items: stretch; gap: 8px; }
.dsch-pick-head { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.dsch-pick-head input[type="checkbox"] { width: 18px; height: 18px; accent-color: #c0c0c0; cursor: pointer; }
.dsch-pick-head span { color: #f0f0f0; font-size: 14px; font-weight: 500; }
.dsch-pick-times {
    display: flex; gap: 12px; padding-left: 28px; flex-wrap: wrap;
}
.dsch-pick-times label {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; color: #888; letter-spacing: 0.5px; text-transform: uppercase;
}
.dsch-pick-times input[type="time"] {
    background: #1a1a1a; color: #fff;
    border: 1px solid rgba(192,192,192,0.18);
    padding: 6px 8px; border-radius: 4px;
    font-family: inherit; font-size: 13px;
    text-transform: none; letter-spacing: normal;
}
.dsch-pick-times input[type="time"]:disabled { opacity: 0.4; cursor: not-allowed; }
.dsch-dealer-time {
    color: #c0c0c0; font-size: 11px; font-weight: 500;
    margin-left: 4px; letter-spacing: 0.3px;
}

/* ========== Записавшиеся на турнир (карточный список) ========== */
.su-list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.su-card {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.10);
    border-radius: 8px;
}
.su-num { color: var(--silver-dim, #888); font-size: 12px; font-weight: 600; }
.su-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.su-name {
    color: #f0f0f0; font-weight: 500; font-size: 14px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.su-phone { color: var(--silver-dim, #888); font-size: 12px; }
.su-date { color: var(--silver-dim, #888); font-size: 11px; white-space: nowrap; }

@media (max-width: 480px) {
    .su-card { grid-template-columns: 22px minmax(0, 1fr); padding: 8px 10px; }
    .su-date { grid-column: 2; font-size: 10px; }
}

/* ========== Админ: меню кухни — карточный вид ========== */
.amenu-add-btn {
    display: block; width: 100%;
    background: rgba(192, 192, 192, 0.06);
    border: 1px dashed rgba(192, 192, 192, 0.30);
    color: #c0c0c0;
    padding: 14px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    margin-bottom: 12px;
}
.amenu-add-btn:hover { background: rgba(192, 192, 192, 0.12); border-color: #c0c0c0; color: #fff; }
.amenu-list { display: flex; flex-direction: column; gap: 8px; }
.amenu-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.10);
    border-radius: 10px;
    transition: border-color 0.15s;
}
.amenu-card:hover { border-color: rgba(192, 192, 192, 0.25); }
.amenu-card.is-inactive { opacity: 0.55; }
.amenu-card-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.amenu-card-name {
    color: #f0f0f0; font-weight: 600; font-size: 15px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.amenu-card-meta { color: var(--silver-dim, #888); font-size: 12px; }
.amenu-card-off { color: #ff8a8a; }

.amenu-card-toggle {
    position: relative; width: 38px; height: 22px; cursor: pointer; flex-shrink: 0;
}
.amenu-card-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.amenu-card-toggle-slider {
    position: absolute; inset: 0;
    background: rgba(192, 192, 192, 0.20);
    border-radius: 999px;
    transition: background 0.18s;
}
.amenu-card-toggle-slider::before {
    content: ''; position: absolute;
    width: 16px; height: 16px;
    left: 3px; top: 3px;
    background: #c0c0c0;
    border-radius: 50%;
    transition: transform 0.18s, background 0.18s;
}
.amenu-card-toggle input:checked ~ .amenu-card-toggle-slider {
    background: rgba(126, 179, 255, 0.45);
}
.amenu-card-toggle input:checked ~ .amenu-card-toggle-slider::before {
    transform: translateX(16px);
    background: #fff;
}
.amenu-card-edit, .amenu-card-del {
    width: 34px; height: 34px;
    background: transparent;
    border: 1px solid rgba(192, 192, 192, 0.20);
    color: #c0c0c0;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    transition: all 0.15s;
}
.amenu-card-edit:hover { background: rgba(192, 192, 192, 0.12); color: #fff; }
.amenu-card-del:hover { background: rgba(220, 53, 69, 0.15); border-color: #dc3545; color: #ff6b6b; }

@media (max-width: 480px) {
    .amenu-card { grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; padding: 10px 12px; }
    .amenu-card-del { display: none; }
}

/* ========== Модалка редактирования позиции меню ========== */
.amenu-form { display: flex; flex-direction: column; gap: 14px; }
.amenu-form label {
    display: flex; flex-direction: column; gap: 6px;
    font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
    color: #888;
}
.amenu-form input[type="text"],
.amenu-form input[type="number"],
.amenu-form select {
    background: #1a1a1a;
    color: #fff;
    border: 1px solid rgba(192, 192, 192, 0.18);
    padding: 12px 14px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 15px;
    text-transform: none;
    letter-spacing: normal;
}
.amenu-form input:focus,
.amenu-form select:focus { outline: none; border-color: #c0c0c0; }
.amenu-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.amenu-form-check {
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 14px !important;
    color: #d0d0d0 !important;
    cursor: pointer;
}
.amenu-form-check input[type="checkbox"] {
    width: 20px; height: 20px;
    accent-color: #c0c0c0; cursor: pointer;
    margin: 0;
}
.amenu-form-actions {
    display: flex; justify-content: flex-end; gap: 10px;
    margin-top: 6px;
}
.amenu-form-actions .btn {
    padding: 11px 20px;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    font-family: inherit;
    font-size: 14px;
}
.amenu-form-actions .btn-cancel {
    background: transparent;
    color: #c0c0c0;
    border: 1px solid rgba(192, 192, 192, 0.25);
}
.amenu-form-actions .btn-cancel:hover { background: rgba(192, 192, 192, 0.10); color: #fff; }
.amenu-form-actions .btn-signup {
    background: #c0c0c0;
    color: #0a0a0a;
}
.amenu-form-actions .btn-signup:hover { background: #fff; }

/* Очень узкие экраны — стол в 1 колонку, чтобы имя + ребай-индикатор не резались */
@media (max-width: 420px) {
    body.adm-body .lt-seats { grid-template-columns: 1fr !important; }
    body.adm-body .lt-seat-name { font-size: 12px; }
}

/* В админке (десктоп) кнопки «В ЛК игрока» / «В ЛК дилера» — тусклые белые
   (а не золотистые как в LK игрока). Опции для админа, не главные действия. */
body.adm-body .cab-foot-btn-role {
    background: transparent;
    border: 1px solid rgba(232, 232, 236, 0.20);
    color: rgba(232, 232, 236, 0.55);
}
body.adm-body .cab-foot-btn-role:hover {
    background: rgba(232, 232, 236, 0.06);
    border-color: rgba(232, 232, 236, 0.45);
    color: #fff;
}

/* ========== LIVE-баннер в ЛК игрока ========== */
.lk-live-bar {
    position: fixed;
    left: 0; right: 0;
    z-index: 100;
    pointer-events: none;
}
.lk-live-bar--top { top: 0; }
.lk-live-bar--bottom { bottom: 0; }
.lk-live-bar[hidden] { display: none !important; }
.lk-live-bar .lvb-inner {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 920px;
    margin: 0 auto;
    padding: 9px 16px;
    background: linear-gradient(90deg, rgba(52, 211, 153, 0.14) 0%, rgba(20, 20, 22, 0.85) 30%, rgba(20, 20, 22, 0.85) 100%);
    border: none;
    border-bottom: 1px solid rgba(52, 211, 153, 0.35);
    color: #f0f0f0;
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
    backdrop-filter: blur(10px) saturate(160%);
    -webkit-backdrop-filter: blur(10px) saturate(160%);
    transition: background 0.18s;
}
.lk-live-bar--bottom .lvb-inner {
    border-bottom: none;
    border-top: 1px solid rgba(126, 179, 255, 0.30);
    background: linear-gradient(90deg, rgba(126, 179, 255, 0.12) 0%, rgba(20, 20, 22, 0.85) 30%, rgba(20, 20, 22, 0.85) 100%);
}
.lk-live-bar .lvb-inner:hover { background: rgba(30, 30, 32, 0.92); }
.lvb-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #34d399; flex-shrink: 0;
    box-shadow: 0 0 10px rgba(52, 211, 153, 0.7);
    animation: lvb-pulse 1.6s infinite;
}
.lk-live-bar--bottom .lvb-dot {
    background: #7eb3ff;
    box-shadow: 0 0 10px rgba(126, 179, 255, 0.7);
}
@keyframes lvb-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%      { transform: scale(1.35); opacity: 0.55; }
}
.lvb-label {
    font-weight: 700; letter-spacing: 1.5px; font-size: 11px;
    color: #34d399;
}
.lk-live-bar--bottom .lvb-label { color: #7eb3ff; }
.lvb-fmt { font-weight: 600; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.lvb-pko {
    display: inline-block;
    background: rgba(255, 184, 77, 0.15);
    color: #ffb84d;
    font-size: 9px; font-weight: 700; letter-spacing: 1px;
    padding: 1px 6px; border-radius: 999px;
    margin-left: 4px;
}
.lvb-sep { color: var(--silver-dim, #888); }
.lvb-blinds { font-weight: 600; color: #fff; font-feature-settings: "tnum"; }
.lvb-time { color: #c0c0c0; font-feature-settings: "tnum"; }
.lvb-players { color: var(--silver-dim, #888); white-space: nowrap; }
.lvb-arrow { color: var(--silver-dim, #888); margin-left: auto; flex-shrink: 0; }

/* На мобиле — компактнее, скрываем некоторые элементы */
@media (max-width: 600px) {
    .lk-live-bar .lvb-inner { padding: 8px 12px; font-size: 12px; gap: 8px; }
    .lvb-fmt { max-width: 90px; }
    .lvb-players { display: none; }
}
@media (max-width: 380px) {
    .lvb-time { display: none; }
}

/* Сдвиг контента когда top-баннер виден (чтобы не перекрывал) */
body.lk-body:has(#lk-live-top:not([hidden])) .cab-layout { padding-top: 42px; }

/* ========== LIVE-бейдж на карточке турнира ========== */
.t-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 7px;
    margin-left: 6px;
    background: rgba(52, 211, 153, 0.16);
    border: 1px solid rgba(52, 211, 153, 0.45);
    border-radius: 999px;
    color: #34d399;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    vertical-align: middle;
    animation: t-live-pulse 1.8s infinite;
}
.t-live-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 6px #34d399;
}
@keyframes t-live-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.55); }
    50%      { box-shadow: 0 0 0 6px rgba(52, 211, 153, 0); }
}
.t-card.is-live {
    border-color: rgba(52, 211, 153, 0.55);
    box-shadow: 0 0 0 1px rgba(52, 211, 153, 0.35), 0 0 24px rgba(52, 211, 153, 0.18);
    background: linear-gradient(180deg, rgba(52, 211, 153, 0.08), rgba(52, 211, 153, 0.02));
    position: relative;
    overflow: hidden;
}
.t-card.is-live::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, #34d399 50%, transparent 100%);
    background-size: 200% 100%;
    animation: t-live-shimmer 2.4s infinite linear;
}
@keyframes t-live-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.t-live-section {
    margin-bottom: 24px;
}
.t-live-section-head {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: #34d399;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(52, 211, 153, 0.30);
}
.t-live-section-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 10px #34d399;
    animation: t-live-pulse 1.8s infinite;
}
.t-rest-grid { margin-top: 4px; }

/* ========== Структура блайндов в деталях турнира — подсветка текущего ========== */
.lk-d-levels tr.is-current {
    background: rgba(52, 211, 153, 0.12) !important;
    box-shadow: inset 3px 0 0 #34d399;
}
.lk-d-levels tr.is-current td {
    color: #fff !important;
    font-weight: 700;
}
.lk-d-progress-row td {
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.lk-d-progress {
    position: relative;
    height: 5px;
    background: rgba(255, 255, 255, 0.06);
    overflow: hidden;
    margin-bottom: 4px;
}
.lk-d-progress-fill {
    position: absolute;
    inset: 0 auto 0 0;
    background: linear-gradient(90deg, #ff3b3b 0%, #ff8a8a 100%);
    transition: width 0.9s linear;
}
.lk-d-progress-time {
    position: absolute;
    right: 6px; top: -18px;
    font-size: 11px; color: #c0c0c0;
    font-feature-settings: "tnum";
}

/* ========== Misc-долг — бейдж рядом с именем должника ========== */
.dbt-misc-badge {
    display: inline-block;
    background: rgba(220, 53, 69, 0.12);
    border: 1px solid rgba(220, 53, 69, 0.30);
    color: #ff8a8a;
    font-size: 10px;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 999px;
    margin-left: 8px;
    vertical-align: middle;
    font-weight: 500;
}

/* ========== Контакты и адрес — сворачивающийся блок ========== */
.contacts-block {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.12);
    border-radius: 10px;
    margin-bottom: 16px;
    overflow: hidden;
}
.contacts-block summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
    list-style: none;
    transition: background 0.15s;
}
.contacts-block summary::-webkit-details-marker { display: none; }
.contacts-block summary:hover { background: rgba(255, 255, 255, 0.03); }
.contacts-icon { font-size: 16px; }
.contacts-title {
    flex: 1; color: #f0f0f0; font-weight: 600; font-size: 14px;
}
.contacts-arrow {
    color: var(--silver-dim, #888); font-size: 12px;
    transition: transform 0.2s;
}
.contacts-block[open] .contacts-arrow { transform: rotate(180deg); }
.contacts-body {
    padding: 0 16px 16px;
    display: flex; flex-direction: column; gap: 8px;
    border-top: 1px solid rgba(192, 192, 192, 0.08);
    padding-top: 14px;
    margin-top: 4px;
}
.contacts-row {
    display: flex; gap: 12px;
    color: #d0d0d0; font-size: 13px; line-height: 1.5;
}
.contacts-row-lab {
    color: var(--silver-dim, #888);
    font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
    min-width: 78px; flex-shrink: 0; padding-top: 1px;
}
.contacts-row a { color: #c8c8d8; text-decoration: underline; text-decoration-color: rgba(200,200,216,0.4); }
.contacts-row a:hover { color: #fff; text-decoration-color: #fff; }

/* ========== LIVE-полоска: приглушённый стиль после закрытия аддона ========== */
.lk-live-bar.is-addon-closed .lvb-inner {
    background: linear-gradient(90deg, rgba(126, 179, 255, 0.08) 0%, rgba(20, 20, 22, 0.85) 30%, rgba(20, 20, 22, 0.85) 100%);
    border-bottom-color: rgba(126, 179, 255, 0.30);
}
.lk-live-bar.is-addon-closed .lvb-dot {
    background: #7eb3ff;
    box-shadow: 0 0 8px rgba(126, 179, 255, 0.6);
    animation: none;
}
.lk-live-bar.is-addon-closed .lvb-label {
    color: #7eb3ff;
}

/* Отсчёт в ячейке «время» структуры блайндов */
.lk-d-countdown {
    color: #34d399;
    font-weight: 700;
    font-feature-settings: "tnum";
}

/* ========== Админ: Выбывшие из текущего турнира ========== */
.eliminated-block {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(192, 192, 192, 0.10);
    border-radius: 10px;
    overflow: hidden;
}
.eliminated-block summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    cursor: pointer;
    user-select: none;
    list-style: none;
    transition: background 0.15s;
}
.eliminated-block summary::-webkit-details-marker { display: none; }
.eliminated-block summary:hover { background: rgba(255, 255, 255, 0.03); }
.eliminated-head { gap: 12px; }
.eliminated-head > div { flex: 1; }
.eliminated-head h2 {
    font-size: 16px;
    color: #f0f0f0;
    margin: 0 0 2px;
    font-weight: 600;
}
.eliminated-head .sub {
    color: var(--silver-dim, #888);
    font-size: 12px;
    line-height: 1.4;
}
.eliminated-chev {
    color: var(--silver-dim, #888);
    font-size: 14px;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.eliminated-block[open] .eliminated-chev { transform: rotate(180deg); }
.eliminated-list {
    padding: 4px 14px 14px;
    display: flex; flex-direction: column; gap: 4px;
    border-top: 1px solid rgba(192, 192, 192, 0.08);
    padding-top: 10px;
}
.eliminated-row {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 12px;
    background: rgba(220, 53, 69, 0.05);
    border: 1px solid rgba(220, 53, 69, 0.15);
    border-radius: 8px;
}
.eliminated-info { flex: 1; min-width: 0; }
.eliminated-name {
    color: #f0f0f0; font-weight: 500; font-size: 14px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.eliminated-contact {
    color: var(--silver-dim, #888); font-size: 12px;
}
.eliminated-row .btn-sm {
    flex-shrink: 0;
    background: rgba(94, 208, 122, 0.10);
    border-color: rgba(94, 208, 122, 0.35);
    color: #5ed07a;
}
.eliminated-row .btn-sm:hover {
    background: rgba(94, 208, 122, 0.20);
    border-color: rgba(94, 208, 122, 0.55);
    color: #fff;
}

/* ===== Лента кухни (Аналитика → Кухня) ===== */
.kf-list { display: flex; flex-direction: column; gap: 8px; }
.kf-row {
    display: grid;
    grid-template-columns: 70px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 10px;
}
.kf-row-time {
    font-size: 12px;
    color: var(--silver-dim);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.kf-row-main { min-width: 0; }
.kf-row-top {
    font-size: 14px;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
}
.kf-row-bot {
    font-size: 12px;
    color: var(--silver-dim);
    margin-top: 2px;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.kf-row-price {
    font-size: 14px;
    font-weight: 600;
    color: var(--silver);
    white-space: nowrap;
}
.kf-tag {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: 1px solid transparent;
}
.kf-tag-tour { background: rgba(94,208,122,0.10); border-color: rgba(94,208,122,0.30); color: #5ed07a; }
.kf-tag-cash { background: rgba(255,180,80,0.10); border-color: rgba(255,180,80,0.30); color: #ffb450; }
.kf-tag-misc { background: rgba(192,192,192,0.10); border-color: rgba(192,192,192,0.25); color: var(--silver-dim); }
.kf-status {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-left: 6px;
}
.kf-status-prep { background: rgba(255,180,80,0.15); color: #ffb450; }
@media (max-width: 600px) {
    .kf-row { grid-template-columns: 56px 1fr auto; gap: 8px; padding: 8px 10px; }
    .kf-row-time { font-size: 11px; }
    .kf-row-top { font-size: 13px; }
    .kf-row-bot { font-size: 11px; }
}

/* ===== Феникс: блок «Стеки на аддоне» + бейджи ===== */
.phx-section {
    background: rgba(255, 138, 76, 0.04);
    border: 1px solid rgba(255, 138, 76, 0.18);
    border-radius: 10px;
    padding: 12px;
    margin-top: 10px;
}
.phx-section details summary { cursor: pointer; list-style: none; }
.phx-section details summary::-webkit-details-marker { display: none; }
.phx-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.phx-head h2, .phx-head h3 { margin: 0; font-size: 16px; color: var(--text); }
.phx-head .sub { font-size: 12px; color: var(--silver-dim); margin-top: 2px; }
.phx-status {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
    white-space: nowrap;
}
.phx-status-missing { background: rgba(231, 76, 76, 0.15); color: #ff7373; border: 1px solid rgba(231, 76, 76, 0.4); }
.phx-status-ok { background: rgba(94, 208, 122, 0.12); color: #5ed07a; border: 1px solid rgba(94, 208, 122, 0.35); }

.phx-tables { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.phx-table {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 8px;
    padding: 10px;
}
.phx-table-head {
    font-size: 13px;
    color: var(--accent, #c9a76c);
    font-weight: 600;
    margin-bottom: 8px;
}
.phx-table-rows { display: flex; flex-direction: column; gap: 6px; }
.phx-row {
    display: grid;
    grid-template-columns: 36px 1fr 120px 24px;
    gap: 8px;
    align-items: center;
    padding: 6px 8px;
    border: 1px solid rgba(192,192,192,0.10);
    border-radius: 6px;
    background: rgba(255,255,255,0.02);
}
.phx-row.is-missing {
    border-color: rgba(231, 76, 76, 0.45);
    background: rgba(231, 76, 76, 0.05);
}
.phx-row.is-ok { border-color: rgba(94, 208, 122, 0.30); }
.phx-row-seat { font-size: 12px; color: var(--silver-dim); font-weight: 600; }
.phx-row-name {
    font-size: 14px;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.phx-row-input {
    background: rgba(0,0,0,0.25);
    border: 1px solid rgba(192,192,192,0.20);
    color: var(--text);
    border-radius: 5px;
    padding: 6px 8px;
    font-family: inherit;
    font-size: 13px;
    text-align: right;
    width: 100%;
    font-variant-numeric: tabular-nums;
}
.phx-row-input:focus {
    outline: none;
    border-color: var(--silver);
    background: rgba(0,0,0,0.45);
}
.phx-row.is-missing .phx-row-input { border-color: rgba(231, 76, 76, 0.55); }
.phx-row.is-ok .phx-row-input { border-color: rgba(94, 208, 122, 0.35); }
.phx-row-state { font-size: 14px; text-align: center; opacity: 0.85; }
.phx-row.is-missing .phx-row-state { color: #ff7373; }
.phx-row.is-ok .phx-row-state { color: #5ed07a; }
.phx-badge {
    display: inline-block;
    font-size: 11px;
    padding: 0 4px;
    border-radius: 4px;
    background: rgba(255, 138, 76, 0.15);
}

.phx-btn {
    background: rgba(255, 138, 76, 0.15);
    border: 1px solid rgba(255, 138, 76, 0.4);
    color: #ff8a4c;
    font-weight: 600;
}
.phx-btn:hover {
    background: rgba(255, 138, 76, 0.25);
    border-color: rgba(255, 138, 76, 0.65);
    color: #fff;
}

@media (max-width: 600px) {
    .phx-row { grid-template-columns: 30px 1fr 100px 20px; gap: 6px; padding: 6px; }
    .phx-row-name { font-size: 13px; }
    .phx-row-input { font-size: 12px; padding: 5px 6px; }
}

/* Бейдж 🔥 в seat-card если игрок использовал Феникс */
.lt-seat-phx, .seat-b.phx { color: #ff8a4c; }

/* Феникс-кнопка в player-menu (рядом с Вернуть в игру / Аддон / Хайхенд) */
.pm-btn.phx {
    background: rgba(255, 138, 76, 0.10);
    border-color: rgba(255, 138, 76, 0.45);
    color: #ff8a4c;
}
.pm-btn.phx:hover {
    background: rgba(255, 138, 76, 0.22);
    border-color: rgba(255, 138, 76, 0.7);
    color: #fff;
}

/* В пикере феникса — место, на котором игрок сидел до KO */
.reseat-seat-btn.is-own {
    width: auto;
    min-width: 50px;
    padding: 0 10px;
    border-color: #ff8a4c;
    color: #ff8a4c;
    background: rgba(255, 138, 76, 0.10);
    font-weight: 700;
}
.reseat-seat-btn.is-own:hover:not(:disabled) {
    background: #ff8a4c;
    color: #000;
}

/* ===== Wallet / Balance ===== */
.cab-balance-plate {
    margin: 0 16px 14px;
    padding: 10px 14px;
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    cursor: pointer;
    transition: border-color .15s, transform .15s;
    color: inherit;
    font-family: inherit;
}
.cab-balance-plate:hover { border-color: var(--border-strong); transform: translateY(-1px); }
.cab-bal-label {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
}
.cab-bal-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--silver-bright);
}
.cab-balance-plate.is-debt .cab-bal-value { color: var(--danger); }
.cab-balance-plate.is-debt .cab-bal-label { color: var(--danger); }
.cab-balance-plate.is-positive .cab-bal-value { color: var(--success); }

/* ===== Плашка «🔒 +X на следующую игру» в сайдбаре под балансом ===== */
.cab-frozen-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
    padding: 10px 14px;
    background: linear-gradient(90deg, rgba(94,160,255,0.10) 0%, rgba(200,220,255,0.04) 100%);
    border: 1px solid rgba(126,179,255,0.30);
    border-left: 3px solid #7eb3ff;
    border-radius: 10px;
    color: #e8e8e8;
    font-size: 12px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: all 0.18s;
    font-family: inherit;
}
.cab-frozen-pill:hover {
    background: linear-gradient(90deg, rgba(94,160,255,0.16) 0%, rgba(200,220,255,0.06) 100%);
    border-color: rgba(126,179,255,0.55);
    transform: translateY(-1px);
}
.cab-frozen-pill .cfp-icon { font-size: 14px; line-height: 1; flex-shrink: 0; }
.cab-frozen-pill .cfp-text { font-weight: 500; letter-spacing: 0.3px; color: #c8e0ff; }

/* ===== Блок «Кэшбэк» во вкладке «Бонусы» ===== */
.cb-section { margin-bottom: 28px; }
.cb-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; flex-wrap: wrap; gap: 8px; }
.cb-head-title { font-family: 'Foglihten', serif; font-size: 22px; color: #fff; letter-spacing: 3px; text-transform: uppercase; }
.cb-head-pct { color: #888; font-size: 13px; }
.cb-head-pct strong { color: #fff; font-weight: 500; }
.cb-frozen-card {
    background: linear-gradient(135deg, rgba(126,179,255,0.10) 0%, rgba(20,20,22,0.6) 70%);
    border: 1px solid rgba(126,179,255,0.30);
    border-radius: 14px;
    padding: 24px 26px;
    margin-bottom: 14px;
}
.cb-frozen-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #7eb3ff; margin-bottom: 6px; }
.cb-frozen-value { font-family: 'Foglihten', serif; font-size: 36px; color: #fff; letter-spacing: 1px; line-height: 1.1; margin-bottom: 10px; text-shadow: 0 0 24px rgba(126,179,255,0.4); }
.cb-frozen-hint { font-size: 13px; color: #888; line-height: 1.55; }
.cb-mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px; }
.cb-mini { background: rgba(255,255,255,0.025); border: 1px solid rgba(192,192,192,0.10); border-radius: 10px; padding: 12px 14px; text-align: center; }
.cb-mini-val { font-family: 'Foglihten', serif; font-size: 18px; color: #fff; letter-spacing: 0.5px; }
.cb-mini-lab { font-size: 10px; letter-spacing: 1.5px; color: #888; text-transform: uppercase; margin-top: 4px; }
.cb-history-title { font-family: 'Foglihten', serif; font-size: 14px; letter-spacing: 2px; text-transform: uppercase; color: #c0c0c0; margin: 6px 0 8px; }
.cb-history { display: flex; flex-direction: column; gap: 6px; }
.cb-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(192,192,192,0.10);
    border-left: 3px solid var(--border);
    border-radius: 8px;
}
.cb-row.is-pending  { border-left-color: #888; }
.cb-row.is-frozen   { border-left-color: #7eb3ff; }
.cb-row.is-unfrozen { border-left-color: #5ed07a; }
.cb-row.is-cancelled{ border-left-color: var(--danger); opacity: 0.7; }
.cb-row-source { font-size: 13px; color: #f0f0f0; letter-spacing: 0.3px; }
.cb-row-meta { font-size: 11px; color: #888; margin-top: 2px; }
.cb-row-right { text-align: right; flex-shrink: 0; }
.cb-row-amt { font-family: 'Foglihten', serif; font-size: 16px; color: #fff; letter-spacing: 0.5px; }
.cb-row.is-cancelled .cb-row-amt { color: var(--danger); text-decoration: line-through; }
.cb-row.is-unfrozen .cb-row-amt { color: #5ed07a; }
.cb-row-status { font-size: 10px; letter-spacing: 1.5px; color: #888; text-transform: uppercase; margin-top: 2px; }
.cb-divider { height: 1px; background: rgba(192,192,192,0.10); margin: 24px 0; }
@media (max-width: 500px) {
    .cb-mini-stats { grid-template-columns: 1fr; }
    .cb-frozen-value { font-size: 30px; }
}

/* Вкладка «Баланс» — карточка с итогом и историей */
.bal-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 18px;
    text-align: center;
}
.bal-card.is-debt    { border-color: rgba(232, 88, 88, 0.35); background: linear-gradient(180deg, rgba(232,88,88,0.05), transparent 60%); }
.bal-card.is-positive { border-color: rgba(94, 208, 122, 0.30); background: linear-gradient(180deg, rgba(94,208,122,0.04), transparent 60%); }
.bal-card-label {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
    margin-bottom: 8px;
}
.bal-card-value {
    font-size: 44px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 14px;
    color: var(--silver-bright);
    letter-spacing: -0.5px;
}
.bal-card.is-debt .bal-card-value { color: var(--danger); }
.bal-card.is-positive .bal-card-value { color: var(--success); }
.bal-limit {
    font-size: 12px;
    color: var(--text-mute);
    margin-bottom: 8px;
}
.bal-warn {
    margin-top: 12px;
    padding: 10px 14px;
    background: rgba(255,184,77,0.10);
    border: 1px solid rgba(255,184,77,0.40);
    border-radius: 8px;
    color: var(--warn);
    font-size: 13px;
    line-height: 1.4;
}
.bal-card-hint {
    margin-top: 14px;
    font-size: 12px;
    color: var(--text-mute);
}

.bal-tx-list {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
}
.bal-tx-title {
    padding: 14px 18px 10px;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
    border-bottom: 1px solid var(--border);
}
.bal-tx {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}
.bal-tx:last-child { border-bottom: none; }
.bal-tx-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}
.bal-tx-label {
    font-size: 13px;
    color: var(--silver-bright);
    display: flex;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
}
.bal-tx-amount {
    font-size: 14px;
    font-weight: 600;
    flex-shrink: 0;
}
.bal-tx-amount.minus { color: var(--danger); }
.bal-tx-amount.plus  { color: var(--success); }
.bal-tx-note {
    font-size: 12px;
    color: var(--text-mute);
    margin-top: 4px;
}
.bal-tx-meta {
    font-size: 11px;
    color: var(--text-mute);
    margin-top: 4px;
    opacity: 0.75;
}
.bal-tx.is-faded { opacity: 0.55; }
.bal-tx-tag {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(192,192,192,0.10);
    color: var(--text-mute);
    margin-left: 4px;
}
.bal-tx-tag.is-cancel { background: rgba(232,88,88,0.15); color: var(--danger); }
.bal-tx-tag.is-rev    { background: rgba(255,184,77,0.15); color: var(--warn); }
.bal-empty {
    padding: 24px;
    text-align: center;
    font-size: 13px;
    color: var(--text-mute);
}

/* Группировка транзакций по турнирам */
.bal-group {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    margin-bottom: 10px;
    overflow: hidden;
}
.bal-group-head {
    padding: 12px 16px;
    background: var(--surface2);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    cursor: pointer;
    user-select: none;
    list-style: none;
}
.bal-group-head::-webkit-details-marker { display: none; }
.bal-group-head:hover { background: var(--surface3, rgba(255,255,255,0.04)); }
details.bal-group:not([open]) > .bal-group-head { border-bottom: none; }
.bal-group-arrow {
    font-size: 11px;
    color: var(--text-mute);
    transition: transform .18s ease;
    align-self: center;
}
details.bal-group[open] > .bal-group-head .bal-group-arrow { transform: rotate(180deg); }

/* Табы в модале «Баланс игрока»: Турниры / Платежи и корректировки */
.bal-tabs {
    display: flex;
    gap: 4px;
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 4px;
    margin-bottom: 12px;
}
.bal-tab {
    flex: 1;
    padding: 8px 14px;
    background: transparent;
    border: none;
    border-radius: 7px;
    color: var(--text-mute);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s, color .15s;
}
.bal-tab:hover { color: var(--silver-bright); }
.bal-tab.is-active {
    background: var(--surface);
    color: var(--silver-bright);
    box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset;
}
.bal-tab-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    background: rgba(121,208,147,0.18);
    color: #79d093;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
}

/* ===== Админ-вкладка «Бонусы» ===== */
.bonuses-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.bonuses-summary {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}
.bonuses-sum-cell {
    background: linear-gradient(135deg, rgba(121,208,147,0.08), rgba(121,208,147,0.02));
    border: 1px solid rgba(121,208,147,0.25);
    border-radius: 10px;
    padding: 14px 16px;
    text-align: center;
}
.bonuses-sum-val {
    font-size: 22px;
    font-weight: 800;
    color: #79d093;
    margin-bottom: 4px;
    font-variant-numeric: tabular-nums;
}
.bonuses-sum-lab {
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-mute);
    font-weight: 600;
}
.bonuses-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.bonus-row {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 16px;
}
.bonus-row.is-faded { opacity: 0.55; }
.bonus-row-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
}
.bonus-row-main { flex: 1; min-width: 0; }
.bonus-row-recipient {
    font-size: 14px;
    font-weight: 600;
    color: var(--silver-bright);
    margin-bottom: 4px;
}
.bonus-row-meta { color: var(--text-mute); font-weight: 400; margin-left: 6px; font-size: 12px; }
.bonus-row-invited {
    font-size: 12px;
    color: var(--silver);
    margin-bottom: 2px;
}
.bonus-row-invited strong { color: var(--accent); font-weight: 600; }
.bonus-row-invited-manual { color: var(--text-mute); font-style: italic; }
.bonus-row-note {
    font-size: 11px;
    color: var(--text-mute);
    margin-top: 4px;
    font-style: italic;
}
.bonus-row-amount {
    font-size: 16px;
    font-weight: 700;
    color: #79d093;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.bonus-row-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(255,255,255,0.05);
}
.bonus-row-date {
    font-size: 11px;
    color: var(--text-mute);
}
.bonus-row-tools { display: flex; gap: 6px; }

@media (max-width: 768px) {
    .bonuses-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }
    .bonuses-toolbar .btn-sm { width: 100%; }
    .bonuses-summary { grid-template-columns: 1fr 1fr; gap: 6px; }
    .bonuses-sum-cell { padding: 10px; }
    .bonuses-sum-val { font-size: 16px; }
    .bonuses-sum-lab { font-size: 9px; }
    .bonus-row { padding: 10px 12px; }
    .bonus-row-recipient { font-size: 13px; }
    .bonus-row-amount { font-size: 14px; }
}

/* Пикер игрока (форма «Начислить бонус») */
.user-picker { position: relative; }
.user-picker-input {
    width: 100%;
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    color: var(--silver-bright);
    padding: 9px 32px 9px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
}
.user-picker-input:focus {
    outline: none;
    border-color: var(--accent);
}
.user-picker-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--text-mute);
    font-size: 18px;
    line-height: 1;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
}
.user-picker-clear:hover { background: rgba(255,255,255,0.06); color: var(--silver-bright); }
.user-picker-dropdown {
    position: absolute;
    left: 0; right: 0; top: calc(100% + 4px);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    max-height: 240px;
    overflow-y: auto;
    z-index: 100;
    box-shadow: 0 8px 24px rgba(0,0,0,0.40);
}
.user-picker-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    font-size: 13px;
}
.user-picker-item:last-child { border-bottom: none; }
.user-picker-item:hover { background: rgba(232,199,138,0.08); }
.user-picker-name { color: var(--silver-bright); font-weight: 500; }
.user-picker-phone { color: var(--text-mute); font-size: 11px; font-variant-numeric: tabular-nums; }
.user-picker-empty { padding: 14px; text-align: center; color: var(--text-mute); font-size: 13px; }

/* Подсказка-ROI в виджете «Реферальная программа» в Аналитике */
.ref-roi-hint {
    margin-top: 12px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.03);
    border-left: 3px solid var(--accent);
    border-radius: 6px;
    font-size: 12px;
    color: var(--silver);
    line-height: 1.5;
}
.bal-tab-pane { display: none; }
.bal-tab-pane.is-active { display: block; }
.bal-group-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--silver-bright);
    flex: 1;
    min-width: 0;
}
.bal-group-cash {
    display: inline-block;
    background: rgba(232,199,138,0.15);
    color: #e8c78a;
    font-size: 9px;
    letter-spacing: 1px;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 4px;
    vertical-align: middle;
}
.bal-group-meta {
    font-size: 11px;
    color: var(--text-mute);
}
.bal-group-total {
    font-size: 13px;
    font-weight: 700;
    color: var(--danger);
    margin-left: auto;
}
.bal-group-body .bal-tx { padding: 10px 16px; border-bottom: 1px solid var(--border); }
.bal-group-body .bal-tx:last-child { border-bottom: none; }
.dbt-row { cursor: pointer; }

/* Разворот legacy_migration: за что был долг */
.bal-legacy-detail { padding: 0 14px 10px; }
.bal-legacy-wrap {
    background: rgba(255,184,77,0.05);
    border: 1px solid rgba(255,184,77,0.25);
    border-radius: 8px;
    padding: 10px 12px;
    margin-top: 6px;
}
.bal-legacy-title {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--warn);
    margin-bottom: 8px;
    font-weight: 700;
}
.bal-legacy-tour {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    margin-bottom: 6px;
    padding: 8px 10px;
}
.bal-legacy-tour-head {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
    color: var(--silver-bright);
    font-weight: 600;
    margin-bottom: 6px;
}
.bal-legacy-tour-meta { font-size: 11px; color: var(--text-mute); }
.bal-legacy-tour-debt { margin-left: auto; color: var(--danger); font-weight: 700; }
.bal-legacy-charge {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    padding: 3px 0;
    color: var(--silver);
}
.bal-legacy-amt { color: var(--danger); }
.bal-legacy-paid {
    font-size: 12px;
    color: var(--success);
    margin-top: 4px;
    text-align: right;
}
.bal-legacy-loading, .bal-legacy-empty, .bal-legacy-err {
    padding: 12px;
    font-size: 12px;
    color: var(--text-mute);
    text-align: center;
}
.bal-legacy-err { color: var(--danger); }
.bal-legacy-sum {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--text-mute);
    margin-bottom: 10px;
    padding: 8px 10px;
    background: rgba(0,0,0,0.20);
    border-radius: 6px;
}
.bal-legacy-sum-debt {
    color: var(--danger);
    font-weight: 700;
    margin-left: auto;
}
.bal-legacy-partial {
    font-size: 11px;
    color: var(--warn);
}

/* ===== Wallet — админка ===== */
.bal-adm-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
}
.bal-adm-filters {
    display: flex;
    gap: 6px;
}
.bal-adm-filter {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-mute);
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    letter-spacing: 0.5px;
    transition: all .15s;
}
.bal-adm-filter.is-active {
    background: var(--silver-bright);
    color: var(--bg);
    border-color: var(--silver-bright);
}
.bal-rows {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bal-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 12px;
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 16px;
    cursor: pointer;
    color: inherit;
    font-family: inherit;
    text-align: left;
    transition: border-color .15s, transform .15s;
}
.bal-row:hover { border-color: var(--border-strong); transform: translateY(-1px); }
.bal-row.is-debt { border-left: 3px solid var(--danger); }
.bal-row.is-positive { border-left: 3px solid var(--success); }
.bal-row-name-main { font-size: 14px; color: var(--silver-bright); font-weight: 600; }
.bal-row-name-sub { font-size: 11px; color: var(--text-mute); margin-top: 2px; }
.bal-row-balance { font-size: 15px; font-weight: 700; text-align: right; color: var(--silver-bright); }
.bal-row.is-debt .bal-row-balance { color: var(--danger); }
.bal-row.is-positive .bal-row-balance { color: var(--success); }
.bal-row-limit, .bal-row-last { font-size: 11px; color: var(--text-mute); text-align: right; }

/* Модал игрока */
.bal-modal { max-width: 640px; max-height: 80vh; display: flex; flex-direction: column; }
.bal-modal-head {
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--border);
}
.bal-modal-name { font-size: 18px; font-weight: 600; color: var(--silver-bright); }
.bal-modal-phone { font-size: 12px; color: var(--text-mute); margin-bottom: 12px; }
.bal-modal-bal {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--silver-bright);
}
.bal-modal-head.is-debt .bal-modal-bal { color: var(--danger); }
.bal-modal-head.is-positive .bal-modal-bal { color: var(--success); }
.bal-modal-limit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-mute);
}
.bal-limit-input {
    width: 90px;
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    color: var(--silver-bright);
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 13px;
}

/* Cashback-строка в модалке игрока */
.bal-cb-row {
    margin-top: 6px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid var(--border-soft);
    background: rgba(255,255,255,0.02);
    flex-wrap: wrap;
}
.bal-cb-row.is-active {
    background: linear-gradient(90deg, rgba(126,179,255,0.12), rgba(20,20,22,0.6) 70%);
    border-color: rgba(126,179,255,0.45);
}
.bal-cb-row.is-active .bal-cb-input {
    border-color: rgba(126,179,255,0.6);
    color: #fff;
    font-weight: 600;
}
.bal-cb-row.is-off .bal-cb-input { color: var(--silver-dim, #888); }
.bal-cb-label { font-weight: 500; }
.bal-cb-input { width: 80px; }
.bal-cb-badge {
    font-family: 'Foglihten', serif;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    color: var(--silver-dim, #888);
    border: 1px solid var(--border-soft);
}
.bal-cb-row.is-active .bal-cb-badge {
    background: linear-gradient(180deg, rgba(126,179,255,0.25), rgba(126,179,255,0.10));
    color: #c8e0ff;
    border-color: rgba(126,179,255,0.6);
}
.bal-cb-frozen {
    font-size: 11px;
    color: #c8e0ff;
    letter-spacing: 0.3px;
    margin-left: auto;
}
.bal-modal-actions {
    display: flex;
    gap: 8px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
}
.bal-modal-tx {
    overflow-y: auto;
    flex: 1;
    padding: 4px 0 8px;
}
.bal-modal-tx .bal-tx-title {
    padding: 14px 20px 8px;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
}
.bal-modal-tx .bal-tx { padding-left: 20px; padding-right: 20px; }
.bal-tx-tools {
    display: inline-flex;
    gap: 4px;
    margin-left: 8px;
    vertical-align: middle;
}
.bal-tx-mini-btn {
    background: transparent;
    border: 1px solid var(--border-strong);
    color: var(--silver);
    cursor: pointer;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 12px;
    padding: 0;
    line-height: 1;
    transition: all .15s;
}
.bal-tx-mini-btn:hover { background: rgba(192,192,192,0.10); color: var(--silver-bright); }
.bal-tx-mini-btn.bal-tx-danger { color: var(--danger); }
.bal-tx-mini-btn.bal-tx-danger:hover { background: rgba(232,88,88,0.10); }

/* Мобильная адаптация модала «Баланс игрока»: средний размер, не во весь экран */
@media (max-width: 768px) {
    #bal-user-modal.cab-modal-backdrop { padding: 4vh 12px; align-items: flex-start; }
    #bal-user-modal .bal-modal {
        width: 100%;
        max-width: 100%;
        max-height: calc(100vh - 8vh);
        max-height: calc(100dvh - 8vh);
        padding: 0;
        border-radius: 14px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    #bal-user-modal .bal-modal-head { padding: 14px 16px 12px; padding-right: 56px; }
    #bal-user-modal .bal-modal-name { font-size: 13px; line-height: 1.25; }
    #bal-user-modal .bal-modal-phone { font-size: 10px; margin-bottom: 5px; }
    #bal-user-modal .bal-modal-bal { font-size: 19px; margin-bottom: 6px; }
    #bal-user-modal .bal-modal-limit { font-size: 10px; flex-wrap: wrap; gap: 5px; }
    #bal-user-modal .bal-limit-input { width: 62px; font-size: 11px; padding: 3px 6px; }
    #bal-user-modal .bal-modal-limit .btn-sm { font-size: 10px; padding: 4px 8px; }
    #bal-user-modal .bal-modal-actions {
        padding: 8px 12px;
        gap: 6px;
        flex-wrap: nowrap;
    }
    #bal-user-modal .bal-modal-actions .btn-sm {
        flex: 1 1 0;
        min-width: 0;
        font-size: 10px;
        padding: 7px 5px;
        white-space: nowrap;
        letter-spacing: 0;
    }
    #bal-user-modal .bal-modal-tx {
        padding-bottom: env(safe-area-inset-bottom, 4px);
        min-height: 0;
        flex: 1 1 auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    #bal-user-modal .bal-modal-tx .bal-tx-title { padding: 7px 14px 5px; font-size: 9px; letter-spacing: 1.5px; }
    #bal-user-modal .bal-tabs { margin: 8px 12px 10px; padding: 3px; }
    #bal-user-modal .bal-tab { padding: 5px 9px; font-size: 10px; }
    #bal-user-modal .bal-tab-pane { padding: 0 12px 14px; }
    #bal-user-modal .bal-group { margin-bottom: 8px; border-radius: 10px; }
    #bal-user-modal .bal-group-head { padding: 8px 11px; gap: 5px; }
    #bal-user-modal .bal-group-title { font-size: 11px; }
    #bal-user-modal .bal-group-meta { font-size: 9px; }
    #bal-user-modal .bal-group-total { font-size: 11px; }
    #bal-user-modal .bal-group-arrow { font-size: 9px; }
    #bal-user-modal .bal-group-body .bal-tx { padding: 7px 11px; }
    #bal-user-modal .bal-tx-row { gap: 7px; }
    #bal-user-modal .bal-tx-label { font-size: 11px; }
    #bal-user-modal .bal-tx-amount { font-size: 12px; }
    #bal-user-modal .bal-tx-meta { font-size: 9px; }
    #bal-user-modal .bal-tx-note { font-size: 10px; }
    #bal-user-modal .bal-tx-tag { font-size: 9px; padding: 1px 5px; }
    #bal-user-modal .bal-tx-mini-btn { width: 20px; height: 20px; font-size: 10px; }
    #bal-user-modal .ah-modal-close {
        position: absolute;
        top: 24px;
        right: 14px;
        width: 32px;
        height: 32px;
        font-size: 20px;
        line-height: 1;
        background: rgba(20,20,20,0.85);
        border: 1px solid var(--border-strong);
        border-radius: 50%;
        color: var(--silver-bright);
        z-index: 10;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }
}

/* В Профиле — поле «Баланс/Долг» */
.profile-field.profile-bal .profile-field-value { font-weight: 700; }
.profile-field.profile-bal.is-debt .profile-field-value { color: var(--danger); }
.profile-field.profile-bal.is-debt .profile-field-label { color: var(--danger); }
.profile-field.profile-bal.is-positive .profile-field-value { color: var(--success); }

/* В Мой стол — плашка баланса сверху */
.mytable-bal {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid var(--silver-bright);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 14px;
    cursor: pointer;
    color: inherit;
    font-family: inherit;
    transition: border-color .15s, transform .15s;
}
.mytable-bal:hover { border-color: var(--border-strong); transform: translateY(-1px); }
.mytable-bal.is-debt { border-left-color: var(--danger); }
.mytable-bal.is-positive { border-left-color: var(--success); }
.mytable-bal-label {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
}
.mytable-bal.is-debt .mytable-bal-label { color: var(--danger); }
.mytable-bal-value {
    flex: 1;
    font-size: 16px;
    font-weight: 700;
    color: var(--silver-bright);
}
.mytable-bal.is-debt .mytable-bal-value { color: var(--danger); }
.mytable-bal.is-positive .mytable-bal-value { color: var(--success); }
.mytable-bal-arrow {
    font-size: 14px;
    color: var(--text-mute);
}

/* Форма bal-* */
.bal-form-modal { max-width: 460px; }
.bal-form-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
}
.bal-form-row > span {
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-mute);
}
.bal-form-row input,
.bal-form-row select,
.bal-form-row textarea {
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    color: var(--silver-bright);
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
}
.bal-form-row textarea { resize: vertical; min-height: 60px; }
.bal-form-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 18px;
}
.btn-sm.btn-ghost {
    background: transparent;
    border: 1px solid var(--border-strong);
    color: var(--silver);
}

@media (max-width: 640px) {
    .bal-row { grid-template-columns: 1fr auto; grid-template-rows: auto auto; }
    .bal-row-limit, .bal-row-last { display: none; }
}

/* ===== История транзакций ===== */
.txlog-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 14px;
}
.txlog-toolbar select,
.txlog-toolbar input[type="date"] {
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    color: var(--silver-bright);
    padding: 7px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
}
.txlog-summary {
    display: flex;
    gap: 14px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.txlog-sum-cell {
    flex: 1;
    min-width: 140px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.txlog-sum-lab {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-mute);
}
.txlog-sum-val {
    font-size: 18px;
    font-weight: 700;
    color: var(--silver-bright);
}
.tx-plus  { color: var(--success); }
.tx-minus { color: var(--danger); }
.txlog-wrap {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: auto;
}
.txlog-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.txlog-table thead th {
    text-align: left;
    padding: 12px 14px;
    background: var(--surface2);
    border-bottom: 1px solid var(--border);
    color: var(--text-mute);
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
    position: sticky;
    top: 0;
}
.txlog-table tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}
.txlog-table tbody tr.is-faded { opacity: 0.55; }
.txlog-date { white-space: nowrap; color: var(--text-mute); font-size: 12px; }
.txlog-user-link {
    background: none;
    border: none;
    color: var(--silver-bright);
    cursor: pointer;
    font: inherit;
    padding: 0;
    text-align: left;
    font-weight: 600;
    text-decoration: underline dotted;
    text-underline-offset: 3px;
}
.txlog-user-link:hover { color: var(--accent); }
.txlog-user-phone { font-size: 11px; color: var(--text-mute); margin-top: 2px; }
.txlog-amount { white-space: nowrap; font-weight: 700; font-variant-numeric: tabular-nums; }
.txlog-balafter { white-space: nowrap; color: var(--text-mute); font-size: 12px; }
.txlog-note { color: var(--silver); font-size: 12px; max-width: 220px; }
.txlog-by { color: var(--text-mute); font-size: 11px; white-space: nowrap; }

/* ===== Карта дня — пикер в админке ===== */
.dailycard-picker {
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    margin-top: 6px;
}
.dailycard-head {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--silver-dim);
    margin-bottom: 10px;
}
.dailycard-hint {
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
    color: var(--text-mute);
}
.dailycard-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.dailycard-select {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--silver-bright);
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 14px;
    min-width: 64px;
}
.dailycard-suited {
    display: flex;
    gap: 12px;
    font-size: 12px;
}
.dailycard-suited label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    color: var(--silver);
}
.dailycard-preview {
    margin-top: 12px;
    font-size: 24px;
    letter-spacing: 4px;
}
.dc-card {
    display: inline-block;
    background: #fff;
    color: #1a1a1a;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 700;
    letter-spacing: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.dc-card.dc-red { color: #c4322e; }
.dc-meta {
    font-size: 13px;
    color: var(--text-mute);
    margin-left: 8px;
    letter-spacing: 0;
}

/* ===== Карта дня — плашка у дилера ===== */
.dlr-daily-card {
    display: flex;
    align-items: center;
    gap: 14px;
    background: linear-gradient(135deg, rgba(255,232,170,0.10), rgba(255,232,170,0.03));
    border: 1px solid rgba(255,232,170,0.40);
    border-radius: 12px;
    padding: 10px 16px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.dlr-daily-card-lab {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #ffe8aa;
    font-weight: 700;
}
.dlr-daily-card-cards {
    font-size: 20px;
    letter-spacing: 6px;
}
.dlr-daily-card-note {
    font-size: 12px;
    color: var(--text-mute);
}

/* ===== Dealer: «Ожидают фишек» ===== */
.dlr-pending-chips {
    background: linear-gradient(135deg, rgba(255,184,77,0.10), rgba(255,184,77,0.03));
    border: 1px solid rgba(255,184,77,0.40);
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 18px;
}
.dlr-pending-chips-title {
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--warn);
    margin-bottom: 12px;
    font-weight: 700;
}
.dlr-chip-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    background: rgba(0,0,0,0.20);
    border: 1px solid rgba(255,184,77,0.20);
    border-radius: 10px;
    margin-bottom: 8px;
    animation: dlr-chip-in .25s ease-out;
}
@keyframes dlr-chip-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.dlr-chip-card.is-stale {
    border-color: var(--danger);
    background: rgba(232,88,88,0.05);
    animation: dlr-chip-pulse 1.5s infinite;
}
@keyframes dlr-chip-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(232,88,88,0.4); }
    50%      { box-shadow: 0 0 0 8px rgba(232,88,88,0); }
}
.dlr-chip-main { flex: 1; min-width: 0; }
.dlr-chip-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--silver-bright);
}
.dlr-chip-id {
    font-size: 11px;
    color: var(--text-mute);
    margin-left: 4px;
}
.dlr-chip-sub {
    font-size: 12px;
    color: var(--text-mute);
    margin-top: 2px;
}
.dlr-chip-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}
.dlr-chip-btn {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    letter-spacing: 0.5px;
    border: 1px solid;
    cursor: pointer;
    font-family: inherit;
    background: transparent;
    font-weight: 600;
}
.dlr-chip-ok { color: var(--success); border-color: rgba(94,208,122,0.40); }
.dlr-chip-ok:hover { background: rgba(94,208,122,0.10); }
.dlr-chip-cancel { color: var(--danger); border-color: rgba(232,88,88,0.40); }
.dlr-chip-cancel:hover { background: rgba(232,88,88,0.10); }

.dlr-chips-banner {
    position: fixed;
    top: 16px;
    left: 50%;
    transform: translateX(-50%) translateY(-150%);
    background: linear-gradient(135deg, #ffb84d, #ff9a3c);
    color: #1a1a1a;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0,0,0,0.4);
    z-index: 9999;
    max-width: 90vw;
    opacity: 0;
    transition: transform .35s ease-out, opacity .35s ease-out;
}
.dlr-chips-banner.is-visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
.dlr-addon-banner {
    background: linear-gradient(135deg, #7fc7ff, #5aa8e8);
    color: #06203a;
}

/* === Объединение аккаунтов (merge) ============================ */
.merge-section-title {
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-mute, #95a3b3);
    font-weight: 700;
    margin: 18px 0 10px;
}
.merge-recs { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.merge-empty {
    background: var(--surface, #18202b);
    border: 1px dashed var(--border, rgba(255,255,255,0.08));
    border-radius: 10px;
    padding: 16px;
    color: var(--text-mute);
    text-align: center;
}
.merge-pair-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 1fr auto 1fr auto;
    align-items: center;
    gap: 14px;
}
.merge-pair-cell { min-width: 0; }
.merge-pair-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--silver-bright, #d3dee9);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.merge-pair-meta {
    font-size: 12px;
    color: var(--text-mute);
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.merge-pair-vs {
    font-size: 22px;
    color: var(--warn, #ffb84d);
    font-weight: 700;
}
.merge-role {
    display: inline-block;
    padding: 1px 6px;
    background: rgba(255,184,77,0.18);
    color: var(--warn);
    border-radius: 6px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.merge-manual {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: end;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 16px;
}
.merge-manual-col { min-width: 0; }
.merge-manual-lbl {
    font-size: 10px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--text-mute);
    font-weight: 600;
    margin-bottom: 6px;
}

.merge-preview-table {
    width: 100%;
    border-collapse: collapse;
    margin: 10px 0 16px;
    font-size: 13px;
}
.merge-preview-table th,
.merge-preview-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}
.merge-preview-table thead th {
    font-size: 10px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--text-mute);
    font-weight: 600;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.merge-preview-table tbody th {
    color: var(--text-mute);
    font-weight: 500;
    width: 30%;
}
.merge-preview-table tbody td:last-child {
    color: var(--warn);
    font-weight: 600;
}

.merge-conflicts {
    background: rgba(255,184,77,0.06);
    border: 1px solid rgba(255,184,77,0.25);
    border-radius: 10px;
    padding: 10px 14px;
    margin: 10px 0;
    font-size: 12px;
}
.merge-conflicts-title { font-weight: 700; color: var(--warn); margin-bottom: 6px; }
.merge-conflict-row {
    display: flex; justify-content: space-between; gap: 10px;
    padding: 3px 0; color: var(--silver-bright);
}
.merge-conflicts-note { color: var(--text-mute); margin-top: 6px; font-size: 11px; }

.merge-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
}
.merge-modal-actions .primary {
    background: var(--warn);
    color: #1a1a1a;
    border-color: var(--warn);
}
.merge-modal-actions .primary:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.merge-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 10px;
}
.merge-field span {
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--text-mute);
    font-weight: 600;
}
.merge-field input {
    background: var(--surface2, #0e151d);
    border: 1px solid var(--border);
    color: var(--silver-bright);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 14px;
}
.merge-fieldset {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 14px;
    margin: 0 0 12px;
}
.merge-fieldset legend {
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--text-mute);
    padding: 0 6px;
    font-weight: 600;
}
.merge-radio {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 13px;
    color: var(--silver-bright);
}
.merge-radio input[type="radio"] { accent-color: var(--warn, #ffb84d); }
.merge-radio .merge-input {
    background: var(--surface2);
    border: 1px solid var(--border);
    color: var(--silver-bright);
    border-radius: 6px;
    padding: 4px 8px;
    font-size: 13px;
    margin-left: 4px;
    flex: 1;
    min-width: 0;
}
.merge-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--silver-bright);
}
.merge-checkbox input[type="checkbox"] { accent-color: var(--warn, #ffb84d); }

@media (max-width: 600px) {
    .merge-pair-card { grid-template-columns: 1fr; gap: 8px; }
    .merge-pair-vs { transform: rotate(90deg); justify-self: center; }
    .merge-manual { grid-template-columns: 1fr; }
    .merge-preview-table { font-size: 12px; }
    .merge-preview-table th, .merge-preview-table td { padding: 6px 6px; }
}

/* ===== Игрок: кнопки покупок (rebuy/addon/phoenix) в «Мой стол» ===== */
.mybuy-block {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.mybuy-section {
    background: linear-gradient(135deg, rgba(255,184,77,0.06), transparent);
    border: 1px solid rgba(255,184,77,0.30);
    border-radius: 12px;
    padding: 14px;
}
.mybuy-title {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--warn);
    margin-bottom: 10px;
    font-weight: 700;
}
.mybuy-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 12px 16px;
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    cursor: pointer;
    color: inherit;
    font-family: inherit;
    margin-bottom: 8px;
    transition: border-color .15s, transform .15s;
}
.mybuy-btn:last-child { margin-bottom: 0; }
.mybuy-btn:hover:not(.is-disabled) {
    border-color: var(--warn);
    transform: translateY(-1px);
}
.mybuy-btn.is-disabled { opacity: 0.45; cursor: not-allowed; }
.mybuy-btn.is-phx { border-color: rgba(255,138,76,0.5); background: linear-gradient(135deg, rgba(255,138,76,0.10), rgba(255,138,76,0.02)); }
.mybuy-lab { font-size: 14px; color: var(--silver-bright); font-weight: 600; }
.mybuy-val { font-size: 13px; color: var(--warn); font-weight: 600; }
.mybuy-warn { font-size: 11px; color: var(--danger); font-weight: 500; margin-left: 6px; }
.mybuy-section.mybuy-empty { background: rgba(232,88,88,0.05); border-color: rgba(232,88,88,0.30); }
.mybuy-section.mybuy-empty .mybuy-title { color: var(--danger); }
.mybuy-hint { font-size: 13px; color: var(--silver); line-height: 1.5; }

/* ===== Окно подтверждения покупки ===== */
.cab-purchase-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    backdrop-filter: blur(8px);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    animation: purchase-bg-in .25s ease-out;
}
@keyframes purchase-bg-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.purchase-card {
    width: 100%;
    max-width: 460px;
    background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
    border: 2px solid var(--warn);
    border-radius: 18px;
    padding: 28px 24px;
    text-align: center;
    box-shadow: 0 25px 60px rgba(0,0,0,0.6);
    animation: purchase-border-pulse 1.5s infinite;
}
@keyframes purchase-border-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255,184,77,0.4), 0 25px 60px rgba(0,0,0,0.6); }
    50%      { box-shadow: 0 0 0 10px rgba(255,184,77,0), 0 25px 60px rgba(0,0,0,0.6); }
}
.purchase-card.is-ok { border-color: var(--success); animation: none; }
.purchase-card.is-cancel { border-color: var(--danger); animation: none; }
.purchase-header {
    font-size: 16px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--warn);
    font-weight: 700;
    margin-bottom: 14px;
}
.purchase-card.is-ok .purchase-header { color: var(--success); }
.purchase-card.is-cancel .purchase-header { color: var(--danger); }
.purchase-what {
    font-size: 18px;
    color: var(--silver-bright);
    font-weight: 600;
    margin-bottom: 18px;
}
.purchase-instr {
    font-size: 14px;
    color: var(--silver);
    margin-bottom: 22px;
    line-height: 1.45;
    padding: 12px;
    background: rgba(255,184,77,0.08);
    border-radius: 8px;
}
.purchase-instr strong { color: var(--warn); }
.purchase-timer {
    font-size: 36px;
    font-weight: 700;
    color: var(--silver-bright);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    margin-bottom: 8px;
}
.purchase-timer.is-running { color: var(--warn); }
.purchase-id {
    font-size: 11px;
    color: var(--text-mute);
    letter-spacing: 0.5px;
    margin-bottom: 18px;
}
.purchase-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}
.purchase-cancel-btn, .purchase-close-btn {
    padding: 10px 18px;
    border-radius: 8px;
    border: 1px solid var(--border-strong);
    background: transparent;
    color: var(--silver);
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: all .15s;
}
.purchase-cancel-btn { color: var(--danger); border-color: rgba(232,88,88,0.40); }
.purchase-cancel-btn:hover { background: rgba(232,88,88,0.10); }
.purchase-close-btn:hover { background: rgba(192,192,192,0.10); color: var(--silver-bright); }

/* ===== Реферальная программа: вкладка «Мои друзья» ===== */
.friends-inviter-card {
    background: linear-gradient(135deg, rgba(121,208,147,0.10), rgba(121,208,147,0.02));
    border: 1px solid rgba(121,208,147,0.30);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--silver);
}
.friends-inviter-card strong { color: var(--silver-bright); font-weight: 600; }
.friends-inviter-icon { font-size: 18px; line-height: 1; }
.friends-ref-card {
    background: linear-gradient(135deg, rgba(232,199,138,0.10), rgba(232,199,138,0.02));
    border: 1px solid rgba(232,199,138,0.40);
    border-radius: 14px;
    padding: 22px 24px;
    margin-bottom: 22px;
    box-shadow: 0 1px 0 rgba(255,255,255,0.03) inset;
}
.friends-ref-title {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 12px;
    font-weight: 700;
}
.friends-ref-link {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 14px;
    color: var(--silver-bright);
    background: rgba(0,0,0,0.30);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 8px;
    padding: 10px 14px;
    word-break: break-all;
    margin-bottom: 12px;
}
.friends-ref-actions {
    display: flex;
    gap: 10px;
    margin-bottom: 12px;
}
.friends-ref-btn {
    flex: 1;
    padding: 10px 14px;
    background: var(--surface2);
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    color: var(--silver-bright);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
}
.friends-ref-btn:hover {
    border-color: var(--accent);
    background: rgba(232,199,138,0.10);
}
.friends-ref-btn-share {
    background: linear-gradient(135deg, rgba(232,199,138,0.25), rgba(232,199,138,0.10));
    border-color: rgba(232,199,138,0.55);
    color: var(--accent);
}
.friends-ref-hint {
    font-size: 12px;
    color: var(--text-mute);
    line-height: 1.5;
}
.friends-ref-hint strong { color: var(--accent); }

.friends-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}
.friends-stat {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px;
    text-align: center;
}
.friends-stat-val {
    font-size: 20px;
    font-weight: 700;
    color: var(--silver-bright);
    margin-bottom: 4px;
    font-variant-numeric: tabular-nums;
}
.friends-stat-lab {
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-mute);
}

.friends-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.friends-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.friends-row.is-arrived {
    border-color: rgba(121,208,147,0.30);
    background: linear-gradient(135deg, rgba(121,208,147,0.04), transparent);
}
.friends-row-main { flex: 1; min-width: 0; }
.friends-row-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--silver-bright);
    margin-bottom: 2px;
}
.friends-row-sub {
    font-size: 11px;
    color: var(--text-mute);
}
.friends-row-tg {
    color: #6fb5e8;
    font-weight: 600;
}
.friends-row-right {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-end;
}
.friends-row-status {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
}
.friends-row-status.is-arrived {
    background: rgba(121,208,147,0.15);
    color: #79d093;
}
.friends-row-status.is-waiting {
    background: rgba(192,192,192,0.08);
    color: var(--text-mute);
}
.friends-row-meta {
    font-size: 10px;
    color: var(--text-mute);
}

@media (max-width: 768px) {
    .friends-ref-card { padding: 16px 18px; }
    .friends-ref-link { font-size: 12px; padding: 8px 10px; }
    .friends-ref-actions { flex-direction: column; gap: 8px; }
    .friends-stats { gap: 6px; }
    .friends-stat { padding: 10px 8px; }
    .friends-stat-val { font-size: 16px; }
    .friends-stat-lab { font-size: 9px; }
    .friends-row { padding: 10px 12px; gap: 8px; }
    .friends-row-name { font-size: 13px; }
    .friends-row-status { font-size: 10px; padding: 3px 8px; }
}

/* === Радар «Профиль игрока» ============================================ */
.lk-radar-wrap {
  background: linear-gradient(135deg, rgba(255,184,77,0.05), rgba(192,192,192,0.02));
  border: 1px solid rgba(255,184,77,0.20);
  border-radius: 12px;
  padding: 18px 14px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.lk-radar {
  width: 100%;
  max-width: 420px;
  height: auto;
  display: block;
}
.radar-grid {
  fill: none;
  stroke: rgba(255,255,255,0.08);
  stroke-width: 1;
}
.radar-axis {
  stroke: rgba(255,255,255,0.12);
  stroke-width: 1;
}
.radar-label {
  fill: var(--silver-dim);
  font-size: 11px;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: 0.2px;
}
.radar-median {
  fill: rgba(180,180,180,0.10);
  stroke: rgba(200,200,200,0.55);
  stroke-width: 1.2;
  stroke-dasharray: 3 3;
  stroke-linejoin: round;
}
.radar-you {
  fill: rgba(255,184,77,0.22);
  stroke: var(--warn, #ffb84d);
  stroke-width: 2;
  stroke-linejoin: round;
}
.lk-radar-legend {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 12px;
  color: var(--silver-dim);
}
.lk-radar-leg { display: inline-flex; align-items: center; gap: 6px; }
.lk-radar-dot {
  width: 12px; height: 12px;
  border-radius: 3px;
  display: inline-block;
}
.lk-radar-leg-you .lk-radar-dot {
  background: rgba(255,184,77,0.22);
  border: 1.5px solid var(--warn, #ffb84d);
}
.lk-radar-leg-med .lk-radar-dot {
  background: rgba(180,180,180,0.10);
  border: 1.2px dashed rgba(200,200,200,0.7);
}
.lk-radar-note {
  font-size: 11px;
  color: var(--silver-dim);
  text-align: center;
  font-style: italic;
  margin-top: -4px;
}
.lk-radar-details {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.lk-radar-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  font-size: 12px;
  padding: 3px 0;
  align-items: baseline;
}
.lk-radar-row-lbl { color: var(--silver-bright); font-weight: 600; }
.lk-radar-row-you { color: var(--warn, #ffb84d); font-weight: 700; font-variant-numeric: tabular-nums; }
.lk-radar-row-med { color: var(--silver-dim); font-size: 11px; font-variant-numeric: tabular-nums; }
.lk-radar-empty {
  align-items: center;
  justify-content: center;
  min-height: 120px;
}
.lk-radar-empty-text {
  font-size: 13px;
  color: var(--silver-dim);
  text-align: center;
  padding: 24px 12px;
}

/* === Догнать (лидер + прогресс) ======================================== */
.lk-chase-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lk-chase-next { display: flex; flex-direction: column; gap: 6px; }
.lk-chase-lbl {
  font-size: 10px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.lk-chase-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--silver-bright);
  font-variant-numeric: tabular-nums;
}
.lk-chase-val strong { color: var(--warn, #ffb84d); }
.lk-chase-unit { color: var(--silver-dim); font-weight: 400; font-size: 13px; }
.lk-chase-bar {
  width: 100%;
  height: 8px;
  background: rgba(255,255,255,0.06);
  border-radius: 4px;
  overflow: hidden;
}
.lk-chase-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(255,184,77,0.7), rgba(255,184,77,1));
  border-radius: 4px;
  transition: width 400ms ease;
  min-width: 4px;
}
.lk-chase-leader {
  font-size: 13px;
  color: var(--silver-bright);
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.lk-chase-leader strong { color: var(--warn, #ffb84d); }
.lk-chase-pct {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  background: rgba(255,184,77,0.12);
  border: 1px solid rgba(255,184,77,0.3);
  color: var(--warn, #ffb84d);
  font-size: 11px;
  font-weight: 700;
  border-radius: 8px;
  letter-spacing: 0.3px;
}

/* === Лучшие 3 турнира ================================================== */
.lk-best3-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.lk-best3-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 12px;
  text-align: center;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.lk-best3-medal { font-size: 32px; line-height: 1; margin-bottom: 2px; }
.lk-best3-points {
  font-size: 20px;
  font-weight: 800;
  color: var(--warn, #ffb84d);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.3px;
}
.lk-best3-lbl {
  font-size: 9px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.lk-best3-meta {
  font-size: 12px;
  font-weight: 600;
  color: var(--silver-bright);
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lk-best3-foot {
  font-size: 11px;
  color: var(--silver-dim);
}

/* === Дуэли ============================================================= */
.lk-rivals-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.lk-rival-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.lk-rival-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--silver-bright);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.lk-rival-score {
  display: flex;
  align-items: center;
  gap: 14px;
}
.lk-rival-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 40px;
  opacity: 0.65;
  transition: opacity 200ms ease;
}
.lk-rival-side.lead { opacity: 1; }
.lk-rival-num {
  font-size: 28px;
  font-weight: 800;
  color: var(--silver-bright);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.lk-rival-side.lead .lk-rival-num { color: var(--warn, #ffb84d); }
.lk-rival-who {
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--silver-dim);
  margin-top: 2px;
  font-weight: 600;
}
.lk-rival-vs {
  font-size: 24px;
  font-weight: 800;
  color: var(--silver-dim);
  line-height: 1;
}
.lk-rival-foot {
  font-size: 11px;
  color: var(--silver-dim);
}

@media (max-width: 600px) {
  /* Лучшие турниры на мобиле — горизонтальный скролл, snap отключён,
     чтобы вертикальный свайп страницы не перехватывался */
  .lk-best3-grid {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    gap: 10px;
    padding: 4px 4px 10px;
    margin: 0 -4px;
    scrollbar-width: none;
  }
  .lk-best3-grid::-webkit-scrollbar { display: none; }
  .lk-best3-card {
    flex: 0 0 72%;
    min-width: 0;
  }
  .lk-rivals-grid { grid-template-columns: 1fr; }
  .lk-radar-row { grid-template-columns: 1fr auto; }
  .lk-radar-row-med { grid-column: 1 / -1; padding-left: 12px; margin-top: -2px; }
  .radar-label { font-size: 10px; }
}

@media (max-width: 380px) {
  .radar-label { font-size: 9.5px; }
}

/* ===== Обучение (Learning tab) ===== */
.lrn-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 12px;
  overflow: hidden;
}
.lrn-section-title {
  cursor: pointer;
  padding: 16px 18px;
  font-size: 15px;
  font-weight: 600;
  color: var(--silver-bright);
  letter-spacing: 0.5px;
  list-style: none;
  position: relative;
  user-select: none;
}
.lrn-section-title::-webkit-details-marker { display: none; }
.lrn-section-title::after {
  content: '▾';
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%) rotate(-90deg);
  color: var(--silver-dim);
  font-size: 11px;
  transition: transform 0.2s;
}
.lrn-section[open] .lrn-section-title::after { transform: translateY(-50%) rotate(0); }
.lrn-section[open] .lrn-section-title { border-bottom: 1px solid var(--border); }
.lrn-section-body {
  padding: 16px 18px 20px;
}
.lrn-note {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.03);
  border-left: 2px solid var(--silver-dim);
  border-radius: 4px;
  font-size: 12px;
  color: var(--silver-dim);
  line-height: 1.5;
}

/* --- 1. Комбинации --- */
.lrn-combos {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lrn-combo {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 10px 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.lrn-combo-rank {
  font-size: 18px;
  font-weight: 700;
  color: var(--silver-dim);
  min-width: 32px;
  font-variant-numeric: tabular-nums;
}
.lrn-combo-body { flex: 1; min-width: 0; }
.lrn-combo-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--silver-bright);
  margin-bottom: 2px;
}
.lrn-combo-ex {
  font-family: 'SF Mono', Menlo, monospace;
  font-size: 13px;
  color: #fff;
  letter-spacing: 2px;
  margin-bottom: 4px;
}
.lrn-red { color: #ff6b6b; }
.lrn-combo-desc { font-size: 12px; color: var(--silver-dim); line-height: 1.4; }

/* --- 2. Стартовые руки матрица --- */
.lrn-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.lrn-leg {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 4px 10px;
  border-radius: 12px;
  color: #1a1a1a;
}
.lrn-hands-grid {
  display: grid;
  grid-template-columns: repeat(13, 1fr);
  gap: 2px;
  max-width: 520px;
}
.lrn-hand {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #1a1a1a;
  border-radius: 3px;
  font-variant-numeric: tabular-nums;
}
.lrn-hand-a { background: #4ade80; }   /* play always */
.lrn-hand-b { background: #facc15; }   /* MP+ */
.lrn-hand-c { background: #fb923c; }   /* LP/blinds */
.lrn-hand-d { background: #4b4b4b; color: #888; }  /* fold */
@media (max-width: 540px) {
  .lrn-hand { font-size: 8px; }
  .lrn-hands-grid { gap: 1px; }
}

/* --- 3. Pot odds таблица --- */
.lrn-odds {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.lrn-odds th, .lrn-odds td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.lrn-odds th {
  color: var(--silver-dim);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.lrn-odds td { color: var(--silver-bright); }
.lrn-odds tbody tr:hover { background: rgba(255,255,255,0.02); }
.lrn-odds td:nth-child(2), .lrn-odds td:nth-child(3), .lrn-odds td:nth-child(4) {
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: #ffd700;
  font-weight: 600;
}

/* --- 4. Этикет --- */
.lrn-etiq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.lrn-etiq-col {
  padding: 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
}
.lrn-etiq-do {
  background: rgba(74, 222, 128, 0.06);
  border-color: rgba(74, 222, 128, 0.25);
}
.lrn-etiq-dont {
  background: rgba(232, 88, 88, 0.06);
  border-color: rgba(232, 88, 88, 0.25);
}
.lrn-etiq-col h4 {
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
}
.lrn-etiq-do h4 { color: #4ade80; }
.lrn-etiq-dont h4 { color: #ff6b6b; }
.lrn-etiq-col ul {
  margin: 0;
  padding-left: 18px;
  font-size: 13px;
  color: var(--silver-bright);
  line-height: 1.6;
}
.lrn-etiq-col li { margin-bottom: 4px; }
@media (max-width: 600px) {
  .lrn-etiq { grid-template-columns: 1fr; }
}

/* --- 5. Глоссарий --- */
.lrn-glossary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
}
.lrn-gloss-row {
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.lrn-gloss-term {
  font-size: 13px;
  font-weight: 600;
  color: var(--silver-bright);
  margin-bottom: 2px;
}
.lrn-gloss-def {
  font-size: 12px;
  color: var(--silver-dim);
  line-height: 1.45;
}
@media (max-width: 600px) {
  .lrn-glossary { grid-template-columns: 1fr; }
}

/* ===== Копилка кэшбэка в «Баланс» ===== */
.cb-piggy {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, rgba(255,215,0,0.10), rgba(255,215,0,0.03));
  border: 1px solid rgba(255,215,0,0.40);
  border-radius: 14px;
  padding: 14px 16px;
  margin: 14px 0 18px;
}
.cb-piggy-icon {
  font-size: 32px;
  line-height: 1;
  flex-shrink: 0;
}
.cb-piggy-body { flex: 1; min-width: 0; }
.cb-piggy-label {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #ffe066;
  font-weight: 700;
  margin-bottom: 4px;
}
.cb-piggy-value {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}
.cb-piggy-hint {
  font-size: 12px;
  color: var(--silver-dim);
  line-height: 1.4;
}

/* ===== Аналитика: sub-nav и KPI grid ===== */
.anl-subnav,
.bon-subnav {
  display: flex;
  gap: 6px;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.anl-sub-btn {
  padding: 8px 16px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--silver-dim);
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.5px;
  cursor: pointer;
  transition: all 0.15s;
}
.anl-sub-btn:hover { color: var(--silver-bright); border-color: var(--border-strong); }
.anl-sub-btn.is-active {
  background: var(--silver);
  color: #000;
  border-color: var(--silver);
}
.anl-section-title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--silver-bright);
  margin: 0 0 12px 0;
}
.anl-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.anl-kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
}
.anl-kpi-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--silver-bright);
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
.anl-kpi-lab {
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--silver-dim);
}
.anl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 6px;
}
.anl-table th, .anl-table td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.anl-table th {
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
}
.anl-table tr:hover { background: rgba(255,255,255,0.02); }

/* Сворачивающийся блок «Игроки: турниры + касса» в аналитике */
.anl-players-details {
  margin-top: 18px;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  background: rgba(255,255,255,0.02);
  overflow: hidden;
}
.anl-players-summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Foglihten', serif;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--silver);
  user-select: none;
}
.anl-players-summary::-webkit-details-marker { display: none; }
.anl-players-summary:hover { background: rgba(255,255,255,0.03); }
.anl-players-arrow {
  display: inline-block;
  transition: transform 0.2s ease;
  color: var(--silver-dim);
  font-size: 14px;
}
.anl-players-details[open] .anl-players-arrow { transform: rotate(90deg); }
.anl-players-summary-title { flex: 1; }
.anl-players-summary-hint {
  font-family: inherit;
  font-size: 10px;
  color: var(--silver-dim);
  letter-spacing: 0.8px;
  text-transform: none;
}
.anl-players-body { padding: 0 16px 16px; }
.anl-players-controls {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.anl-pl-search { flex: 1; min-width: 220px; max-width: 360px; }
.anl-pl-totals {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  padding: 8px 12px;
  margin-bottom: 10px;
  border-radius: 8px;
  background: rgba(255,255,255,0.03);
  font-size: 12px;
  color: var(--silver-dim);
}
.anl-pl-totals b { color: var(--silver); font-weight: 600; }
.anl-pl-table-wrap { max-height: 480px; overflow-y: auto; border-radius: 8px; }
.anl-pl-table thead th {
  position: sticky;
  top: 0;
  background: #14141a;
  z-index: 1;
}
@media (max-width: 640px) {
  .anl-players-controls { flex-direction: column; align-items: stretch; }
  .anl-pl-search { max-width: 100%; }
}

/* ===== Вкладка «Последние 15 турниров» ===== */
.lt-list { display: flex; flex-direction: column; gap: 10px; }
.lt-card {
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  background: rgba(255,255,255,0.02);
  overflow: hidden;
  transition: border-color 0.15s ease;
}
.lt-card[open] { border-color: rgba(255, 180, 80, 0.35); background: rgba(255,255,255,0.03); }
.lt-summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  user-select: none;
}
.lt-summary::-webkit-details-marker { display: none; }
.lt-summary:hover { background: rgba(255,255,255,0.02); }
.lt-summary-left { flex: 1; min-width: 0; }
.lt-summary-title {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 4px;
}
.lt-summary-fmt {
  font-family: 'Foglihten', serif;
  font-size: 15px;
  letter-spacing: 1px;
  color: var(--silver);
}
.lt-summary-meta { font-size: 12px; color: var(--silver-dim); }
.lt-summary-right {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-shrink: 0;
}
.lt-stat { text-align: center; min-width: 64px; }
.lt-stat-val { font-size: 16px; font-weight: 600; color: var(--silver); }
.lt-stat-lab { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--silver-dim); }
.lt-summary-arrow {
  font-size: 14px;
  color: var(--silver-dim);
  transition: transform 0.2s ease;
}
.lt-card[open] .lt-summary-arrow { transform: rotate(180deg); }
.lt-kind {
  font-family: 'Foglihten', serif;
  font-size: 10px;
  letter-spacing: 1.5px;
  padding: 2px 8px;
  border-radius: 4px;
  text-transform: uppercase;
}
.lt-kind-tour  { background: rgba(126,179,255,0.18); color: #c8e0ff; border: 1px solid rgba(126,179,255,0.4); }
.lt-kind-cash  { background: rgba(121,208,147,0.18); color: #b5e8c3; border: 1px solid rgba(121,208,147,0.4); }
.lt-badge {
  font-family: 'Foglihten', serif;
  font-size: 10px;
  letter-spacing: 1.2px;
  padding: 2px 8px;
  border-radius: 999px;
  text-transform: uppercase;
}
.lt-badge-live     { background: rgba(255, 80, 80, 0.18); color: #ffb0b0; border: 1px solid rgba(255,80,80,0.4); }
.lt-badge-done     { background: rgba(255,255,255,0.05); color: var(--silver-dim); border: 1px solid var(--border-soft); }
.lt-badge-upcoming { background: rgba(255, 180, 80, 0.15); color: #ffd28a; border: 1px solid rgba(255,180,80,0.35); }
.lt-flag {
  font-family: 'Foglihten', serif;
  font-size: 10px;
  letter-spacing: 1px;
  color: #ffb450;
  text-transform: uppercase;
}
.lt-card-body { padding: 0 16px 14px; }
.lt-players-table { margin-top: 6px; }
.lt-players-table td { vertical-align: top; }
.lt-pl-parts { font-size: 12px; color: var(--silver-dim); }
.lt-pl-parts b { color: var(--silver); font-weight: 600; }

@media (max-width: 640px) {
  .lt-summary { flex-direction: column; align-items: stretch; gap: 10px; }
  .lt-summary-right { justify-content: space-between; }
  .lt-stat { min-width: 0; }
}

.anl-log-cancelled { opacity: 0.5; }
.anl-log-cancelled td { text-decoration: line-through; }
.anl-note {
  margin-top: 14px;
  font-size: 12px;
  color: var(--silver-dim);
  padding: 10px 12px;
  background: rgba(255,255,255,0.02);
  border-left: 2px solid var(--silver-dim);
  border-radius: 4px;
}

/* Кэшбэк в модалке игрока (Балансы → Бонусы) */
.bal-bonuses-section { }
.bal-bonuses-title {
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--silver-dim);
  font-weight: 600;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.bal-tx-tag.is-cb {
  background: rgba(255, 215, 0, 0.18);
  color: #ffe066;
  font-size: 9px;
  padding: 1px 6px;
  border-radius: 3px;
  margin-left: 4px;
  font-weight: 700;
}

/* ===== Подвал с реквизитами ИП во вкладках ЛК ===== */
.cab-tab-legal-foot {
    margin-top: 40px;
    padding: 20px 0 8px;
    border-top: 1px solid rgba(255,255,255,0.06);
    text-align: center;
    font-size: 11px;
    color: rgba(255,255,255,0.32);
    line-height: 1.7;
    letter-spacing: 0.3px;
}
.cab-tab-legal-foot > div + div { font-variant-numeric: tabular-nums; }

/* ===== Вкладка «Склад» (supplies) ===== */
.sup-subnav { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.sup-toolbar {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  margin-bottom: 14px;
}
.sup-toolbar .khist-search { flex: 1; min-width: 220px; max-width: 360px; }
.sup-toolbar .bal-adm-filters {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  padding-bottom: 2px;
}
.sup-toolbar .bal-adm-filters::-webkit-scrollbar { display: none; }
.sup-toolbar .bal-adm-filter {
  flex: 0 0 auto;
  white-space: nowrap;
  scroll-snap-align: start;
}
@media (max-width: 768px) {
  .sup-toolbar { flex-wrap: wrap; }
  .sup-toolbar .khist-search { width: 100%; max-width: 100%; min-width: 0; flex: 1 1 100%; }
  .sup-toolbar .bal-adm-filters { width: 100%; flex: 1 1 100%; }
}
.sup-author-select {
  background: var(--surface, rgba(255,255,255,0.04));
  border: 1px solid var(--border-soft);
  color: var(--text);
  padding: 8px 12px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
}

.sup-stock-list { display: flex; flex-direction: column; gap: 8px; }
.sup-stock-row {
  display: grid;
  grid-template-columns: 1fr 160px auto;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
  background: var(--surface-card, rgba(255,255,255,0.03));
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  transition: border-color 0.15s;
}
.sup-stock-row:hover { border-color: var(--border, rgba(255,255,255,0.18)); }
.sup-stock-row.sup-low-stock {
  background: linear-gradient(90deg, rgba(255,180,80,0.06), rgba(255,180,80,0.01));
  border-color: rgba(255,180,80,0.35);
}
.sup-stock-name {
  font-family: 'Foglihten', serif;
  font-size: 16px;
  letter-spacing: 0.5px;
  color: var(--text);
  margin-bottom: 4px;
}
.sup-stock-meta { font-size: 12px; color: var(--silver-dim, #888); }
.sup-low-badge {
  font-size: 10px; letter-spacing: 1px; text-transform: uppercase;
  background: rgba(255,180,80,0.18); color: #ffd28a;
  padding: 2px 8px; border-radius: 4px; margin-left: 6px;
  border: 1px solid rgba(255,180,80,0.35);
}
.sup-stock-qty { text-align: center; }
.sup-qty-val {
  font-family: 'Foglihten', serif; font-size: 24px; color: var(--text);
  font-variant-numeric: tabular-nums; display: block; line-height: 1;
}
.sup-qty-unit { font-size: 10px; color: var(--silver-dim, #888); text-transform: uppercase; letter-spacing: 1px; }
.sup-stock-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

.sup-history-head, .sup-history-row {
  display: grid;
  grid-template-columns: 140px 1.5fr 1fr 1fr 1fr 40px;
  gap: 14px;
  align-items: center;
  padding: 10px 14px;
}
.sup-history-head {
  font-size: 10px; letter-spacing: 2px; color: var(--silver-dim); text-transform: uppercase;
  padding-bottom: 8px; border-bottom: 1px solid var(--border-soft);
}
.sup-history-row {
  background: var(--surface-card, rgba(255,255,255,0.02));
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  margin-bottom: 6px;
  font-size: 13px;
}
.sup-history-row.is-cancelled { opacity: 0.55; }
.sup-history-row.is-cancelled .sup-history-qty { text-decoration: line-through; }
.sup-history-when { font-size: 11px; color: var(--silver-dim); font-variant-numeric: tabular-nums; }
.sup-history-item { color: var(--text); }
.sup-history-qty.plus  { color: #79d093; font-weight: 600; }
.sup-history-qty.minus { color: #e88c8c; font-weight: 600; }
.sup-history-kind { color: var(--silver-dim); font-size: 12px; }
.sup-history-author { color: var(--text); font-family: 'Foglihten', serif; font-size: 13px; letter-spacing: 0.5px; }
.sup-history-note { grid-column: 2 / -1; font-size: 11px; color: var(--silver-dim); padding-top: 4px; }
.sup-history-cancelled { grid-column: 2 / -1; font-size: 11px; color: #e88c8c; padding-top: 4px; }

/* Карточки поставщиков */
.sup-supplier-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.sup-supplier-card {
  padding: 16px 18px;
  background: var(--surface-card, rgba(255,255,255,0.03));
  border: 1px solid var(--border-soft);
  border-radius: 12px;
}
.sup-supplier-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
}
.sup-supplier-name {
  font-family: 'Foglihten', serif;
  font-size: 17px;
  letter-spacing: 0.5px;
  color: var(--text);
}
.sup-supplier-actions { display: flex; gap: 4px; flex-shrink: 0; }
.sup-supplier-meta { font-size: 12px; color: var(--silver-dim, #888); margin-bottom: 8px; }
.sup-supplier-rating { color: #ffb450; font-size: 14px; letter-spacing: 2px; margin-bottom: 10px; }
.sup-supplier-stats {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: var(--silver-dim);
  padding: 8px 0;
  border-top: 1px solid var(--border-soft);
}
.sup-supplier-stats b { color: var(--text); font-weight: 600; }
.sup-supplier-notes {
  font-size: 12px;
  color: var(--silver-dim);
  padding-top: 8px;
  font-style: italic;
}

@media (max-width: 768px) {
  .sup-stock-row { grid-template-columns: 1fr; }
  .sup-stock-actions { justify-content: flex-start; }
  .sup-history-head { display: none; }
  .sup-history-row {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "when    qty"
      "item    kind"
      "author  cancel"
      "note    note"
      "canc    canc";
    gap: 6px;
  }
  .sup-history-when   { grid-area: when; }
  .sup-history-item   { grid-area: item; }
  .sup-history-qty    { grid-area: qty; text-align: right; }
  .sup-history-kind   { grid-area: kind; text-align: right; }
  .sup-history-author { grid-area: author; }
  .sup-history-cancel { grid-area: cancel; text-align: right; }
  .sup-history-note   { grid-area: note; }
  .sup-history-cancelled { grid-area: canc; }
}

/* ===== Чек-лист смены (вкладка официанта) ===== */
.checklist-list {
  list-style: none;
  counter-reset: cl;
  padding: 0;
  margin: 8px 0 40px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.checklist-list > li {
  counter-increment: cl;
  position: relative;
  padding: 16px 18px 16px 64px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  color: rgba(255,255,255,0.92);
  font-size: 15px;
  line-height: 1.45;
  letter-spacing: 0.1px;
  transition: background 0.15s, border-color 0.15s;
}
.checklist-list > li:hover {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,180,80,0.25);
}
.checklist-list > li::before {
  content: counter(cl);
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255,180,80,0.18), rgba(255,140,60,0.10));
  border: 1px solid rgba(255,180,80,0.35);
  color: #ffb450;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-variant-numeric: tabular-nums;
}
/* ===== Модуль «Обучение» ===== */
.learn-courses-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.learn-course-card { background: var(--surface-card, rgba(255,255,255,0.03)); border: 1px solid var(--border-soft); border-radius: 12px; padding: 18px 20px; cursor: pointer; transition: all 0.2s cubic-bezier(0.22, 1, 0.36, 1); }
.learn-course-card:hover { border-color: rgba(200,220,255,0.5); transform: translateY(-3px); box-shadow: 0 16px 40px rgba(200,220,255,0.12); }
.learn-course-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 8px; }
.learn-course-title { font-family: 'Foglihten', serif; font-size: 18px; letter-spacing: 0.5px; color: var(--text); }
.learn-course-diff { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--silver-dim, #888); padding: 3px 8px; border: 1px solid var(--border-soft); border-radius: 4px; flex-shrink: 0; }
.learn-course-desc { font-size: 13px; color: var(--text-dim, #aaa); margin-bottom: 12px; line-height: 1.5; }
.learn-course-meta { font-size: 11px; color: var(--silver-dim, #888); margin-top: 8px; letter-spacing: 0.5px; }
.learn-progress-bar { height: 6px; background: rgba(255,255,255,0.06); border-radius: 999px; overflow: hidden; }
.learn-progress-fill { height: 100%; background: linear-gradient(90deg, rgba(200,220,255,0.5), rgba(200,220,255,0.9)); transition: width 0.4s ease; }
.learn-back { background: none; border: none; color: var(--silver-dim, #888); cursor: pointer; font-size: 13px; padding: 4px 0; margin-bottom: 12px; font-family: inherit; }
.learn-back:hover { color: var(--text); }
.learn-page-title { font-family: 'Foglihten', serif; font-size: 28px; letter-spacing: 1px; margin: 0 0 8px; color: var(--text); }
.learn-page-desc { color: var(--text-dim, #aaa); font-size: 14px; margin-bottom: 20px; }
.learn-lessons-list { display: flex; flex-direction: column; gap: 8px; }
.learn-lesson-item { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; padding: 14px 18px; background: var(--surface, rgba(255,255,255,0.02)); border: 1px solid var(--border-soft); border-radius: 10px; cursor: pointer; transition: all 0.15s; }
.learn-lesson-item:hover { border-color: var(--border, rgba(255,255,255,0.18)); background: rgba(255,255,255,0.04); }
.learn-lesson-item.is-done { background: linear-gradient(90deg, rgba(121,208,147,0.08), rgba(121,208,147,0.01)); border-color: rgba(121,208,147,0.3); }
.learn-lesson-num { font-family: 'Foglihten', serif; font-size: 22px; color: var(--silver, #d8d8d8); text-align: center; line-height: 1; font-variant-numeric: tabular-nums; }
.learn-lesson-title { font-size: 15px; color: var(--text); }
.learn-lesson-mark { font-size: 18px; color: #79d093; font-weight: 600; }
.learn-quiz-badge { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #ffd28a; padding: 2px 8px; border: 1px solid rgba(255,180,80,0.4); border-radius: 4px; }
.learn-lesson-body { max-width: 760px; color: var(--text-dim, #ccc); line-height: 1.7; font-size: 15px; padding-bottom: 20px; }
.learn-lesson-body h1, .learn-lesson-body h2, .learn-lesson-body h3 { font-family: 'Foglihten', serif; color: var(--text); margin: 24px 0 12px; }
.learn-lesson-body h1 { font-size: 24px; }
.learn-lesson-body h2 { font-size: 20px; }
.learn-lesson-body h3 { font-size: 17px; }
.learn-lesson-body p { margin: 10px 0; }
.learn-lesson-body ul, .learn-lesson-body ol { padding-left: 24px; margin: 12px 0; }
.learn-lesson-body li { margin: 4px 0; }
.learn-lesson-body blockquote { border-left: 3px solid rgba(200,220,255,0.5); margin: 14px 0; padding: 6px 14px; background: rgba(200,220,255,0.05); color: var(--silver, #d8d8d8); font-style: italic; }
.learn-lesson-body code { background: rgba(255,255,255,0.06); padding: 2px 6px; border-radius: 4px; font-family: 'Consolas', monospace; font-size: 13px; }
.learn-lesson-body img { max-width: 100%; border-radius: 8px; margin: 12px 0; }
.learn-lesson-body a { color: var(--silver-glow, #c8d8ff); text-decoration: underline; }
.learn-lesson-body hr { border: none; border-top: 1px solid var(--border-soft); margin: 24px 0; }
.learn-video { display: inline-block; padding: 10px 18px; background: rgba(255,80,80,0.1); border: 1px solid rgba(255,80,80,0.3); border-radius: 8px; margin: 8px 0 16px; }
.learn-video a { color: #ff8080; text-decoration: none; font-weight: 600; }
.learn-quiz-block { margin: 30px 0 20px; padding: 22px 24px; background: rgba(200,220,255,0.04); border: 1px solid rgba(200,220,255,0.2); border-radius: 12px; }
.learn-quiz-block h3 { font-family: 'Foglihten', serif; margin: 0 0 16px; color: var(--text); letter-spacing: 1px; }
.learn-quiz-q { padding: 14px 0; border-bottom: 1px solid var(--border-soft); }
.learn-quiz-q:last-child { border-bottom: none; }
.learn-quiz-q.is-wrong { background: rgba(232,88,88,0.08); margin: 0 -12px; padding: 14px 12px; border-radius: 6px; }
.learn-quiz-question { font-size: 15px; margin-bottom: 10px; color: var(--text); }
.learn-quiz-options { display: flex; flex-direction: column; gap: 6px; }
.learn-quiz-option { display: flex; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; border: 1px solid var(--border-soft); border-radius: 6px; transition: all 0.15s; }
.learn-quiz-option:hover { border-color: rgba(200,220,255,0.5); background: rgba(255,255,255,0.03); }
.learn-quiz-option input[type=radio] { accent-color: var(--silver-glow, #c8d8ff); }
.learn-action-row { margin: 24px 0; }
.learn-done-banner { display: inline-block; padding: 12px 22px; background: linear-gradient(90deg, rgba(121,208,147,0.18), rgba(121,208,147,0.05)); border: 1px solid rgba(121,208,147,0.5); border-radius: 8px; color: #b5e8c3; font-family: 'Foglihten', serif; letter-spacing: 1px; }
.learn-lesson-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border-soft); }
.staff-learning-cell { display: flex; flex-direction: column; gap: 4px; padding: 6px 10px; border-radius: 6px; border: 1px solid var(--border-soft); background: rgba(255,255,255,0.02); cursor: pointer; transition: all 0.15s; min-width: 140px; }
.staff-learning-cell:hover { background: rgba(255,255,255,0.05); border-color: var(--border, rgba(255,255,255,0.18)); }
.staff-learning-cell.is-high  { border-color: rgba(121,208,147,0.4); }
.staff-learning-cell.is-mid   { border-color: rgba(200,220,255,0.35); }
.staff-learning-cell.is-low   { border-color: rgba(232,140,140,0.35); }
.learn-mini-bar { height: 4px; background: rgba(255,255,255,0.08); border-radius: 999px; overflow: hidden; }
.learn-mini-bar > span { display: block; height: 100%; background: linear-gradient(90deg, rgba(200,220,255,0.7), rgba(200,220,255,0.95)); transition: width 0.3s; }
.staff-learning-cell.is-high .learn-mini-bar > span { background: linear-gradient(90deg, rgba(121,208,147,0.7), rgba(121,208,147,0.95)); }
.staff-learning-cell.is-low .learn-mini-bar > span { background: linear-gradient(90deg, rgba(232,140,140,0.7), rgba(232,140,140,0.95)); }
.staff-learning-text { font-size: 11px; color: var(--silver, #d8d8d8); letter-spacing: 0.3px; font-variant-numeric: tabular-nums; }
.staff-learn-empty { font-size: 11px; color: var(--silver-dim, #888); font-style: italic; }
.wlist-card { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 14px 16px; background: rgba(255,255,255,0.02); border: 1px solid var(--border-soft); border-radius: 8px; margin-bottom: 8px; }
@media (max-width: 640px) { .wlist-card { grid-template-columns: 1fr; } }
.slearn-head { font-size: 14px; color: var(--text); margin-bottom: 8px; }
.slearn-overall { font-size: 13px; color: var(--silver-dim, #888); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--border-soft); }
.slearn-course-row { display: grid; grid-template-columns: 1fr 80px 100px; gap: 12px; align-items: center; padding: 10px 12px; margin-bottom: 6px; background: rgba(255,255,255,0.02); border: 1px solid var(--border-soft); border-radius: 8px; }
.slearn-course-row.is-high { border-color: rgba(121,208,147,0.3); }
.slearn-course-row.is-low { border-color: rgba(232,140,140,0.3); }
.slearn-course-title { font-size: 13px; color: var(--text); }
.slearn-course-num { font-size: 11px; color: var(--silver-dim); text-align: right; font-variant-numeric: tabular-nums; }

@media (max-width: 600px) {
  .checklist-list > li { padding: 14px 14px 14px 56px; font-size: 14px; }
  .checklist-list > li::before { left: 10px; width: 32px; height: 32px; font-size: 13px; }
}
