/* Herkese açık arayüz — modern, açık-tema-öncelikli (admin.css ile aynı sistem). Karanlık mod: data-theme="dark". */
:root{
  --bg:#f6f7fb; --bg2:#ffffff; --bg3:#ffffff; --bg4:#f0f2f7;
  --card:#ffffff; --cardh:#f7f8fc; --bd:#e6e8f0; --bd2:#dcdfe9;
  --tx:#1a1d29; --tx2:#6b7280; --tx3:#374151;
  /* Renk paleti admin.css ile aynı kaynaktan — bkz. admin.css üstteki not: --acc referansın
     BASKIN rengi (altın/amber — aktif sekme, kort/saat başlıkları, maç no, rozetler, seri başı). */
  --acc:#b8860b; --accbg:#fff7df; --accbd:#e3c86a;
  --hd:#3d5aa8; --hdbg:#eaf1fc; --hdbd:#b9d0f0;
  --green:#1c7a40; --greenbd:#8fd6a8; --greenbg:#eafbf0;
  --red:#b23434; --redbd:#e0a0a0; --redbg:#fbeaea;
  --orange:#b25e00; --orangebd:#e8b070; --orangebg:#fff3e2;
  --thbg:#f7f8fc; --rowbd:#eef0f6;
}
:root[data-theme="dark"]{
  --bg:#0f1117; --bg2:#161822; --bg3:#1a1d29; --bg4:#20232f;
  --card:#1a1d29; --cardh:#20232f; --bd:#282c3a; --bd2:#333849;
  --tx:#e7e9f0; --tx2:#8b92a5; --tx3:#c3c8d4;
  --acc:#ffd75e; --accbg:#1a1408; --accbd:#4a3b10;
  --hd:#9fb4e8; --hdbg:#101a2e; --hdbd:#2c4067;
  --green:#7de8a0; --greenbd:#2d5a3a; --greenbg:#12211a;
  --red:#f0a0a0; --redbd:#7a3b3b; --redbg:#211212;
  --orange:#ffb35e; --orangebd:#7a5a2d; --orangebg:#241d10;
  --thbg:#20232f; --rowbd:#242837;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--tx);font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px;min-height:100vh;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}
.hint{color:var(--tx2)}
header{background:var(--bg2);border-bottom:1px solid var(--bd);padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* Başlık: referans panelin kendi h1'iyle birebir (font/renk) — bkz. admin.css aynı not. */
header h1{font-family:'Cascadia Code','Consolas',monospace;font-size:16px;font-weight:700;color:var(--acc);letter-spacing:.06em;text-transform:uppercase}
header .sub{font-size:12px;color:var(--tx2);margin-top:2px}
/* venue (turnuvanın oynandığı yer) logonun solunda, sağa yaslı — margin-left:auto BURADA
   (header-logo'da değil), o da hemen ardından normal gap ile logoya kadar gelsin diye. */
.venue{margin-left:auto;margin-right:14px;display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--tx3);white-space:nowrap}
.venue svg{flex-shrink:0;color:var(--acc)}
.theme-toggle{margin-left:auto;background:none;border:1px solid var(--bd2);border-radius:7px;padding:6px 10px;font-size:14px;cursor:pointer;color:var(--tx3)}
.header-logo{margin-left:auto;display:block}
/* .venue varsa PUSH işini o üstlenir (kendi margin-left:auto'su); logonun kendi auto margin'i
   burada iptal edilir — yoksa ikisi de "auto" isteyip aralarında da fazladan boşluk açardı. */
.venue + .header-logo{margin-left:0}
.header-logo img{height:56px;width:auto;display:block}
.theme-toggle:hover{background:var(--bg4)}
.banner{background:var(--orangebg);color:var(--orange);border-bottom:1px solid var(--orangebd);padding:8px 16px;font-size:13px;text-align:center;font-weight:600}
/* Referans panelle aynı: tek satırda yatay kaydırma DEĞİL, sığmayan sekmeler alt satıra sarar
   (flex-wrap) — bkz. admin.css .adminnav aynı not. */
nav.tabs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;background:var(--bg2);border-bottom:1px solid var(--bd)}
nav.tabs a,nav.tabs button{flex-shrink:0;background:var(--bg4);color:var(--tx3);border:1px solid transparent;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer}
nav.tabs a.active,nav.tabs button.active{background:var(--accbg);border-color:var(--accbd);color:var(--acc)}
main{padding:14px 16px;max-width:1180px;margin:0 auto;overflow-x:auto}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(30,35,60,.06)}
h2{font-family:'Cascadia Code','Consolas',monospace;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tx2);margin-bottom:10px}
/* font-size 16px (14 değil): input font-size 16px'in altındaysa iOS Safari odaklanınca sayfayı
   otomatik zoom'luyor — 16px bunu engeller (bkz. admin.css aynı not, login şifre alanı). */
