/* ==========================================================================
   Bileşenler
   ========================================================================== */

/* ---------- bölüm başlıkları & panel ---------- */
.section { margin-top: 36px; }
.section-head, .stitle { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-head__title, .stitle h2, .panel__title { display: flex; align-items: center; gap: 10px; font-size: clamp(19px, 1.7vw, 23px); }
.section-head__title .ico, .stitle h2 .ico, .panel__title .ico { color: var(--accent-hi); filter: drop-shadow(0 0 8px rgba(var(--accent-rgb), .6)); }
.section-head__tools { display: flex; align-items: center; gap: 6px; }
.section-head__more { margin-right: 6px; padding: 7px 12px; border-radius: 8px; font-size: 13px; font-weight: 700; color: var(--text-dim); transition: color .2s, background-color .2s; }
.section-head__more:hover { color: var(--accent-hi); background: var(--bg-2); }

.panel { margin-top: 36px; padding: 20px; border-radius: var(--radius-xl); background: var(--glass); border: 1px solid var(--line); }
.panel__head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.panel__title { margin-right: auto; }
.panel__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--text-mute); }
.panel__foot b { color: var(--text); }

.page-title { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: 24px; }
.page-title .ico { color: var(--accent-hi); }

/* sekme başlığı bandı */
.view-hero { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; padding: clamp(24px, 3vw, 38px); border-radius: var(--radius-xl); background: radial-gradient(70% 120% at 100% 0%, rgba(var(--cyan-rgb), .18), transparent 60%), radial-gradient(70% 120% at 0% 100%, rgba(var(--accent-rgb), .28), transparent 60%), linear-gradient(135deg, #0b1633, #060b19); border: 1px solid var(--line-strong); overflow: hidden; }
.view-hero::after { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px); background-size: 18px 18px; mask-image: linear-gradient(90deg, transparent 40%, #000); -webkit-mask-image: linear-gradient(90deg, transparent 40%, #000); pointer-events: none; }
.view-hero--promo { background: radial-gradient(70% 120% at 100% 0%, rgba(139, 92, 246, .24), transparent 60%), radial-gradient(70% 120% at 0% 100%, rgba(var(--accent-rgb), .26), transparent 60%), linear-gradient(135deg, #0b1633, #060b19); }
.view-hero--tourney { background: radial-gradient(70% 120% at 100% 0%, rgba(234, 179, 8, .16), transparent 60%), radial-gradient(70% 120% at 0% 100%, rgba(var(--accent-rgb), .28), transparent 60%), linear-gradient(135deg, #0b1633, #060b19); }
.view-hero--boxes { background: radial-gradient(70% 120% at 100% 0%, rgba(236, 72, 153, .2), transparent 60%), radial-gradient(70% 120% at 0% 100%, rgba(139, 92, 246, .28), transparent 60%), linear-gradient(135deg, #0b1633, #060b19); }
.view-hero__text { position: relative; z-index: 1; max-width: 560px; }
.view-hero h1 { margin: 10px 0 8px; font-size: clamp(26px, 2.8vw, 40px); }
.view-hero p { color: var(--text-dim); }
.view-hero__stats { position: relative; z-index: 1; display: flex; gap: 10px; }
.view-hero__stats > div { min-width: 110px; padding: 12px 16px; border-radius: 14px; background: rgba(4, 6, 12, .5); border: 1px solid var(--line); }
.view-hero__stats strong { display: block; font-family: var(--font-display); font-size: 22px; }
.view-hero__stats small { font-size: 12px; color: var(--text-mute); }

/* ---------- yatay şerit ---------- */
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 1fr); gap: 12px; padding: 4px 2px 8px; margin: -4px -2px 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.rail::-webkit-scrollbar { display: none; }
.rail > * { scroll-snap-align: start; }

/* ---------- oyun kartı ---------- */
.game-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px 14px; }
.game-grid--wide { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }

.gcard { min-width: 0; perspective: 800px; }
.gcard__cover {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius);
  overflow: hidden;
  background: radial-gradient(90% 60% at 50% 0%, rgba(255, 255, 255, .26), transparent 60%), linear-gradient(155deg, var(--a), var(--b));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 8px 20px -10px rgba(0, 0, 0, .8);
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--lift, 0));
  transition: transform .5s var(--ease), box-shadow .35s var(--ease);
}
.gcard.is-tilting .gcard__cover { transition: transform .08s linear, box-shadow .35s var(--ease); }
.gcard__cover::before { content: ''; position: absolute; inset: 0; background: repeating-conic-gradient(from 0deg at 50% 38%, rgba(255, 255, 255, .08) 0 10deg, transparent 10deg 24deg); mask-image: radial-gradient(circle at 50% 38%, #000 10%, transparent 70%); -webkit-mask-image: radial-gradient(circle at 50% 38%, #000 10%, transparent 70%); pointer-events: none; }
.gcard__cover img { width: 100%; height: 100%; object-fit: cover; }
.gcard__ph { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%; padding: 14px; text-align: center; }
.gcard__ph .ico { width: 52%; height: auto; aspect-ratio: 1; color: #fff; stroke-width: 1.4; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .4)); transition: transform .5s var(--ease-spring); }
.gcard__ph b { font-family: var(--font-display); font-size: clamp(12px, 1vw, 15px); font-weight: 800; line-height: 1.15; text-transform: uppercase; letter-spacing: .02em; color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .5); }

.gcard__tags { position: absolute; top: 8px; left: 8px; z-index: 1; display: flex; flex-wrap: wrap; gap: 4px; max-width: 80%; }
.tag { padding: 2px 6px; border-radius: 5px; font: 800 9.5px/1.4 var(--font); font-style: normal; letter-spacing: .04em; color: #fff; }
.tag--top { background: rgba(255, 77, 109, .92); }
.tag--new { background: rgba(34, 197, 94, .92); }
.tag--jp { background: linear-gradient(90deg, #8b5cf6, #ec4899); }
.tag--buy { background: rgba(4, 8, 20, .65); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }

.gcard__shine { position: absolute; inset: 0; background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgba(255, 255, 255, .3), transparent 45%); opacity: 0; transition: opacity .3s; pointer-events: none; }
.gcard__hover { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(4, 8, 20, .45); opacity: 0; transition: opacity .25s; }
.gcard__play { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--accent-grad); color: #fff; box-shadow: 0 0 0 6px rgba(var(--accent-rgb), .25), 0 10px 26px -6px rgba(var(--accent-rgb), .9); transform: scale(.5); transition: transform .4s var(--ease-spring); }
.gcard__play .ico { width: 22px; height: 22px; margin-left: 3px; }
.gcard__info { padding: 8px 2px 0; }
.gcard__info b { display: block; font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gcard__info small { display: block; font-size: 12px; color: var(--text-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (hover: hover) {
  .gcard:hover .gcard__cover { --lift: -6px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2), 0 22px 36px -14px var(--a); }
  .gcard:hover .gcard__ph .ico { transform: scale(1.06); }
  .gcard:hover .gcard__shine, .gcard:hover .gcard__hover { opacity: 1; }
  .gcard:hover .gcard__play { transform: scale(1); }
}

/* ---------- logolar ---------- */
.tlogo { display: inline-grid; place-items: center; flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, hsl(var(--h) 70% 55%), hsl(calc(var(--h) + 40) 65% 30%)); font-size: 9.5px; font-weight: 800; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .12); }
.plogo { flex-shrink: 0; width: 28px; height: 28px; border-radius: 8px; object-fit: contain; background: #fff; }
.plogo--mono { display: grid; place-items: center; background: var(--pc); color: #fff; font-size: 11px; font-weight: 800; }

/* ---------- oran butonu ---------- */
.odds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.odds--2 { grid-template-columns: repeat(2, 1fr); }
.odds--locked { opacity: .5; pointer-events: none; }
.odd { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 44px; padding: 4px 6px; border-radius: 10px; background: var(--bg-3); border: 1px solid transparent; overflow: hidden; transition: background-color .2s, border-color .2s, transform .15s, box-shadow .2s; }
.odd b { font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
.odd span { order: 2; font-size: 11px; font-weight: 700; color: var(--text-mute); }
.odd s { order: -1; font-size: 11px; color: var(--text-mute); }
.odd:hover { background: var(--bg-4); border-color: rgba(var(--accent-hi-rgb), .25); }
.odd:active { transform: scale(.96); }
.odd.is-selected { background: var(--accent-grad); color: #fff; box-shadow: 0 6px 18px -8px rgba(var(--accent-rgb), .9); }
.odd.is-selected span, .odd.is-selected s { color: rgba(255, 255, 255, .75); }
.odd--boost b { color: var(--green-hi); }
.odd--boost.is-selected b { color: #fff; }
.odd--off { color: var(--text-mute); cursor: default; }
.odd.is-up { border-color: rgba(74, 222, 128, .7); }
.odd.is-down { border-color: rgba(255, 77, 109, .7); }
.odd.is-up::after, .odd.is-down::after { content: ''; position: absolute; top: 4px; right: 4px; border: 4px solid transparent; }
.odd.is-up::after { border-bottom-color: var(--green-hi); border-top: 0; }
.odd.is-down::after { border-top-color: var(--red); border-bottom: 0; }

/* ---------- boş durum / sayfalama ---------- */
.sb-empty { display: grid; place-items: center; gap: 6px; padding: 52px 20px; text-align: center; color: var(--text-mute); }
.sb-empty > .ico { width: 40px; height: 40px; opacity: .5; margin-bottom: 4px; }
.sb-empty b { color: var(--text); }
.sb-empty small { font-size: 13px; }
.sb-empty .btn { margin-top: 8px; }
.loadmore { display: grid; justify-items: center; gap: 10px; margin-top: 28px; }
.loadmore p { font-size: 13px; color: var(--text-mute); }
.loadmore p b { color: var(--text); }
.bar { width: 220px; height: 4px; border-radius: 4px; background: var(--bg-3); overflow: hidden; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--cyan)); transition: width .5s var(--ease); }

/* ---------- tablo & liste ---------- */
.table-wrap { overflow-x: auto; }
.table { min-width: 660px; font-size: 13.5px; }
.table th, .table td { padding: 13px 14px; text-align: center; border-bottom: 1px solid var(--line); white-space: nowrap; }
.table th { font-family: var(--font-display); font-size: 13px; color: var(--text-dim); }
.table td:first-child, .table th:first-child { text-align: left; color: var(--text-dim); }
.table--left th, .table--left td { text-align: left; }
.table--left td:first-child { color: var(--text); }
.table tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: rgba(120, 150, 220, .04); }
.table .yes { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(34, 197, 94, .15); color: var(--green-hi); }
.table .yes .ico { width: 14px; height: 14px; stroke-width: 3; }
.table .no { color: var(--text-mute); }
.table .pos { color: var(--green-hi); font-weight: 700; }
.table .neg { font-weight: 700; }

.info-list > div { display: flex; justify-content: space-between; gap: 16px; padding: 13px 4px; border-bottom: 1px solid var(--line); }
.info-list > div:last-child { border-bottom: 0; }
.info-list dt { color: var(--text-dim); }
.info-list dd { font-weight: 700; text-align: right; }

.faq { display: grid; gap: 10px; }
.faq details { border-radius: var(--radius); background: var(--bg-2); border: 1px solid var(--line); transition: border-color .2s; }
.faq details[open] { border-color: rgba(var(--accent-hi-rgb), .3); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; font-weight: 700; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ico { color: var(--accent-hi); transition: transform .3s var(--ease); }
.faq details[open] summary .ico { transform: rotate(45deg); }
.faq p { padding: 0 18px 16px; color: var(--text-dim); }

.timer { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-mute); }
.timer .ico { width: 16px; height: 16px; margin-right: 2px; color: var(--cyan); }
.timer b { padding: 3px 6px; border-radius: 6px; background: var(--bg-3); font-family: var(--font-display); font-size: 14px; color: var(--text); font-variant-numeric: tabular-nums; }
.timer--lg { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; width: 100%; }
.timer--lg span { display: grid; justify-items: center; padding: 10px 6px; border-radius: 12px; background: rgba(4, 8, 20, .5); border: 1px solid var(--line); font-size: 11px; }
.timer--lg b { padding: 0; background: none; font-size: 24px; }

@media (max-width: 1400px) { .game-grid { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 1100px) {
  .game-grid { grid-template-columns: repeat(4, 1fr); }
  .view-hero { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767.98px) {
  .section, .panel { margin-top: 28px; }
  .panel { padding: 14px; border-radius: var(--radius-lg); }
  .section-head { flex-wrap: wrap; }
  .section-head .rail-btn { display: none; }
  .game-grid, .game-grid--wide { grid-template-columns: repeat(3, 1fr); gap: 12px 10px; }
  .rail { grid-auto-columns: 86%; }
  .panel__foot { flex-direction: column; align-items: stretch; text-align: center; }
  .view-hero__stats { width: 100%; }
  .view-hero__stats > div { flex: 1; min-width: 0; padding: 10px 12px; }
  .view-hero__stats strong { font-size: 18px; }
}
@media (max-width: 400px) { .game-grid, .game-grid--wide { grid-template-columns: repeat(2, 1fr); } }
