/* Modern, açık-tema-öncelikli tasarım. Karanlık mod: <html data-theme="dark"> ile (bkz. theme.js). */
:root{
  --bg:#f6f7fb; --bg2:#ffffff; --bg3:#ffffff; --bg4:#f0f2f7; --bg5:#ffffff;
  --card:#ffffff; --cardh:#f7f8fc;
  --bd:#e6e8f0; --bd2:#dcdfe9; --bd3:#c7cbdb;
  --tx:#1a1d29; --tx2:#6b7280; --tx3:#374151; --tx4:#4b5563;
  /* Renk paleti turkiye-sampiyonasi-admin-panel ve minikler-pickleball-panel-v33 referans
     panellerinden alınmıştır; nötrler (bg/bd/tx) buranın kendi tasarım sistemi olarak kaldı.
     --acc: referansın BASKIN rengi (--acc, altın/amber tonu — aktif sekme, kort/saat başlıkları,
     maç no, rozetler, seri başı — 23 farklı yerde kullanılmış); --hd/--primbg ise referansta
     ayrı, dar kullanımlı bir mavi (bkz. aşağı) — ikisini KARIŞTIRMAMAK önemli. */
  --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;
  --primbg:#3d5aa8; --primbd:#3d5aa8;
  --shadow:rgba(30,35,60,.08);
  --livebd:#d03030; --livebg2:#fdeaea;
}
:root[data-theme="dark"]{
  --bg:#0f1117; --bg2:#161822; --bg3:#1a1d29; --bg4:#20232f; --bg5:#171922;
  --card:#1a1d29; --cardh:#20232f;
  --bd:#282c3a; --bd2:#333849; --bd3:#3f4557;
  --tx:#e7e9f0; --tx2:#8b92a5; --tx3:#c3c8d4; --tx4:#a0a6b8;
  --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;
  --primbg:#3b4a7a; --primbd:#5064a8;
  --shadow:rgba(0,0,0,.45);
  --livebd:#e05555; --livebg2:#2a1212;
}
*{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:14px;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}
/* Public sitedeki header ile aynı tasarım (bkz. public.css) - admin'e özgü tek fark: turnuva
   adı artık başlıkta (public gibi), diğer turnuvalara geçiş için ayrı bir bağlantı eklendi. */
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) — monospace, altın/amber (--acc),
   büyük harf, hafif harf aralıklı. */
header h1{font-family:'Cascadia Code','Consolas',monospace;font-size:16px;font-weight:700;color:var(--acc);letter-spacing:.06em;text-transform:uppercase}
header h1 a{color:inherit;text-decoration:none}
header h1 a:hover{text-decoration:underline}
header .sub{font-size:12px;color:var(--tx2)}
.switchlink{margin-left:auto;font-size:13px;color:var(--tx3);border:1px solid var(--bd2);border-radius:7px;padding:6px 10px;white-space:nowrap}
.switchlink:hover{background:var(--bg4);text-decoration:none}
.header-logo{display:block}
.header-logo img{height:56px;width:auto;display:block}
header nav{margin-left:auto;display:flex;gap:4px;align-items:center}
header nav a{font-size:12.5px;color:var(--tx3);text-decoration:none;padding:6px 11px;border-radius:7px;transition:background .12s;white-space:nowrap}
header nav a:hover{background:var(--bg4);text-decoration:none}
/* Turnuva içi bölümler arası gezinme - başlık satırından ayrı, kendi satırında (v33'teki
   gibi ayrık header/nav) - hangi sayfada olunduğu 'active' ile net gösterilir, gizlenmez. */
/* nav.tabs (public.css) ile birebir aynı pill-buton tasarımı - önceden düz metin linklerdi. */
/* Referans panelle aynı: tek satırda yatay kaydırma DEĞİL, sığmayan sekmeler alt satıra sarar
   (flex-wrap) — tüm sekmeler her zaman görünür kalır, gizli/kaydırılması gereken bir sekme olmaz. */
