/* TurnuvaGo v6.16.0 - Ana Panel ve Turnuva Genel Bakış modülü */
/* v6.11.3 - Ana Panel ve Turnuva Genel Bakış telefon ergonomisi */
.v4-card-top{gap:12px}.v4-card-identity{display:flex;align-items:center;gap:12px;min-width:0}.v4-card-identity>div:last-child{min-width:0}.v4-card-identity h2{display:-webkit-box;overflow:hidden;margin:0 0 4px;font-size:20px;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.v4-card-identity p{overflow:hidden;margin:0;color:#718096;text-overflow:ellipsis;white-space:nowrap}.v4-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.v4-card-meta .v5-license,.v4-card-meta .v4-card-stats{margin:14px 0}.v4-card-meta .v5-license{flex:0 0 auto}.v4-card-meta .v4-card-stats{justify-content:flex-end}

@media(max-width:760px){
  .v4-global-header{height:56px!important;min-height:56px;align-items:center!important;padding:6px 9px!important}.v4-global-logo{display:flex;align-items:center;min-width:0}.v4-global-logo img{width:146px!important;max-height:42px}.v4-global-user{gap:7px}.v4-global-user form{display:flex!important}.v4-global-user .link-button{min-height:38px;padding:7px 10px;border:1px solid #dce4ed;border-radius:9px;background:#f7f9fc;color:#173b63;font-size:12px}
  .v4-global-main{padding:12px 7px calc(24px + env(safe-area-inset-bottom))!important}.v4-dashboard-head{gap:9px!important;margin-bottom:11px!important}.v4-dashboard-head h1{margin:2px 0 3px;font-size:23px!important;line-height:1.12}.v4-dashboard-head p{font-size:12px;line-height:1.35}.v4-head-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important}.v4-head-actions>*{width:100%;min-width:0;min-height:40px!important;padding:7px 6px!important;font-size:11px!important;line-height:1.15;text-align:center}
  .v4-search-row{gap:5px;margin-bottom:9px;padding:4px;border-radius:10px}.v4-search-row input{height:38px;padding:7px 9px!important}.v4-search-row button{min-height:38px;padding:0 14px;font-size:12px}.v4-global-main>.v3-filter-tabs{margin-bottom:9px;padding-bottom:3px}.v4-global-main>.v3-filter-tabs a{padding:6px 10px;font-size:11px}
  .v4-tournament-grid{gap:8px}.v4-tournament-card{padding:11px!important;border-radius:13px}.v4-card-top{align-items:center;gap:7px}.v4-card-identity{gap:8px}.v4-tournament-emblem{flex:0 0 42px;width:42px;height:42px;border-radius:11px;font-size:13px}.v4-card-identity h2{margin-bottom:2px;font-size:15px;line-height:1.18}.v4-card-identity p{font-size:10px}.v4-card-badges{display:grid;flex:0 0 auto;gap:3px;justify-items:end}.v4-demo-badge,.v4-status{padding:4px 6px;font-size:10px;white-space:nowrap}.v4-card-meta{margin:9px 0 8px;gap:5px}.v4-card-meta .v5-license{margin:0;padding:5px 7px;font-size:10px}.v4-card-meta .v4-card-stats{gap:9px;margin:0;font-size:10px}.v4-card-stats strong{font-size:12px}.v4-open-button{min-height:39px;align-items:center;padding:7px;border-radius:9px;font-size:12px}.v4-card-menu{margin-top:5px}.v4-card-menu summary{display:grid;place-items:center;min-height:36px!important;font-size:11px}.v4-card-menu>div{gap:5px;margin-top:5px}.v4-card-menu button{min-height:38px;padding:6px;font-size:11px}
  .v4-dialog{width:100%;max-height:92dvh;margin:auto 0 0;border-radius:20px 20px 0 0}.v4-dialog form{padding:15px 13px calc(16px + env(safe-area-inset-bottom))}.v4-dialog-head{gap:10px}.v4-dialog-head h2{font-size:21px}.v4-dialog-head p{margin:4px 0 8px;font-size:12px}.v4-dialog-head button{flex:0 0 40px;min-height:40px;padding:0}.v4-dialog label{margin-top:9px;font-size:12px}.v4-dialog .grid{gap:0}

  .tournament-overview-page{display:grid;gap:8px}.tournament-overview-page .tournament-overview-hero{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;min-height:0!important;padding:11px!important;border-radius:14px}.tournament-overview-page .v3-hero-badge{width:58px;height:68px;border-width:3px}.tournament-overview-page .v3-hero-badge span{font-size:15px}.tournament-overview-page .v3-hero-badge small{margin-top:13px;font-size:10px}.tournament-overview-page .v3-hero-copy{min-width:0}.tournament-overview-page .v3-hero-copy h1{display:-webkit-box;overflow:hidden;margin:0 0 5px;font-size:20px;line-height:1.12;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tournament-overview-page .v3-hero-meta{gap:5px}.tournament-overview-page .v3-hero-meta strong{font-size:10px;letter-spacing:.02em}.tournament-overview-page .v3-status-pill{padding:4px 7px;font-size:10px;white-space:nowrap}.tournament-overview-page .v3-hero-submeta{gap:6px;margin-top:6px;font-size:10px}.tournament-overview-page .v3-hero-submeta span:first-child{display:none}
  .tournament-overview-page .tournament-progress-panel{margin:0;padding:10px 11px}.tournament-overview-page .tg-progress-head{gap:8px}.tournament-overview-page .tg-progress-head strong{font-size:13px}.tournament-overview-page .tg-progress-head span,.tournament-overview-page .tg-progress-panel small{font-size:10px}.tournament-overview-page .tg-progress-head b{font-size:17px}.tournament-overview-page .tg-progress-track{height:7px;margin:7px 0 3px}
  .tournament-overview-page .v3-stat-grid{gap:6px;margin:0}.tournament-overview-page .v3-stat-card{min-height:62px!important;padding:7px!important;grid-template-columns:36px minmax(0,1fr)!important;gap:7px;border-radius:11px}.tournament-overview-page .v3-stat-icon{width:36px!important;height:36px!important;border-radius:10px}.tournament-overview-page .v3-stat-icon svg{width:19px;height:19px}.tournament-overview-page .v3-stat-card strong{font-size:21px!important;line-height:1}.tournament-overview-page .v3-stat-card span{font-size:10px}.tournament-overview-page .v3-stat-card small{display:none}.tournament-overview-page .v3-stat-card:last-child{grid-column:1/-1}
  .tournament-overview-page .v3-dashboard-grid,.tournament-overview-page .v3-right-stack{gap:8px}.tournament-overview-page .v3-panel{padding:10px}.tournament-overview-page .v3-panel-title{margin-bottom:6px;padding-bottom:8px;font-size:14px}.tournament-overview-page .v3-activity-list>div{grid-template-columns:29px minmax(0,1fr) auto;gap:7px;padding:7px 0}.tournament-overview-page .v3-activity-list span{width:27px;height:27px;font-size:12px}.tournament-overview-page .v3-activity-list p strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.tournament-overview-page .v3-activity-list p small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.tournament-overview-page .v3-activity-list time{font-size:10px}
  .tournament-overview-page .v3-progress-flow{display:flex;gap:6px;overflow-x:auto;padding:1px 0 5px;scroll-snap-type:x proximity;scrollbar-width:none}.tournament-overview-page .v3-progress-flow::-webkit-scrollbar{display:none}.tournament-overview-page .v3-progress-flow:before{display:none}.tournament-overview-page .v3-progress-flow>div{flex:0 0 76px;min-height:70px;padding:7px 5px;border:1px solid #e4eaf1;border-radius:10px;background:#f8fafc;scroll-snap-align:start}.tournament-overview-page .v3-progress-flow b{width:26px;height:26px;font-size:11px}.tournament-overview-page .v3-progress-flow span{margin-top:5px;font-size:10px;font-weight:800}.tournament-overview-page .v3-progress-flow small{margin-top:2px;font-size:10px}.tournament-overview-page .v3-progress-flow .done{background:#f0fbf5;border-color:#cdebd9}.tournament-overview-page .v3-progress-flow .current{background:#eef6ff;border-color:#c8ddf7}
  .tournament-overview-page .v3-group-preview{gap:6px}.tournament-overview-page .v3-group-preview>div{min-height:0;padding:8px;border-radius:9px}.tournament-overview-page .v3-group-preview strong{font-size:11px}.tournament-overview-page .v3-group-preview span{margin-top:3px;font-size:10px}.tournament-overview-page .tg-note{margin-top:7px;font-size:10px;line-height:1.35}
  .tournament-overview-page .v3-quick-panel{margin-top:0}.tournament-overview-page .v3-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tournament-overview-page .v3-quick-actions a{min-height:66px;padding:7px 4px;gap:5px;border-radius:10px}.tournament-overview-page .v3-quick-actions a span{width:31px;height:31px;border-radius:9px}.tournament-overview-page .v3-quick-actions a span svg{width:18px;height:18px}.tournament-overview-page .v3-quick-actions a strong{font-size:10px;line-height:1.15}.tournament-overview-page .v3-footer{gap:3px;padding:7px 2px 0;font-size:10px}
}

@media(max-width:390px){
  .v4-global-logo img{width:136px!important}.v4-head-actions>*{font-size:10px!important}.v4-card-identity h2{font-size:14px}.v4-card-meta{align-items:flex-start;flex-direction:column}.v4-card-meta .v4-card-stats{width:100%;justify-content:flex-start}.tournament-overview-page .v3-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-overview-page .v3-quick-actions a{min-height:62px}.tournament-overview-page .v3-hero-copy h1{font-size:18px}
}

/* v6.16.0 - Genel Bakış kesin genişlik ve PWA ergonomisi */
.tournament-overview-page,
.tournament-overview-page > *,
.tournament-overview-page .v3-dashboard-grid,
.tournament-overview-page .v3-right-stack,
.tournament-overview-page .v3-panel,
.tournament-overview-page .v3-stat-grid,
.tournament-overview-page .v3-group-preview,
.tournament-overview-page .v3-quick-actions {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.tournament-overview-page {
  overflow-x: clip;
}

.tournament-overview-page .v3-panel,
.tournament-overview-page .v3-group-preview > div,
.tournament-overview-page .v3-quick-actions > a,
.tournament-overview-page .v3-activity-list p {
  min-width: 0;
}

.tournament-overview-page .v3-group-preview span,
.tournament-overview-page .v3-quick-actions strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

.tournament-overview-page .v3-group-preview span {
  white-space: nowrap;
}

@media (max-width: 760px) {
  .tournament-overview-page .v3-dashboard-grid,
  .tournament-overview-page .v3-right-stack {
    grid-template-columns: minmax(0, 1fr);
  }

  .tournament-overview-page .v3-group-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tournament-overview-page .v3-quick-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tournament-overview-page .v3-progress-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding: 1px 0;
    scroll-snap-type: none;
  }

  .tournament-overview-page .v3-progress-flow > div {
    min-width: 0;
    min-height: 65px;
    padding: 6px 2px;
  }

  .tournament-overview-page .v3-progress-flow b {
    width: 24px;
    height: 24px;
    font-size: 10px;
  }

  .tournament-overview-page .v3-progress-flow span {
    margin-top: 4px;
    font-size: 10px;
  }

  .tournament-overview-page .v3-progress-flow small {
    margin-top: 2px;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .tournament-overview-page .v3-quick-actions a {
    min-height: 64px;
  }
}

/* v6.17.0 - kompakt özet, sıralı paneller ve gerçek işlem geçmişi */
.tournament-overview-page .tournament-compact-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tournament-overview-page .tournament-compact-stats .v3-stat-card{min-width:0;min-height:76px}.tournament-overview-page .overview-status-panel,.tournament-overview-page .overview-activity-panel,.tournament-overview-page .v3-quick-panel{margin-top:12px}.activity-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.activity-panel-title a{border-radius:8px;padding:5px 8px;background:#edf4fc;color:#1765c5;text-decoration:none;font-size:10px;font-weight:850}.real-activity-list>div>span{display:grid;place-items:center;border-radius:9px;background:#eef3f8;color:#52677e;font-weight:950}.real-activity-list .activity-kind-create>span{background:#e7f8ee;color:#16834a}.real-activity-list .activity-kind-settings>span{background:#e9f2ff;color:#1267dc}.real-activity-list .activity-kind-team>span,.real-activity-list .activity-kind-player>span{background:#e9f7fb;color:#11728d}.real-activity-list .activity-kind-draw>span{background:#f0eafe;color:#7047bd}.real-activity-list .activity-kind-fixture>span{background:#fff4dd;color:#9a6500}.real-activity-list .activity-kind-match>span{background:#e8f7ee;color:#16733b}.real-activity-list .activity-kind-danger>span{background:#feecec;color:#b4232f}.real-activity-list time{white-space:nowrap}.activity-empty{border:1px dashed #d9e2ec;border-radius:10px;padding:18px;color:#718196;text-align:center;font-size:12px}

@media(max-width:760px){.tournament-overview-page .tournament-compact-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}.tournament-overview-page .tournament-compact-stats .v3-stat-card{grid-column:auto!important;grid-template-columns:1fr!important;justify-items:center;gap:2px!important;min-height:58px!important;padding:5px 2px!important;text-align:center}.tournament-overview-page .tournament-compact-stats .v3-stat-icon{width:25px!important;height:25px!important;border-radius:7px}.tournament-overview-page .tournament-compact-stats .v3-stat-icon svg{width:14px;height:14px}.tournament-overview-page .tournament-compact-stats .v3-stat-card>div:nth-child(2){display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:0}.tournament-overview-page .tournament-compact-stats .v3-stat-card strong{font-size:15px!important}.tournament-overview-page .tournament-compact-stats .v3-stat-card span{font-size:10px;white-space:nowrap}.tournament-overview-page .overview-status-panel,.tournament-overview-page .overview-activity-panel,.tournament-overview-page .v3-quick-panel{margin-top:0}.activity-panel-title a{padding:4px 6px;font-size:10px}.real-activity-list>div{align-items:center}.tournament-overview-page .real-activity-list p strong{white-space:normal;line-height:1.25}.tournament-overview-page .real-activity-list time{max-width:58px;overflow:hidden;text-align:right;text-overflow:ellipsis}.activity-empty{padding:13px;font-size:10px}}

/* ═══ v6.169.0 — UX/IA FAZ 2: TIKLANAMAYAN KURULUM ADIMI ═══
   Canonical: docs/UX_ARCHITECTURE.md UXA-062 / UXA-032.

   Kullanıcının erişemediği adım (ör. takım yöneticisi için "Kura")
   artık <a> değil <span> olarak basılır — eskiden tıklanabilir görünüp
   layout'suz bir 403'e götürüyordu.

   ADIM GİZLENMEZ: turnuvanın hangi aşamada olduğu bilgisi herkes için
   korunur. Yalnız etkileşim ipuçları (hover/imleç) kaldırılır ki eleman
   kırık bir bağlantı gibi görünmesin. Yerleşim <a> ile BİREBİR aynı
   kalmalıdır; aksi hâlde ızgara kayardı. */
.v3-progress-flow > span.is-static {
  display: block;
  text-align: center;
  position: relative;
  color: inherit;
  border-radius: 10px;
  padding: 4px 2px;
  cursor: default;
}

/* ═══════════════════════════════════════════════════════════════════
 * v6.172.0 — UX/IA FAZ 5: LIFECYCLE GENEL BAKIŞ
 * docs/UX_ARCHITECTURE.md UXA-150..UXA-157 · docs/DESIGN_SYSTEM.md §10
 *
 * Yalnız Faz 4 semantik token'ları tüketilir (hardcoded renk YOK).
 * Kartların tabanı foundation.css `.tg-card`; burada yalnız Genel
 * Bakış'a özgü yerleşim ve ton varyantları tanımlanır.
 * ═══════════════════════════════════════════════════════════════════ */
.tg-overview{display:grid;gap:var(--tg-space-4);max-width:1180px;margin:0 auto}
.tg-overview>.tg-card{margin:0}

/* Kompakt lifecycle başlığı — dev dekoratif hero KALDIRILDI (UXA-151). */
.overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--tg-space-4);flex-wrap:wrap}
.overview-head-copy{min-width:0;flex:1 1 260px}
.overview-head-eyebrow{display:block;margin-bottom:2px;color:var(--tg-text-muted);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);overflow-wrap:anywhere}
.overview-head h1{margin:0 0 4px;font-size:var(--tg-font-2xl);font-weight:var(--tg-font-weight-black);line-height:1.15;color:var(--tg-text)}
.overview-head p{margin:0;color:var(--tg-text-muted);font-size:var(--tg-font-sm);line-height:var(--tg-line-height)}
.overview-head-status{display:flex;flex-wrap:wrap;gap:var(--tg-space-2)}

.overview-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tg-space-3);flex-wrap:wrap}
.overview-card-head .tg-card-title{margin-bottom:var(--tg-space-2)}
.overview-card-actions{display:flex;flex-wrap:wrap;gap:var(--tg-space-2);margin-top:var(--tg-space-3)}
.overview-task-link{color:var(--tg-action-primary);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black);white-space:nowrap;display:inline-flex;align-items:center;min-height:var(--tg-touch-min);padding:0 2px}

