/* ==========================================================================
   FFK TOURNAMENT DETAIL PAGE & LISTING — LIGHT THEME (v2.0.6)
   Clean, high-contrast, edge-to-edge mobile, SVG iconography
   ========================================================================== */

.ffk-tournament-page {
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 24px 16px !important;
}

/* Detail Split Layout: Sticky Sidebar + Main Content */
.ffk-detail-layout {
  display: flex !important;
  align-items: flex-start !important;
  background: var(--ffk-surface) !important;
  border: 1px solid var(--ffk-border) !important;
  border-radius: var(--ffk-radius-lg) !important;
  box-shadow: var(--ffk-shadow-sm) !important;
  overflow: hidden !important;
  min-height: 520px !important;
}

/* Vertical Tab Menu */
.ffk-vertical-menu {
  width: 220px !important;
  min-width: 220px !important;
  background: var(--ffk-surface-2) !important;
  border-right: 1px solid var(--ffk-border) !important;
  padding: 16px 10px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  position: sticky !important;
  top: 76px !important;
  align-self: flex-start !important;
  max-height: calc(100vh - 90px) !important;
  overflow-y: auto !important;
}

.ffk-vertical-menu button {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  background: transparent !important;
  border: none !important;
  color: var(--ffk-text-2) !important;
  font-family: var(--ffk-font) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  text-align: left !important;
  padding: 10px 14px !important;
  border-radius: var(--ffk-radius-sm) !important;
  cursor: pointer !important;
  transition: all var(--ffk-transition) !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  border-left: 3px solid transparent !important;
}

.ffk-vertical-menu button:hover {
  background: #E2E8F0 !important;
  color: var(--ffk-text) !important;
}

.ffk-vertical-menu button.active {
  background: var(--ffk-red-light) !important;
  color: var(--ffk-red) !important;
  border-left-color: var(--ffk-red) !important;
  font-weight: 700 !important;
}

/* Detail Main Panel */
.ffk-detail-content {
  flex: 1 !important;
  min-width: 0 !important;
  padding: 28px !important;
  background: var(--ffk-surface) !important;
}

.ffk-detail-section {
  display: none !important;
}
.ffk-detail-section.active {
  display: block !important;
  animation: ffkFadeIn 0.22s ease both !important;
}

@keyframes ffkFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.ffk-section-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 22px !important;
  padding-bottom: 14px !important;
  border-bottom: 1.5px solid var(--ffk-border) !important;
}

.ffk-section-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--ffk-text) !important;
  margin: 0 !important;
}

/* ==========================================================================
   TIMELINE (CLEAN STEPPER)
   ========================================================================== */
.ffk-pub-timeline {
  display: flex !important;
  align-items: center !important;
  padding: 20px !important;
  background: var(--ffk-surface) !important;
  border: 1px solid var(--ffk-border) !important;
  border-radius: var(--ffk-radius) !important;
  margin-bottom: 24px !important;
  box-shadow: var(--ffk-shadow-xs) !important;
  overflow-x: auto !important;
}

.ffk-pub-timeline-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  text-align: center !important;
  flex: 1 !important;
  min-width: 90px !important;
  padding: 4px !important;
  color: var(--ffk-muted) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.ffk-pub-timeline-item b {
  display: block !important;
  font-size: 11.5px !important;
  color: inherit !important;
}

.ffk-pub-timeline-item.done {
  color: var(--ffk-green) !important;
}
.ffk-pub-timeline-item.current {
  color: var(--ffk-red) !important;
}

.ffk-pub-timeline-item .step-icon {
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  border: 2px solid currentColor !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  background: #FFFFFF !important;
}
.ffk-pub-timeline-item.done .step-icon {
  background: var(--ffk-green-light) !important;
}
.ffk-pub-timeline-item.current .step-icon {
  background: var(--ffk-red-light) !important;
  box-shadow: 0 0 0 4px rgba(229, 25, 45, 0.15) !important;
}

