/* Tek ekran, tek görev, dev düğmeler. Bilerek tek (açık) tema: yaşlı kullanıcı için yüksek kontrast. */
:root{
  /* B · Şeker: krem zemin, her ünite kendi pastel renginde, dolgun yazı, basınca çöken düğmeler */
  --bg:#FFF7F0; --card:#FFFFFF; --ink:#2A2238; --muted:#6B6276; --line:#F0E3D8;
  --play:#5B6CFF; --ok:#22A06B; --no:#E0483A; --cur:#F08A3E; --gold:#F5B400; --silver:#A9B4C2;
  --okbg:#DCF5E8; --nobg:#FDE3DF; --selbg:#ECEEFF; --ring:#D9CCC0; --bar:#F08A3E;
  --sh:0 5px 0 rgba(42,34,56,.12); --btnsh:0 5px 0 rgba(0,0,0,.22);
  /* Lexend: okuması rahat. Emoji her telefonda aynı görünsün diye Noto Color Emoji; listenin sonunda olmalı,
     yoksa yazı tipi yüklenmeden boşlukları ve rakamları emoji yazı tipi çizer (kelime araları açılır) */
  --font:'Lexend',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif,'Noto Color Emoji';
  color-scheme:light;
}
html,body{height:100%;overflow:hidden;touch-action:manipulation}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:20px;margin:0;-webkit-tap-highlight-color:transparent;transition:background .2s}
/* yazı seçilemez (basılı tutunca seçim/kopyala menüsü çıkmasın); yedek kodu kutusu hariç */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}textarea{-webkit-user-select:text;user-select:text}
body.fl-ok{background:#BFE8CD} body.fl-no{background:#FBE0DB}
/* ünite rengi: alıştırma ve bitiş ekranında düğmeler ve çubuklar ünitenin koyu tonunda */
#app{--ac:var(--play);--acl:var(--selbg)}
#app[data-u=kelime]{--ac:#3B6FD8;--acl:#DCEBFF}#app[data-u=sayi]{--ac:#17917F;--acl:#D6F3EE}#app[data-u=zaman]{--ac:#4E8F1F;--acl:#E7F5D3}
#app[data-u=harf]{--ac:#D23F73;--acl:#FFE1EC}#app[data-u=ifade]{--ac:#DC6E1C;--acl:#FFE9D2}#app[data-u=dialog]{--ac:#5257D1;--acl:#E3E5FF}
#app[data-u=sinav]{--ac:#8550D0;--acl:#EFE0FF}#app[data-u=kurs]{--ac:#23905C;--acl:#D9F2E6}#app[data-u=form]{--ac:#B07F00;--acl:#FFF2C2}
.wrap{max-width:560px;margin:0 auto;padding-inline:16px;padding-block:12px;height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
button{font-family:inherit;border:0;cursor:pointer;color:#fff;font-weight:900;border-radius:20px;touch-action:manipulation;-webkit-user-select:none;user-select:none}
button:focus-visible{outline:4px solid var(--ink);outline-offset:3px}
button{transition:transform .12s ease-out,filter .12s}
.wrap>:not(.page) button,.wrap>button,.top button,.opts button,.menu button,.mid button{touch-action:none}
.page button{touch-action:manipulation}
button.pressed:not(:disabled){transform:scale(.93);filter:brightness(.9)}
button.bounce{animation:bounce .28s ease-out}
@keyframes bounce{0%{transform:scale(.93)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.opt.sel{animation:selp .25s ease-out}@keyframes selp{50%{transform:scale(1.05)}}
.wrap.in-r{animation:inR .25s ease-out}.wrap.in-l{animation:inL .25s ease-out}.wrap.in-up{animation:inUp .3s ease-out}.wrap.in-n{animation:inN .2s ease-out}
@keyframes inR{from{transform:translateX(40px);opacity:0}}@keyframes inL{from{transform:translateX(-40px);opacity:0}}
@keyframes inUp{from{transform:translateY(50px);opacity:0}}@keyframes inN{from{transform:translateX(16px);opacity:.3}}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ok);color:#fff;font-weight:800;font-size:16px;padding:10px 18px;border-radius:14px;box-shadow:var(--btnsh);z-index:9;animation:toast 1.6s ease-out forwards;pointer-events:none}
@keyframes toast{0%{opacity:0;transform:translate(-50%,20px)}12%,80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}
button:disabled{cursor:default}

/* aşama işaretleri: biten = yıldız, şu anki = turuncu nokta, yapılmamış = gri halka */
.dots{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--ring);box-sizing:border-box;flex:none}
.dot.on{background:var(--ok);border-color:var(--ok)}
.dot.cur{background:var(--cur);border-color:var(--cur);animation:pulse 1.1s ease-in-out infinite}
.st{font-size:18px;line-height:16px;width:16px;text-align:center;flex:none}
.st.g3{color:var(--gold)} .st.g2{color:var(--silver)}
.dots.big{gap:12px;justify-content:center}
.dots.big .dot{width:30px;height:30px;border-width:4px}
.dot.pop{animation:pop .6s ease-out}
@keyframes pulse{50%{transform:scale(1.3)}}
@keyframes pop{0%{transform:scale(.4)}60%{transform:scale(1.5)}100%{transform:scale(1)}}

/* ana ekran */
.head{display:flex;align-items:center;gap:10px;min-height:48px}
.ic{background:var(--card);color:var(--ink);font-size:24px;padding:6px 10px;border-radius:16px;box-shadow:var(--sh)}
.gwrap{flex:1;display:flex;justify-content:center;align-items:center;gap:10px;min-width:0}
.medals{display:flex;gap:5px;align-items:flex-end}.medals svg{width:36px;height:48px;display:block}
.medals.big{gap:16px}.medals.big svg{width:78px;height:104px}
.spin{animation:spin 1.2s ease-out}@keyframes spin{0%{transform:rotateY(0) scale(.4)}60%{transform:rotateY(540deg) scale(1.25)}100%{transform:rotateY(720deg) scale(1)}}
.fday{font-size:22px;font-weight:800;white-space:nowrap}.fday.off{filter:grayscale(1);opacity:.45}
.menu{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:9px}
.unit{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;color:var(--ink);border-radius:22px;box-shadow:var(--sh);min-height:0;overflow:hidden}
.unit .em{font-size:40px;line-height:1.1}
.unit .nm{font-size:14px;font-weight:800;line-height:1.05;text-align:center;min-height:30px;display:flex;align-items:center}
.unit .pb{width:78%;height:10px;border-radius:5px;background:rgba(255,255,255,.75);box-shadow:inset 0 1px 2px rgba(42,34,56,.12);overflow:hidden}
.unit .pb i{display:block;height:100%;background:var(--ac);border-radius:5px}
.unit .sc{font-size:15px;font-weight:800;color:#A87A00;min-height:19px}.unit .sc b{color:var(--gold);font-size:17px}
.unit .rep{height:33px;display:flex;align-items:center;color:var(--ac)}.unit .rep svg{width:30px;height:30px;display:block}.unit .rep.sm{height:auto}.unit .rep.sm svg{width:16px;height:16px} /* tekrar ünitesi: çubuk (10) + boşluk (4) + yıldız (19) yüksekliği */
.unit{position:relative;animation:tileIn .35s ease-out backwards}
.unit:nth-child(2){animation-delay:.03s}.unit:nth-child(3){animation-delay:.06s}.unit:nth-child(4){animation-delay:.09s}.unit:nth-child(5){animation-delay:.12s}
.unit:nth-child(6){animation-delay:.15s}.unit:nth-child(7){animation-delay:.18s}.unit:nth-child(8){animation-delay:.21s}.unit:nth-child(9){animation-delay:.24s}
@keyframes tileIn{from{transform:scale(.85);opacity:0}}
.unit.done{box-shadow:0 0 0 3px var(--silver),var(--sh)}.unit.gold{box-shadow:0 0 0 3px var(--gold),var(--sh)}.unit .ck{position:absolute;font-size:20px;line-height:1;left:50%;top:9px;transform:translateX(-50%)}
.unit{--ac:var(--bar)}
.c-kelime{background:#DCEBFF;--ac:#3B6FD8}.c-sayi{background:#D6F3EE;--ac:#17917F}.c-zaman{background:#E7F5D3;--ac:#4E8F1F}.c-harf{background:#FFE1EC;--ac:#D23F73}
.c-ifade{background:#FFE9D2;--ac:#DC6E1C}.c-dialog{background:#E3E5FF;--ac:#5257D1}.c-sinav{background:#EFE0FF;--ac:#8550D0}.c-kurs{background:#D9F2E6;--ac:#23905C}.c-form{background:#FFF2C2;--ac:#B07F00}

/* soru ekranı */
.top{display:flex;align-items:center;gap:10px}
.back{background:var(--ink);font-size:22px;padding:8px 12px;flex:none}
.top .dots{flex:1;justify-content:center}
.hint{background:#F6E7B0;color:var(--ink);font-size:20px;padding:6px 9px;border-radius:14px;flex:none;opacity:.75}
.bar{flex:1;height:18px;border-radius:9px;background:#fff;box-shadow:inset 0 2px 3px rgba(42,34,56,.12);overflow:hidden}
.bar i{display:block;height:100%;min-width:18px;background:var(--ac);border-radius:9px;transition:width .4s ease-out,background .3s;box-shadow:inset 0 -4px 0 rgba(0,0,0,.12)}
.bar.hot i{background:linear-gradient(90deg,#F2B705,#E07B12);box-shadow:0 0 8px #F2B705}
.said{font-weight:900;text-align:center;margin:2px 0;line-height:1.2;text-wrap:balance;overflow-wrap:anywhere}
.s1{font-size:36px}.s2{font-size:29px}.s3{font-size:24px}.s4{font-size:21px}
.ear{font-size:64px!important;line-height:1.15}
.art-der{color:#1F5FD6}.art-die{color:#D0312D}.art-das{color:#178A45}
.pr{display:grid;grid-template-columns:1fr auto;gap:10px;flex:none}
.play{background:var(--ac);font-size:26px;padding:12px;box-shadow:0 5px 0 rgba(0,0,0,.18)}
.snail{background:var(--acl);font-size:26px;padding:0 18px;box-shadow:0 5px 0 rgba(42,34,56,.14)}
.opts{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px}
.opt{animation:optIn .35s ease-out backwards;background:var(--card);border:3px solid transparent;border-radius:22px;color:var(--ink);font-size:52px;padding:4px;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:var(--sh);transition:background .3s,border-color .3s}
.opt:nth-child(2){animation-delay:.05s}.opt:nth-child(3){animation-delay:.1s}.opt:nth-child(4){animation-delay:.15s}
@keyframes optIn{from{transform:translateY(18px) scale(.94);opacity:0}}
.opt .num{font-size:44px;font-weight:900}
.opt .num.l{font-size:36px}
.opt .lb{font-size:19px;font-weight:900;line-height:1.1;text-align:center}
.opt .lb.n{font-size:26px} /* ay numarası: annem rahat görsün */
.opt .lb.de{font-size:17px;line-height:1.15} /* diyalog: Almanca cevap */
.opt .val{font-size:30px;font-weight:900;line-height:1.1;text-align:center;overflow-wrap:anywhere}
.opt .val.l{font-size:22px}
.opt .txt{font-size:44px;font-weight:900;letter-spacing:.02em}
.opt .txt.l{font-size:28px}
.wk{display:flex;gap:4px}.wk i{display:block;width:15px;height:30px;border-radius:5px;background:var(--line)}.wk i.on{background:var(--play)}
.opt.sel{border-color:var(--play);background:var(--selbg);border-width:5px}
.opt.right{background:var(--okbg);border-color:var(--ok);animation:jump .5s ease-out}
@keyframes jump{30%{transform:translateY(-10px) scale(1.06)}60%{transform:translateY(0) scale(.98)}}
.opt.wrong{background:var(--nobg);border-color:var(--no);animation:shake .4s ease-out}
@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.next{background:var(--ok);font-size:26px;padding:12px;flex:none;box-shadow:0 5px 0 rgba(0,0,0,.18)}
.next:disabled{background:#EFE5DB;color:#C4B7A9;box-shadow:none}
.next.rdy{animation:rdy .3s ease-out}@keyframes rdy{50%{transform:scale(1.05)}}

/* konu anlatımı: alıştırmaya benzemesin; öğretmen kara tahtada anlatır, dokunulacak şık yok */
.lbtn{background:#DCEBFF;color:var(--ink);font-size:20px;padding:6px 9px;border-radius:14px;flex:none}
.ldots{flex:1;display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.ldots i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.ldots i.on{background:var(--ac)}.ldots i.cur{background:var(--ac);transform:scale(1.4)}
.tch{font-size:60px;line-height:1;text-align:center;flex:none}.tch.talk{animation:talk .6s ease-in-out infinite}
@keyframes talk{50%{transform:translateY(-5px) rotate(-4deg)}}
.board{flex:1;position:relative;background:#2F5A4C;border:10px solid #A87444;border-radius:18px;box-shadow:inset 0 0 30px rgba(0,0,0,.35),var(--sh);
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 10px;text-align:center}
.board .bpic{font-size:96px;line-height:1.1}.board .bpic.sm{font-size:64px}
.board .bbig{font-size:84px;font-weight:900;line-height:1.05;overflow-wrap:anywhere}.board .bbig.sm{font-size:40px;letter-spacing:.06em}
.board .bde{font-weight:900;line-height:1.2;text-wrap:balance;overflow-wrap:anywhere}
.board .btr{font-size:19px;font-weight:600;color:#CFE6DB}
.board .art-der{color:#9CCBFF}.board .art-die{color:#FFA8A0}.board .art-das{color:#9BE3B0}
.board .wk i{background:rgba(255,255,255,.25)}.board .wk i.on{background:#FFE27A}.board .wk{gap:6px}.board .wk i{width:22px;height:46px}
.cue{position:absolute;right:8px;bottom:6px;font-size:44px;opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s}.cue.on{opacity:1;transform:scale(1);animation:pulse 1s ease-in-out infinite}
.lnav{display:grid;grid-template-columns:auto 1fr;gap:10px;flex:none}.lnav .play{padding:12px 22px}
.next.nudge{animation:nudge 1.2s ease-in-out 3}@keyframes nudge{50%{transform:scale(1.05)}}

/* aşama sonu */
.mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;gap:16px;text-align:center}
.mid .big-em{font-size:100px;line-height:1}
.go{background:var(--ok);font-size:48px;padding:22px 72px;box-shadow:0 6px 0 rgba(0,0,0,.18)}
.row2{display:flex;gap:18px}
.home-b{background:var(--ink);font-size:40px;padding:22px 32px;box-shadow:0 6px 0 rgba(0,0,0,.25)}
.ubar{display:flex;flex-direction:column;align-items:center;gap:8px;width:86%;font-size:18px;font-weight:800}
.ubar .pb{width:100%;height:18px;border-radius:9px;background:#fff;box-shadow:inset 0 2px 3px rgba(42,34,56,.12);overflow:hidden}.ubar .pb i{display:block;height:100%;background:var(--ac);border-radius:7px;transition:width 1s ease-out}
.bravo{font-size:48px;font-weight:900;margin:0;color:var(--ok)}
.bravo.again{color:var(--cur)}
.stars{display:flex;gap:12px;font-size:70px;line-height:1}
.stars span{color:#DDD5C6;transform:scale(0)}
.stars span.on{color:var(--gold);text-shadow:0 2px 0 #C99600}
.stars span{animation:starIn .45s ease-out forwards}
.stars span:nth-child(2){animation-delay:.25s}.stars span:nth-child(3){animation-delay:.5s}
@keyframes starIn{0%{transform:scale(0) rotate(-40deg)}70%{transform:scale(1.3)}100%{transform:scale(1)}}
.unlock{display:flex;gap:16px;font-size:54px}
.unlock span{animation:unl 1.4s ease-out}
@keyframes unl{0%{transform:scale(.3);filter:grayscale(1)}40%{transform:scale(1.4) rotate(-12deg)}70%{transform:rotate(10deg)}100%{transform:none}}

/* seri ve konfeti */
.fire{position:fixed;left:50%;top:22%;transform:translateX(-50%);font-size:64px;font-weight:900;color:var(--cur);pointer-events:none;animation:fire 1.1s ease-out forwards;z-index:9;text-shadow:0 3px 0 #fff}
@keyframes fire{0%{opacity:0;transform:translate(-50%,20px) scale(.5)}25%{opacity:1;transform:translate(-50%,0) scale(1.25)}100%{opacity:0;transform:translate(-50%,-50px) scale(1)}}
.cf{position:fixed;top:-20px;width:10px;height:16px;border-radius:3px;pointer-events:none;z-index:9;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}


/* profil ve ayarlar (Serhat için) */
.page{font-size:16px;display:flex;flex-direction:column;gap:14px}
.page h2{font-size:22px;margin:0;flex:1}
.page h3{font-size:13px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.box{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:14px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-variant-numeric:tabular-nums}
.kv b{font-weight:800}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:110px}
.days div{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--muted);height:100%;justify-content:flex-end}
.days i{display:block;width:100%;max-width:28px;background:var(--play);border-radius:6px 6px 2px 2px;min-height:2px}
.days span.n{color:var(--ink);font-variant-numeric:tabular-nums}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
td,th{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:13px;color:var(--muted)}
td.r,th.r{text-align:right;white-space:nowrap}
.tr2{color:var(--muted);font-size:14px}
.empty{color:var(--muted);margin:0}
.seg{display:inline-flex;background:var(--line);border-radius:12px;padding:3px;gap:2px;margin-left:auto}
.seg button{background:transparent;color:var(--muted);font-size:14px;font-weight:600;padding:7px 10px;border-radius:9px;white-space:nowrap}
.seg button.on{background:var(--card);color:var(--play);font-weight:700;box-shadow:0 1px 3px rgba(42,34,56,.18)}
.row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:9px 0;border-top:1px solid var(--line);font-weight:600}
.box h3+.row,.box select+.row{border-top:0;padding-top:2px}
.box>.row:first-child{border-top:0;padding-top:0;margin-bottom:6px}
.page textarea{width:100%;box-sizing:border-box;font:13px/1.3 ui-monospace,monospace;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:8px;resize:none}
.btns{display:flex;gap:8px}.btns .small{flex:1}
.page select{width:100%;font:600 16px var(--font);color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:9px 10px}
.pick{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.stg{display:flex;flex-direction:column;align-items:center;gap:3px}.stg small{font-size:11px;color:#C98F00;min-height:13px;letter-spacing:-1px}
.pick .dot{width:28px;height:28px;cursor:pointer}
.danger{background:var(--no);font-size:17px;padding:14px 16px;border-radius:12px;position:relative;overflow:hidden;width:100%;min-height:60px;-webkit-touch-callout:none;touch-action:none}
.danger .fill{position:absolute;inset:0;width:0;background:rgba(0,0,0,.35);transition:width .2s ease-out}
.danger.hold .fill{width:100%;transition:width 2s linear}
.danger .t{position:relative}
.danger.done{background:var(--ok)} .danger.done .fill{display:none}
.danger:active:not(:disabled){transform:none}
.small{background:var(--play);font-size:15px;font-weight:700;padding:9px 14px;border-radius:12px;margin-top:8px}
.abc{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.abc button{background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:2px}
.abc b{font-size:26px}.abc small{font-size:14px;color:var(--muted);font-weight:600}
.abc button.on{border-color:var(--play);background:var(--play);color:#fff}.abc button.on small{color:#fff}
.ver{color:var(--muted);font-size:13px;text-align:center;margin:0}
.note2{color:var(--muted);font-size:14px;margin:8px 0 0}
@media (prefers-reduced-motion:reduce){.wrap[class*=in-],button.bounce,.opt.sel,.opt,.unit,.next.rdy{animation:none!important}.spin{animation:none}.dot.cur,.dot.pop,button:active{transform:none}.stars span{animation:none;transform:none}}