select,input{background:var(--bg4);color:var(--tx);border:1px solid var(--bd2);border-radius:8px;padding:10px;font-size:16px;width:100%}
table{width:100%;border-collapse:collapse;font-size:13px}
/* Puan tablosu: her grup ayrı <table> olsa da sütunlar tüm gruplarda hizalı görünsün diye
   sabit sütun genişliği (icerige gore degil) */
table.stbl{table-layout:fixed}
table.stbl th:nth-child(1),table.stbl td:nth-child(1){width:8%}
table.stbl th:nth-child(2),table.stbl td:nth-child(2){width:50%}
table.stbl th:nth-child(n+3),table.stbl td:nth-child(n+3){width:14%;text-align:center}
th{background:var(--thbg);color:var(--tx2);text-align:left;padding:8px;font-size:10.5px;font-weight:700;text-transform:uppercase}
td{padding:8px;border-top:1px solid var(--rowbd)}
.badge{display:inline-block;font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px}
.badge.live{background:var(--redbg);color:var(--red);animation:pulse 1.8s infinite}
.badge.draft{background:var(--bg4);color:var(--tx2)}
.badge.archived{background:var(--bg4);color:var(--tx2)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
/* display:flex+column: .sc (skor/CANLI/SIRADAKİ) margin-top:auto ile kartın ALT KENARINA
   yaslanır - aynı satırdaki (grid align-items:stretch ile) daha uzun kartlarla hizası eşitlenir. */
/* Alt boşluk (SIRADAKİ/skor tarafı) diğer kenarlardan biraz az - .sc zaten margin-top:auto ile
   dibe yaslanıyor, bu kutu boyutunu DEĞİŞTİRMEDEN onu bir tık daha aşağı/kenara yaklaştırır. */
.mcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px 12px 8px;margin-bottom:8px;box-shadow:0 1px 2px rgba(30,35,60,.05)}
.mcard.done{border-color:var(--greenbd);background:var(--greenbg)}
/* Oyuncu arama sekmesi: aranan oyuncu bu maçı kaybettiyse (bkz. renderPlayer) — kazandıysa
   .done (yeşil) kalır, kaybettiyse hafif kırmızımsı. */
.mcard.lost{border-color:var(--redbd);background:var(--redbg)}
.mcard.live{border-color:var(--redbd);background:var(--redbg)}
.mcard .top{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--tx2)}
.mcard .top .mno{color:var(--acc);font-weight:700}
.mcard .top>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcard .top>span:last-child{flex-shrink:0}
/* Grup/aşama adı (ör. "Grup C") kendi satırında — üstteki maç no/kategori satırıyla aynı hizada
   sıkışıp kort kısaltmasıyla çakışmasın diye (dar kartlarda kelime bölünmesine yol açıyordu). */