.ffk-pub-timeline-line {
  flex: 1 !important;
  height: 2px !important;
  background: var(--ffk-border) !important;
  min-width: 20px !important;
  align-self: center !important;
}

.ffk-personal-timeline {
  background: var(--ffk-green-light) !important;
  border-color: rgba(5, 150, 105, 0.25) !important;
}

/* ==========================================================================
   ROOM CREDENTIALS BOX (LIGHT THEME HIGH CONTRAST)
   ========================================================================== */
.ffk-room-box {
  background: #FFFFFF !important;
  border: 1.5px solid var(--ffk-red) !important;
  border-radius: var(--ffk-radius) !important;
  padding: 20px !important;
  box-shadow: 0 4px 16px rgba(229, 25, 45, 0.12) !important;
}

.ffk-room-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
}

.ffk-room-credential {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  background: var(--ffk-surface-2) !important;
  border: 1px solid var(--ffk-border) !important;
  border-radius: var(--ffk-radius-sm) !important;
  padding: 12px 16px !important;
}

.ffk-room-value {
  font-family: var(--ffk-mono) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--ffk-text) !important;
  letter-spacing: 2.5px !important;
  display: block !important;
}

.ffk-copy-btn {
  background: var(--ffk-red) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 8px 14px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: all var(--ffk-transition) !important;
  letter-spacing: 0.5px !important;
}
.ffk-copy-btn:hover {
  background: var(--ffk-red-dark) !important;
}
.ffk-copy-btn.copied {
  background: var(--ffk-green) !important;
}

/* ==========================================================================
   MATCH CARD (PUBLIC VIEW)
   ========================================================================== */
.ffk-player-match-card {
  background: var(--ffk-surface) !important;
  border: 1px solid var(--ffk-border) !important;
  border-radius: var(--ffk-radius) !important;
  padding: 18px 20px !important;
  box-shadow: var(--ffk-shadow-xs) !important;
  margin-bottom: 14px !important;
  transition: all var(--ffk-transition) !important;
}
.ffk-player-match-card:hover {
  box-shadow: var(--ffk-shadow-sm) !important;
  border-color: var(--ffk-border-hover) !important;
}
.ffk-player-match-card.live {
  border: 1.5px solid var(--ffk-red) !important;
  background: var(--ffk-red-light) !important;
}

/* ==========================================================================
   TOURNAMENT LISTING GRID (MAGAZINE GRADE)
   ========================================================================== */
.ffk-tournament-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)) !important;
  gap: 24px !important;
  width: 100% !important;
}

.ffk-tournament-card {
  background: var(--ffk-surface) !important;
  border: 1px solid var(--ffk-border) !important;
  border-radius: var(--ffk-radius-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--ffk-shadow-sm) !important;
  cursor: pointer !important;
  transition: all var(--ffk-transition) !important;
  display: flex !important;
  flex-direction: column !important;
}
.ffk-tournament-card:hover {
  border-color: var(--ffk-red-mid) !important;
  transform: translateY(-3px) !important;
  box-shadow: var(--ffk-shadow-lg) !important;
}

.ffk-tournament-card-body {
  padding: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.ffk-tournament-card-title {
  font-family: var(--ffk-font-heading) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--ffk-text) !important;
  margin: 0 0 10px !important;
  line-height: 1.3 !important;
}

/* ==========================================================================
   MOBILE RESPONSIVENESS — Full edge-to-edge, zero overflow for all devices
   ========================================================================== */

/* Global overflow prevention */
.ffk-tournament-page,
.ffk-tournament-page * {
  box-sizing: border-box !important;
}
.ffk-tournament-page {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}