.adminnav{background:var(--bg2);border-bottom:1px solid var(--bd);padding:10px 20px;display:flex;flex-wrap:wrap;gap:6px}
.adminnav a{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;text-decoration:none;white-space:nowrap;cursor:pointer}
.adminnav a:hover{text-decoration:none}
.adminnav a.active{background:var(--accbg);border-color:var(--accbd);color:var(--acc)}
.theme-toggle{background:none;border:1px solid var(--bd2);border-radius:7px;padding:6px 10px;font-size:14px;cursor:pointer;line-height:1;color:var(--tx3)}
.theme-toggle:hover{background:var(--bg4)}
/* overflow-x:auto BURADA (main) OLMAMALI: main tek bir kaydırma kutusu olunca, içindeki
   TEK bir geniş tablo yüzünden sayfadaki TÜM kartlar (alakasız olanlar dahil) yatay kayar.
   Geniş tablolar kendi .tablewrap'ında ayrı ayrı kaydırılır (bkz. asağıda). */
main{padding:14px 16px;max-width:1180px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 2px var(--shadow)}
.tablewrap{overflow-x:auto}
h2{font-family:'Cascadia Code','Consolas',monospace;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tx2);margin-bottom:14px}
button,input[type=submit]{background:var(--bg2);color:var(--tx3);border:1px solid var(--bd2);border-radius:8px;padding:8px 14px;cursor:pointer;font-size:13px;font-weight:500;transition:border-color .12s,background .12s}
button:hover{border-color:var(--bd3);background:var(--cardh)}
button.primary{background:var(--primbg);border-color:var(--primbg);color:#fff;font-weight:600}
button.primary:hover{background:var(--primbd);border-color:var(--primbd)}
button.danger{border-color:var(--redbd);color:var(--red);background:var(--bg2)}
button.danger:hover{background:var(--redbg)}
button:disabled{opacity:.45;cursor:not-allowed}
/* select, en uzun <option> metnine göre (grid/flex hücresini taşarak) genişleyebiliyor -
   max-width+min-width:0 kapalı kutuyu konteynerine sığdırır, açık listede seçenek metni
   yine tam görünür (sadece kapalı görünüm kısalır/kesilir). */
/* width:100% olmadan input'lar tipine göre farklı varsayılan genişlik alıyor (örn. type=number
   metin input'undan dar oluyor) - aynı formgrid satırındaki kutular farklı boyda görünüyordu. */
input:not([type=radio]):not([type=checkbox]),select{background:var(--bg5);color:var(--tx);border:1px solid var(--bd2);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;width:100%;max-width:100%;min-width:0}
input:focus,select:focus{outline:2px solid var(--accbd);outline-offset:1px;border-color:var(--acc)}
/* Radyo/checkbox: yukarıdaki kutu-input stilinden HARİÇ (aksi halde dolgu/kenarlık/genişlik
   alıp devasa bir kutuya dönüşüyor, yanındaki metinle hizası bozuluyordu) — sade, doğal boyut. */
input[type=radio],input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--acc);cursor:pointer;margin:0}
label{font-size:11.5px;color:var(--tx2);font-weight:600;display:block;margin-bottom:4px}
/* Radyo/checkbox'ı saran etiketler (örn. "İl dengeli", "Tam ad" seçenekleri): metinle aynı
   satırda VE dikey olarak ortalanmış olsun diye kendi flex satırı — .row zaten yatay diziyor,
   burada ETİKET İÇİNDEKİ kutu+metin hizası düzeltiliyor. */
label.radiolbl{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tx3);font-weight:400;margin:0}
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:6%}
table.stbl th:nth-child(2),table.stbl td:nth-child(2){width:32%}
table.stbl th:nth-child(n+3),table.stbl td:nth-child(n+3){width:8.8%;text-align:center}
th{background:var(--thbg);color:var(--tx2);text-align:left;padding:9px 10px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--bd)}
td{padding:9px 10px;border-top:1px solid var(--rowbd);vertical-align:middle}
tr:hover td{background:var(--cardh)}
.mono{font-family:'Cascadia Code','Consolas',monospace}
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end}
/* Grid hücreleri varsayılan olarak min-width:auto (içerik boyutu) - içindeki select'in
   uzun option metnine göre hücre/grid daha genişini istemeye devam eder, select'e
   max-width verilmiş olsa bile. min-width:0 bunu keser. */
.formgrid > div{min-width:0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* Puan tablosu: gruplar yan yana (2 sütun) - herkese açık Puan sayfasıyla aynı tasarım. */
.groupgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;align-items:start;margin-top:10px}
.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. bestThirds) — gruptan otomatik değil ama kategorinin en iyi üçüncüleri
   arasına girdiği için bir sonraki tura çıkan satır — sarı (adv) ile karışmasın diye ayrı, açık
   mavi renk (--hd/--hdbg, referans panelin dar-kullanımlı mavisi — bkz. üstteki renk notu). */