/* ── Sıradaki İşler / Şimdi Yapılacaklar ─────────────────────────── */
.overview-task-list{list-style:none;display:grid;gap:var(--tg-space-2);margin:0;padding:0}
.overview-task{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:var(--tg-space-3);min-height:var(--tg-touch-min);padding:var(--tg-space-2) var(--tg-space-3);border:1px solid var(--tg-border);border-radius:var(--tg-radius-md);background:var(--tg-surface)}
.overview-task-mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--tg-border-strong);border-radius:var(--tg-radius-pill);color:var(--tg-text-muted)}
.overview-task.is-done .overview-task-mark{border-color:transparent;background:var(--tg-status-success-soft);color:var(--tg-status-success)}
.overview-task.is-current{border-color:var(--tg-action-primary);box-shadow:0 0 0 3px var(--tg-action-primary-soft)}
.overview-task.is-waiting{opacity:.72}
/* Erişimi olmayan kullanıcı adımı GÖRÜR (bilgi korunur) ama satır
   tıklanabilir bir şey vaat etmez — ek bir görsel zayıflatma YOK. */
.overview-task.is-static{cursor:default}
.overview-task-copy{display:grid;gap:2px;min-width:0}
.overview-task-copy strong{font-size:var(--tg-font-md);color:var(--tg-text)}
.overview-task-copy small{color:var(--tg-text-muted);font-size:var(--tg-font-sm)}
.overview-now-list{list-style:none;display:grid;gap:var(--tg-space-2);margin:0;padding:0}
.overview-now-list li{display:flex;align-items:center;gap:var(--tg-space-3);flex-wrap:wrap;min-height:var(--tg-touch-min)}

/* ── Sıradaki Maç ─────────────────────────────────────────────────── */
.overview-match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--tg-space-3);margin:var(--tg-space-3) 0}
.overview-match-team{font-size:var(--tg-font-lg);font-weight:var(--tg-font-weight-black);color:var(--tg-text);overflow-wrap:anywhere}
.overview-match-teams .overview-match-team:last-child{text-align:right}
.overview-match-versus{display:inline-grid;place-items:center;min-width:56px;padding:6px 10px;border-radius:var(--tg-radius-pill);background:var(--tg-surface-soft);color:var(--tg-text-muted);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black)}
.overview-match-meta{display:flex;flex-wrap:wrap;gap:var(--tg-space-3);color:var(--tg-text-muted);font-size:var(--tg-font-sm)}

/* ── Şampiyon ─────────────────────────────────────────────────────── */
.overview-champion-card{display:flex;align-items:center;gap:var(--tg-space-4);border-color:var(--tg-brand-accent);background:linear-gradient(135deg,var(--tg-surface),var(--tg-status-warning-soft))}
.overview-champion-icon{display:grid;place-items:center;flex:0 0 auto;color:var(--tg-brand-accent)}
.overview-champion-eyebrow{display:block;color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);letter-spacing:.06em;text-transform:uppercase}
.overview-champion-name{display:block;margin:2px 0;font-size:var(--tg-font-2xl);font-weight:var(--tg-font-weight-black);line-height:1.15;color:var(--tg-text);overflow-wrap:anywhere}
.overview-champion-card small{color:var(--tg-text-muted);font-size:var(--tg-font-sm)}

/* ── Eylem kartları (kategori tonları — durum değil) ──────────────── */
.overview-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tg-space-3)}
.overview-action-card{display:flex;flex-direction:column;justify-content:center;gap:var(--tg-space-2);min-height:88px;padding:var(--tg-space-3);border:1px solid var(--tg-border);border-radius:var(--tg-radius-md);background:var(--tg-surface);color:var(--tg-text);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.overview-action-card:hover{transform:translateY(-1px);box-shadow:var(--tg-shadow-card-hover)}
.overview-action-card:focus-visible{outline:3px solid var(--tg-focus-ring);outline-offset:2px}
.overview-action-card strong{font-size:var(--tg-font-md);font-weight:var(--tg-font-weight-black);line-height:1.2;overflow-wrap:anywhere}
.overview-action-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--tg-radius-md)}
.overview-action-card.tone-info .overview-action-icon{background:var(--tg-status-info-soft);color:var(--tg-status-info)}
.overview-action-card.tone-info:hover{border-color:var(--tg-status-info)}
.overview-action-card.tone-success .overview-action-icon{background:var(--tg-status-success-soft);color:var(--tg-status-success)}
.overview-action-card.tone-success:hover{border-color:var(--tg-status-success)}
.overview-action-card.tone-warning .overview-action-icon{background:var(--tg-status-warning-soft);color:var(--tg-status-warning)}
.overview-action-card.tone-warning:hover{border-color:var(--tg-status-warning)}
.overview-action-card.tone-danger .overview-action-icon{background:var(--tg-status-danger-soft);color:var(--tg-status-danger)}
.overview-action-card.tone-danger:hover{border-color:var(--tg-status-danger)}
.overview-action-card.tone-special .overview-action-icon{background:var(--tg-status-special-soft);color:var(--tg-status-special)}
.overview-action-card.tone-special:hover{border-color:var(--tg-status-special)}

/* ── Kompakt özet ─────────────────────────────────────────────────── */
.overview-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tg-space-3)}
.overview-summary-item{display:grid;gap:2px;padding:var(--tg-space-3);border:1px solid var(--tg-border);border-radius:var(--tg-radius-md);background:var(--tg-surface-soft)}
.overview-summary-item strong{font-size:var(--tg-font-2xl);font-weight:var(--tg-font-weight-black);line-height:1;color:var(--tg-text)}
.overview-summary-item span{color:var(--tg-text-muted);font-size:var(--tg-font-sm)}

/* ── Puan durumu özeti ────────────────────────────────────────────── */
.overview-standings-table{width:100%;border-collapse:collapse;margin-top:var(--tg-space-2)}
.overview-standings-table th{padding:6px 8px;border-bottom:1px solid var(--tg-border);color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);text-align:left;text-transform:uppercase;letter-spacing:.04em}
.overview-standings-table td{padding:9px 8px;border-bottom:1px solid var(--tg-border);color:var(--tg-text);font-size:var(--tg-font-sm)}
.overview-standings-table tr:last-child td{border-bottom:0}
.overview-standings-table th:first-child,.overview-standings-table td:first-child{width:34px}
.overview-standings-table th:nth-child(n+3),.overview-standings-table td:nth-child(n+3){width:52px;text-align:right}

/* ── Gruplar ──────────────────────────────────────────────────────── */
/* ── Son işlemler ─────────────────────────────────────────────────── */
.overview-activity-list{list-style:none;display:grid;gap:var(--tg-space-2);margin:var(--tg-space-2) 0 0;padding:0}
.overview-activity-list li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tg-space-3);padding-bottom:var(--tg-space-2);border-bottom:1px solid var(--tg-border)}
.overview-activity-list li:last-child{border-bottom:0;padding-bottom:0}
.overview-activity-copy{display:grid;gap:2px;min-width:0}
.overview-activity-copy strong{font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);color:var(--tg-text)}
.overview-activity-copy small{color:var(--tg-text-muted);font-size:var(--tg-font-xs)}
.overview-activity-list time{color:var(--tg-text-muted);font-size:var(--tg-font-xs);white-space:nowrap}

/* ── Genel Bakışı Düzenle ─────────────────────────────────────────── */
.overview-edit-card{padding:0}
.overview-edit-summary{display:flex;align-items:center;justify-content:space-between;min-height:var(--tg-touch-min);padding:var(--tg-space-3) var(--tg-space-4);cursor:pointer;list-style:none;color:var(--tg-text);font-size:var(--tg-font-md);font-weight:var(--tg-font-weight-black)}
.overview-edit-summary::-webkit-details-marker{display:none}
.overview-edit-summary>span{display:inline-flex;align-items:center;gap:var(--tg-space-2)}
.overview-edit-summary:hover{color:var(--tg-action-primary)}
.overview-edit-card[open] .overview-edit-summary{border-bottom:1px solid var(--tg-border)}
.overview-edit-card>p,.overview-edit-form,.overview-edit-reset{padding:0 var(--tg-space-4)}
.overview-edit-card>p{padding-top:var(--tg-space-3)}
.overview-edit-reset{padding-bottom:var(--tg-space-4)}
.overview-edit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--tg-space-2);margin-top:var(--tg-space-3)}
.overview-edit-item{display:flex;align-items:center;gap:var(--tg-space-3);min-height:var(--tg-touch-min);padding:var(--tg-space-2) var(--tg-space-3);border:1px solid var(--tg-border);border-radius:var(--tg-radius-md);background:var(--tg-surface);cursor:pointer}
.overview-edit-item input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0;accent-color:var(--tg-action-primary)}
.overview-edit-item span{font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);color:var(--tg-text)}
.overview-edit-form .tg-form-actions{margin:var(--tg-space-3) 0 var(--tg-space-2)}

@media (min-width: 761px) {
  .overview-action-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
  .overview-action-card{min-height:104px}
}