.mcard .stage{font-size:11px;color:var(--tx2);margin-bottom:4px}
.mcard .who{font-size:14px;font-weight:500;color:var(--tx3);margin:2px 0}
.mcard .who.win{font-weight:600;color:var(--tx)}
.mcard .who.lose{font-weight:400;color:var(--tx2)}
.mcard .sc{font-family:'Cascadia Code','Consolas',monospace;color:var(--acc);font-weight:700;font-size:15px;margin-top:auto;padding-top:4px}
/* ==== Fikstür slot-grid (saat × kort) — referans panelle aynı davranış: kort sütunları HER
   ekran genişliğinde yan yana kalır (dar ekranda alt alta YIĞILMAZ), her kort sütunu okunur bir
   asgari genişlikte (minmax) kalır, sığmayınca #grid kendi içinde YATAY kayar. Saat sütunu +
   kort başlıkları (.courthead) dikeyde sticky kalmaya devam eder. */
#grid{overflow-x:auto}
.slotrow{display:grid;grid-template-columns:56px repeat(var(--ncourts,3),minmax(150px,1fr));gap:8px;margin-bottom:8px;align-items:stretch}
.slotrow.courthead{position:sticky;top:0;z-index:5;background:var(--bg);padding:4px 0}
/* Eskiden buradaki 3 etiket ('K1' kort başlığı, saat, faz adı 'GRUP — TEKLER') monospace/terminal
   fontuyla (Cascadia/Consolas) yazılıyordu — sayfanın geri kalanı (kartlar, gün sekmeleri) sans-
   serif olduğu için üslup uymuyordu. Artık site geneliyle aynı (h2 etiket stiliyle tutarlı) sans-
   serif, kalın, hafif harf aralıklı büyük harf tasarımı. */
.chead{font-family:'Cascadia Code','Consolas',monospace;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;justify-content:center;background:var(--bg2);border:1px solid var(--accbd);border-radius:8px;padding:7px 0}
.slottime{font-family:'Cascadia Code','Consolas',monospace;color:var(--tx3);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;background:var(--bg4);border-radius:8px;border:1px solid var(--bd2)}
/* Fazlar (Grup/Çeyrek Final/Yarı Final...) arası boşluk, aynı faz içindeki satır aralığından
   (.slotrow margin-bottom:8px) belirgin şekilde fazla olsun diye üst boşluk artırıldı. */
.phaselabel{margin:28px 0 10px;font-size:11px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.04em}
.slotrow .mcard{margin-bottom:0}
.slotrow .mcard.empty{opacity:.3;display:flex;align-items:center;justify-content:center;color:var(--tx2)}
.daytabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.daytabs button{background:var(--bg4);color:var(--tx3);border:1px solid var(--bd2);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer}
.daytabs button.primary{background:var(--accbg);border-color:var(--accbd);color:var(--acc)}
/* Puan tablosu: gruplar tek tek alt alta değil, yan yana (2 sütun) - kart boyu kısalır,
   çok kategorili turnuvalarda sayfa taranması kolaylaşır. */
.groupgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;align-items:start}
.groupgrid .grp{min-width:0}
.groupgrid .gname{font-size:12px;font-weight:700;color:var(--tx3);margin:6px 0 6px;display:flex;align-items:center;justify-content:space-between;gap:5px;flex-wrap:wrap}
.groupmatchesbtn{background:none;border:1px solid var(--bd2);border-radius:6px;font-size:10.5px;font-weight:500;padding:3px 8px;color:var(--tx2);cursor:pointer}
.groupmatchesbtn:hover{color:var(--acc);border-color:var(--accbd)}
.groupmatches{display:flex;flex-direction:column;gap:0;margin-top:8px}
/* En iyi 3.'lük — bkz. admin.css aynı not */
.groupgrid table.stbl tr.best3 td{background:var(--hdbg)}
.groupgrid table.stbl tr.best3 td:nth-child(2){color:var(--hd);font-weight:600}
.groupgrid table.stbl{border:1px solid var(--bd);border-radius:8px;overflow:hidden}
.groupgrid table.stbl tr.adv td{background:var(--accbg)}
.groupgrid table.stbl tr.adv td:nth-child(2){color:var(--tx);font-weight:600}
@media(max-width:700px){.groupgrid{grid-template-columns:1fr}}
/* Puan sekmesi akordeon (admin.css ile aynı, bkz. admin Puan Tabloları sayfası) — kategori
   sayısı arttıkça (bu turnuvada 15) hepsi açık tek uzun sayfa yerine, gün başlıklı, tıklanınca
   açılan satırlar taranabilirliği korur. */
