/* Tekvando Ustası 3D */
body.oyunSayfa{background:#0b1426;overscroll-behavior:none}
.oAlan{overflow:hidden;touch-action:none}
@media (orientation:landscape) and (max-height:520px){
  .oUst{padding:3px 10px;gap:8px}
  .oIkon{width:32px;height:32px;font-size:15px;border-radius:9px}
  .oBaslik{font-size:15px}
  .oLogo{font-size:14px}
}
:root{--dy:58px;--da:66px;--dt:80px;--altBos:max(24px,env(safe-area-inset-bottom))}
.tvKap{position:absolute;inset:0;overflow:hidden;background:#0b1426;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-family:Nunito,system-ui,sans-serif;color:#fff}
.onOyun .tvKap{position:absolute;inset:0}
#tvCanvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block;touch-action:none;outline:none}
.tvYukle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font:800 16px Nunito,sans-serif;z-index:1;background:radial-gradient(circle at 50% 40%,#1d3f8a,#0b1426)}
.tvYukle i{width:46px;height:46px;border-radius:50%;border:5px solid #ffffff33;border-top-color:#ff4b5c;animation:tvDon .9s linear infinite}
@keyframes tvDon{to{transform:rotate(360deg)}}

/* ---------- üst bar + skor tabelası */
.tvUst{position:absolute;left:8px;right:8px;top:8px;display:flex;justify-content:space-between;align-items:flex-start;gap:6px;z-index:4;pointer-events:none}
.tvUst>*{pointer-events:auto}
.tvSag{display:flex;gap:6px;flex:0 0 auto}
.tvMenuBtn{display:flex;align-items:center;gap:7px;font:800 15px 'Baloo 2',Nunito,sans-serif;color:#fff;background:linear-gradient(180deg,#ff5a5f,#c81d2a);border:0;border-radius:13px;padding:5px 12px 5px 10px;cursor:pointer;box-shadow:0 3px 0 #0006,0 6px 16px #0004;white-space:nowrap;height:42px;max-width:180px;overflow:hidden;flex:0 0 auto}
.tvMenuBtn b{overflow:hidden;text-overflow:ellipsis}
.tvMenuBtn i{font-style:normal}
.tvMenuBtn:active{transform:translateY(2px);box-shadow:0 1px 0 #0006}
.tvIkon{min-width:44px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(6,14,30,.75);border:2px solid #ffffff2e;color:#fff;border-radius:12px;font-size:18px;cursor:pointer;font-family:inherit;padding:0 6px;-webkit-tap-highlight-color:transparent}
.tvIkon:active{transform:translateY(2px)}
.tvKap.menude #tvDur,.tvKap.menude #tvMenu{display:none}
.tvTabela{flex:1;max-width:620px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0;border-radius:14px;overflow:hidden;box-shadow:0 6px 18px #0007;background:#0a1222;pointer-events:none}
.tvOyuncu{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 9px;min-width:0}
.tvOyuncu.mavi{background:linear-gradient(90deg,#0f3a96,#1d5fe0)}
.tvOyuncu.kirmizi{background:linear-gradient(270deg,#8f1218,#e0262f);text-align:right}
.tvOyuncu .adS{display:flex;align-items:center;gap:5px;min-width:0}
.tvOyuncu.kirmizi .adS{justify-content:flex-end}
.tvOyuncu .adS b{font:900 13.5px/1.1 'Baloo 2',Nunito,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.3px}
.tvOyuncu .kusak{flex:0 0 auto;width:16px;height:7px;border-radius:2px;background:#fff;box-shadow:0 0 0 1px #0006}
.tvOyuncu .durS{display:flex;gap:6px;align-items:center;min-height:12px}
.tvOyuncu.kirmizi .durS{justify-content:flex-end}
.tvOyuncu .rk{font-size:11px;letter-spacing:1px;color:#ffd23f;text-shadow:0 1px 0 #0008}
.tvOyuncu .gj{font:900 10px Nunito,sans-serif;color:#ffe08a}
.tvOyuncu .st{height:6px;border-radius:3px;background:#0006;overflow:hidden}
.tvOyuncu .st u{display:block;height:100%;width:100%;background:linear-gradient(90deg,#7dffb0,#ffd23f);border-radius:3px;transition:width .1s}
.tvOyuncu.kirmizi .st u{margin-left:auto}
.tvOyuncu .st u.az{background:linear-gradient(90deg,#ff4b5c,#ff9f80)}
.tvSkorlar{display:flex;align-items:stretch}
.tvSkorlar .skor{min-width:52px;display:flex;align-items:center;justify-content:center;font:900 34px/1 'Baloo 2',Nunito,sans-serif;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #0008}
.tvSkorlar .skor.mavi{background:#1648b8}
.tvSkorlar .skor.kirmizi{background:#b5141d}
.tvSkorlar .skor.vur{animation:tvVur .5s}
@keyframes tvVur{0%{transform:scale(1.5);color:#ffd23f}100%{transform:scale(1)}}
.tvSkorlar .orta{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px 9px;min-width:62px;background:#0a1222}
.tvSkorlar .orta b{font:900 20px/1 'Baloo 2',Nunito,sans-serif;color:#ffd23f;font-variant-numeric:tabular-nums}
.tvSkorlar .orta small{font:800 10px Nunito,sans-serif;color:#9fb7da;text-transform:uppercase;letter-spacing:.5px;margin-top:2px;white-space:nowrap}
.tvSkorlar .orta.altin b{color:#ffcf33;text-shadow:0 0 10px #ffb703}

/* ---------- usta balonu, istek kartı */
.tvUsta{position:absolute;left:10px;right:10px;top:60px;margin:0 auto;max-width:580px;display:flex;align-items:flex-start;gap:9px;z-index:5;pointer-events:none;animation:tvGel .35s}
@keyframes tvGel{from{transform:translateY(-12px);opacity:0}}
.tvUstaYuz{flex:0 0 54px;width:54px;height:54px;border-radius:50%;box-shadow:0 3px 10px #0007;border:3px solid #fff;overflow:hidden;background:#1c2f55}
.tvUstaYuz svg{display:block;width:100%;height:100%}
.tvBalon{position:relative;flex:1;background:#fff;color:#123;border-radius:14px;padding:7px 12px 8px;box-shadow:0 4px 14px #0006}
.tvBalon:before{content:'';position:absolute;left:-8px;top:16px;border:8px solid transparent;border-right-color:#fff;border-left:0}
.tvBalon b{font:900 12px Nunito,sans-serif;color:#c81d2a;text-transform:uppercase;letter-spacing:.5px}
.tvBalon p{margin:1px 0 0;font:700 14.5px/1.3 Nunito,sans-serif}
.tvBalon p kbd{display:inline-block;background:#0b1426;color:#ffd23f;border-radius:6px;padding:0 6px;font:900 12px Nunito,sans-serif}
.tvBalon small{display:block;font:800 12px Nunito,sans-serif;color:#1d5fe0;margin-top:3px}
.tvBalon small:empty{display:none}
.tvIstek{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);z-index:4;pointer-events:none;display:flex;align-items:center;gap:9px;background:rgba(6,14,30,.78);border:2px solid #ffd23f;border-radius:16px;padding:7px 14px;box-shadow:0 0 22px #ffd23f55;white-space:nowrap}
.tvIstek i{font-style:normal;font-size:30px}
.tvIstek b{display:block;font:900 18px/1.1 'Baloo 2',Nunito,sans-serif;color:#ffd23f}
.tvIstek small{display:block;font:800 12px Nunito,sans-serif;color:#d7e6ff}
.tvIstek em{font-style:normal;font:900 20px 'Baloo 2',Nunito,sans-serif;margin-left:6px;color:#7dffb0}
.tvIstek.sicak{animation:tvNabiz .35s infinite alternate}
.tvIstek .zaman{position:absolute;left:10px;right:10px;bottom:3px;height:3px;border-radius:2px;background:#7dffb0;transform-origin:left}

/* ---------- poomsae şeridi */
.tvPoomsae{position:absolute;left:50%;top:36%;transform:translateX(-50%);width:min(560px,92%);height:66px;z-index:4;pointer-events:none;background:rgba(6,14,30,.7);border:2px solid #ffffff30;border-radius:16px;overflow:hidden}
.tvSerit{position:absolute;inset:0}
.tvSerit span{position:absolute;top:8px;width:50px;height:50px;margin-left:-25px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#2f6ff0,#1748b8);border:2px solid #fff;font-size:20px;line-height:1}
.tvSerit span small{font:900 8.5px Nunito,sans-serif;margin-top:2px;letter-spacing:.2px}
.tvSerit span.muk{background:linear-gradient(180deg,#3ddc84,#119a52)}
.tvSerit span.iyi{background:linear-gradient(180deg,#ffd23f,#e0a200);color:#2b1d00}
.tvSerit span.yanlis,.tvSerit span.kacti{background:linear-gradient(180deg,#ff6a6a,#b5141d);opacity:.55}
.tvCizgi{position:absolute;left:22%;top:0;bottom:0;width:4px;margin-left:-2px;background:#ffd23f;box-shadow:0 0 12px #ffd23f}
.tvPoomsae b{position:absolute;right:8px;top:4px;font:900 13px Nunito,sans-serif;color:#7dffb0}

/* ---------- mesajlar, afiş, sayaç, etiketler */
.tvMesaj{position:absolute;left:0;right:0;top:30%;display:flex;flex-direction:column;align-items:center;z-index:5;pointer-events:none}
.tvMesaj b{font:900 calc(28px * var(--s,1)) / 1.05 'Baloo 2',Nunito,sans-serif;letter-spacing:.5px;color:#fff;text-shadow:0 3px 0 #0008,0 0 16px #000a;animation:tvPop 1s forwards;position:absolute;white-space:nowrap}
.tvMesaj b.altin{color:#ffd23f}
.tvMesaj b.yesil{color:#7dffb0}
.tvMesaj b.kirmizi{color:#ff8a80}
@keyframes tvPop{0%{transform:translateY(10px) scale(.7);opacity:0}15%{transform:translateY(0) scale(1.08);opacity:1}30%{transform:scale(1)}80%{opacity:1}100%{transform:translateY(-34px);opacity:0}}
.tvBanner{position:absolute;left:50%;top:21%;transform:translateX(-50%);z-index:6;padding:6px 20px;border-radius:14px;background:linear-gradient(90deg,#c81d2a,#ff7a1a);font:900 22px 'Baloo 2',Nunito,sans-serif;box-shadow:0 4px 0 #0007,0 0 20px #ff7a1a88;white-space:nowrap;pointer-events:none;animation:tvBan 1.9s forwards;text-align:center}
.tvBanner small{display:block;font:800 12px Nunito,sans-serif;opacity:.9}
.tvBanner.mavi{background:linear-gradient(90deg,#0f3a96,#3e8bff);box-shadow:0 4px 0 #0007,0 0 20px #3e8bff88}
.tvBanner.altin{background:linear-gradient(90deg,#b07800,#ffd23f);color:#2b1d00}
.tvBanner.yesil{background:linear-gradient(90deg,#0f8f63,#2bd9a0)}
@keyframes tvBan{0%{transform:translateX(-50%) scale(.6);opacity:0}12%{transform:translateX(-50%) scale(1.1);opacity:1}25%{transform:translateX(-50%) scale(1)}85%{opacity:1}100%{opacity:0}}
.tvSayac{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);z-index:6;font:900 calc(44px * var(--s,1)) / 1 'Baloo 2',Nunito,sans-serif;color:#fff;text-shadow:0 4px 0 #0009,0 0 26px #ff4b5c99;text-align:center;pointer-events:none;white-space:nowrap}
.tvSayac small{display:block;font:800 15px Nunito,sans-serif;color:#d7e6ff;margin-top:6px;text-shadow:0 2px 0 #0008}
.tvSayac.git{color:#7dffb0;animation:tvGit .5s}
@keyframes tvGit{0%{transform:translate(-50%,-50%) scale(1.6)}}
.tvEtiketler{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.tvEtiketler span{position:absolute;transform:translate(-50%,-100%);font:900 22px/1 'Baloo 2',Nunito,sans-serif;color:#fff;text-shadow:0 2px 0 #000,0 0 10px #000;white-space:nowrap;animation:tvUc 1.1s forwards;text-align:center}
.tvEtiketler span small{display:block;font:900 11px Nunito,sans-serif;color:#ffe08a;letter-spacing:.3px}
.tvEtiketler span.p3{color:#ffd23f;font-size:28px}
.tvEtiketler span.p4,.tvEtiketler span.p5{color:#ff7aff;font-size:32px}
.tvEtiketler span.blok{color:#9fd3ff;font-size:17px}
.tvEtiketler span.gri{color:#cfd8e3;font-size:15px}
@keyframes tvUc{0%{opacity:0;margin-top:8px}10%{opacity:1;margin-top:0}75%{opacity:1}100%{opacity:0;margin-top:-46px}}
.tvAkis{position:absolute;left:8px;top:64px;z-index:3;display:flex;flex-direction:column;gap:4px;pointer-events:none;max-width:52vw}
.tvAkis div{background:rgba(6,14,30,.78);border-radius:9px;padding:3px 9px;font:800 12px Nunito,sans-serif;animation:tvGel .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- dokunmatik düğmeler */
.tvAlt{position:absolute;left:0;right:0;bottom:var(--altBos);z-index:4;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left))}
.tvAlt>*{pointer-events:auto}
.tvYon{position:relative;width:calc(var(--dy) * 3 + var(--yg,4px) * 2);height:calc(var(--dy) * 3 + var(--yg,4px) * 2)}
.tvAksiyon{position:relative;width:calc(var(--da) * 2 + var(--dt) * .9 + var(--ag,0px) * 2);height:calc(var(--da) * 2 + var(--dt) * .9 + var(--ag,0px) * 2)}
.tvDug{position:absolute;border:0;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none;padding:0;font-family:'Baloo 2',Nunito,sans-serif}
.tvDug b{font:900 22px/1 'Baloo 2',Nunito,sans-serif;pointer-events:none}
.tvDug small{font:900 9.5px/1.05 Nunito,sans-serif;letter-spacing:.3px;margin-top:2px;pointer-events:none;text-align:center;max-width:94%}
.tvY{width:var(--dy);height:var(--dy);border-radius:16px;background:radial-gradient(circle at 40% 30%,#5b6c8f,#2a3654 75%);box-shadow:0 5px 0 #121a2c,0 8px 18px #0007,inset 0 2px 0 #ffffff40;border:2px solid #ffffff60}
.tvY.yukari{left:calc(var(--dy) + var(--yg,4px));top:0}
.tvY.sol{left:0;top:calc(var(--dy) + var(--yg,4px))}
.tvY.sag{left:calc(var(--dy) * 2 + var(--yg,4px) * 2);top:calc(var(--dy) + var(--yg,4px))}
.tvY.asagi{left:calc(var(--dy) + var(--yg,4px));top:calc(var(--dy) * 2 + var(--yg,4px) * 2)}
.tvY.yukari b,.tvY.asagi b{font-size:18px}
.tvA{width:var(--da);height:var(--da);border-radius:50%;border:3px solid #ffffffb0;box-shadow:0 6px 0 #0008,0 10px 22px #0007,inset 0 2px 0 #ffffff70}
.tvA b{font-size:24px}
.tvA.tekme{width:var(--dt);height:var(--dt);right:0;top:calc(50% - var(--dt) / 2);background:radial-gradient(circle at 40% 30%,#ff7a7a,#d61f2c 70%,#8f1218)}
.tvA.tekme b{font-size:30px}
.tvA.yumruk{left:0;top:calc(50% - var(--da) / 2);background:radial-gradient(circle at 40% 30%,#ffd86b,#f2a20c 70%,#a86b00)}
.tvA.ozel{left:calc(50% - var(--da) / 2 - var(--dt) * .12);top:0;background:radial-gradient(circle at 40% 30%,#c49bff,#7a3ce0 70%,#43178f)}
.tvA.blok{left:calc(50% - var(--da) / 2 - var(--dt) * .12);bottom:0;background:radial-gradient(circle at 40% 30%,#7fd6ff,#1d7fd0 70%,#0b4a85)}
.tvDug.bas{transform:translateY(3px) scale(.95);filter:brightness(1.25)}
.tvDug.tut{filter:brightness(1.3);box-shadow:0 0 0 4px #ffd23f,0 0 18px #ffd23f}
.tvDug.isik{animation:tvNabiz .45s infinite alternate;box-shadow:0 0 0 4px #7dffb0,0 0 22px #7dffb0}
.tvDug.kilit{opacity:.45;filter:grayscale(.7)}
@keyframes tvNabiz{to{transform:scale(1.07)}}
.tvKlavye{position:absolute;left:50%;transform:translateX(-50%);bottom:6px;z-index:3;font:700 12px Nunito,sans-serif;color:#d7e6ff;background:rgba(6,14,30,.65);border-radius:9px;padding:3px 10px;white-space:nowrap;pointer-events:none}
.tvKlavye b{color:#ffd23f}

/* ---------- menü paneli */
.tvPanel{position:absolute;inset:0;z-index:7;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:62px 12px 18px;background:linear-gradient(180deg,#0b1426d9 0,#0b142666 32%,#0b1426aa 100%)}
.tvIc{max-width:780px;margin:0 auto}
.tvLogo{text-align:center;margin:2px 0 10px}
.tvLogo h1{margin:0;font:900 clamp(28px,6vw,46px)/1 'Baloo 2',Nunito,sans-serif;letter-spacing:.5px;background:linear-gradient(180deg,#fff 25%,#ffb3b8 60%,#ff4b5c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 0 #5a0a10) drop-shadow(0 0 18px #ff4b5c88)}
.tvLogo p{margin:4px 0 0;font:800 13px Nunito,sans-serif;color:#d7e6ff}
.tvKart{display:flex;align-items:center;gap:10px;background:rgba(6,14,30,.8);border:1px solid #ffffff22;border-radius:16px;padding:9px 12px;margin-bottom:10px;flex-wrap:wrap}
.tvKart .av{font-size:30px}
.tvKart .bilgi{flex:1;min-width:150px}
.tvKart .bilgi b{font:900 16px 'Baloo 2',Nunito,sans-serif}
.tvKart .bilgi small{display:block;color:#b8c9e8;font-weight:800;font-size:12px}
.tvKusakRozet{display:inline-flex;align-items:center;gap:5px;font:900 12px Nunito,sans-serif;background:#ffffff14;border-radius:9px;padding:1px 8px;margin-left:4px;vertical-align:middle}
.tvKusakRozet i{display:inline-block;width:18px;height:7px;border-radius:2px;box-shadow:0 0 0 1px #0007}
.tvXp{height:7px;border-radius:4px;background:#ffffff1c;overflow:hidden;margin-top:3px}
.tvXp u{display:block;height:100%;background:linear-gradient(90deg,#ff5a5f,#ffd23f)}
.tvPara{font:900 17px 'Baloo 2',Nunito,sans-serif;color:#ffd23f;white-space:nowrap}
.tvGunSerit{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.tvGunSerit button{flex:1;min-width:150px;display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,#3b1d6e,#7a3ce0);border:2px solid #ffffff30;border-radius:14px;color:#fff;padding:7px 10px;cursor:pointer;font:800 13px Nunito,sans-serif;text-align:left}
.tvGunSerit button i{font-style:normal;font-size:24px}
.tvGunSerit button.hazir{animation:tvNabiz .6s infinite alternate;border-color:#ffd23f}
.tvIzgara{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
@media (max-width:640px){.tvIzgara{grid-template-columns:repeat(2,1fr)}}
.tvSecenek{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:96px;border-radius:16px;border:2px solid #ffffff30;background:linear-gradient(180deg,#2551a8,#162f6b);color:#fff;cursor:pointer;font-family:inherit;padding:8px 6px;text-align:center;box-shadow:0 4px 0 #0a1838,0 8px 18px #0005}
.tvSecenek:active{transform:translateY(2px);box-shadow:0 2px 0 #0a1838}
.tvSecenek i{font-style:normal;font-size:30px;line-height:1.1}
.tvSecenek b{font:900 15.5px/1.15 'Baloo 2',Nunito,sans-serif}
.tvSecenek small{font:800 11.5px/1.2 Nunito,sans-serif;color:#cfe0ff}
.tvSecenek.vurgu{background:linear-gradient(180deg,#ff5a5f,#c81d2a);box-shadow:0 4px 0 #5a0a10,0 0 0 3px #ffd23f66,0 8px 18px #0005}
.tvSecenek.yesil{background:linear-gradient(180deg,#2bd9a0,#0f8f63);box-shadow:0 4px 0 #064a33,0 8px 18px #0005}
.tvSecenek.mor{background:linear-gradient(180deg,#8a5cff,#5a2fc9);box-shadow:0 4px 0 #2c1470,0 8px 18px #0005}
.tvSecenek.altin{background:linear-gradient(180deg,#ffcf33,#d99a00);color:#2b1d00;box-shadow:0 4px 0 #6b4a00,0 8px 18px #0005}
.tvSecenek.altin small{color:#4a3300}
.tvSecenek.kilit{filter:grayscale(.75);opacity:.6}
.tvSecenek .rozet{position:absolute;top:5px;right:6px;background:#e8492f;border-radius:9px;padding:0 6px;font:900 11px Nunito,sans-serif;color:#fff}
.tvAltSatir{display:flex;gap:8px;justify-content:center;margin-top:11px;flex-wrap:wrap}
.tvAltSatir .btn{min-width:120px}
.tvBaslik{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.tvBaslik h2{margin:0;flex:1;font:900 22px 'Baloo 2',Nunito,sans-serif}
.tvGeri{background:rgba(6,14,30,.85);border:2px solid #ffffff38;color:#fff;border-radius:12px;padding:5px 12px;font:900 14px Nunito,sans-serif;cursor:pointer}
.tvListe{display:flex;flex-direction:column;gap:8px}
.tvSatir{display:flex;align-items:center;gap:10px;background:rgba(6,14,30,.82);border:1px solid #ffffff22;border-radius:14px;padding:8px 10px}
.tvSatir .ik{font-size:26px;width:36px;text-align:center;flex:0 0 36px}
.tvSatir .ac{flex:1;min-width:0}
.tvSatir .ac b{display:block;font:900 15px/1.2 'Baloo 2',Nunito,sans-serif}
.tvSatir .ac small{display:block;color:#b8c9e8;font:700 12px/1.3 Nunito,sans-serif}
.tvSatir .sag{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto}
.tvSatir.kilit{opacity:.55}
.tvSatir.secili{border-color:#ffd23f;box-shadow:0 0 0 2px #ffd23f55}
.tvSatir.tamam{border-color:#3ddc8488}
.tvIlerleme{height:7px;border-radius:4px;background:#ffffff1c;overflow:hidden;margin-top:4px}
.tvIlerleme u{display:block;height:100%;background:linear-gradient(90deg,#3ddc84,#ffd23f)}
.tvBolum{background:rgba(6,14,30,.6);border:1px solid #ffffff1f;border-radius:16px;padding:9px;margin-bottom:10px}
.tvBolum h3{margin:0 0 7px;font:900 17px 'Baloo 2',Nunito,sans-serif;display:flex;align-items:center;gap:8px}
.tvBolum h3 small{margin-left:auto;font:800 12px Nunito,sans-serif;color:#b8c9e8}
.tvTakvim{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.tvTakvim div{background:rgba(255,255,255,.07);border:2px solid #ffffff22;border-radius:12px;padding:6px 2px;text-align:center;font:800 11px Nunito,sans-serif}
.tvTakvim div i{display:block;font-style:normal;font-size:20px;margin:2px 0}
.tvTakvim div.alindi{background:#2bd9a033;border-color:#2bd9a0}
.tvTakvim div.bugun{border-color:#ffd23f;box-shadow:0 0 0 2px #ffd23f66;animation:tvNabiz .7s infinite alternate}
.tvTakvim div.buyuk{background:linear-gradient(180deg,#7a3ce0aa,#3b1d6eaa)}
.tvSekmeler{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.tvSekmeler button{flex:1;min-width:66px;background:rgba(6,14,30,.85);border:2px solid #ffffff30;color:#fff;border-radius:11px;padding:6px 8px;font:900 13px Nunito,sans-serif;cursor:pointer}
.tvSekmeler button.aktif{background:#ffd23f;color:#3a2a00;border-color:#fff}
.tvUrun{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tvUrun .u{display:flex;flex-direction:column;align-items:center;gap:3px;background:rgba(6,14,30,.85);border:2px solid #ffffff22;border-radius:14px;padding:9px 6px;text-align:center}
.tvUrun .u.giyili{border-color:#7dffb0}
.tvUrun .u .on{width:62px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:inset 0 -6px 0 #0003}
.tvUrun .u b{font:900 14px 'Baloo 2',Nunito,sans-serif}
.tvUrun .u small{color:#b8c9e8;font:800 11px Nunito,sans-serif;min-height:15px}
.tvRenkler{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 10px}
.tvRenkler button{width:38px;height:38px;border-radius:50%;border:3px solid #ffffff40;cursor:pointer}
.tvRenkler button.aktif{border-color:#fff;box-shadow:0 0 0 3px #ffd23f}
.tvStatlar{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media (max-width:520px){.tvStatlar{grid-template-columns:1fr}}
.tvStatK{background:rgba(6,14,30,.82);border:1px solid #ffffff22;border-radius:14px;padding:8px 10px}
.tvStatK .ust{display:flex;justify-content:space-between;align-items:center;font:900 14.5px 'Baloo 2',Nunito,sans-serif}
.tvStatK .ust b{color:#ffd23f}
.tvStatK .cubuk{display:flex;gap:3px;margin:5px 0 3px}
.tvStatK .cubuk i{flex:1;height:9px;border-radius:3px;background:#ffffff1c}
.tvStatK .cubuk i.dolu{background:linear-gradient(90deg,#ff5a5f,#ffd23f)}
.tvStatK .cubuk i.ek{background:#7dffb0}
.tvStatK small{color:#b8c9e8;font:700 11.5px Nunito,sans-serif}
.tvDolap{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
@media (max-width:520px){.tvDolap{grid-template-columns:repeat(3,1fr)}}
.tvDolap .raf{background:linear-gradient(180deg,#5a3a20,#3a2412);border-radius:12px;padding:6px 4px;text-align:center;box-shadow:inset 0 -5px 0 #00000055}
.tvDolap .raf .kupa{font-size:30px;line-height:1.1;filter:drop-shadow(0 2px 3px #000a)}
.tvDolap .raf .kupa.yok{filter:grayscale(1) brightness(.5);opacity:.5}
.tvDolap .raf small{display:block;font:800 10.5px Nunito,sans-serif;color:#f3dcc0}
.tvBasarim{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.tvBasarim div{display:flex;gap:7px;align-items:center;background:rgba(6,14,30,.82);border-radius:12px;padding:6px 8px;border:1px solid #ffffff1f}
.tvBasarim div i{font-style:normal;font-size:22px}
.tvBasarim div b{display:block;font:900 12.5px/1.15 Nunito,sans-serif}
.tvBasarim div small{display:block;font:700 10.5px/1.2 Nunito,sans-serif;color:#b8c9e8}
.tvBasarim div.yok{opacity:.42;filter:grayscale(1)}
.tvAgac{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.tvAgac .tur{flex:1;min-width:92px;display:flex;flex-direction:column;justify-content:space-around;gap:6px}
.tvAgac .tur>small{text-align:center;font:900 10.5px Nunito,sans-serif;color:#b8c9e8;text-transform:uppercase}
.tvAgac .esl{background:rgba(255,255,255,.07);border:1px solid #ffffff26;border-radius:10px;padding:4px 6px;font:800 11.5px/1.3 Nunito,sans-serif}
.tvAgac .esl div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tvAgac .esl .ben{color:#ffd23f}
.tvAgac .esl .ele{opacity:.45;text-decoration:line-through}
.tvAgac .esl.siradaki{border-color:#ffd23f;box-shadow:0 0 0 2px #ffd23f55}
.tvH3{font:900 17px 'Baloo 2',Nunito,sans-serif;margin:14px 0 7px}
.tvNot{font:700 12.5px/1.4 Nunito,sans-serif;color:#d7e6ff;margin:6px 0}
.tvSecim{display:flex;gap:6px;flex-wrap:wrap;margin:5px 0 9px}
.tvSecim button{flex:1;min-width:64px;background:rgba(6,14,30,.85);border:2px solid #ffffff2e;color:#fff;border-radius:11px;padding:7px 6px;font:900 13px Nunito,sans-serif;cursor:pointer}
.tvSecim button.aktif{background:#ff5a5f;border-color:#fff}
.tvTeknik{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.tvTeknik div{display:flex;align-items:center;gap:7px;background:rgba(6,14,30,.82);border:1px solid #ffffff22;border-radius:12px;padding:6px 8px}
.tvTeknik div i{font-style:normal;font-size:22px}
.tvTeknik div b{display:block;font:900 13px/1.15 Nunito,sans-serif}
.tvTeknik div small{display:block;font:800 10.5px/1.2 Nunito,sans-serif;color:#ffd23f}
.tvTeknik div.kilit{opacity:.45}

/* ---------- sonuç modalı */
.tvSonuc{text-align:center}
.tvSonuc .madalya{font-size:56px;line-height:1;filter:drop-shadow(0 4px 6px #0006);animation:tvMad .7s}
@keyframes tvMad{0%{transform:scale(.2) rotate(-30deg)}70%{transform:scale(1.15)}}
.tvSonuc .skorB{display:flex;justify-content:center;align-items:center;gap:10px;font:900 38px/1 'Baloo 2',Nunito,sans-serif;margin:6px 0}
.tvSonuc .skorB .m{color:#4f8dff}.tvSonuc .skorB .k{color:#ff5a5f}
.tvTablo{width:100%;border-collapse:collapse;margin:7px 0;font:800 13.5px Nunito,sans-serif}
.tvTablo td,.tvTablo th{padding:4px 5px;border-bottom:1px solid #ffffff18;text-align:center}
.tvTablo th{font-size:11px;color:#9fb9cc}
.tvTablo tr.ben td{background:#ffd23f22;color:#ffe48a}
.tvOdul{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:8px 0}
.tvOdul span{background:#ffffff14;border-radius:10px;padding:4px 10px;font:900 13.5px Nunito,sans-serif}
.tvRozet{width:120px;height:120px;margin:4px auto 6px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:60px;background:radial-gradient(circle at 40% 30%,#ffe9a3,#ffb703 60%,#c27c00);box-shadow:0 0 0 6px #fff,0 0 0 10px #ff4b5c,0 10px 30px #0008;animation:tvMad .8s}
.tvKazanc{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:8px 0;text-align:left}
.tvKazanc div{background:#ffffff12;border-radius:10px;padding:5px 8px;font:800 12.5px Nunito,sans-serif}
.tvKazanc b{color:#7dffb0}
.tvVs{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 10px}
.tvVs .k{flex:1;border-radius:14px;padding:10px 6px;text-align:center}
.tvVs .k.mavi{background:linear-gradient(180deg,#1d5fe0,#0f3a96)}
.tvVs .k.kirmizi{background:linear-gradient(180deg,#e0262f,#8f1218)}
.tvVs .k b{display:block;font:900 18px 'Baloo 2',Nunito,sans-serif}
.tvVs .k small{display:block;font:800 11.5px Nunito,sans-serif;opacity:.9}
.tvVs>span{font:900 30px 'Baloo 2',Nunito,sans-serif;color:#ffd23f;text-shadow:0 0 12px #ffb703}

/* ---------- yerleşim: dikey / yatay */
.tvKap.dikey{--dy:52px;--da:58px;--dt:72px;--yg:7px;--ag:6px}
.tvKap.dikey .tvTabela{position:absolute;left:0;right:0;top:50px;max-width:none}
.tvKap.dikey .tvUsta{top:106px}
.tvKap.dikey .tvBalon p{font-size:13.5px;line-height:1.25}
.tvKap.dikey .tvUstaYuz{width:46px;height:46px;flex-basis:46px}
.tvKap.dikey .tvAkis{top:120px}
.tvKap.dikey .tvBanner{top:30%}
.tvKap.dikey .tvIstek{top:38%}
.tvKap.dikey .tvPoomsae{top:44%}
.tvKap.yatay{--dy:50px;--da:58px;--dt:70px;--yg:14px;--ag:20px;--altBos:max(22px,env(safe-area-inset-bottom))}
.tvKap.yatay.kisa{--dy:44px;--da:52px;--dt:62px;--yg:12px;--ag:16px;--altBos:max(20px,env(safe-area-inset-bottom))}
.tvKap.yatay .tvAlt{opacity:.9}
.tvKap.yatay.kisa .tvUst{top:5px}
.tvKap.yatay.kisa .tvMenuBtn,.tvKap.yatay.kisa .tvIkon{height:36px}
.tvKap.yatay.kisa .tvMenuBtn b{display:none}
.tvKap.yatay.kisa .tvSkorlar .skor{font-size:26px;min-width:42px}
.tvKap.yatay.kisa .tvUsta{top:52px}
.tvKap.yatay.kisa .tvUstaYuz{width:42px;height:42px;flex-basis:42px}
.tvKap.yatay.kisa .tvBalon p{font-size:13px}
.tvKap.yatay.kisa .tvUsta{max-width:520px}
.tvKap.yatay.kisa .tvBalon{padding:5px 10px 6px}
.tvKap.yatay.kisa .tvBalon p{line-height:1.22}
.tvKap.yatay.kisa .tvIstek{top:42%}
.tvKap.yatay.kisa .tvPoomsae{top:30%;height:58px}
.tvKap.yatay.kisa .tvSerit span{width:42px;height:42px;margin-left:-21px}
.tvKap.masa .tvAlt{opacity:.85}
.tvKap.masa{--dy:50px;--da:58px;--dt:70px;--altBos:34px}
@media (max-width:380px){.tvMenuBtn b{display:none}.tvSkorlar .skor{min-width:44px;font-size:28px}}
.tvKap.yatay .tvAlt{z-index:6}
