:root{
  --bg:#e9edf5; --surface:#ffffff; --surface-2:#f3f6fb; --line:#c2cbe0;
  --ink:#16234d; --muted:#6b76a0;
  --navy:#16285f; --navy-2:#273f95; --red:#d81f2a; --red-soft:#ff5a63;
  --good:#1f7a3d; --bad:#d81f2a; --warn:#c77700;
  --font-ui:'Oswald','Arial Narrow',Impact,sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body)}
a{color:var(--navy)}
header{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,var(--navy-2),var(--navy));
  border-bottom:3px solid var(--red);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.wrap{max-width:1200px;margin:0 auto;padding:13px 18px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-ui);font-weight:800;font-size:20px;
  text-transform:uppercase;letter-spacing:.04em;color:#fff}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red)}
.badge-mode{font-family:var(--font-ui);font-size:10px;background:var(--red);color:#fff;padding:3px 9px;
  font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-left:auto}
.tabs{display:flex;gap:0;flex-wrap:wrap;margin-top:10px}
.tab{font-family:var(--font-ui);padding:9px 16px;background:transparent;border:0;
  color:rgba(255,255,255,.7);cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;transition:.15s;border-bottom:3px solid transparent}
.tab:hover{color:#fff}
.tab.active{background:rgba(255,255,255,.12);color:#fff;border-bottom-color:var(--red)}
main{padding:22px 18px;max-width:1200px;margin:0 auto}
section.view{display:none;animation:fade .2s ease}
section.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
h1,h2,h3{margin:0 0 10px;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
h1{font-size:24px;font-weight:800}
h2{font-size:19px;font-weight:700}
h3{font-size:14px;color:var(--muted);font-weight:700;letter-spacing:.08em}
.card{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:16px;margin-bottom:14px;
  box-shadow:0 1px 3px rgba(20,40,95,.10)}
.grid{display:grid;gap:14px}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:780px){
  .grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}
  h1{font-size:20px}
  .wrap{padding:10px 12px}
  main{padding:14px 10px}
}
button,.btn{font-family:var(--font-ui);background:var(--navy);color:#fff;border:0;border-radius:0;
  padding:9px 16px;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.05em;
  cursor:pointer;transition:.15s}
button:hover,.btn:hover{filter:brightness(1.12)}
button.ghost{background:var(--surface);border:1.5px solid var(--navy);color:var(--navy)}
button.ghost:hover{background:var(--surface-2);filter:none}
button.danger{background:var(--red)}
button.success{background:var(--good)}
button.small{padding:6px 12px;font-size:11px}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{background:var(--surface);color:var(--ink);border:1.5px solid var(--line);
  border-radius:0;padding:9px 12px;font-size:14px;font-family:var(--font-body);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:0}
label{display:block;font-family:var(--font-ui);font-size:11px;color:var(--muted);margin-bottom:5px;
  font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row > *{flex:1;min-width:0}
.row > .shrink{flex:0 0 auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line)}
th{font-family:var(--font-ui);background:var(--navy);color:#fff;font-weight:700;font-size:11px;
  text-transform:uppercase;letter-spacing:.06em}
tr:last-child td{border-bottom:0}
.chip{display:inline-block;background:var(--surface-2);border:1px solid var(--line);padding:3px 9px;
  border-radius:0;font-size:11px;color:var(--muted);font-weight:700;font-family:var(--font-ui);
  text-transform:uppercase;letter-spacing:.04em}
.chip.good{background:#e3f3e8;color:#1f7a3d;border-color:#bfe0c9}
.chip.bad{background:#fbe3e5;color:#c01622;border-color:#f3c2c6}
.chip.warn{background:#fbeed6;color:#9a5d00;border-color:#f0d9a8}
.avatar{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;font-weight:800;font-family:var(--font-ui);color:#fff;font-size:14px;
  background:var(--navy);flex-shrink:0;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.player-row{display:flex;align-items:center;gap:10px}
.player-row .meta{display:flex;flex-direction:column;min-width:0}
.player-row .meta .name{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-row .meta .nick{font-size:11px;color:var(--muted)}
.player-row.clickable{cursor:pointer}
.player-row.clickable:hover .name{color:var(--red)}
.empty{text-align:center;padding:40px 20px;color:var(--muted)}
.empty .big{font-size:36px;margin-bottom:8px}
.match-card{background:var(--surface);border:1px solid var(--line);border-radius:0;margin-bottom:10px;overflow:hidden}
.mc-strip{display:flex;background:var(--navy);color:#fff;border-bottom:2px solid var(--red);font-family:var(--font-ui);
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:6px 12px}
.mc-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:16px 14px}
.mc-team{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center}
.mc-team .name{font-family:var(--font-ui);font-weight:700;font-size:13px;text-transform:uppercase;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-score{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-weight:800}
.mc-foot{display:flex;align-items:center;gap:8px;padding:0 14px 12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.match-card .top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.match-card .side{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.match-card .side.right{flex-direction:row-reverse;text-align:right}
.match-card .name{font-family:var(--font-ui);font-weight:700;font-size:15px;text-transform:uppercase;
  letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-input{width:50px;text-align:center;padding:6px;font-size:18px;font-weight:800;
  font-family:var(--font-ui);color:var(--red)}
.match-card .actions{display:flex;gap:6px;align-items:center;margin-left:auto}
.match-meta{display:flex;gap:10px;font-size:11px;color:var(--muted);margin-top:8px;flex-wrap:wrap;
  align-items:center;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-ui)}
.badge-ai{background:var(--navy);color:#fff;padding:2px 7px;border-radius:0;font-size:10px;font-weight:800;
  letter-spacing:.06em;font-family:var(--font-ui);text-transform:uppercase}
.badge-real{background:var(--good);color:#fff;padding:2px 7px;border-radius:0;font-size:10px;font-weight:800;
  letter-spacing:.06em;font-family:var(--font-ui);text-transform:uppercase}
.odds{display:flex;gap:8px;font-size:12px;color:var(--muted)}
.odds b{color:var(--ink)}
.ai-quote{background:var(--surface-2);border-left:3px solid var(--navy);border-radius:0;padding:12px 14px;
  font-size:13px;line-height:1.5;margin-top:10px;font-family:var(--font-body)}
.ai-quote .by{font-family:var(--font-ui);font-size:10px;color:var(--navy);font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.toolbar h1{margin:0}
.toolbar .right{margin-left:auto;display:flex;gap:8px}
.modal-bg{position:fixed;inset:0;background:rgba(20,30,60,.45);display:none;align-items:center;
  justify-content:center;z-index:100;padding:20px}
.modal-bg.show{display:flex}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:20px;
  max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 30px rgba(20,40,95,.25)}
.winner-banner{background:linear-gradient(180deg,var(--navy-2),var(--navy));color:#fff;padding:18px;
  border-radius:0;border-bottom:3px solid var(--red);text-align:center;font-family:var(--font-ui);
  font-weight:800;font-size:20px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px}
.bracket{display:flex;gap:30px;overflow-x:auto;padding:10px 0}
.bracket-col{display:flex;flex-direction:column;justify-content:space-around;min-width:210px;gap:14px}
.bracket-col .lbl{font-family:var(--font-ui);font-size:10px;color:var(--muted);text-transform:uppercase;
  letter-spacing:.06em;text-align:center;margin-bottom:4px}
.bracket-match{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:8px 10px;font-size:12px}
.bracket-match .ln{display:flex;justify-content:space-between;padding:3px 0}
.bracket-match .ln.winner{color:var(--good);font-weight:800}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(100px);
  background:var(--navy);color:#fff;border:0;padding:12px 20px;border-radius:0;font-size:13px;
  font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.04em;z-index:200;transition:.25s;
  pointer-events:none;opacity:0}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast.error{background:var(--red);color:#fff}
.toast.success{background:var(--good);color:#fff}
.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:14px;text-align:center}
.stat-tile .num{font-family:var(--font-ui);font-size:28px;font-weight:800;color:var(--navy);display:block}
.stat-tile .lbl{font-family:var(--font-ui);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.h2h-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}
.h2h-row .bar{flex:1;height:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:0;overflow:hidden;display:flex}
.h2h-row .bar .seg{height:100%}
.h2h-row .bar .win{background:var(--good)}
.h2h-row .bar .draw{background:var(--muted)}
.h2h-row .bar .loss{background:var(--red)}
.live-clock{font-family:var(--font-ui);font-size:34px;font-weight:800;text-align:center;
  font-variant-numeric:tabular-nums;color:var(--navy)}
.live-events{margin-top:14px}
.live-event{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);
  border:1px solid var(--line);border-radius:0;margin-bottom:6px;font-size:13px}
.live-event .min{font-family:var(--font-ui);font-weight:800;color:var(--red);min-width:32px}
.share-link{background:var(--surface-2);border:1px solid var(--line);border-radius:0;padding:10px 14px;
  font-family:ui-monospace,monospace;font-size:12px;word-break:break-all;color:var(--ink)}

/* ===== Auth gate ===== */
.gate{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:var(--bg);z-index:1000;padding:20px}
.gate.show{display:flex}
.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);
  border-top:4px solid var(--navy);border-radius:0;padding:28px 24px;display:flex;flex-direction:column;gap:12px;
  box-shadow:0 8px 30px rgba(20,40,95,.18)}
.auth-brand{font-family:var(--font-ui);font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  color:var(--navy);display:flex;align-items:center;gap:8px}
.auth-sub{color:var(--muted);font-size:13px;margin:0 0 6px}
.auth-card input{padding:11px 12px;border-radius:0;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-size:14px}
.auth-primary{font-family:var(--font-ui);padding:11px;border:0;border-radius:0;background:var(--navy);color:#fff;
  font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;font-size:13px}
.auth-google{font-family:var(--font-ui);padding:11px;border:1.5px solid var(--navy);border-radius:0;background:#fff;
  color:var(--navy);font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;font-size:13px}
.auth-link{background:none;border:0;color:var(--navy);cursor:pointer;font-size:13px}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.auth-error{color:var(--red);font-size:13px;min-height:16px}
.auth-info{color:var(--good);font-size:13px;min-height:16px}
.auth-hint{font-size:12px;color:var(--muted)}
.auth-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;align-self:center}
.logout-btn{font-family:var(--font-ui);margin-left:auto;display:none;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:0;padding:5px 12px;cursor:pointer;
  font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}

/* ===== Yorum sesli oynatıcı ===== */
.cplayer-slot{margin-top:8px}
.cplayer{display:flex;align-items:center;gap:10px}
.cplayer button{padding:4px 10px}
.cbar{flex:1;height:8px;background:var(--surface-2);border:1px solid var(--line);cursor:pointer;overflow:hidden}
.cfill{height:100%;background:var(--red);width:0}
.ctime{font-family:var(--font-ui);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:74px;text-align:right}

/* ===== Skeleton loading ===== */
.skel{position:relative;overflow:hidden;background:var(--surface-2);border:1px solid var(--line);border-radius:0}
.skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skelShimmer 1.2s infinite}
@keyframes skelShimmer{100%{transform:translateX(100%)}}
.skel-title{height:24px;width:45%;margin-bottom:14px}
.skel-card{height:90px;margin-bottom:10px}
.skel-row{height:46px;margin-bottom:8px}

/* ===== Gamification ===== */
.lvl-card{background:linear-gradient(180deg,var(--navy-2),var(--navy));color:#fff;border:1px solid var(--line);
  border-bottom:3px solid var(--red);padding:16px;margin-bottom:14px;font-family:var(--font-ui)}
.lvl-top{display:flex;align-items:baseline;gap:10px}
.lvl-name{font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.lvl-xp{margin-left:auto;font-size:13px;color:#cdd6f0}
.lvl-bar{height:10px;background:rgba(255,255,255,.18);margin-top:10px;overflow:hidden}
.lvl-fill{height:100%;background:var(--red)}
.lvl-next{font-size:11px;color:#cdd6f0;margin-top:5px;text-transform:uppercase;letter-spacing:.05em}
.quest{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.quest:last-child{border-bottom:0}
.quest.done .q-name{font-weight:700}
.quest .q-check{width:22px;text-align:center}
.quest .q-xp{margin-left:auto;font-family:var(--font-ui);font-size:12px;color:var(--muted)}
.quest.todo{opacity:.55}
.badge-cat{margin:14px 0 6px;font-family:var(--font-ui);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--navy)}
.badge-grid{display:flex;flex-wrap:wrap;gap:8px}
.badge{width:84px;text-align:center;border:1.5px solid var(--line);background:var(--surface-2);padding:8px 4px}
.badge.earned{border-color:var(--navy);background:#fff}
.badge.locked{opacity:.45;filter:grayscale(1)}
.badge .b-icon{font-size:22px}
.badge .b-name{font-size:9px;line-height:1.1;margin-top:4px;text-transform:uppercase;font-family:var(--font-ui);color:var(--ink)}
.badge .b-th{font-size:10px;color:var(--muted);font-weight:700}

/* ===== Header seviye rozeti ===== */
.hdr-level{margin-left:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);color:#fff;
  font-family:var(--font-ui);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:4px 10px;cursor:pointer}
.hdr-level:hover{background:rgba(255,255,255,.24)}
/* rozet puanı */
.badge .b-xp{font-family:var(--font-ui);font-size:9px;font-weight:700;color:var(--navy);margin-top:2px}
.badge.locked .b-xp{color:var(--muted)}
/* seviye ağacı */
.ltree{display:flex;flex-direction:column}
.ltree-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-bottom:0;
  font-family:var(--font-ui);opacity:.5}
.ltree-row:last-child{border-bottom:1px solid var(--line)}
.ltree-row.reached{opacity:1}
.ltree-row.cur{background:var(--navy);color:#fff;border-color:var(--navy)}
.ltree-n{font-weight:800;min-width:48px}
.ltree-name{flex:1;text-transform:uppercase;font-size:13px;font-weight:700}
.ltree-xp{font-size:11px;color:var(--muted)}
.ltree-row.cur .ltree-xp{color:#cdd6f0}

/* Leaderboard */
.lb-toggle { display: flex; gap: 8px; margin-bottom: 12px; }
.lb-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.lb-row:last-child { border-bottom: none; }
.lb-rank { flex: 0 0 28px; text-align: center; font-weight: 700; color: var(--muted); }
.lb-xp { flex: 0 0 auto; font-weight: 700; color: var(--navy); }
.lb-me { background: var(--panel-2); border-radius: 8px; padding-left: 8px; padding-right: 8px; }
.lb-group-head { font-weight: 700; color: var(--navy); margin: 14px 0 6px; font-size: 14px; }
.lb-group-head:first-child { margin-top: 0; }

/* Maç tahminleri */
.pred-block { padding: 0 14px 12px; display: flex; flex-direction: column; gap: 8px; }
.pred-form { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.pred-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.pred-row:last-child { border-bottom: none; }