@media (max-width: 760px) {
  .tg-overview{gap:var(--tg-space-3)}
  .overview-head h1{font-size:var(--tg-font-xl)}
  .overview-task{grid-template-columns:24px minmax(0,1fr);row-gap:var(--tg-space-2)}
  .overview-task .tg-btn,.overview-task .overview-task-link{grid-column:2}
  .overview-match-teams{grid-template-columns:1fr;text-align:center;gap:var(--tg-space-2)}
  .overview-match-teams .overview-match-team:last-child{text-align:center}
  .overview-match-versus{justify-self:center}
  .overview-card-actions .tg-btn{width:100%}
  .overview-champion-card{gap:var(--tg-space-3)}
  .overview-champion-name{font-size:var(--tg-font-xl)}
  .overview-edit-list{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════════
 * Canonical Tournament Workspace → Genel Bakış
 * Mobil referansın görsel hiyerarşisi; yalnız Faz 4 semantic tokenları
 * (yeni palet / paralel tasarım sistemi YOK).
 *
 * BU BLOK DOSYANIN SONUNDA DURUR ve öyle KALMALIDIR: yukarıdaki Faz 5
 * kuralları aynı özgüllükte (`.tg-overview`, `.overview-now-list li` …)
 * tanımlar; blok yukarı taşınırsa cascade onları geri alır ve buradaki
 * kurallar sessizce ölür. Yeni canonical kural bu bloğun İÇİNE yazılır.
 * ═══════════════════════════════════════════════════════════════════ */
.tg-overview{max-width:1320px;gap:var(--tg-space-4)}
.overview-section-kicker{display:block;margin-bottom:3px;color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);letter-spacing:.055em;text-transform:uppercase}
.overview-section-heading h2{margin:0;color:var(--tg-text);font-size:var(--tg-font-xl);line-height:1.15}

/* Banner İÇERİK düzeni. Zemin / yükseklik / dolgu / radius / gölge / dekor
   ortak hero kabuğundan gelir (`.tg-hero`, app.css — UXA-231b); burada
   TEKRARLANMAZ. SUPERSEDED (v6.394.50): banner'ın kendi gradyanı, `::after`
   parıltısı ve iki orb'u — tek dekor artık ortak SVG'dir. */
.overview-banner{display:flex;align-items:center;gap:var(--tg-space-5)}
/* UX Fix Pack 1: banner kendi stacking context'idir (isolation — ortak
   hero kabuğu, dekor z:-1); içindeki Paylaş/QR paneli (position:fixed) bu bağlamın
   dışına çıkamaz. z:auto iken DOM'da sonra gelen position:relative kartlar
   paneli örtüyordu. Banner, z:auto kardeşlerinin BİR basamak üstünde boyanır;
   yapışkan mobil topbar (25), çekmece (30) ve flash (1000) üstte kalır. */
.overview-banner{z-index:1}
.overview-banner>img{flex:0 0 auto;width:84px;height:84px;padding:9px;object-fit:contain;border-radius:var(--tg-radius-lg);background:color-mix(in srgb,#fff 92%,transparent);box-shadow:0 8px 20px color-mix(in srgb,var(--tg-brand-primary) 40%,transparent)}
/* `flex:1 1 0` + `min-width:0`: metin bloğu DARALIR, alt satıra
   KAÇMAZ — banner her genişlikte yatay kalır (logo solda, ad sağda). */
.overview-banner-copy{flex:1 1 0;min-width:0}
/* v6.315.0 — planlanan tarih meta satırı (yalnız metadata; Genel Bakış + public banner) */
.overview-banner-meta{margin:6px 0 0;color:color-mix(in srgb,var(--tg-brand-primary-text,#fff) 80%,transparent);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-semibold,600);overflow-wrap:anywhere}
/* Görünür banner metni TEMA-GÜVENLİ kontrast token'ından gelir (UXA-195): açık
   marka rengi seçildiğinde de okunur kalır. Dekor ortak hero SVG’sidir (UXA-231b). */
.overview-banner{color:var(--tg-brand-primary-text)}
.overview-banner .overview-section-kicker{color:color-mix(in srgb,var(--tg-brand-primary-text) 76%,transparent);letter-spacing:.09em}
.overview-banner h1{margin:0;color:var(--tg-brand-primary-text);font-size:clamp(25px,3.6vw,40px);font-weight:var(--tg-font-weight-black);line-height:1.08;letter-spacing:-.01em;overflow-wrap:anywhere;text-shadow:0 2px 10px color-mix(in srgb,var(--tg-brand-primary) 55%,transparent)}
/* PD-63 — kimlik hiyerarşisi: KURUM (ikincil, küçük, adın üstünde) → TURNUVA
   ADI (h1) → SEZON (üçüncül, adın altında). Satır yoksa boşluk da yok (markup
   basılmaz). Uzun kurum adı en fazla iki satır — mobilde banner'ı şişirmez;
   turnuva adı kırpılmaz, doğal sarar. SUPERSEDES: sezonun büyük harfli
   eyebrow olarak adın ÜSTÜNDE durması (v6.357.1). */
.overview-banner-organizer{margin:0 0 5px;color:color-mix(in srgb,var(--tg-brand-primary-text) 82%,transparent);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);line-height:1.3;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.overview-banner-season{margin:6px 0 0;color:color-mix(in srgb,var(--tg-brand-primary-text) 86%,transparent);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);line-height:1.3;letter-spacing:.02em;overflow-wrap:anywhere}
.overview-banner-season+.overview-banner-meta{margin-top:2px}
/* Yaşam döngüsü rozeti: SAĞ ÜST, küçük, başlıkla yarışmayan. Buton
   gibi görünmez — banner'da CTA yoktur. Koyu zeminde status TONU
   korunur, zemin okunur kalır. */
/* Rozet AKIŞTA durur (mutlak konum değil): `margin-left:auto` ile sağa,
   `align-self:flex-start` ile üste gider — uzun turnuva adı hiçbir
   genişlikte rozetin altına giremez, ayrıca sahte bir sağ boşluk
   rezerve etmek gerekmez. */
.overview-banner-status{flex:0 0 auto;align-self:flex-start;margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.overview-banner-status .tg-status{border:0;padding:3px 9px;background:color-mix(in srgb,var(--tg-surface) 92%,transparent);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);letter-spacing:.01em}
/* ═══ UXA-267 (v6.394.136) — TURNUVA KİMLİK KARTI ═══════════════════
   Yalnız ortak kimlik başlığı (`.tournament-identity`, Genel Bakış · public ·
   katılımcı); Üye Ana Sayfası ve public oyuncu hero'su ETKİLENMEZ. Kabuk
   (zemin/ölçü/dolgu) `.tg-hero`'dan gelir, burada tekrarlanmaz.
   IZGARA (2026-10-23 son karar, her genişlikte AYNI): üst satırda solda KARE
   logo çerçevesi, kimlik metinleri SAĞINDA; ALT satırda durum rozeti(leri) SOLDA,
   yüzey aksiyonları (Paylaş / Takip Et / Takip ediliyor) SAĞDA. Alt satır doğal
   akıştır (sabit yükseklik / mutlak konum yok); dar ekranda aksiyonlar yuvanın
   içinde sağa sarar. Aksiyon yoksa yuva basılmaz. SUPERSEDED: masaüstünde
   durum sağ üst / aksiyon sağ alt sütunu. Kart dış köşesi `--tg-radius-md`
   (yalnız bu kart; diğer hero'lar `--tg-radius-lg`). ALT DOLGU `--tg-space-4` (16 / ≤760px
   14 px): durum / aksiyon satırı ile alt kenar arası ölçülü kalır (kabuğun 40px'e varan
   alt dolgusu bu kartta SUPERSEDED); 44px görünmez isabet alanı (kapsülün 11px altına iner)
   ve odak halkası (4px) kartın `overflow` sınırında kesilmez.
   DEKOR: tüm turnuvalarda ortak mavi final gecesi görseli (saydam WebP,
   `tg_hero_decor_markup('tournament')` → `<img>`, sürümlü statik URL) aynı
   `.tg-hero-decor` katmanında (z:-1, etkileşimsiz). Katman kartın tam
   genişliğidir; görsel SAĞ ALTA yaslı, yüksekliğe göre ölçeklenir, genişlik
   oranla gelir (esnemez); sol saydam bölümü kartın dışına taşarsa kabuğun
   `overflow:hidden`'ı keser. Doğal ölçüsü kart yüksekliğini etkilemez (mutlak
   konum). Metnin ÖNÜNE geçmez, yer ayırtmaz; görselde zemin yoktur (yeşil /
   başka zeminde kutu oluşmaz). Yüklenemezse kart dekorsuz aynı kalır. */
/* Dekor yüksekliği SINIRLIDIR: uzun ad / açıklama kartı uzattığında kupa büyüyüp
   metnin arkasını kaplamaz; görsel sağ alta yaslı kalır. */
.overview-banner.tournament-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"logo copy copy" "status status actions";grid-template-rows:auto auto;column-gap:var(--tg-space-5);row-gap:var(--tg-space-4);align-items:start;border-radius:var(--tg-radius-md);padding-bottom:var(--tg-space-4);--tg-hero-decor-w:100%;--tg-hero-decor-h:min(100%,240px);--tg-hero-decor-right:0px;--tg-hero-decor-bottom:0px;--tg-hero-decor-opacity:1}
.tg-hero-decor--tournament img{position:absolute;right:0;bottom:0;display:block;width:auto;height:100%;max-width:none}
/* TURNUVA ADI (2026-10-23 son karar): sade arayüz fontu (`--tg-font-family`, ayrı başlık
   fontu yok), yarı kalın, kompakt satır aralığı. Masaüstü 22 / ≤760px 18 px (son karar; önce 24 / 20 / 19).
   Hâlâ kurum ve sezondan belirgin birincil başlık (h1). Kırpma / satır sınırı / üç nokta
   YOK; uzun ad doğal sarar, kullanıcının büyük-küçük harfi değişmez. SUPERSEDED: 800
   ağırlık, 25–40 px. Yalnız bu kart; sitenin diğer başlıkları değişmedi. */
.overview-banner.tournament-identity h1{font-family:var(--tg-font-family);font-size:22px;font-weight:var(--tg-font-weight-semibold,600);line-height:1.25;letter-spacing:0;text-shadow:0 1px 6px color-mix(in srgb,var(--tg-brand-primary) 60%,transparent)}
/* Okunabilirlik (görsele zemin GÖMÜLMEZ): kimlik metinleri zemin renginden ince
   bir gölge, aksiyon hapları parlak kupa / ışık üstünde de okunur kalsın diye
   marka zemininden yarı saydam taban alır (renkler PD-63 kontrast token çifti). */
.tournament-identity .overview-banner-copy{text-shadow:0 1px 8px color-mix(in srgb,var(--tg-brand-primary) 75%,transparent)}
.tournament-identity .overview-banner-actions .tg-share-trigger{background:color-mix(in srgb,var(--tg-brand-primary) 58%,transparent)}
.tournament-identity .overview-banner-actions .tg-share-trigger:hover{background:color-mix(in srgb,var(--tg-brand-primary) 72%,transparent)}
/* v6.394.167 (§15.55) — YALNIZ KAPAKLI KART: ikincil metinler %92 opak, aksiyon hapları katman tonunda
   (açık turnuva paletinde marka renkli hap beyaz metni okutmuyordu), durum rozeti opak yüzeyde.
   Gerçek metin altı ölçümle ≥ 4,5 : 1; kapaksız kart değişmez.
   v6.394.168 — kapak karartması kaldırıldı (§15.55 md. 3): bu ölçüm karartmalı görünüme aittir;
   okunabilirlik yüklenen görsele bağlıdır, garanti edilmez. Kurallar aynen. */
.tg-hero--cover .overview-banner-organizer,.tg-hero--cover .overview-banner-season,.tg-hero--cover .overview-banner-meta,.tg-hero--cover .public-banner-desc{color:color-mix(in srgb,var(--tg-brand-primary-text) 92%,transparent)}
.tg-hero--cover.tournament-identity .overview-banner-actions .tg-share-trigger{background:color-mix(in srgb,var(--tg-hero-cover-tint) 80%,transparent)}
.tg-hero--cover.tournament-identity .overview-banner-actions .tg-share-trigger:hover{background:var(--tg-hero-cover-tint)}
.tg-hero--cover .overview-banner-status .tg-status{background:var(--tg-surface)}
/* Kare olan ÇERÇEVEDİR: logo `contain` ile oranı korunarak sığar — kırpılmaz,
   esnetilmez (yatay TGO işareti de kare / dikey özel logo da). Özel logo ve
   yerleşik TGO aynı açık plakada; yerleşik işaret açık zemin varyantıdır
   (lacivert T — 2026-11-01 TGO-RENK-ZEMIN; önceki koyu `--tgo` çerçevesi SUPERSEDED). */
.tournament-identity-logo{grid-area:logo;align-self:center;display:block;box-sizing:border-box;width:96px;height:96px;padding:12px;border-radius:var(--tg-radius-lg);background:color-mix(in srgb,#fff 94%,transparent);box-shadow:0 8px 20px color-mix(in srgb,var(--tg-brand-primary) 40%,transparent)}
.tournament-identity-logo img{display:block;width:100%;height:100%;object-fit:contain}
.tournament-identity .overview-banner-copy{grid-area:copy;align-self:center;display:flex;flex-wrap:wrap;align-items:baseline}
.tournament-identity .overview-banner-copy>*{flex:0 0 100%;min-width:0}
/* Sezon ve yer yardımcı bilgidir: sığdığında TEK satırda, arada küçük nokta. */
.tournament-identity .overview-banner-copy>.overview-banner-season,.tournament-identity .overview-banner-copy>[data-identity-location]{flex:0 1 auto;margin-top:6px}
.tournament-identity .overview-banner-season+[data-identity-location]::before{content:"";display:inline-block;width:4px;height:4px;margin:0 8px;border-radius:50%;background:currentColor;opacity:.7;vertical-align:middle}
.tournament-identity .overview-banner-status{grid-area:status;justify-self:start;align-self:center;margin:0}
.overview-banner-actions{grid-area:actions;justify-self:end;align-self:center;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 8px;min-width:0}
.overview-banner.tournament-identity .overview-banner-actions>*{align-self:center}

.overview-setup-section{padding:var(--tg-space-4);border:1px solid var(--tg-border);border-radius:var(--tg-radius-lg);background:var(--tg-surface);box-shadow:var(--tg-shadow-card)}
.overview-setup-grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--tg-space-3);margin:var(--tg-space-4) 0 0;padding:0;counter-reset:tg-setup}
/* Aşama kutuları: tamamlanan/sıradaki/bekleyen ayrımı açık pastel zemin,
   daha koyu kenarlık ve işaret İKONU ile verilir. v6.389.0 — üst renk şeridi
   ve görünür durum rozeti kaldırıldı; durum metni ekran okuyucuda (sr-only). */
.overview-setup-step{position:relative;min-width:0;border:1.5px solid var(--tg-border-strong);border-radius:var(--tg-radius-lg);background:var(--tg-surface-soft);overflow:hidden}
.overview-setup-link{display:flex;min-height:126px;padding:var(--tg-space-3);align-items:center;justify-content:center;flex-direction:column;gap:7px;color:inherit;text-align:center;text-decoration:none}
.overview-setup-step strong{font-size:var(--tg-font-md);color:var(--tg-text);overflow-wrap:anywhere}
.overview-setup-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--tg-border-strong);color:var(--tg-text-muted);background:var(--tg-surface)}
/* Adım SIRASI referanstaki gibi görünür; `<ol>` zaten sıralı olduğu
   için sayaç yalnız görsel bir işarettir, markup'a veri eklenmez. */
.overview-setup-step::after{counter-increment:tg-setup;content:counter(tg-setup);position:absolute;top:10px;left:11px;color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);opacity:.62}
.overview-setup-step.is-done{border-color:color-mix(in srgb,var(--tg-status-success) 45%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-success-soft) 82%,var(--tg-status-success))}
.overview-setup-step.is-done .overview-setup-mark{border-color:transparent;background:var(--tg-status-success);color:#fff;box-shadow:0 4px 10px color-mix(in srgb,var(--tg-status-success) 34%,transparent)}
.overview-setup-step.is-done::after{color:var(--tg-status-success)}
.overview-setup-step.is-current{border-color:var(--tg-action-primary);background:color-mix(in srgb,var(--tg-action-primary-soft) 76%,var(--tg-action-primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--tg-action-primary) 22%,transparent),0 8px 20px color-mix(in srgb,var(--tg-action-primary) 20%,transparent)}
.overview-setup-step.is-current .overview-setup-mark{border-color:transparent;background:var(--tg-action-primary);color:#fff;box-shadow:0 4px 10px color-mix(in srgb,var(--tg-action-primary) 38%,transparent)}
.overview-setup-step.is-current::after{color:var(--tg-action-primary);opacity:.8}
.overview-setup-step.is-waiting{background:var(--tg-surface-soft);opacity:.9}
.overview-setup-step.is-waiting strong{color:var(--tg-text-muted)}


/* ── MASAÜSTÜ ALAN KULLANIMI ──────────────────────────────────────
   Referans masaüstünde odak satırı ÜÇ kolondur (canlı maç · sonraki 3
   maç · dikkat), altındaki içgörü satırı İKİ kolon (özet · hareketler).
   `next_match` widget'ı iki kartı tek `<section>` içinde basar; bölüm
   `display:contents` ile ızgaraya ŞEFFAF kalır — kararlı `data-widget`
   işareti DOM'da durur, kartlar üst ızgaranın doğrudan çocuğu olur.
   Her kolon minmax(0,…): sabit piksel tabanı kenar çubuğu açıkken dar
   masaüstünde yatay taşma üretir.
   `align-items:start`: canlı maç kartı komşusunun boyuna GERİLMEZ. */
.overview-match-focus{display:contents}
/* Sabit kolon sayısı YERİNE esneme: bir kart görünmezse (kişiselleştirme
   ya da erişim) kalanlar boşluğu kapatır — yarım kalmış bir ızgara ve
   masaüstünde ölü alan oluşmaz. `min-width:0`: uzun takım adı kolonu
   şişirip yatay taşma üretemez. */
.overview-focus-row,.overview-insight-row{display:flex;flex-wrap:wrap;gap:var(--tg-space-4);align-items:flex-start}
/* `.overview-match-focus` display:contents olduğu için ASIL esnek
   öğeler onun çocuklarıdır; ikisi de aynı kuralla ölçülür. */
.overview-focus-row>*,.overview-focus-row>.overview-match-focus>*,.overview-insight-row>*{flex:1 1 300px;min-width:0;margin:0;border-radius:var(--tg-radius-lg)}
.overview-focus-row>.overview-match-focus>.overview-match-card{flex-grow:1.12}
.overview-insight-row>*{flex-basis:340px}

/* ── MASAÜSTÜ: ODAK SATIRINDAKİ ÜÇ KART AYNI ALT HİZAYA İNER ───────
   Kartlar tek satırda yan yanayken farklı boylarda durmak bir hata gibi
   okunuyordu. Sabit piksel yükseklik VERİLMEZ: satır `stretch` olur ve
   en uzun kart boyu belirler, diğerleri ona uzar.
   Boşluk "ortada" birikmez — her kartın kendi ana içerik bloğu
   (`flex:1`) fazlalığı üstlenir: canlı maçta takım/skor bloğu dikeyde
   ORTALANIR, listelerde satırlar üstte kalır ve taban temiz biter.
   ≤900px'te satır zaten tek kolona düştüğü için bu blok HİÇ çalışmaz;
   mobil kompakt yapı ve canlı kart ölçüleri korunur. */
@media (min-width:901px){
  .overview-focus-row,.overview-insight-row{align-items:stretch}
  .overview-focus-row>*,.overview-focus-row>.overview-match-focus>*,.overview-insight-row>*{align-self:stretch}
  .overview-upcoming-card,.overview-attention-card,.overview-summary-card,.overview-activity-card{display:flex;flex-direction:column}
  /* Ana içerik bloğu fazlalığı alır; satırlar kendi boylarında kalır. */
  .overview-focus-row .overview-match-card .overview-match-teams{flex:1 1 auto;align-content:center}
  .overview-focus-row .overview-upcoming-list,.overview-focus-row .overview-now-list{flex:1 1 auto;align-content:start}
  .overview-focus-row .overview-attention-clear{margin-bottom:auto}
  /* İçgörü satırı: Turnuva Özeti ile Turnuva Hareketleri de aynı alt
     hizaya iner. Özet kartında fazlalık KUTULARI GERMEZ — "Mevcut aşama"
     satırı tabana yaslanır (v6.381.0: ilerleme şeridi kaldırıldı).
     Hareketler kartında satırlar üstte kalır, boşluk doğal olarak altta
     toplanır. */
  .overview-insight-row .overview-summary-context{margin-top:auto}
}
/* ── CANLI MAÇ: karşılıklı iki takım, merkezde skor ───────────────── */
.overview-match-card.is-live{border:0;background:linear-gradient(142deg,color-mix(in srgb,var(--tg-status-success) 88%,var(--tg-brand-primary)),color-mix(in srgb,var(--tg-status-success) 96%,black) 62%,color-mix(in srgb,var(--tg-status-success) 72%,var(--tg-brand-primary)));color:#fff;box-shadow:0 16px 38px color-mix(in srgb,var(--tg-status-success) 34%,transparent)}
/* Referanstaki saha derinliği: üstten yumuşak bir ışık. Yeni renk YOK —
   yalnız beyazın şeffaf payı. Mutlak konumlu olduğu için kartın flex
   akışında yer KAPLAMAZ. */
.overview-match-card.is-live{position:relative;isolation:isolate}
.overview-match-card.is-live::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(122% 86% at 50% 6%,color-mix(in srgb,#fff 15%,transparent),transparent 64%)}
.overview-match-card.is-live .tg-card-title,.overview-match-card.is-live .overview-match-team,.overview-match-card.is-live .overview-match-meta{color:#fff}
.overview-match-card.is-live .overview-section-kicker{color:color-mix(in srgb,#fff 78%,transparent)}
.overview-match-card.is-next{border:1.5px solid color-mix(in srgb,var(--tg-action-primary) 42%,var(--tg-border));background:linear-gradient(142deg,var(--tg-surface),color-mix(in srgb,var(--tg-action-primary-soft) 72%,var(--tg-action-primary)))}

/* Dakika ÜST BÖLGEDE, canlı nabzıyla. */
.overview-live-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:var(--tg-radius-pill);background:color-mix(in srgb,#fff 22%,transparent);border:1px solid color-mix(in srgb,#fff 34%,transparent);color:#fff;font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black);white-space:nowrap}
.overview-live-badge i{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,#fff 22%,transparent);animation:overview-live-pulse 1.9s ease-in-out infinite}
@keyframes overview-live-pulse{0%,100%{opacity:1}50%{opacity:.42}}
@media (prefers-reduced-motion:reduce){.overview-live-badge i{animation:none}}

.overview-match-card .overview-match-teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:var(--tg-space-2);min-height:auto;margin:var(--tg-space-3) 0}
.overview-match-side{display:grid;justify-items:center;gap:8px;min-width:0}
/* Arma kartın görsel çıpasıdır. GERÇEK LOGO `contain` ile basılır: kare
   olmayan logo kırpılmaz ve oranı bozulmaz; şeffaf PNG için nötr bir
   taban verilir.
   ARMA YOKSA aynı ölçüdeki kutu takımın KENDİ rengiyle dolar
   (`--crest-bg`, tournament.php'de `teams.primary_color`'dan gelir) ve
   yazı rengi canonical `theme_contrast_text_color()`'dan TÜRETİLİR
   (`--crest-fg`). Renk yoksa marka tokenına düşülür — beyaz boş kutu
   görünümü kalkar. */
.overview-match-crest{display:grid;place-items:center;width:54px;height:54px;padding:4px;border-radius:16px;object-fit:contain;background:var(--tg-surface);border:1.5px solid var(--tg-border-strong);font-size:var(--tg-font-md);font-weight:var(--tg-font-weight-black);color:var(--tg-brand-primary);letter-spacing:.02em}
.overview-match-crest.is-fallback{padding:0;background:var(--crest-bg,var(--tg-brand-primary));color:var(--crest-fg,#fff);border-color:color-mix(in srgb,#000 14%,transparent)}
.overview-match-card.is-live .overview-match-crest{background:color-mix(in srgb,#fff 94%,transparent);border-color:color-mix(in srgb,#fff 46%,transparent);box-shadow:0 6px 16px color-mix(in srgb,#00110a 30%,transparent)}
/* Yeşil kartta da takım rengi kazanır — beyaz taban yalnız GERÇEK logo
   için (şeffaf PNG'ler okunur kalsın diye). */
.overview-match-card.is-live .overview-match-crest.is-fallback{background:var(--crest-bg,var(--tg-brand-primary));border-color:color-mix(in srgb,#fff 60%,transparent)}
.overview-match-card .overview-match-team{font-size:clamp(15px,1.35vw,18px);line-height:1.2;text-align:center;letter-spacing:-.005em}
.overview-match-teams .overview-match-team:last-child{text-align:center}
/* Skor merkezde ve GÜÇLÜ — kartın ana rakamı budur. */
.overview-match-card .overview-match-versus{align-self:center;min-width:94px;padding:7px 13px;border-radius:var(--tg-radius-lg);font-size:clamp(24px,3vw,34px);font-weight:var(--tg-font-weight-black);letter-spacing:-.02em;line-height:1}
.overview-match-card.is-live .overview-match-versus{background:color-mix(in srgb,#001b10 26%,transparent);border:1px solid color-mix(in srgb,#fff 22%,transparent);color:#fff}
.overview-match-card.is-next .overview-match-versus{min-width:78px;background:var(--tg-surface);border:1.5px solid color-mix(in srgb,var(--tg-action-primary) 30%,var(--tg-border));color:var(--tg-action-primary);font-size:var(--tg-font-lg)}
.overview-match-card .overview-match-meta{gap:var(--tg-space-2);font-weight:var(--tg-font-weight-bold)}
.overview-match-card.is-live .overview-match-meta{color:color-mix(in srgb,#fff 84%,transparent)}
.overview-match-card.is-live .tg-btn-primary{background:#fff;color:color-mix(in srgb,var(--tg-status-success) 88%,black);box-shadow:0 6px 16px color-mix(in srgb,#00110a 24%,transparent)}
/* Maç kartının tek eylemi TAM GENİŞLİKTEDİR (referans): kartın altında
   yarım kalmış bir hap değil, net bir taban. */
.overview-match-card .overview-card-actions{margin-top:auto;padding-top:var(--tg-space-4)}
.overview-match-card .overview-card-actions .tg-btn{width:100%}
.overview-match-card{display:flex;flex-direction:column}

/* ── SONRAKİ 3 MAÇ: DOLU MAVİ BAŞLIK BANDI + beyaz satırlar ────────
   Referansta bu kart bir "program tabelası"dır: üstte dolu mavi bant,
   altında beyaz, numaralandırılmış maç satırları. Renk yine yalnız
   `--tg-action-primary` ailesinden gelir — yeni palet yok. */
/* DIŞ YÜZEY KOMPLE MAVİ: Canlı Maç (yeşil) ve Dikkat (turuncu) ile aynı
   görsel ağırlıkta olsun diye kartın TAMAMI dolu mavi bir bloktur —
   beyaz kalan tek yer maç satırlarının kendisidir (okunabilirlik).
   Renk yine `--tg-action-primary` ailesinden; yeni mavi hex YOK. */
.overview-upcoming-card{padding:0;overflow:hidden;border:0;background:linear-gradient(158deg,var(--tg-action-primary),color-mix(in srgb,var(--tg-action-primary) 72%,var(--tg-brand-primary)));box-shadow:0 16px 38px color-mix(in srgb,var(--tg-action-primary) 26%,transparent)}
.overview-upcoming-card>.overview-card-head{align-items:center;gap:var(--tg-space-2);margin:0;padding:13px var(--tg-space-4);background:none}
.overview-upcoming-card>.overview-card-head .tg-card-title{margin:0;color:#fff}
.overview-upcoming-card .overview-section-kicker{color:color-mix(in srgb,#fff 80%,transparent)}
.overview-upcoming-card>.overview-card-head .overview-task-link{display:inline-flex;align-items:center;padding:5px 11px;border-radius:var(--tg-radius-pill);background:color-mix(in srgb,#fff 20%,transparent);border:1px solid color-mix(in srgb,#fff 38%,transparent);color:#fff;font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);white-space:nowrap;text-decoration:none}
/* Dolu mavi yüzeye doğrudan oturan metinler beyaz okunur. */
.overview-upcoming-card>p,.overview-upcoming-card>.overview-task-link{display:block;margin:0;padding:var(--tg-space-4);color:color-mix(in srgb,#fff 88%,transparent);font-weight:var(--tg-font-weight-bold)}
.overview-upcoming-card>.overview-task-link{padding-top:0}
.overview-upcoming-list{list-style:none;display:grid;gap:9px;margin:0;padding:var(--tg-space-3);counter-reset:tg-upcoming}
/* Satır numarası referanstaki gibi: `<ol>` zaten sıralı, sayaç yalnız
   görsel bir işarettir — markup'a veri EKLENMEDİ. */
/* Maç satırları BEYAZ mini kartlardır — mavi yüzeyin üstünde tek okunur
   ada onlardır; satır içi metinler mavileştirilmez. */
.overview-upcoming-list li{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;column-gap:11px;row-gap:6px;padding:11px 13px;border:0;border-radius:var(--tg-radius-md);background:var(--tg-surface);box-shadow:0 2px 6px color-mix(in srgb,var(--tg-brand-primary) 16%,transparent)}
.overview-upcoming-list li::before{counter-increment:tg-upcoming;content:counter(tg-upcoming);grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tg-action-primary-soft);color:var(--tg-action-primary);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black)}
.overview-upcoming-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;color:var(--tg-text);font-size:var(--tg-font-md);font-weight:var(--tg-font-weight-bold)}
.overview-upcoming-teams strong{min-width:0;overflow-wrap:anywhere;line-height:1.25}.overview-upcoming-teams strong:last-child{text-align:right}
.overview-upcoming-teams i{flex:0 0 auto;padding:3px 8px;border-radius:var(--tg-radius-pill);background:var(--tg-action-primary-soft);color:var(--tg-action-primary);font-style:normal;font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);text-transform:uppercase}
/* Tarih/saat/saha İKİNCİL hiyerarşide kalır. */
.overview-upcoming-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-bold);text-align:left}
.overview-upcoming-meta em{font-style:normal;padding:2px 7px;border-radius:var(--tg-radius-pill);background:var(--tg-surface-soft);border:1px solid var(--tg-border)}

.overview-focus-row:empty,.overview-insight-row:empty{display:none}
/* Dikkat kuyruğu: varsayılan ton turuncu; kuyrukta gerçekten BLOKE
   eden bir iş (danger) varsa kart kırmızıya yükselir — renk kategori
   değil ŞİDDET taşır. */
.overview-attention-card{border:1.5px solid color-mix(in srgb,var(--tg-status-warning) 52%,var(--tg-border));background:linear-gradient(150deg,color-mix(in srgb,var(--tg-status-warning-soft) 70%,var(--tg-status-warning)),var(--tg-surface) 72%)}
.overview-attention-card.is-critical{border-color:color-mix(in srgb,var(--tg-status-danger) 58%,var(--tg-border));background:linear-gradient(150deg,color-mix(in srgb,var(--tg-status-danger-soft) 68%,var(--tg-status-danger)),var(--tg-surface) 72%);box-shadow:0 12px 30px color-mix(in srgb,var(--tg-status-danger) 20%,transparent)}
.overview-attention-card .overview-section-kicker{color:var(--tg-status-warning)}
.overview-attention-card.is-critical .overview-section-kicker{color:var(--tg-status-danger)}
.overview-attention-card.is-clear{padding-block:var(--tg-space-3);border-color:color-mix(in srgb,var(--tg-status-success) 34%,var(--tg-border));background:linear-gradient(150deg,var(--tg-status-success-soft),var(--tg-surface) 70%);box-shadow:none}
.overview-attention-card.is-clear .overview-section-kicker{color:var(--tg-status-success)}

/* TEK PANEL kalır — her satır ayrı bir büyük karta ÇEVRİLMEZ. Ayrım
   satır zemini + SOL ŞİDDET ŞERİDİ ile verilir; danger/warning/info
   artık ilk bakışta birbirinden ayrılır. */
.overview-now-list{display:grid;gap:7px;margin-top:var(--tg-space-3)}
.overview-now-list li{display:block;padding:0;border:1px solid var(--tg-border);border-left:4px solid var(--tg-status-neutral);border-radius:var(--tg-radius-md);background:var(--tg-surface)}
/* SATIRIN TAMAMI dokunma hedefidir; sağdaki chevron tıklanabilirliği
   ilk bakışta anlatır (referans davranışı). */
.overview-now-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:var(--tg-touch-min);padding:10px 12px;color:inherit;text-decoration:none}
.overview-now-row:hover:not(.is-static) strong{color:var(--tg-action-primary)}
.overview-now-go{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--tg-surface);border:1.5px solid var(--tg-border-strong);color:var(--tg-action-primary)}
.overview-now-list li strong{font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold);line-height:1.3;overflow-wrap:anywhere;color:var(--tg-text)}
.overview-now-list li.tone-danger{border-left-color:var(--tg-status-danger);border-color:color-mix(in srgb,var(--tg-status-danger) 32%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-danger-soft) 62%,var(--tg-surface))}
.overview-now-list li.tone-warning{border-left-color:var(--tg-status-warning);border-color:color-mix(in srgb,var(--tg-status-warning) 32%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-warning-soft) 62%,var(--tg-surface))}
.overview-now-list li.tone-info{border-left-color:var(--tg-status-info);border-color:color-mix(in srgb,var(--tg-status-info) 32%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-info-soft) 62%,var(--tg-surface))}
.overview-attention-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--tg-radius-md);color:#fff}
.overview-attention-icon.tone-danger{background:var(--tg-status-danger)}
.overview-attention-icon.tone-warning{background:var(--tg-status-warning)}
.overview-attention-icon.tone-info{background:var(--tg-status-info)}
.overview-attention-clear{display:flex;align-items:center;gap:9px;margin:var(--tg-space-2) 0 0;color:var(--tg-status-success);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black)}

/* Özet ızgarası ALAN SAYISINA UYAR: fikstür yokken "Kalan Maç" hiç
   basılmaz ve üç alan satırı eşit doldurur (boş dördüncü kutu yok). */
/* ── TURNUVA ÖZETİ KABUĞU ──────────────────────────────────────────
   İçerideki kutular zaten renkliydi ama dış kart nötr kalıyordu; kart
   artık aynı aileye ait: üst şerit + hafif tonlu gövde + başlık vurgusu.
   Zemin ÇOK AÇIK tutulur (`--tg-surface`e %86 pay) — kutuların kendi
   tonları bastırılmaz, metin kontrastı düşmez. Yeni renk YOK: yalnız
   mevcut `--tg-action-primary` / `--tg-status-*` ailesi. */
.overview-summary-card{position:relative;overflow:hidden;border-radius:var(--tg-radius-lg);border:1.5px solid color-mix(in srgb,var(--tg-action-primary) 30%,var(--tg-border));background:linear-gradient(168deg,color-mix(in srgb,var(--tg-action-primary-soft) 52%,var(--tg-surface)),var(--tg-surface) 62%)}
.overview-summary-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--tg-status-success),var(--tg-status-info) 38%,var(--tg-status-warning) 70%,var(--tg-status-special))}
.overview-summary-card>.overview-card-head{padding-top:3px}
.overview-summary-card .overview-section-kicker{color:var(--tg-action-primary)}
/* Kutular tonlu zeminin üstünde de net dursun: kendi zeminleri opak. */
.overview-summary-card .overview-summary-item{box-shadow:0 1px 2px color-mix(in srgb,var(--tg-brand-primary) 8%,transparent)}
/* `auto-fit` + gerçek bir alt sınır: kutular kartın GENİŞLİĞİNİ doldurur
   (boş izler çöker), 390px'te dördü yan yana sığar. */
.overview-summary-card .overview-summary-grid{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:10px;margin-top:var(--tg-space-3)}
/* Tek alan kaldıysa (hazırlığın en başı: yalnız takım sayısı) kutu
   satırı baştan sona germez — istatistik şeridi gibi görünmesin. */
.overview-summary-card .overview-summary-item:only-child{max-width:190px}
/* Az alan kaldığında kutu bir BANNER'a dönüşmez: kart genişlese de kutu
   kutu kalır (hazırlıkta yalnız Takım + Format vardır). */
.overview-summary-card .overview-summary-item{max-width:230px}
/* Kutular nefes alır: rakam büyük ve TON RENGİNDE, etiket ikincil.
   Zeminler `*-soft` tokenına kendi güçlü tonundan pay katılarak
   koyulaştırıldı — yeni renk YOK, aynı token ailesi. */
.overview-summary-card .overview-summary-item{gap:5px;padding:12px 11px;border-width:1.5px;border-radius:var(--tg-radius-lg);justify-items:start}
/* İkon kutunun TONUNU alır (renk `currentColor` üzerinden `strong` ile
   aynı aileden gelir) — yeni renk tanımlanmaz. */
.overview-summary-icon{display:grid;place-items:center;width:28px;height:28px;margin-bottom:1px;border-radius:9px;background:color-mix(in srgb,#fff 66%,transparent)}
.overview-summary-icon svg{width:17px;height:17px}
.overview-summary-card .overview-summary-item strong{font-size:clamp(19px,2.4vw,27px);font-weight:var(--tg-font-weight-black);line-height:1.1;letter-spacing:-.015em;overflow-wrap:anywhere}
.overview-summary-card .overview-summary-item span{font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);letter-spacing:.04em;text-transform:uppercase;opacity:.86}
/* v6.357.0 — KUTU İÇ DÜZENİ: ikon + etiket ÜST satırda yan yana, değer
   (ve varsa oyuncu satırı) ALTINDA tam genişlikte. Dikey yığın (ikon →
   değer → etiket) kaldırıldı: kutu alçalır, Format metni ikonun altındaki
   boşluğu değil kutunun tüm genişliğini kullanır. */
.overview-summary-card .overview-summary-item{grid-template-columns:auto minmax(0,1fr);align-items:center;align-content:start;column-gap:6px}
.overview-summary-card .overview-summary-icon{grid-column:1;grid-row:1;margin-bottom:0}
.overview-summary-card .overview-summary-item .overview-summary-label{grid-column:2;grid-row:1;min-width:0;line-height:1.2;overflow-wrap:anywhere}
.overview-summary-card .overview-summary-item strong,.overview-summary-card .overview-summary-sub{grid-column:1/-1}
/* v6.357.0 — Takım kutusunun ikincil satırı (yalnız gerçek kadro varken):
   rakamla yarışmaz, etiketten bir kademe sade. */
.overview-summary-card .overview-summary-sub{font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-bold);line-height:1.2;color:color-mix(in srgb,currentColor 70%,var(--tg-text));overflow-wrap:anywhere}
/* Metin değer (ör. Format) rakam ölçeğini kullanmaz. */
.overview-summary-card .overview-summary-item.is-text strong{font-size:var(--tg-font-sm);line-height:1.25;letter-spacing:0}
.overview-summary-card .overview-summary-item:nth-child(1){background:color-mix(in srgb,var(--tg-status-success-soft) 60%,var(--tg-status-success));border-color:color-mix(in srgb,var(--tg-status-success) 44%,var(--tg-border));color:var(--tg-status-success)}
.overview-summary-card .overview-summary-item:nth-child(2){background:color-mix(in srgb,var(--tg-status-info-soft) 60%,var(--tg-status-info));border-color:color-mix(in srgb,var(--tg-status-info) 44%,var(--tg-border));color:var(--tg-status-info)}
.overview-summary-card .overview-summary-item:nth-child(3){background:color-mix(in srgb,var(--tg-status-warning-soft) 60%,var(--tg-status-warning));border-color:color-mix(in srgb,var(--tg-status-warning) 44%,var(--tg-border));color:var(--tg-status-warning)}
.overview-summary-card .overview-summary-item:nth-child(4){background:color-mix(in srgb,var(--tg-status-special-soft) 60%,var(--tg-status-special));border-color:color-mix(in srgb,var(--tg-status-special) 44%,var(--tg-border));color:var(--tg-status-special)}
/* Rakam ve ikon kutunun TONUNU paylaşır; etiket ikincil metin kalır. */
.overview-summary-card .overview-summary-item strong{color:currentColor}
.overview-summary-card .overview-summary-item span{color:color-mix(in srgb,currentColor 76%,var(--tg-text))}
.overview-summary-context{margin:var(--tg-space-3) 0 0;padding-top:var(--tg-space-3);border-top:1px solid var(--tg-border);color:var(--tg-text-muted);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold)}
.overview-summary-context strong{color:var(--tg-action-primary)}
/* ── ZİYARETLER: SABİT İKİ EŞ KART ─────────────────────────────────
   v6.366.0. Ziyaret kartları mevcut `.overview-summary-item` görselini
   AYNEN kullanır (yeni görsel dil üretilmedi), ama ızgarası platform
   "kolon sayısı" tercihine BAĞLANMAMALIDIR: dashboard-layout.css
   ≥1151px'te `.overview-summary-grid`'i 3/4 kolona çevirir. O kural
   DEĞİŞKEN SAYIDA özet kutusu içindir; ziyaret kutuları ise SABİT
   İKİ TANEDİR ve 4 kolonlu ızgarada sola yapışık kalıyordu (gerçek
   tarayıcıda ölçüldü: 1280px'te 232+232px, sağda ~500px boşluk).
   Özgüllük bilinçli olarak (0,4,0)'tır — dashboard-layout.css SONRA
   yüklendiği için eşit özgüllük kaybederdi. 1151px altında zaten taban
   iki kolon geçerlidir, bu kural orada davranışı DEĞİŞTİRMEZ.
   GENEL-BAKIS-TAKIPCI-SAYISI (2026-10-28, ürün sahibi kararı): yönetime
   "Aktif Takipçi" üçüncü eş kutu olarak eklendi ve ÜÇÜ her genişlikte AYNI
   SATIRDADIR. Sütun sayısı kutu sayısından türer (otomatik kolon akışı) —
   takipçi kutusu basılamazsa iki kutu yine tam genişliği paylaşır. */
.tournament-overview-page.tg-overview [data-widget="tournament_visits"] .overview-summary-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
/* ── TURNUVA HAREKETLERİ ───────────────────────────────────────────
   Referanstaki gibi: solda türü anlatan işaret, ortada AKTÖR + ne
   yaptığı, sağda zaman. İşaret rengi satırın ZATEN VAR OLAN `kind`
   alanından gelir (app/activity_helpers.php) — yeni sorgu/alan yok.
   NOT: referanstaki rol rozeti ("Turnuva Yöneticisi") audit kaydında
   tutulmadığı için basılmaz; uydurulmuş rol gösterilmez. */
/* Kart kimliği: mor/`special` ailesi — Genel Bakış'ta bu tonu başka
   hiçbir blok kullanmıyor, dolayısıyla hareket akışı yeşil/mavi/turuncu
   komşularının yanında sönük kalmıyor. Zemin yalnız ÜST BÖLGEDE tonlu;
   satırların okunduğu alan beyaz kalır. */
.overview-activity-card{position:relative;overflow:hidden;border-radius:var(--tg-radius-lg);border:1.5px solid color-mix(in srgb,var(--tg-status-special) 32%,var(--tg-border));background:linear-gradient(178deg,color-mix(in srgb,var(--tg-status-special-soft) 62%,var(--tg-surface)),var(--tg-surface) 26%)}
.overview-activity-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--tg-status-special),color-mix(in srgb,var(--tg-status-special) 45%,var(--tg-action-primary)))}
.overview-activity-card>.overview-card-head{padding-top:3px}
.overview-activity-card .tg-card-title{color:var(--tg-status-special)}
.overview-activity-list li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:start;gap:11px;padding-bottom:10px}
.overview-activity-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--tg-surface-soft);border:1px solid var(--tg-border);color:var(--tg-text-muted)}
.overview-activity-mark svg{width:16px;height:16px}
.overview-activity-list li.kind-create .overview-activity-mark,.overview-activity-list li.kind-match .overview-activity-mark{background:var(--tg-status-success-soft);border-color:color-mix(in srgb,var(--tg-status-success) 34%,var(--tg-border));color:var(--tg-status-success)}
.overview-activity-list li.kind-team .overview-activity-mark,.overview-activity-list li.kind-player .overview-activity-mark,.overview-activity-list li.kind-settings .overview-activity-mark{background:var(--tg-status-info-soft);border-color:color-mix(in srgb,var(--tg-status-info) 34%,var(--tg-border));color:var(--tg-status-info)}
.overview-activity-list li.kind-draw .overview-activity-mark{background:var(--tg-status-special-soft);border-color:color-mix(in srgb,var(--tg-status-special) 34%,var(--tg-border));color:var(--tg-status-special)}
.overview-activity-list li.kind-fixture .overview-activity-mark{background:var(--tg-status-warning-soft);border-color:color-mix(in srgb,var(--tg-status-warning) 34%,var(--tg-border));color:var(--tg-status-warning)}
.overview-activity-list li.kind-danger .overview-activity-mark{background:var(--tg-status-danger-soft);border-color:color-mix(in srgb,var(--tg-status-danger) 34%,var(--tg-border));color:var(--tg-status-danger)}
/* AKTÖR üstte ve okunur; ne yaptığı ikinci satırda. */
.overview-activity-card .overview-activity-copy small{color:var(--tg-text);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black)}
.overview-activity-card .overview-activity-copy strong{font-weight:var(--tg-font-weight-bold);color:color-mix(in srgb,var(--tg-text-muted) 62%,var(--tg-text));line-height:1.35}
.overview-activity-card .overview-activity-list time{padding-top:1px}

/* ── PUAN DURUMU ───────────────────────────────────────────────────
   TABLO GÖVDESİ BOYANMAZ: renk yalnız kabukta, üst şeritte, başlık
   alanında ve sütun başlığı bandındadır. Satır zemini beyaz kalır,
   metin kontrastı düşmez — veri yoğun alan okunur kalmalıdır.
   Ton ailesi `--tg-status-success` (sportif sonuç), Genel Bakış'ın
   mevcut anlam paletiyle uyumlu; yeni sabit renk yok. */
.overview-standings-card{position:relative;overflow:hidden;border:1.5px solid color-mix(in srgb,var(--tg-status-success) 32%,var(--tg-border));background:linear-gradient(178deg,color-mix(in srgb,var(--tg-status-success-soft) 60%,var(--tg-surface)),var(--tg-surface) 24%)}
.overview-standings-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--tg-status-success),color-mix(in srgb,var(--tg-status-success) 42%,var(--tg-action-primary)))}
.overview-standings-card>.overview-card-head{padding-top:3px}
.overview-standings-card .tg-card-title{color:var(--tg-status-success)}
/* Grup adı / aşama bağlamı serbest bir satır değil, bir rozet. */
.overview-standings-card>.tg-card-muted{display:inline-block;margin:0 0 var(--tg-space-2);padding:3px 10px;border-radius:var(--tg-radius-pill);background:var(--tg-surface);border:1px solid color-mix(in srgb,var(--tg-status-success) 26%,var(--tg-border));color:var(--tg-status-success);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black)}
/* ── GRUP SEÇİCİ ───────────────────────────────────────────────────
   Kullanıcı YALNIZ grup seçer (aşama seçici YOKTUR). Mobilde yatay
   kaydırılabilir; her hedef `--tg-touch-min` (44px) yüksekliktedir. */