.dayhead{font-family:'Cascadia Code','Consolas',monospace;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--acc);text-transform:uppercase;margin:22px 0 8px}
.dayhead:first-child{margin-top:0}
.catcard{padding:6px}
.catrow{border-bottom:1px solid var(--rowbd)}
.catrow:last-child{border-bottom:none}
.catrow summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:8px;flex-wrap:wrap}
.catrow summary::-webkit-details-marker{display:none}
.catrow summary:hover{background:var(--cardh)}
.catrow summary .chev{color:var(--tx2);font-size:10px;width:10px;flex-shrink:0;transition:transform .12s}
.catrow[open] summary .chev{transform:rotate(90deg)}
.catrow summary .catlabel{font-weight:600;color:var(--tx)}
.catrow summary .catmeta{font-size:12px;color:var(--tx2)}
@media(max-width:700px){.catrow summary{padding:12px 6px}}
.tourncard{display:block;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:10px;box-shadow:0 1px 2px rgba(30,35,60,.05)}
.tourncard:hover{border-color:var(--accbd)}
.tourncard .name{font-size:15px;font-weight:600;color:var(--tx)}
.tourncard .date{font-size:12px;color:var(--tx2);margin-top:2px}
.empty{text-align:center;color:var(--tx2);padding:30px;font-size:13px}
/* Eleme sütunları — referans panelle aynı: TUR bazlı değil DAL bazlı gruplama (Final+3.lük aynı
   sütunda, Klasman 5-8'in tüm maçları aynı sütunda), her sütun eşit genişlikte (flex:1) — kaç kutu
   içerdiğinden bağımsız (1 kutuluk bir sütun da 4 kutuluk bir sütun kadar yer kaplar). Sığmayan
   sütunlar (nav sekmeleri/day sekmeleriyle aynı ilke) alt satıra sarar, yatay kaydırma YOK. */
.bracket{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px}
.bcol{flex:1;min-width:190px}
.bcol h3{font-size:12px;color:var(--tx3);font-weight:700;text-align:center;margin-bottom:6px;letter-spacing:.03em}
.bcolboxes{display:flex;flex-direction:column;gap:8px}
.bmatch{background:var(--card);border:1.5px solid var(--bd2);border-radius:10px;padding:8px}
.bmatch.final{border-color:var(--accbd)}
.bmatch.klasman{border-style:dashed}
.bmatch .top{display:flex;justify-content:space-between;gap:6px;font-size:10.5px;color:var(--tx2);margin-bottom:4px}
.bmatch .top .mno{color:var(--acc);font-weight:700}
/* Oyuncu ismi Puan sayfasındaki KATILIMCI hücresiyle aynı font (13px, normal ağırlık) */
.bmatch .side{padding:2px 0;font-size:13px;color:var(--tx)}
.bmatch .side.win{color:var(--tx);font-weight:600}
.bmatch .side.pending{color:var(--tx2);font-style:italic;font-weight:400}
.bmatch .sc{color:var(--tx2);font-family:'Cascadia Code','Consolas',monospace;font-size:11px;margin-top:4px}
@media(max-width:640px){
  header .sub{display:none}
  .venue{display:none}
  .venue + .header-logo{margin-left:auto}
  .header-logo img{height:40px}
}
@media(max-width:480px){
  main{padding:10px 5px}
  header h1{font-size:13px}
  .bcol{min-width:150px}
  /* sartname SS7: dokunma hedefleri >=44px */
  nav.tabs a,nav.tabs button,.daytabs button{min-height:44px;display:flex;align-items:center}
  select,input{min-height:44px}
}