.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:900px){.groupgrid{grid-template-columns:1fr}}
.badge{display:inline-block;font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--bg4);color:var(--tx3)}
.badge.live{background:var(--redbg);color:var(--red)}
.badge.draft{background:var(--bg4);color:var(--tx2)}
.badge.archived{background:var(--bg4);color:var(--tx2)}
/* login.ejs'teki sunucu-render hata mesajı için (form içi, statik) - JS tarafı bildirimler
   artık toast (aşağıda .toast*) kullanıyor, sayfa içeriğini itmiyor. */
.msg{font-size:12.5px;padding:9px 12px;border-radius:8px;margin-bottom:10px;font-weight:500}
.msg.error{background:var(--redbg);color:var(--red);border:1px solid var(--redbd)}
.msg.ok{background:var(--greenbg);color:var(--green);border:1px solid var(--greenbd)}
/* ==== Toast bildirimleri (sağ üstten gelir, kendiliğinden kaybolur) — admin-toast.js ==== */
#toastHost{position:fixed;top:16px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:360px;pointer-events:none}
.toast{pointer-events:auto;background:var(--accbg);border:1px solid var(--accbd);border-radius:10px;padding:11px 12px;box-shadow:0 8px 24px var(--shadow);font-size:13px;font-weight:500;color:var(--tx);display:flex;align-items:flex-start;gap:8px;animation:toastIn .25s ease}
.toast .dot{flex-shrink:0;font-size:13px;line-height:1.4}
.toast.ok .dot{color:var(--green)}
.toast.error .dot{color:var(--red)}
.toast .txt{flex:1;line-height:1.4}
.toast .close{flex-shrink:0;background:none;border:none;color:var(--tx2);cursor:pointer;font-size:12px;padding:0 2px;line-height:1.4}
@keyframes toastIn{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}
.toast.leaving{animation:toastOut .2s ease forwards}
@keyframes toastOut{to{transform:translateX(30px);opacity:0}}
@media(max-width:480px){#toastHost{left:12px;right:12px;top:12px;max-width:none}}
.loginwrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);gap:18px}
/* Header'daki turnuva adıyla (bkz. header h1) BİREBİR aynı stil — mono, altın/amber, büyük harf. */
.loginbrand{font-family:'Cascadia Code','Consolas',monospace;font-size:16px;font-weight:700;color:var(--acc);letter-spacing:.06em;text-transform:uppercase}
.loginbox{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:36px 32px;width:320px;box-shadow:0 4px 24px var(--shadow)}
.loginbox h1{color:var(--tx);font-size:17px;font-weight:700;text-align:center;margin-bottom:22px}
.loginbox button:not(.theme-toggle){width:100%;margin-top:12px}
.loginbox .theme-toggle{width:auto}
/* position:fixed - herhangi bir üst elemanın overflow/scroll ayarından bağımsız olsun diye
   (bir üst elemanda overflow-x:auto varsa CSS spec geregi o eleman overflow-y'yi de 'auto'
   sayar; menü tablo satırının içinde position:absolute olsaydı, alt satırlarda açılınca
   sayfaya istenmeyen dikey scroll ekliyordu). Konum toggleMenu() ile JS'ten hesaplanır. */
.dropmenu{position:fixed;z-index:60;background:var(--card);border:1px solid var(--bd);border-radius:10px;box-shadow:0 4px 16px var(--shadow);padding:6px;min-width:170px;display:flex;flex-direction:column;gap:2px}
.dropmenu button{width:100%;text-align:left;background:none;border:none;padding:8px 10px;border-radius:6px;font-size:13px}
.dropmenu button:hover{background:var(--bg4)}
.dropmenu button.danger{color:var(--red)}
.icons{display:flex;gap:6px}
.icons button{padding:4px 8px;font-size:11px}
.preview-section{margin-top:10px}
.preview-section h3{font-size:11px;color:var(--tx3);font-weight:700;margin-bottom:6px;text-transform:uppercase}
.hint{color:var(--tx2)}
.daytabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.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)}
/* ==== Fikstür slot-grid (saat × kort) + maç kartı — public.css'teki (herkese açık site)
   tasarım diliyle BİREBİR aynı (renk/kalınlık/boşluk); admin'e özgü olanlar (tıklanabilir kart,
   hükmen rengi, "N. MAÇ" rozeti, canlı checkbox, hakem satırı) buna eklendi. ==== */