.overview-standings-groups{display:flex;gap:6px;margin-top:var(--tg-space-2);padding-bottom:2px;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.overview-standings-groups a{display:inline-flex;align-items:center;flex:0 0 auto;min-height:var(--tg-touch-min);padding:8px 14px;border-radius:var(--tg-radius-pill);background:var(--tg-surface);border:1.5px solid color-mix(in srgb,var(--tg-status-success) 24%,var(--tg-border));color:var(--tg-text-muted);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black);text-decoration:none;white-space:nowrap}
.overview-standings-groups a:hover{border-color:color-mix(in srgb,var(--tg-status-success) 50%,var(--tg-border));color:var(--tg-status-success)}
/* Seçili grup NET vurgulanır. */
.overview-standings-groups a.is-active{background:var(--tg-status-success);border-color:var(--tg-status-success);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--tg-status-success) 30%,transparent)}
/* Tur atlayan takım — rozet YALNIZ canonical qualification alanı
   doluysa basılır (bkz. tournament.php). */
.overview-standings-qualified{display:inline-block;margin-left:7px;padding:1px 8px;border-radius:var(--tg-radius-pill);background:var(--tg-status-success-soft);border:1px solid color-mix(in srgb,var(--tg-status-success) 34%,var(--tg-border));color:var(--tg-status-success);font-style:normal;font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);white-space:nowrap}
/* v6.282.0 — Puan Durumu ile AYNI karar: sol accent kalktı, üst tura
   çıkış yalnız hafif satır tonuyla anlatılır. */
