/* ══════════════════════════════════════════════════════════════════════
   tt-polish.css — بهبود ظاهری صفحهٔ «برنامهٔ مبارزات» (tab جدول زمانی)
   مبنا: سنجش عددی زندهٔ صفحه (CDP) — مشکلات واقعیِ اندازه‌گیری‌شده:
     ۱) متن ستون ساعت سفید روی پس‌زمینهٔ روشن بود ⇒ کنتراست ۱٫۰۵:۱ (ناخوانا)
     ۲) سرستون چسبان با top:0 زیر هدر سایت (۶۲px) پنهان می‌شد و پس‌زمینه‌اش شفاف بود
     ۳) متن باشگاه (small) روشن روی سلول آبی ⇒ ناخوانا
     ۴) سلول‌های خالی سفید (۲ سلول) روی تم تیره، لکهٔ سفید می‌ساخت
     ۵) جدول ۱۱۳۶ ردیفی هیچ خط راهنما/زبرا نداشت ⇒ چشم ردیف را گم می‌کرد
   ⚠️ همهٔ قواعد مهم با !important نوشته شده‌اند چون ده‌ها بلوک <style> بعدی
      در قالب سراسری وجود دارد (آخرین برنده) — تجربهٔ همین پروژه.
   ══════════════════════════════════════════════════════════════════════ */

/* ── قاب جدول: گوشه‌گرد، سایه، ارتفاع بیشتر ── */
.public-page .tt-schedule-wrap {
  max-height: 78vh !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: #0f1422 !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.38) !important;
}