/* Kort sütunları HER ekran genişliğinde yan yana kalır (dar ekranda alt alta yığılmaz), her
   sütun okunur bir asgari genişlikte (minmax) kalır; sığmayınca #grid kendi içinde yatay kayar
   (bkz. public.css aynı not — referans panelin gerçek mobil davranışı). */
#grid{overflow-x:auto}
.slotrow{display:grid;grid-template-columns:64px repeat(var(--ncourts,3),minmax(150px,1fr));gap:8px;margin-bottom:8px;align-items:stretch}
.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}
.slotrow.courthead{position:sticky;top:0;z-index:5;background:var(--bg);padding:4px 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)}
.phaselabel{margin:28px 0 10px;font-size:11px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.04em}
.mcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px 12px 8px;cursor:pointer;box-shadow:0 1px 2px var(--shadow)}
.mcard:hover{border-color:var(--bd3)}
.mcard.empty{opacity:.35;cursor:default}
.mcard.done{border-color:var(--greenbd);background:var(--greenbg)}
.mcard.forfeit{border-color:var(--orangebd);background:var(--orangebg)}
.mcard.live{border-color:var(--livebd);background:var(--livebg2)}
.dno{display:inline-block;background:var(--primbg);color:#fff;font-family:'Cascadia Code','Consolas',monospace;font-size:9px;font-weight:700;padding:1px 6px;border-radius:6px;margin-right:5px;letter-spacing:.03em}
.livechk{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--tx2);margin-top:auto;padding-top:4px;cursor:pointer;user-select:none}
.livechk input{accent-color:var(--livebd);width:14px;height:14px;cursor:pointer}
.livechk.on{color:var(--livebd);font-weight:700}
.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}
.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:14px;margin-top:auto;padding-top:4px}
.mcard .ref{font-size:10px;color:var(--tx2);margin-top:2px}
/* ==== Maç modalı (skor girişi) ==== */
.modal-bg{position:fixed;inset:0;background:rgba(20,22,32,.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:var(--bg3);border:1px solid var(--bd3);border-radius:12px;min-width:320px;max-width:640px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 8px 32px var(--shadow)}
.mhead{padding:16px 18px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.mhead .k{font-size:10px;font-family:'Cascadia Code','Consolas',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--tx2)}
.mhead .t{font-size:16px;font-weight:600;margin-top:3px;color:var(--tx)}
.mhead .t .vs{color:var(--tx2);font-weight:400}
.mx{background:none;border:none;color:var(--tx2);font-size:18px;cursor:pointer;padding:2px 6px}
.mbody{padding:16px 18px;display:flex;flex-direction:column;gap:16px}
.msec .l{font-size:10px;font-family:'Cascadia Code','Consolas',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--tx2);margin-bottom:8px}
.scoregrid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:end}
.scoregrid label{font-size:11px;color:var(--tx4);display:block;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scoregrid input{width:100%;background:var(--bg5);color:var(--tx);border:1px solid var(--bd2);border-radius:6px;padding:8px;text-align:center;font-family:'Cascadia Code','Consolas',monospace;font-size:20px}
.scoregrid .dash{color:var(--tx2);font-family:monospace;padding-bottom:10px}
.setrow{display:grid;grid-template-columns:52px 1fr 1fr;gap:10px;align-items:center;margin-bottom:6px}
.setrow span{font-size:11px;color:var(--tx4);font-family:'Cascadia Code','Consolas',monospace}
.setrow input{width:100%;background:var(--bg5);color:var(--tx);border:1px solid var(--bd2);border-radius:6px;padding:7px;text-align:center;font-family:'Cascadia Code','Consolas',monospace;font-size:16px}
.fbtns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.fbtns button{font-family:'Cascadia Code','Consolas',monospace;font-size:11px;padding:8px 6px}
.fbtns button.on{border-color:var(--acc);color:var(--acc);background:var(--accbg);font-weight:700;box-shadow:0 0 0 1px var(--acc) inset}
.fbtns button.off{border-color:var(--bd3);background:var(--bg4);color:var(--tx3)}
.ratebtns{display:flex;gap:8px}
.ratebtns button{width:42px;height:42px;font-family:'Cascadia Code','Consolas',monospace;font-size:15px;border-radius:8px}
.ratebtns button.on{border-color:var(--acc);color:var(--acc);background:var(--accbg);font-weight:700}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.duo .box{background:var(--bg5);border:1px solid var(--bd2);border-radius:6px;padding:8px 10px;font-size:12px;color:var(--tx3);display:flex;justify-content:space-between;align-items:center}
.duo .box .tag{font-size:9px;font-family:'Cascadia Code','Consolas',monospace;color:var(--tx2);text-transform:uppercase}
.duo .box .tag.link{cursor:pointer;color:var(--acc);text-decoration:underline}
textarea{background:var(--bg5);color:var(--tx);border:1px solid var(--bd2);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;width:100%}
.mfoot{padding:14px 18px;border-top:1px solid var(--bd);display:flex;justify-content:space-between;gap:8px;align-items:center}
.hintline{font-size:10px;font-family:'Cascadia Code','Consolas',monospace;color:var(--tx2);margin-top:6px}
/* ==== Genel istatistik kartları (özet ekranı) ==== */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.stat{background:var(--bg4);border:1px solid var(--bd2);border-radius:8px;padding:10px;text-align:center}
.stat .v{font-size:20px;font-family:'Cascadia Code','Consolas',monospace;color:var(--acc);font-weight:700}
.stat .l{font-size:10px;color:var(--tx2);text-transform:uppercase;margin-top:2px}
/* ==== Kura ekranı: gün başlıkları + kategori akordeonu (<details>/<summary>) ==== */
.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)}
.catrow summary .spacer{flex:1 1 auto}
.catrow summary button{flex-shrink:0}
.catbody{padding:2px 10px 14px 30px}
/* Genel amaçlı tek satırlık akordeon (ör. Ayarlar > Otomatik Yedek Geçmişi) - .catrow'un
   sadeleştirilmiş hali, tek bir <details> için (grup yok). */