/* v6.279.0 — satır içi "Üst tura çıkıyor" metin rozeti kaldırıldı; işaret
   artık ince accent + çok hafif yüzey tonu. Puan Durumu ekranıyla AYNI
   görsel dil; anlam yalnız renkle verilmesin diye satır ekran okuyucu
   metnini taşır (competition_standings_qualification_marker_html()). */
.overview-standings-card[data-qualification-family="league"]{--tg-qualify-soft:var(--tg-section-format-league-soft);--tg-qualify-accent:var(--tg-section-format-league-accent)}
.overview-standings-card[data-qualification-family="groups"]{--tg-qualify-soft:var(--tg-section-format-groups-soft);--tg-qualify-accent:var(--tg-section-format-groups-accent)}
.overview-standings-card[data-qualification-family="knockout"]{--tg-qualify-soft:var(--tg-section-format-knockout-soft);--tg-qualify-accent:var(--tg-section-format-knockout-accent)}
.overview-standings-card .overview-standings-table tbody tr.is-qualified td{background:color-mix(in srgb,var(--tg-qualify-accent,var(--tg-status-success)) 12%,var(--tg-standings-surface,var(--tg-color-surface)))}
/* Tablo beyaz bir yüzeyde durur; renk YALNIZ sütun başlığı bandında.
   TABLO KARTIN GENİŞLİĞİNİ KULLANIR: sabit `max-width` kaldırıldı —
   geniş kartın solunda 660px'lik bir blok olarak durup sağında büyük
   bir boşluk bırakmak yanlış okunuyordu. Kart padding'iyle hizalıdır. */