@media (max-width: 900px) {
  .ffk-tournament-page {
    padding: 10px 8px !important;
    overflow-x: hidden !important;
  }

  .ffk-detail-layout {
    flex-direction: column !important;
    border-radius: var(--ffk-radius) !important;
    overflow: hidden !important;
  }

  .ffk-vertical-menu {
    width: 100% !important;
    min-width: 0 !important;
    max-height: none !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding: 10px !important;
    border-right: none !important;
    border-bottom: 1px solid var(--ffk-border) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
  }
  .ffk-vertical-menu::-webkit-scrollbar { display: none !important; }
  .ffk-vertical-menu button {
    flex-shrink: 0 !important;
    border-left: none !important;
    border-bottom: 3px solid transparent !important;
    border-radius: 6px 6px 0 0 !important;
    white-space: nowrap !important;
    font-size: 12px !important;
    padding: 8px 12px !important;
  }
  .ffk-vertical-menu button.active {
    border-bottom-color: var(--ffk-red) !important;
    border-left-color: transparent !important;
  }

  .ffk-detail-content {
    padding: 14px 12px !important;
    min-width: 0 !important;
    width: 100% !important;
    overflow-x: hidden !important;
  }

  .ffk-room-grid {
    grid-template-columns: 1fr !important;
  }

  .ffk-tournament-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .ffk-section-header {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
}

@media (max-width: 600px) {
  .ffk-tournament-page {
    padding: 8px 6px !important;
  }

  /* Hero header — prevent inline padding overflow */
  .ffk-tournament-page div[style*="padding:24px 28px"],
  .ffk-tournament-page div[style*="padding: 24px 28px"] {
    padding: 14px 12px !important;
  }

  /* stat-grid: 2 columns on small phones */
  .ffk-tournament-page div[style*="grid-template-columns:repeat(auto-fit,minmax(140px"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  /* Remove min-width that causes overflow */
  .ffk-tournament-page div[style*="min-width:280px"] {
    min-width: 0 !important;
    width: 100% !important;
  }

  /* Hero CTA row: wrap */
  .ffk-tournament-page div[style*="gap:16px; align-items:center"] {
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  .ffk-pub-timeline {
    -webkit-overflow-scrolling: touch !important;
  }

  .ffk-room-credential {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .ffk-room-value {
    font-size: 18px !important;
    letter-spacing: 1.5px !important;
  }

  .ffk-section-title {
    font-size: 16px !important;
  }

  .ffk-detail-content {
    padding: 12px 10px !important;
  }

  /* Stage grid: 1 column */
  .ffk-tournament-page div[style*="grid-template-columns:repeat(auto-fit,minmax(220px"] {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 390px) {
  /* iPhone 14/15 and narrow screens */
  .ffk-tournament-page {
    padding: 6px 4px !important;
  }

  .ffk-detail-content {
    padding: 10px 8px !important;
  }

  .ffk-tournament-page div[style*="padding:24px 28px"],
  .ffk-tournament-page div[style*="padding: 24px 28px"] {
    padding: 10px 8px !important;
  }

  .ffk-tournament-page div[style*="grid-template-columns:repeat(auto-fit,minmax(140px"] {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .ffk-stat-card {
    padding: 12px 10px !important;
  }

  .ffk-vertical-menu button {
    font-size: 11px !important;
    padding: 7px 10px !important;
  }
}

/* ==========================================================================
   SUPPRESS THEME DUPLICATE POST THUMBNAILS ON SINGLE TOURNAMENT
   ========================================================================== */
body.single-ffk_tournament .post-thumbnail,
body.single-ffk_tournament .entry-thumbnail,
body.single-ffk_tournament .featured-image,
body.single-ffk_tournament .entry-header .wp-post-image,
body.single-ffk_tournament article > .wp-post-image,
body.single-ffk_tournament .ast-single-post-order .post-thumbnail,
body.single-ffk_tournament .attachment-post-thumbnail,
body.single-ffk_tournament .post-thumb,
body.single-ffk_tournament header .wp-post-image,
body.single-ffk_tournament header.entry-header:not(.ffk-section-header),
body.single-ffk_tournament .entry-header > h1.entry-title {
  display: none !important;
}