/* ── سرستون‌ها: چسبان زیر هدر سایت (۶۲px) با پس‌زمینهٔ کامل ── */
.public-page .tt-schedule thead th {
  top: 62px !important;
  z-index: 30 !important;
  background: linear-gradient(180deg, #222a44, #161c2e) !important;
  color: #eef1ff !important;
  border-bottom: 1px solid rgba(255,255,255,.18) !important;
  letter-spacing: .2px;
}
/* ستون ساعت: هم بالا و هم چپ چسبان (برای اسکرول افقی موبایل) */
.public-page .tt-schedule thead th.tt-time-head {
  left: 0 !important; top: 62px !important; z-index: 32 !important;
  background: linear-gradient(180deg, #2a3350, #1a2135) !important;
}
.public-page .tt-schedule thead th:not(.tt-time-head) { text-align: center; }
.public-page .tt-schedule thead th small { color: rgba(238,241,255,.7) !important; }

/* ── ستون ساعت (۱۱۳۶ سلول): متن تیره روی پس‌زمینهٔ روشن، عدد هم‌عرض ── */
.public-page .tt-time-cell {
  position: sticky !important; left: 0 !important; z-index: 12 !important;
  background: #e9edf7 !important;
  color: #0b1220 !important;                    /* ← کنتراست ≈ ۱۵:۱ */
  font-size: 12px !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  padding: 6px 6px !important;
  border-bottom: 1px solid rgba(11,18,32,.10) !important;
  border-right: 1px solid rgba(11,18,32,.16) !important;
}
/* پنج‌دقیقه‌ای‌ها کمی پررنگ‌تر، ساعت‌ها کاملاً پررنگ */
.public-page .tt-schedule tbody tr:nth-child(5n) > td.tt-time-cell {
  background: #dde4f4 !important; color: #070c17 !important;
}
.public-page .tt-schedule tbody tr:nth-child(30n) > td.tt-time-cell {
  background: #ccd7ee !important; font-weight: 800 !important;
}
.public-page .tt-schedule tbody tr:nth-child(60n) > td.tt-time-cell {
  background: #b9c8e6 !important; color: #05080f !important; font-weight: 800 !important;
}

/* ── خطوط راهنما برای جدول بلند (۳۰ و ۶۰ دقیقه) ── */
.public-page .tt-schedule tbody tr:nth-child(30n) > td { border-bottom-color: rgba(255,255,255,.16) !important; }
.public-page .tt-schedule tbody tr:nth-child(60n) > td { border-bottom-color: rgba(255,255,255,.30) !important; }

/* ── سلول‌های خالی: نه سفید، بلکه محو و راه‌راه ── */
.public-page .tt-empty-cell {
  background: rgba(255,255,255,.03) !important;
  border-bottom: 1px dashed rgba(255,255,255,.07) !important;
}
.public-page .tt-schedule tbody tr:nth-child(2n) > td.tt-empty-cell { background: rgba(255,255,255,.055) !important; }

/* ── سلول مبارزه: کارت‌گونه و خوانا ── */
.public-page .tt-match-cell {
  border-radius: 9px !important;
  border: 1px solid rgba(11,18,32,.14) !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.35) !important;
  color: #0b1220 !important;
  padding: 8px 10px !important;
}
.public-page .tt-match-cell:hover {
  filter: brightness(1.06) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.5) !important;
  z-index: 5;
}
.public-page .tt-match-title {
  font-size: 13px !important; font-weight: 800 !important; color: #0b1220 !important;
  margin: 3px 0 4px !important; letter-spacing: .1px;
}
.public-page .tt-fighters { font-size: 12.5px !important; color: #0b1220 !important; }
.public-page .tt-fighters > span { margin: 2px 0 !important; }
/* باشگاه: قبلاً روشن روی آبی بود (ناخوانا) — اکنون تیرهٔ شفاف */
.public-page .tt-fighters small,
.public-page .tt-match-cell small {
  color: rgba(11,18,32,.70) !important;
  font-size: 11px !important;
}
.public-page .tt-fighters strong {
  color: #0b1220 !important;
  background: rgba(255,255,255,.85) !important;
  border: 1px solid rgba(11,18,32,.15) !important;
  padding: 0 7px !important;
  font-size: 10.5px !important;
}
.public-page .tt-fighters .tt-win { color: #08320f !important; text-decoration: underline; }
.public-page .tt-badges { margin-bottom: 4px !important; }
.public-page .tt-badge {
  background: rgba(255,255,255,.88) !important; color: #0b1220 !important;
  border: 1px solid rgba(11,18,32,.16) !important; font-size: 10.5px !important;
}
.public-page .tt-badge-dark { background: #0b1220 !important; color: #fff !important; border-color: #0b1220 !important; }

/* ── سلول جلسه/استراحت (زرد مرجع): متن تیرهٔ پررنگ ── */
.public-page .tt-match-cell.tt-session {
  border-radius: 9px !important;
  border: 1px solid rgba(120,90,0,.35) !important;
  background-image: repeating-linear-gradient(135deg, rgba(0,0,0,.045) 0 10px, rgba(0,0,0,0) 10px 20px);
}
.public-page .tt-session-label {
  color: #23180a !important; font-size: 15px !important; font-weight: 800 !important;
  text-align: center; padding-top: 4px;
}
.public-page .tt-cell-info {
  color: rgba(35,24,10,.75) !important; font-size: 11px !important;
  font-weight: 700 !important; text-align: center;
}

/* ── جداکنندهٔ زمین‌ها + سرستون رنگی ── */
.public-page .tt-schedule tbody td:not(.tt-time-cell) { border-right: 1px solid rgba(255,255,255,.09) !important; }
.public-page .tt-schedule thead th:nth-child(2) { box-shadow: inset 0 -3px 0 #df1f26; }
.public-page .tt-schedule thead th:nth-child(3) { box-shadow: inset 0 -3px 0 #1d4ed8; }
.public-page .tt-schedule thead th:nth-child(4) { box-shadow: inset 0 -3px 0 #f0b429; }

/* ── راهنمای رنگ‌ها ── */
.public-page .tt-legend { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.public-page .tt-legend span { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: rgba(238,241,255,.9); }
.public-page .tt-legend span b {
  width: 16px; height: 16px; border-radius: 5px; display: inline-block;
  border: 1px solid rgba(0,0,0,.35);
}

/* ── نوار اعلام زمان‌بندی (بالای صفحه) کمی مرتب‌تر ── */
.public-page .tt-day-heading { font-size: 13px !important; }
.public-page .tt-print-button { font-weight: 700 !important; }

/* ── موبایل: خواندنی بماند و ستون ساعت چسبان باشد ── */
@media (max-width: 760px) {
  .public-page .tt-schedule-wrap { max-height: 70vh !important; }
  .public-page .tt-schedule { min-width: 700px !important; }
  .public-page .tt-time-cell { font-size: 11px !important; padding: 4px 4px !important; }
  .public-page .tt-time-head, .public-page .tt-time-cell { width: 52px !important; }
  .public-page .tt-match-title { font-size: 12px !important; }
  .public-page .tt-fighters { font-size: 11.5px !important; }
  .public-page .tt-fighters small, .public-page .tt-match-cell small { font-size: 10px !important; }
  .public-page .tt-match-cell { padding: 6px 7px !important; }
  .public-page .tt-legend { gap: 10px; }
  .public-page .tt-legend span { font-size: 11.5px; }
}


/* ══════════════════════════════════════════════════════════════════════
   اصلاح نهایی رنگ‌ها — ریشه‌یابی عددی با CDP:
   یک بلوک <style> در قالب سراسری (inline#15) این قاعده را دارد:
     body.public-page:not(.landing-page) h1, … td, small, .muted … {
        color: var(--text, #e8ecf4) !important }
   ⇒ با «!important» و specificity بالاتر از آن، رنگ‌های روشن روی سلول‌های
      روشن (ساعت/باشگاه) را به تیره برمی‌گردانیم. (کنتراست ۱٫۱۷ → ~۱۵)
   ⚠️ این بخش باید آخرین بلوک فایل باشد.
   ══════════════════════════════════════════════════════════════════════ */
body.public-page:not(.landing-page) .tt-schedule .tt-time-cell,
body.public-page:not(.landing-page) .tt-schedule td.tt-time-cell {
  color: #0b1220 !important;
}
body.public-page:not(.landing-page) .tt-schedule tbody tr:nth-child(5n) > td.tt-time-cell { color: #070c17 !important; }
body.public-page:not(.landing-page) .tt-schedule tbody tr:nth-child(30n) > td.tt-time-cell { color: #05080f !important; }
body.public-page:not(.landing-page) .tt-schedule tbody tr:nth-child(60n) > td.tt-time-cell { color: #05080f !important; }

body.public-page:not(.landing-page) .tt-schedule .tt-fighters,
body.public-page:not(.landing-page) .tt-schedule .tt-match-title {
  color: #0b1220 !important;
}
body.public-page:not(.landing-page) .tt-schedule .tt-fighters small,
body.public-page:not(.landing-page) .tt-schedule .tt-match-cell small,
body.public-page:not(.landing-page) .tt-schedule .tt-match-cell .tt-cell-info {
  color: rgba(11,18,32,.72) !important;
}
body.public-page:not(.landing-page) .tt-schedule .tt-cell-info { color: rgba(35,24,10,.78) !important; }
body.public-page:not(.landing-page) .tt-schedule .tt-session-label { color: #23180a !important; }
body.public-page:not(.landing-page) .tt-schedule .tt-fighters strong { color: #0b1220 !important; }
body.public-page:not(.landing-page) .tt-schedule .tt-fighters .tt-win { color: #08320f !important; }
body.public-page:not(.landing-page) .tt-schedule .tt-badge { color: #0b1220 !important; }
body.public-page:not(.landing-page) .tt-schedule .tt-badge.tt-badge-dark { color: #ffffff !important; }


/* ── چسبندگی دو‌لایه: کارت جدول زیر هدر سایت قفل می‌شود و سرستون داخل کارت ──
   سنجش نشان داد top:62px برای سرستون داخل ظرف اسکرول ⇒ هدر از کادر بیرون می‌زد.
   راه‌درست: خودِ ظرف sticky(top:70px) و سرستون top:0 داخل ظرف. */
.public-page .tt-schedule-wrap {
  position: sticky !important;
  top: 70px !important;
  z-index: 20 !important;
}
.public-page .tt-schedule thead th { top: 0 !important; }
.public-page .tt-schedule thead th.tt-time-head { top: 0 !important; left: 0 !important; z-index: 32 !important; }


/* ── ریشهٔ مشکل چسبندگی (سنجش CDP): خودِ <table> مقدار overflow:hidden داشت
   ⇒ نزدیک‌ترین «ظرف اسکرول» برای سلول‌ها همان جدول می‌شد و sticky کاری نمی‌کرد.
   با visible شدن جدول، ظرف اسکرول به .tt-schedule-wrap می‌رسد و سرستون/ستون
   ساعت درست می‌چسبند. */
.public-page .tt-schedule,
.public-page table.tt-schedule { overflow: visible !important; }
.public-page .tt-schedule thead th { position: sticky !important; top: 0 !important; }
.public-page .tt-schedule td.tt-time-cell,
.public-page .tt-schedule th.tt-time-head { position: sticky !important; left: 0 !important; }


/* ── ستون ساعت در RTL باید به لبهٔ «راست» بچسبد (left:0 در RTL بی‌اثر بود) ── */
.public-page .tt-schedule td.tt-time-cell,
.public-page .tt-schedule th.tt-time-head {
  position: sticky !important;
  inset-inline-start: 0 !important;
  right: 0 !important;
  left: auto !important;
  z-index: 22 !important;
}
.public-page .tt-schedule th.tt-time-head { z-index: 34 !important; }


/* ── چیپ ساعت (برجسته) + کد دسته در سلول مبارزه ── */
body.public-page:not(.landing-page) .tt-schedule .tt-badge.tt-badge-time {
  background: #0b1220 !important; color: #ffffff !important; border-color: #0b1220 !important;
  font-size: 11.5px !important; font-weight: 800 !important; padding: 2px 8px !important;
  font-variant-numeric: tabular-nums; letter-spacing: .3px;
}
body.public-page:not(.landing-page) .tt-schedule .tt-badge.tt-badge-time i { color: #ffd479; margin-left: 3px; }
body.public-page:not(.landing-page) .tt-schedule .tt-badge.tt-badge-code {
  background: rgba(255,255,255,.92) !important; color: #0b1220 !important;
  border-color: rgba(11,18,32,.28) !important; font-weight: 800 !important;
  letter-spacing: .6px; direction: ltr; font-size: 10.5px !important;
}


/* ══ 🔍 جستجوی زنده در صفحهٔ برنامهٔ مبارزات ══ */
.public-page .tt-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.public-page .tt-search { display: flex; align-items: center; gap: 6px; position: relative;
  flex: 1 1 280px; max-width: 430px; }
.public-page .tt-search > i { position: absolute; inset-inline-start: 10px; color: #8fa3c8;
  font-size: 12.5px; pointer-events: none; }
.public-page .tt-search input { width: 100%; padding: 7px 32px; border-radius: 9px;
  border: 1px solid rgba(255,255,255,.14); background: #0f1a2e; color: #eaf0ff;
  font-family: inherit; font-size: 13px; }
.public-page .tt-search input:focus { outline: none; border-color: #ffd479;
  box-shadow: 0 0 0 2px rgba(255,212,121,.18); }
.public-page .tt-qcount { font-size: 11.5px; color: #ffd479; white-space: nowrap; min-width: 46px; }
.public-page .tt-search button { width: 28px; height: 28px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06);
  color: #dbe4f7; font-size: 12px; line-height: 1; }
.public-page .tt-search button:hover { background: rgba(255,255,255,.16); }
.public-page .tt-schedule td.tt-fade { opacity: .2 !important; }
.public-page .tt-schedule td.tt-hit { outline: 3px solid #ffd479 !important; outline-offset: -2px; }
.public-page .tt-schedule td.tt-cur { outline: 3px solid #7ce38b !important;
  box-shadow: 0 0 0 3px rgba(124,227,139,.22); }
@media (max-width: 760px) { .public-page .tt-search { max-width: none; flex: 1 1 100%; } }


/* ══ 🕐 نمای «هر زمین جدول مستقل خودش» — ستون ساعت و خط زمانی اختصاصی هر زمین ══ */
.public-page .tt-rings {
  display: flex; gap: 14px; align-items: flex-start;
  overflow-x: auto; padding: 2px 0 8px;
}
.public-page .tt-ring { flex: 1 1 0; min-width: 0; }
.public-page .tt-ring-head {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  flex-wrap: wrap; padding: 8px 12px; border-radius: 12px 12px 0 0;
  background: #132038; border: 1px solid #24365a; border-bottom: 0;
  color: #e8ecf4; font-weight: 800; font-size: 14px;
}
.public-page .tt-ring-head .tt-ring-clock { font-weight: 600; font-size: 12.5px; color: #ffd479; }
.public-page .tt-ring[data-idx="0"] .tt-ring-head { box-shadow: inset 0 3px 0 #df1f26; }
.public-page .tt-ring[data-idx="1"] .tt-ring-head { box-shadow: inset 0 3px 0 #1d4ed8; }
.public-page .tt-ring[data-idx="2"] .tt-ring-head { box-shadow: inset 0 3px 0 #f0b429; }
.public-page .tt-ring .tt-schedule-wrap { border-radius: 0 0 12px 12px !important; }
.public-page .tt-ring .tt-schedule thead th:not(.tt-time-head) { box-shadow: none !important; }
.public-page .tt-ring .tt-schedule { min-width: 0 !important; }
.public-page .tt-ring .tt-schedule thead th:not(.tt-time-head) { text-align: center; }
.public-page .tt-ring-empty {
  padding: 14px; border: 1px dashed #24365a; border-radius: 0 0 12px 12px;
  background: #0f1a2e; color: #9fb3d9; font-size: 13px; text-align: center;
}

/* موبایل: زمین‌ها پشت سر هم (نه کنار هم) */
@media (max-width: 900px) {
  .public-page .tt-rings { flex-direction: column; overflow-x: visible; }
  .public-page .tt-ring { width: 100%; flex: 0 0 auto; }
  .public-page .tt-ring .tt-schedule-wrap { max-height: 62vh !important; }
}

/* چاپ: هر زمین یک بلوک، بی‌بریدگی */
@media print {
  .public-page .tt-rings { display: block; }
  .public-page .tt-ring { page-break-inside: avoid; margin-bottom: 10px; }
  .public-page .tt-ring .tt-schedule-wrap {
    max-height: none !important; overflow: visible !important; position: static !important;
  }
}

/* 🔧 رفع: در چیدمان fixed، ستون ساعت ۶۲px بود و ستون مبارزه فقط ۳۳px می‌گرفت
   (متن حرف‌به‌حرف می‌شکست و مبارزات خوانا نبودند). ستون مبارزه باید بقیهٔ عرض را بگیرد. */
.public-page .tt-ring .tt-schedule thead th:not(.tt-time-head),
.public-page .tt-ring .tt-schedule tbody td:not(.tt-time-cell) { width: 100% !important; }
.public-page .tt-ring .tt-schedule td.tt-match-cell { min-width: 0 !important; }

/* ══ فاز ۱: «منتظر برندهٔ مرحلهٔ قبل» + کلید «فقط مبارزات مشخص» ══ */
.public-page .tt-pending { color: #7f8fb3; font-style: italic; font-size: 12px; font-weight: 600; }
.public-page .tt-pending i { opacity: .8; margin-left: 3px; }
.public-page .tt-schedule tr.tt-row-pending > td.tt-match-cell { opacity: .85; }
.public-page .tt-rings.only-concrete tr.tt-row-pending { display: none !important; }
.public-page .tt-only {
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer; user-select: none;
  background: #0f1a2e; border: 1px solid #24365a; border-radius: 999px;
  padding: 8px 13px; color: #dbe4f7; font-size: 12.5px; font-weight: 700;
}
.public-page .tt-only:hover { border-color: #3a5488; }
.public-page .tt-only input { accent-color: #ffd479; width: 15px; height: 15px; cursor: pointer; }
.public-page .tt-only b { color: #ffd479; font-weight: 600; font-size: 11.5px; }
.public-page .tt-ring-pend { color: #9fb3d9; font-weight: 500; font-size: 11.5px; }

/* ══ شمارهٔ هر بازی + برندهٔ بای ══ */
.public-page .tt-schedule .tt-badge.tt-badge-num {
  background: #1d4ed8 !important; color: #ffffff !important; border-color: #1d4ed8 !important;
  font-weight: 900 !important; font-size: 11.5px !important; padding: 2px 9px !important;
  font-variant-numeric: tabular-nums; direction: ltr;
}
.public-page .tt-bye-tag {
  display: inline-block; background: #2f8f5b; color: #fff; border-radius: 999px;
  font-size: 10px; font-weight: 700; padding: 1px 7px; vertical-align: middle;
}

/* ══ 🧭 نوار «بازهٔ زمانی رده‌های سنی» (شروع → پایان هر رده) ══ */
.public-page .tt-ages {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin: 8px 0 10px; padding: 7px 10px; border-radius: 11px;
  background: #0f1a2e; border: 1px solid #24365a;
}
.public-page .tt-ages-title {
  color: #ffd479; font-size: 12px; font-weight: 700; margin-left: 4px; white-space: nowrap;
}
.public-page .tt-ages-title i { font-size: 11px; margin-left: 3px; }
.public-page .tt-age-chip {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(255,212,121,.10); border: 1px solid rgba(255,212,121,.35);
  color: #e8ecf4; border-radius: 999px; padding: 3px 10px;
  font-size: 11.5px; line-height: 1.7; white-space: nowrap;
}
.public-page .tt-age-chip b { color: #ffd479; font-weight: 800; }
.public-page .tt-age-chip i { color: #9fb3d9; font-size: 10px; }
.public-page .tt-age-chip small { color: #9fb3d9; font-size: 10px; }
@media (max-width: 900px) {
  .public-page .tt-ages { padding: 6px 8px; gap: 5px; }
  .public-page .tt-age-chip { font-size: 11px; padding: 3px 8px; }
  .public-page .tt-ages-title { width: 100%; }
}

/* ══ 🏆 مرحلهٔ جدول در کادر هر مبارزه (۱/۸ · ۱/۴ · نیمه‌نهایی · فینال) ══ */
.public-page .tt-schedule .tt-badge.tt-badge-stage {
  background: rgba(255,212,121,.14) !important; color: #ffd479 !important;
  border-color: rgba(255,212,121,.45) !important;
  font-weight: 800 !important; font-size: 10.5px !important; padding: 2px 8px !important;
}
.public-page .tt-schedule .tt-badge.tt-badge-stage i { font-size: 9.5px; margin-left: 3px; }

/* 🔧 برچسب «(بای)»: متن و رنگ خنثی — قبلاً سبز بود و با «برنده/تمام‌شده» اشتباه می‌شد */
.public-page .tt-bye-tag {
  background: rgba(255,255,255,.13) !important; color: #cfe0ff !important;
  border: 1px solid rgba(255,255,255,.22); font-size: 10px !important;
  font-weight: 600 !important; padding: 1px 6px !important;
}

/* ══ 👤 خلاصهٔ برنامهٔ یک ورزشکار (کادر جستجو) ══ */
.public-page .tt-asum {
  margin: 8px 0 12px; padding: 9px 13px; border-radius: 11px;
  background: #0f1a2e; border: 1px solid #24365a; color: #e8ecf4;
  font-size: 12.5px; line-height: 2; box-shadow: 0 8px 20px rgba(0,0,0,.25);
}
.public-page .tt-asum-row i { color: #ffd479; margin-left: 5px; }
.public-page .tt-asum-row b { color: #fff; font-weight: 800; }
.public-page .tt-asum-row small { color: #9fb3d9; font-size: 11.5px; }
.public-page .tt-asum-more { color: #9fb3d9; font-size: 11.5px; margin-top: 2px; }

/* ══ 👤 آواتار ورزشکار روی کارت + نام کلیک‌پذیر + مودال پروفایل ══ */
.public-page .tt-ath {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 5px; flex-wrap: wrap;
}
.public-page .tt-ava {
  width: 22px; height: 22px; padding: 0; border-radius: 50%; overflow: hidden;
  border: 1px solid rgba(11,18,32,.28) !important; background: rgba(255,255,255,.9) !important;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  transition: transform .12s ease;
}
.public-page .tt-ava img { width: 100%; height: 100%; object-fit: cover; display: block; }
.public-page .tt-ava-init { font-size: 10.5px; font-weight: 800; color: #0b1220; }
.public-page .tt-ava:hover { transform: scale(1.1); box-shadow: 0 0 0 2px rgba(255,212,121,.75); }
.public-page .tt-ath-name {
  color: #0b1220 !important; text-decoration: none !important;
  border-bottom: 1px dashed rgba(11,18,32,.4);
}
.public-page .tt-ath-name:hover {
  text-decoration: underline !important; border-bottom-color: transparent;
}
.public-page .tt-badge-bracket { text-decoration: none !important; cursor: pointer; }
.public-page .tt-match-cell[data-bracket] { cursor: pointer; }

/* مودال پروفایل ورزشکار */
.tt-prof {
  position: fixed; inset: 0; z-index: 9999; padding: 16px;
  background: rgba(6,10,20,.72); display: flex; align-items: center; justify-content: center;
}
/* ⚠️ تله: `display:flex` این کلاس، اثر صفت `hidden` را باطل می‌کند ⇒ مودال از اول
   روی صفحه دیده می‌شد (رخ داد: «عکس پروفایل می‌اد روی صفحه»). این قاعده لازم است. */
.tt-prof[hidden] { display: none !important; }
.tt-prof-card {
  position: relative; width: min(430px, 96vw); max-height: 92vh; overflow: auto;
  background: #0f1a2e; border: 1px solid #24365a; border-radius: 18px;
  padding: 18px 16px 16px; text-align: center; color: #e8ecf4;
  box-shadow: 0 24px 60px rgba(0,0,0,.55);
}
.tt-prof-photo {
  width: 112px; height: 112px; margin: 6px auto 12px; border-radius: 50%;
  overflow: hidden; background: #132038; border: 2px solid #ffd479;
  display: flex; align-items: center; justify-content: center;
  font-size: 34px; font-weight: 800; color: #ffd479;
}
.tt-prof-photo img { width: 100%; height: 100%; object-fit: cover; }
.tt-prof-name { font-size: 17px; font-weight: 800; color: #fff; margin-bottom: 12px; }
.tt-prof-row {
  display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap;
  font-size: 13px; line-height: 1.9; padding: 6px 10px; margin-bottom: 6px;
  border-radius: 10px; background: rgba(255,255,255,.05);
}
.tt-prof-row i { color: #ffd479; font-size: 12px; }
.tt-prof-row span { color: #9fb3d9; }
.tt-prof-row b { color: #fff; font-weight: 800; }
.tt-prof-x {
  position: absolute; top: 8px; left: 10px; background: transparent; border: 0;
  color: #9fb3d9; font-size: 18px; cursor: pointer;
}
.tt-prof-x:hover { color: #fff; }
.tt-prof-note { display: block; margin-top: 8px; color: #9fb3d9; font-size: 11.5px; }
@media (max-width: 900px) {
  .tt-prof-photo { width: 92px; height: 92px; }
  .tt-prof-name { font-size: 16px; }
  .tt-prof-row { font-size: 12.5px; }
}

/* ══ 🎯 وسط‌چین کردن اطلاعات صفحه + کارت هر مبارزه (درخواست کاربر) ══
   یادداشت: آخرین بلوکِ آخرین فایل برنده است (tt-polish.css بعد از theme-pages.css
   بارگذاری می‌شود) ⇒ با !important مطمئن می‌شویم. */
.public-page .tt-schedule thead th,
.public-page .tt-time-cell { text-align: center !important; }

.public-page .tt-match-cell { text-align: center !important; }
.public-page .tt-match-cell .tt-badges { text-align: center !important; }
.public-page .tt-match-cell .tt-match-title { text-align: center !important; }
.public-page .tt-match-cell .tt-fighters { text-align: center !important; }
.public-page .tt-match-cell .tt-fighters > span {
  display: block !important; text-align: center !important;
}
.public-page .tt-match-cell .tt-fighters strong { margin-left: 0 !important; }
.public-page .tt-match-cell .tt-cell-info,
.public-page .tt-match-cell .tt-cell-status,
.public-page .tt-match-cell .tt-pending,
.public-page .tt-match-cell .tt-session-label { text-align: center !important; }

/* هدرِ هر زمین، نوار رده‌های سنی، خلاصهٔ ورزشکار و راهنما: وسط‌چین */
.public-page .tt-ring-head { justify-content: center !important; text-align: center !important; }
.public-page .tt-ring-head .tt-ring-name { text-align: center !important; }
.public-page .tt-ages { justify-content: center !important; text-align: center !important; }
.public-page .tt-ages-title { width: 100% !important; text-align: center !important; }
.public-page .tt-asum, .public-page .tt-asum-row { text-align: center !important; }
.public-page .tt-legend { justify-content: center !important; }
.public-page .tt-legend span { text-align: center !important; }
.public-page .tt-ring-empty { text-align: center !important; }
.public-page .tt-no-data { text-align: center !important; }