.overview-standings-card .overview-standings-table{width:100%;margin-top:var(--tg-space-3);border-radius:var(--tg-radius-md);overflow:hidden;background:var(--tg-surface);border:1px solid var(--tg-border)}
.overview-standings-card .overview-standings-table tbody td{padding-top:7px;padding-bottom:7px}
/* SAYI SÜTUNLARI dar ve sağa yaslı; TAKIM sütunu kalan alanı alır. */
.overview-standings-card .overview-standings-table th:first-child,.overview-standings-card .overview-standings-table td:first-child{width:34px;text-align:left}
.overview-standings-card .overview-standings-table th:nth-child(2),.overview-standings-card .overview-standings-table td:nth-child(2){width:auto;text-align:left}
.overview-standings-card .overview-standings-table th:nth-child(n+3),.overview-standings-card .overview-standings-table td:nth-child(n+3){width:38px;padding-left:4px;padding-right:6px;text-align:right;font-variant-numeric:tabular-nums}
/* MASAÜSTÜ SÜTUN DAĞILIMI — yüzdeyle, `table-layout:fixed` ile kesin.
   Takım EN GENİŞ sütundur (%40); sıra dar (%4); sekiz sayı sütunu eşit
   pay alır (%7 × 8 = %56) — ne sıkışık ne de seyrek. Uzun takım adı
   taşmaz, satır içinde sarar. */