details.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--tx3)}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary .chev{color:var(--tx2);font-size:10px;display:inline-block;transition:transform .12s}
details.acc[open] summary .chev{transform:rotate(90deg)}
details.acc summary .hint{font-weight:400;font-size:12px}
.seedbadge{display:inline-block;min-width:20px;text-align:center;font-family:'Cascadia Code','Consolas',monospace;font-size:10.5px;font-weight:700;padding:2px 5px;border-radius:5px;background:var(--accbg);color:var(--acc);border:1px solid var(--accbd)}
.rankno{color:var(--tx2);font-size:12px;padding-left:4px}
.editpencil{background:none;border:none;color:var(--tx2);cursor:pointer;font-size:12px;padding:2px 6px}
.editpencil:hover{color:var(--acc)}
@media(max-width:640px){
  .catrow summary{padding:12px 6px}
  .catbody{padding-left:16px}
}
@media(max-width:900px){
  .scoregrid,.duo{grid-template-columns:1fr}
}
@media(max-width:640px){
  header{padding:10px 16px}
  header .sub{display:none}
  /* Dar ekranda "Diğer Turnuvalar" butonu VE logo kaldırılıyor (admin panelde yer kaplıyordu,
     public sayfadan farklı olarak burada marka amaçlı gerekli değil) — sadece başlık kalıyor. */
  .switchlink{display:none}
  .header-logo{display:none}
  main{padding:14px 18px}
  table{font-size:12px}
  th,td{padding:7px}
  /* sartname SS7: dokunma hedefleri >=44px */
  button,input,select{min-height:44px}
  /* input font-size 16px'in altındaysa iOS Safari odaklanınca sayfayı otomatik zoom'luyor
     (ör. giriş şifresi alanı) — mobilde tüm text girişlerini 16px'e sabitleyip bunu engeller. */
  input:not([type=radio]):not([type=checkbox]),select,textarea{font-size:16px}
  .icons button,.theme-toggle{min-height:36px} /* kucuk yardimci butonlar istisna */
  .adminnav a{min-height:44px;display:flex;align-items:center}
  .formgrid{grid-template-columns:1fr}
  .row button,.row a button{flex:1 1 auto}
}