@media (min-width:901px){
  .overview-standings-card .overview-standings-table{table-layout:fixed}
  .overview-standings-card .overview-standings-table th:first-child,.overview-standings-card .overview-standings-table td:first-child{width:4%}
  .overview-standings-card .overview-standings-table th:nth-child(2),.overview-standings-card .overview-standings-table td:nth-child(2){width:40%;overflow-wrap:anywhere}
  .overview-standings-card .overview-standings-table th:nth-child(n+3),.overview-standings-card .overview-standings-table td:nth-child(n+3){width:7%;padding-right:10px}
}
.overview-standings-card .overview-standings-table td:nth-child(n+3){color:var(--tg-text-muted)}
/* Averaj ve Puan birincil sayılardır. */
.overview-standings-card .overview-standings-table td:nth-last-child(2){color:var(--tg-text);font-weight:var(--tg-font-weight-bold)}
.overview-standings-card .overview-standings-table th{padding:8px;background:color-mix(in srgb,var(--tg-status-success-soft) 72%,var(--tg-surface));border-bottom:1px solid color-mix(in srgb,var(--tg-status-success) 26%,var(--tg-border));color:color-mix(in srgb,var(--tg-status-success) 78%,var(--tg-text))}
.overview-standings-card .overview-standings-table td{border-bottom:1px solid var(--tg-border)}
/* Sıra numarası bir madalyon; LİDER satırı (sıra 1) tonlu — bu bir
   "tur atladı" iddiası DEĞİL, gösterilen sıralamanın kendisidir. */
.overview-standings-card .overview-standings-table tbody td:first-child{padding-left:10px}
.overview-standings-card .overview-standings-table tbody tr:first-child td{background:color-mix(in srgb,var(--tg-status-success-soft) 44%,var(--tg-surface))}
.overview-standings-card .overview-standings-table tbody tr:first-child td:nth-child(2){font-weight:var(--tg-font-weight-black)}
/* Puan sütunu tablonun ANA sayısıdır. */
.overview-standings-card .overview-standings-table td:last-child strong{color:var(--tg-status-success);font-size:var(--tg-font-md);font-weight:var(--tg-font-weight-black)}
.overview-standings-card .overview-task-link{padding:5px 11px;border-radius:var(--tg-radius-pill);background:var(--tg-surface);border:1px solid color-mix(in srgb,var(--tg-status-success) 30%,var(--tg-border));color:var(--tg-status-success);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);text-decoration:none;white-space:nowrap}

/* ≤900px: her şey tek kolon, MOBİL SIRA = KAYNAK SIRASI. */
/* ── DESTEK DURUMU (UXA-187 / DS-081) ──────────────────────────────
   Tek dış kart (`.tg-card`, Puan Durumu / Turnuva Özeti ile AYNI kabuk
   dili: 4px üst şerit + yumuşak gradient), içinde ÜÇ kompakt bölüm.
   Kimlik tonu `info` (mavi): destek bir DURUM değil, bir İŞ KUYRUĞU
   sinyalidir; üç bölüm aynı aileden kalır, gökkuşağı yapılmaz — yalnız
   iş olan kutu (`.has-work`) vurgulanır. */
.overview-support-card{position:relative;overflow:hidden;border:1.5px solid color-mix(in srgb,var(--tg-status-info) 30%,var(--tg-border));background:linear-gradient(178deg,color-mix(in srgb,var(--tg-status-info-soft) 52%,var(--tg-surface)),var(--tg-surface) 28%)}
.overview-support-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--tg-status-info),color-mix(in srgb,var(--tg-status-info) 42%,var(--tg-action-primary)))}
.overview-support-card>.overview-card-head{padding-top:3px;align-items:center}
.overview-support-card .overview-section-kicker{color:var(--tg-status-info)}
.overview-support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:var(--tg-space-3)}
/* UXA-253 — yalnız talep sahibi görünümü tek sayaç taşır; üç kolonun üçte birine sıkışmaz. */
.overview-support-grid.is-single{grid-template-columns:minmax(0,1fr)}
.overview-support-item{display:grid;gap:3px;min-width:0;padding:12px 12px 11px;border:1.5px solid var(--tg-border);border-radius:var(--tg-radius-lg);background:var(--tg-surface);box-shadow:0 1px 2px color-mix(in srgb,var(--tg-brand-primary) 6%,transparent)}
.overview-support-label{color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-black);letter-spacing:.04em;text-transform:uppercase;line-height:1.2}
.overview-support-item strong{font-size:clamp(22px,2.6vw,30px);font-weight:var(--tg-font-weight-black);line-height:1.05;letter-spacing:-.015em;color:var(--tg-text);font-variant-numeric:tabular-nums}
.overview-support-item small{color:var(--tg-text-muted);font-size:var(--tg-font-xs);font-weight:var(--tg-font-weight-bold)}
.overview-support-item.has-work{border-color:color-mix(in srgb,var(--tg-status-info) 44%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-info-soft) 55%,var(--tg-surface))}
.overview-support-item.has-work strong{color:var(--tg-status-info)}
.overview-support-item.is-awaiting.has-work{border-color:color-mix(in srgb,var(--tg-status-warning) 48%,var(--tg-border));background:color-mix(in srgb,var(--tg-status-warning-soft) 58%,var(--tg-surface))}
.overview-support-item.is-awaiting.has-work strong{color:var(--tg-status-warning)}
/* Sakin boş durum (DS-076): kart küçülmez ama vurgusuz kalır, tek satır not. */
.overview-support-card.is-quiet .overview-support-item{box-shadow:none;background:var(--tg-surface-soft)}
.overview-support-card.is-quiet .overview-support-item strong{color:var(--tg-text-muted)}
.overview-support-quiet{margin:var(--tg-space-3) 0 0;padding-top:var(--tg-space-3);border-top:1px solid var(--tg-border);color:var(--tg-text-muted);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-bold)}
@media (max-width:900px){.overview-focus-row>*,.overview-focus-row>.overview-match-focus>*,.overview-insight-row>*{flex-basis:100%}}
@media (max-width:760px){
  .tg-overview{gap:12px}
  /* Banner mobilde de YATAY kalır: logo solda, ad sağda. */
  .overview-banner{gap:13px}
  .overview-banner>img{width:58px;height:58px;padding:7px;border-radius:13px}
  .overview-banner h1{font-size:23px;line-height:1.12}
  .overview-banner .overview-section-kicker{font-size:11px;margin-bottom:4px}
  .overview-banner-organizer{font-size:var(--tg-font-xs);margin-bottom:4px}
  .overview-banner-season{font-size:var(--tg-font-xs);margin-top:4px}
  /* Tournament Identity Header (yönetim Genel Bakış + public turnuva sayfası,
     ortak markup `app/tournament_identity_header_view.php`) mobilde İKİ BÖLÜM:
     üstte logo + üst metin + turnuva adı, altta kendi satırında durum rozeti
     SOLDA, Paylaş SAĞDA. Paylaş rozetle aynı görsel ölçüde kompakt bir haptır;
     dokunma alanı görünmez isabet alanıyla 44px kalır, işlevi ve paneli
     değişmez. v6.357.1 — iki yüzey AYNI kuralı kullanır. SUPERSEDED: public
     banner'ın ayrı mobil düzeni (rozet satırı logonun üstünde, 44px Paylaş). */
  .overview-banner{flex-wrap:wrap;row-gap:12px}
  /* Mobilde durum satırı kartın ALTINDADIR — ortak dekorun köşesine yer bırakır. */
  .overview-banner-status{order:1;flex-basis:100%;margin-left:0;margin-bottom:0;justify-content:flex-start;padding-inline-end:var(--tg-hero-decor-reserve)}
  .overview-banner-status .tg-status{padding:2px 8px;font-size:10.5px;line-height:1.5}
  .overview-banner .tg-share{margin-left:auto;align-self:center}
  /* PD-63 — Paylaş mobilde de rozetle aynı ölçü (10.5px, rozet yüksekliği);
     44px isabet alanı taban kuraldaki görünmez ::after ile korunur. */
  .overview-banner .tg-share-trigger{font-size:10.5px}
  .overview-banner .tg-share-trigger-icon{width:18px;height:18px}
  .overview-banner .tg-share-trigger-icon svg{width:11px;height:11px}
  .overview-banner .tg-share-trigger-label{margin-left:5px}
  /* UXA-267 — ızgara masaüstüyle aynı (logo solda + metin sağında; alt satırda
     durum solda, aksiyonlar sağda); yalnız aralıklar küçülür. Dekor görseli kart yüksekliğinde kalır (kaybolacak kadar
     küçülmez), biraz soluk: metin ve butonların arkasında geri planda kalır; yer
     ayırtmadığı için eski sağ boşluk (decor-reserve) burada uygulanmaz. */
  /* KOMPAKT MOBİL KART (GORSEL-DORT-DUZELTME, kullanıcı talimatı 2026-11-03 — «üst ve alt iç boşluk fazla»): yalnız ≤ 760 px'te
     dikey iç boşluk 16 / 14 → 10 / 10, satır aralığı 12 → 10, en küçük yükseklik (124 px) kaldırıldı — kart içeriği kadar.
     Logo, başlık, sezon, durum / Paylaş / Takip yerleşimi ve yatay boşluklar aynen; masaüstü / tablet (> 760 px) değişmedi.
     Ortak bileşen: Genel Bakış ve ziyaretçi sayfası AYNI kuralı kullanır (v6.357.1). */
  .overview-banner.tournament-identity{column-gap:12px;row-gap:10px;--tg-hero-min-h:0px;--tg-hero-pad-y:10px;padding-bottom:10px;--tg-hero-decor-h:min(100%,180px);--tg-hero-decor-opacity:.72}
  .tournament-identity-logo{align-self:start;width:64px;height:64px;padding:8px;border-radius:14px}
  .tournament-identity .overview-banner-status{order:0;padding-inline-end:0}
  .overview-banner.tournament-identity h1{font-size:18px}

  /* ── v6.389.0 — TURNUVA HAZIRLIĞI MOBİLDE TEK SATIR 4 KOMPAKT KART ──
     M-01 (v6.370.0) 2×2 kararı SUPERSEDED: sıkışmanın nedeni görünür durum
     rozeti ve 34px işaret dairesiydi; rozet kalktı, işaret 28px. Aşama adı
     kelime ortasından bölünmez.
     Aşağıdaki not tarihsel:
     ── M-01 (v6.370.0) — TURNUVA HAZIRLIĞI MOBİLDE 2×2 ──────────────
     Dört kurulum aşaması mobilde de tek satırda (`repeat(4,...)`)
     duruyordu: gerçek tarayıcıda ÖLÇÜLDÜ — 390px'te hücre 77px, durum
     rozeti ve işaret dairesi sıkışıyordu. Aşama SAYISI, sırası, markup'ı
     ve `tournament_progress_steps()` zinciri DEĞİŞMEDİ — yalnız ızgara
     iki kolona iner (aynı ölçümde hücre 163px). Yeni adım/wizard/carousel
     YOK. İki satıra yayıldığı için hücre genişliği ~2 katına çıkar; bu
     yüzden tipografi ve işaret dairesi tekrar okunur ölçülere döner ve
     kart yüksekliği (112px → 92px) gereksiz büyümez. */
  .overview-setup-section{padding:12px;border-radius:16px}.overview-section-heading h2{font-size:18px}.overview-setup-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.overview-setup-link{min-height:72px;padding:14px 4px 8px;gap:5px}.overview-setup-step strong{font-size:12px;line-height:1.2;overflow-wrap:normal;word-break:normal;hyphens:auto}.overview-setup-mark{width:28px;height:28px}.overview-setup-mark svg{width:15px;height:15px}.overview-setup-step::after{top:4px;left:6px;font-size:9px}

  .overview-focus-row,.overview-insight-row{gap:12px}
  /* Genel Bakış yüzeyinin TAMAMI tek radius ailesini kullanır: mobilde
     `foundation.css`'in 12px'lik genel kart yarıçapı bu ekranda 16px'e
     yükseltilir ki masaüstüyle aynı ürün gibi görünsün. Yeni radius
     sistemi kurulmadı — aynı `--tg-radius-lg` değeri. */
  .overview-focus-row>.tg-card,.overview-insight-row>.tg-card,.overview-match-focus>.tg-card,.tg-overview>.tg-card,.overview-standings-card,.overview-edit-card{border-radius:16px}
  /* ── MOBİL MAÇ KARTI: ~%22 daha kompakt ───────────────────────────
     Bilgi mimarisi AYNI kalır — karşılıklı iki takım, merkezde skor,
     üstte dakika rozeti. Eski dikey bilgi paneline DÖNÜLMEZ; yalnız
     dikey boşluklar sıkılır ve arma ölçüsü kontrollü küçülür. Skor
     kartın en güçlü öğesi olarak kalır, CTA dokunma hedefi 46px
     (≥ --tg-touch-min) korunur. */
  .overview-match-card{padding:10px 12px}
  .overview-match-card .overview-card-head{gap:8px}
  .overview-match-card .overview-card-head .tg-card-title{margin-bottom:0;font-size:14.5px}
  .overview-match-card .overview-section-kicker{margin-bottom:1px}
  .overview-match-card .overview-match-teams{gap:6px;margin:8px 0 7px}
  .overview-match-card .overview-match-side{gap:5px}
  .overview-match-crest{width:38px;height:38px;padding:3px;border-radius:11px;font-size:12.5px}
  .overview-match-card .overview-match-team{font-size:13px;line-height:1.15}
  .overview-match-card .overview-match-versus{min-width:74px;padding:3px 9px;font-size:26px}
  .overview-match-card.is-next .overview-match-versus{min-width:54px;font-size:14px}
  .overview-match-card .overview-match-meta{gap:8px;font-size:11px}
  .overview-live-badge{padding:4px 9px;font-size:11px}
  .overview-match-card .overview-card-actions{margin-top:0;padding-top:10px}
  .overview-match-card .overview-card-actions .tg-btn{min-height:46px}

  .overview-upcoming-card>.overview-card-head{padding:11px 12px}
  .overview-upcoming-card>p,.overview-upcoming-card>.overview-task-link{padding:12px}
  .overview-upcoming-list{gap:8px;margin:0;padding:10px}
  .overview-upcoming-list li{grid-template-columns:23px minmax(0,1fr);column-gap:9px;row-gap:5px;padding:10px 11px}
  .overview-upcoming-list li::before{width:23px;height:23px;font-size:11px}
  .overview-upcoming-teams{gap:8px;font-size:13px}
  .overview-upcoming-teams i{padding:2px 6px;font-size:10px}
  .overview-upcoming-meta{font-size:11px;text-align:left}

  .overview-now-list{gap:6px;margin-top:12px}
  .overview-now-row{grid-template-columns:30px minmax(0,1fr) auto;gap:9px;padding:9px 10px}
  .overview-attention-icon{width:30px;height:30px;border-radius:9px}
  .overview-attention-icon svg{width:16px;height:16px}
  .overview-now-go{width:24px;height:24px}.overview-now-go svg{width:15px;height:15px}
  .overview-now-list li strong{font-size:12.5px}

  /* v6.357.0 — mobilde HER ZAMAN tek satırda üç eşit kutu (Takım · Maç ·
     Format); 360px'te de ikiye bölünmez, yatay kaydırma yok. Az alan
     varken (fikstür/format yok) kutu yine üçte bir genişlikte kalır. */
  .overview-summary-card .overview-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}
  .overview-summary-card .overview-summary-item,.overview-summary-card .overview-summary-item:only-child{max-width:none;min-width:0}
  .overview-summary-card .overview-summary-sub{font-size:10px}
  /* v6.357.0 — ikon + etiket üst satırda: ikon bir kademe küçük, kutu alçak. */
  .overview-summary-card .overview-summary-item{row-gap:4px;column-gap:5px;padding:9px 7px 9px;border-radius:12px}
  .overview-summary-icon{width:22px;height:22px;border-radius:7px}
  .overview-summary-icon svg{width:14px;height:14px}
  .overview-summary-card .overview-summary-item strong{font-size:19px}
  .overview-summary-card .overview-summary-item.is-text strong{font-size:11.5px;line-height:1.2}
  .overview-summary-card .overview-summary-item span{font-size:9.5px;letter-spacing:.02em}
  .overview-summary-context{font-size:12px}

  .overview-activity-list li{grid-template-columns:26px minmax(0,1fr) auto;gap:9px}
  .overview-activity-mark{width:26px;height:26px;border-radius:8px}.overview-activity-mark svg{width:15px;height:15px}
  .overview-activity-card .overview-activity-copy small{font-size:12px}
  .overview-activity-card .overview-activity-copy strong{font-size:12.5px}
  .overview-activity-list time{font-size:11px}

  /* PUAN DURUMU 390px SÖZLEŞMESİ: `# · Takım · O · G · B · M · AV · P`.
     YALNIZ A (atılan) ve Y (yenilen) gizlenir — on sütun sıkıştırılmaz.
     Sayı sütunları dar ve `tabular-nums`; kalan genişliğin tamamı TAKIM
     ADINA gider (en yüksek öncelikli metin alanı), font mikro seviyeye
     düşürülmez. */
  .overview-standings-card .overview-standings-table .is-secondary{display:none}
  .overview-standings-card .overview-standings-table th:first-child,.overview-standings-card .overview-standings-table td:first-child{width:22px;padding-left:6px;padding-right:2px}
  .overview-standings-card .overview-standings-table th:nth-child(n+3),.overview-standings-card .overview-standings-table td:nth-child(n+3){width:26px;padding-left:2px;padding-right:3px}
  .overview-standings-card .overview-standings-table th:last-child,.overview-standings-card .overview-standings-table td:last-child{width:28px;padding-right:7px}
  .overview-standings-card .overview-standings-table th,.overview-standings-card .overview-standings-table td{font-size:12px}
  .overview-standings-card .overview-standings-table td:nth-child(2){font-size:12.5px;line-height:1.2;overflow-wrap:anywhere}
  .overview-standings-groups{gap:5px;margin-top:9px}
  .overview-standings-groups a{padding:7px 12px;font-size:12.5px}
  .overview-standings-qualified{margin-left:5px;padding:1px 6px;font-size:9.5px}
  /* `app.css`'in mobil genel kuralı (`table{display:block;overflow-x:auto}`)
     GENİŞ tabloları kaydırılabilir yapmak içindir; ama blok kutusu tablo
     yerleşimini bozar: satır İÇERİK genişliğinde kalır ve kutunun sağında
     ölü beyaz alan doğar. Bu widget mobilde bilerek yalnız BEŞ dar sütun
     gösterir, yani taşma riski yoktur — burada gerçek tablo yerleşimine
     dönülür ve sütunlar kartın genişliğini doldurur. Genel kural
     DEĞİŞTİRİLMEDİ, yalnız bu tablo için geçersiz kılınır. */
  .overview-standings-card .overview-standings-table{display:table;width:100%;overflow:hidden}

  /* DESTEK DURUMU 390px: üç bölüm yan yana kalır (etiket iki satıra
     kırılabilir, sayı büyük kalır), yatay taşma yok; CTA 44px. */
  .overview-support-grid{gap:6px;margin-top:12px}
  .overview-support-item{gap:2px;padding:10px 8px 9px;border-radius:12px}
  .overview-support-label{font-size:9.5px;letter-spacing:.02em}
  .overview-support-item strong{font-size:22px}
  .overview-support-item small{font-size:10.5px}
  .overview-support-quiet{font-size:12px}
}
@media (max-width:370px){
  .overview-banner>img{width:50px;height:50px}.overview-banner h1{font-size:20px}
  .tournament-identity-logo{width:56px;height:56px;padding:7px}
  /* v6.389.0 — 4 sütunda hücre ~64px: aşama adı 11px, tek satır. */
  .overview-setup-step strong{font-size:11px}
  .overview-match-crest{width:36px;height:36px}.overview-match-card .overview-match-versus{min-width:66px;font-size:24px}
  .overview-match-card .overview-match-team{font-size:12.5px}
  .overview-summary-card .overview-summary-item{padding:10px 5px 9px}
  .overview-summary-card .overview-summary-item.is-text strong{font-size:10.5px}
}

/* ── MAÇ DETAY KARTI — public maç detayı + yönetim Canlı Maç (LM-1) ──────
   İki yüzey AYNI kartı basar (app/match_card_view.php); detay kartına özgü
   sunum kuralları da tek yerdedir (önceden yalnız public-tournament.css).
   Genel Bakış'ın kendi maç kartı bu kapsamın dışındadır. */
:is(.public-match-detail,.live-match-summary) .overview-match-card.is-finished{border:1.5px solid color-mix(in srgb,var(--tg-status-success) 34%,var(--tg-border));background:linear-gradient(178deg,color-mix(in srgb,var(--tg-status-success-soft) 55%,var(--tg-surface)),var(--tg-surface) 40%)}
:is(.public-match-detail,.live-match-summary) .overview-match-card.is-finished .overview-match-versus{background:var(--tg-surface);border:1.5px solid color-mix(in srgb,var(--tg-status-success) 30%,var(--tg-border));color:var(--tg-status-success)}
:is(.public-match-detail,.live-match-summary) .overview-match-crest.is-colors,:is(.public-match-detail,.live-match-summary) .overview-match-crest.is-empty{padding:0;border-radius:50%}
:is(.public-match-detail,.live-match-summary) .overview-match-crest.is-logo{padding:4px}
.overview-live-badge [data-match-minute]:not(:empty)::before{content:"· "}
@media(max-width:430px){:is(.public-match-detail,.live-match-summary) .overview-match-crest{width:48px;height:48px}}

/* ── CANLI MAÇ GEÇİŞİ (2026-10-23) — birden fazla canlı maç ─────────────
   Her slayt kendi maçının eksiksiz kartıdır (assets/js/overview-live-carousel.js);
   kartlar yatay kaydırma + scroll-snap ile geçilir, otomatik kaydırma yoktur.
   Geçiş, odak satırında canlı maç kartının yerini alan TEK esnek öğedir; kart
   ölçüleri / renkleri yukarıdaki canlı kart kurallarından gelir, burada
   yalnız geçiş düzeni ve gezinme tanımlanır. Gölge kart yerine izde durur
   (kaydırma kabı kartın gölgesini keserdi). */
.overview-focus-row>.overview-match-focus>.overview-live-carousel{flex-grow:1.12}
.overview-live-carousel{display:flex;flex-direction:column;gap:0;min-width:0}
/* Çerçeve = iz + gösterge (gösterge masaüstünde izin alt bölgesine yerleşir; hata mesajı çerçevenin dışında). */
.overview-live-frame{display:flex;flex-direction:column;flex:1 1 auto;gap:var(--tg-space-2);min-width:0}
.overview-live-track{display:flex;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--tg-radius-lg);box-shadow:0 16px 38px color-mix(in srgb,var(--tg-status-success) 34%,transparent)}
.overview-live-track::-webkit-scrollbar{display:none}
.overview-live-track>.overview-live-slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:always;box-shadow:none;border-radius:var(--tg-radius-lg)}
.overview-live-nav{display:flex;align-items:center;justify-content:center;gap:var(--tg-space-3)}
.overview-live-nav[hidden]{display:none}
.overview-live-step{display:grid;place-items:center;width:var(--tg-touch-min);height:var(--tg-touch-min);padding:0;border:1px solid var(--tg-border-strong);border-radius:50%;background:var(--tg-surface);color:var(--tg-text);cursor:pointer}
.overview-live-step:hover:not(:disabled){border-color:var(--tg-status-success);color:var(--tg-status-success)}
.overview-live-step:focus-visible{outline:3px solid var(--tg-focus-ring);outline-offset:2px}
.overview-live-step:disabled{opacity:.42;cursor:default}
.overview-live-position{min-width:4.5em;color:var(--tg-text);font-size:var(--tg-font-sm);font-weight:var(--tg-font-weight-black);font-variant-numeric:tabular-nums;text-align:center}
/* Durum bölgesi DOM’da her zaman durur (canlı bölge önceden var olmalı); boşken yer kaplamaz. */
.overview-live-message{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--tg-space-2);margin:0;color:var(--tg-text-muted);font-size:var(--tg-font-sm);text-align:center}
.overview-live-message.is-shown{margin-top:var(--tg-space-2)}
.overview-live-message p{margin:0;flex:1 1 100%}
.overview-live-message p:empty{flex:0 0 0;height:0;overflow:hidden}
.overview-live-message .tg-btn{min-height:var(--tg-touch-min)}
/* `.tg-btn{display:inline-flex}` `hidden` özniteliğini ezer; gizli düğme gerçekten gizli kalmalı. */
.overview-live-message [hidden]{display:none}
/* Kapsam / oturum değişti: eski kartlar kullanılamaz (`inert`) ve soluk; sayfa yenileme önerilir. */
.overview-live-carousel.is-stale .overview-live-track{opacity:.5;filter:grayscale(.5)}
/* İki eylem (birden fazla canlı maç): solda "Canlı Maçlara Git", sağda "Maçı Yönet".
   Her biri yarım genişlik; uzun metin satır kırar, taşmaz. */
.overview-match-card .overview-card-actions.is-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tg-space-2)}
.overview-match-card .overview-card-actions.is-split .tg-btn{min-width:0;white-space:normal;text-align:center;line-height:1.2}
/* Yeşil kart üstünde ikincil düğme: şeffaf beyaz zemin, beyaz yazı (birincil beyaz düğmeyle yarışmaz). */
.overview-match-card.is-live .tg-btn-secondary{background:color-mix(in srgb,#fff 14%,transparent);border-color:color-mix(in srgb,#fff 58%,transparent);color:#fff}
.overview-match-card.is-live .tg-btn-secondary:hover{background:color-mix(in srgb,#fff 24%,transparent)}
@media (max-width:760px){
  .overview-live-track,.overview-live-track>.overview-live-slide{border-radius:16px}
  .overview-live-frame{gap:6px}
}
/* Masaüstü odak satırı: üç kart AYNI alt hizada biter (yukarıdaki ≥ 901 px kuralı). Gösterge kartın
   altında ayrı satır olsaydı canlı kart komşularından kısa kalırdı; bu yüzden kartın alt bölgesine
   yerleşir ve kart ona yer ayırır. Mobilde gösterge kartın altında kalır. */
@media (min-width:901px){
  .overview-live-frame{position:relative}
  .overview-live-track>.overview-live-slide{padding-bottom:calc(var(--tg-touch-min) + 30px)}
  .overview-live-nav{position:absolute;left:0;right:0;bottom:12px;pointer-events:none}
  .overview-live-nav>*{pointer-events:auto}
  .overview-live-step{background:color-mix(in srgb,#fff 14%,transparent);border-color:color-mix(in srgb,#fff 52%,transparent);color:#fff}
  .overview-live-step:hover:not(:disabled){border-color:#fff;color:#fff;background:color-mix(in srgb,#fff 24%,transparent)}
  .overview-live-position{color:#fff}
}
