/* Mühendis Öğretmen · Zeka Oyunları — sitenin stil.css'i üzerine eklenir */
.zo{--zo-ana:#135e64;--zo-koyu:#193f44;--zo-yazi:#19353b;--zo-soluk:#637777;--zo-cizgi:#dde5df;--zo-zemin:#fcfbf7;
  --zo-acik:#eef4f0;--zo-sec:#f5d586;--zo-vur:#eef4f0;--zo-ayni:#fbeec4;--zo-kul:#1f6fb2;--zo-hata:#c0392b;--zo-hatab:#fbe4e2;--zo-ip:#ae3766;--zo-ok:#2f7a4a;
  padding-top:22px;padding-bottom:40px}
.zo [hidden]{display:none!important}
.zo-crumbs span{color:#9aa9a8}

/* Başlık */
.zo-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.zo-title{display:flex;align-items:center;gap:14px;min-width:0}
.zo-ikon{font-size:34px;width:62px;height:62px;display:grid;place-items:center;border-radius:18px;background:#fbe4e2;flex:none}
.zo-title h1{font-size:clamp(28px,4vw,40px);letter-spacing:-1.4px;line-height:1.1;margin:0}
.zo-title p{margin:4px 0 0;color:#526b6e;font-size:15px}
.zo-modes{display:flex;background:#f0f3ee;border:1px solid var(--zo-cizgi);border-radius:99px;padding:4px}
.zo-modes button{border:0;background:transparent;padding:10px 18px;border-radius:99px;font-weight:750;font-size:14px;color:#476165}
.zo-modes button[aria-selected="true"]{background:var(--zo-koyu);color:#fff}

/* Seviye kartları */
.zo-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.zo-lvl{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;border:2px solid transparent;border-radius:16px;padding:11px 14px;color:#233c3f;transition:transform .12s}
.zo-lvl:active{transform:scale(.98)}
.zo-lvl b{font-size:16px;font-weight:800}
.zo-lvl span{font-size:12.5px;font-weight:650;color:#4c6265}
.zo-lvl i{font-style:normal;font-size:12px;color:#ae3766;letter-spacing:1px}
.zo-lvl1{background:#e5f6ec}.zo-lvl2{background:#e2eefb}.zo-lvl3{background:#fdedd9}.zo-lvl4{background:#f8e6ee}
.zo-lvl[aria-pressed="true"]{border-color:var(--zo-koyu);box-shadow:0 8px 18px rgba(25,63,68,.12)}

/* Oyun alanı */
.zo-play{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}
.zo-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.zo-pill{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--zo-cizgi);border-radius:99px;padding:4px}
.zo-pill button{border:0;background:transparent;width:36px;height:36px;border-radius:50%;font-size:19px;font-weight:800;color:var(--zo-koyu)}
.zo-pill button:hover{background:var(--zo-acik)}
.zo-pill label{font-weight:750;font-size:14px;padding:0 2px}
.zo-pill input{width:66px;border:0;background:#f0f3ee;border-radius:10px;padding:6px 8px;font-weight:800;font-size:16px;text-align:center;color:var(--zo-yazi)}
.zo-zar{width:46px;height:46px;justify-content:center;font-size:19px}
.zo-zar:hover{background:var(--zo-acik)}
.zo-cozuldu{font-size:12px;font-weight:800;color:var(--zo-ok);background:#e4f5e9;border-radius:99px;padding:6px 11px}
.zo-sure{margin-left:auto;font-weight:800;font-size:17px;font-variant-numeric:tabular-nums;background:#fff;border:1px solid var(--zo-cizgi);padding:8px 14px;border-radius:99px}
.zo-board{background:#fff;border:1px solid var(--zo-cizgi);border-radius:22px;padding:14px;box-shadow:0 8px 22px rgba(25,63,68,.06);display:flex;justify-content:center}
.zo-board .zo-svg{width:100%;height:auto;max-height:calc(100vh - 150px);max-width:680px;display:block;touch-action:none;user-select:none;-webkit-user-select:none}
.zo-board [data-h]{cursor:pointer}
.zo-cozuldu-anim{animation:zoParla 1.2s ease}
@keyframes zoParla{50%{box-shadow:0 0 0 8px rgba(47,122,74,.3)}}

/* Yan panel */
.zo-side{display:flex;flex-direction:column;gap:12px}
.zo-card{background:#fff;border:1px solid var(--zo-cizgi);border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(25,63,68,.05)}
.zo-pad{display:grid;grid-template-columns:repeat(var(--kolon,3),1fr);gap:8px}
.zo-padb{grid-column:1/-1;margin:0 0 2px;font-size:13px;font-weight:700;color:var(--zo-soluk)}
.zo-num{position:relative;border:0;background:#e0f3f0;color:var(--zo-ana);border-radius:14px;min-height:58px;font-size:27px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:6px;padding:4px;transition:transform .08s,background .12s}
.zo-num:hover{background:#cdebe6}
.zo-num:active{transform:scale(.94)}
.zo-num small{position:absolute;right:7px;top:4px;font-size:11px;font-weight:800;color:var(--zo-soluk)}
.zo-num.bitik{opacity:.4}
.zo-num.notlu{background:#e2eefb;color:#1f5f9e}
.zo-num.on{background:var(--zo-koyu);color:#fff;box-shadow:0 0 0 3px var(--zo-sec)}
.zo-num.metin{font-size:15px;min-height:50px}
.zo-num.renk{background:var(--c);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);font-size:16px}
.zo-num.renk.on{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--zo-koyu)}
.zo-num.svgli svg{width:40px;height:40px}
.zo-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.zo-act{border:0;background:#f0f3ee;border-radius:12px;padding:9px 4px;font-size:12.5px;font-weight:750;color:#2f4a4d;display:flex;flex-direction:column;align-items:center;gap:2px}
.zo-act span{font-size:21px;line-height:1.1}
.zo-act:hover{background:#e3ebe5}
.zo-act[aria-pressed="true"]{background:#e2eefb;color:#1f5f9e}
.zo-rules summary{cursor:pointer;font-weight:800;font-size:15px}
.zo-rules ul{margin:8px 0 0;padding-left:20px;font-size:14.5px;color:#2f4a4d}
.zo-rules li{margin:5px 0}
.zo-legend{font-size:12.5px;color:var(--zo-soluk);margin:10px 0 0}

/* SVG tahta öğeleri */
.zo-hucre{fill:#fff}
.zo-hucre.ver{fill:#f4f6f2}
.zo-hucre.b0{fill:#e5f6ec}.zo-hucre.b1{fill:#e2eefb}.zo-hucre.b2{fill:#fdedd9}.zo-hucre.b3{fill:#f8e6ee}.zo-hucre.b4{fill:#ede6fa}.zo-hucre.b5{fill:#fdf6d3}
.zo-ust{pointer-events:none}.zo-ust.vur{fill:#19353b;fill-opacity:.07}.zo-ust.ayni{fill:#f0b429;fill-opacity:.28}
.zo-hucre.hata{fill:var(--zo-hatab)}
.zo-hucre.sec{fill:var(--zo-sec)}
.zo-kara{fill:#26363a}
.zo-ince{stroke:#b9c5bf;stroke-width:1}
.zo-kalin{stroke:#19353b;stroke-width:3.2;stroke-linecap:square}
.zo-cerceve{fill:none;stroke:#19353b;stroke-width:4}
.zo-rakam{font-weight:700;fill:var(--zo-kul)}
.zo-rakam.ver{fill:#19353b;font-weight:800}
.zo-rakam.ip{fill:var(--zo-ip)}
.zo-rakam.cevap{fill:#1f6fb2;font-weight:600}
.zo-rakam.cakis{fill:var(--zo-hata)}
.zo-rakam.hata{fill:var(--zo-hata)}
.zo-not{fill:#7f9294;font-weight:600}
.zo-etiket{fill:#19353b;font-weight:700}
.zo-soluk{fill:#8a9a99}
.zo-isaret{fill:#19353b;font-weight:800}

/* Öğretmen */
.zo-tgrid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}
.zo-form h2{font-size:21px;margin:0 0 4px;letter-spacing:-.4px}
.zo-mini{margin:0;font-size:13.5px;color:var(--zo-soluk)}
.zo-form label{display:block;font-weight:750;font-size:13.5px;margin:12px 0 5px;color:#2f4a4d}
.zo-form select,.zo-form input[type=text],.zo-form input[type=number]{width:100%;height:46px;padding:0 12px;border:1.5px solid #cfdcd4;border-radius:12px;background:#fbfcfa;color:var(--zo-yazi);font-size:15px;font-weight:650}
.zo-row{display:flex;gap:8px}
.zo-row input{flex:1}
.zo-zar2{flex:0 0 52px;font-size:20px}
.zo-form .zo-chk{display:flex;align-items:center;gap:8px;font-weight:650;margin:10px 0}
.zo-chk input{width:19px;height:19px;accent-color:var(--zo-ana)}
.zo-yazdir{width:100%;gap:8px;margin-top:8px}
.zo-tip{font-size:12.5px;color:var(--zo-soluk);background:#f4f6f2;border-radius:10px;padding:10px 12px;margin:10px 0 0}
.zo-tip:empty{display:none}
.zo-onizleme{background:#e9ede7;border-radius:18px;padding:16px;overflow:hidden}
.zo-sayfalar{transform-origin:top left}

/* A4 sayfa */
.zo-sheet{width:210mm;height:297mm;padding:12mm 13mm 9mm;background:#fff;color:#19353b;margin:0 auto 16px;box-shadow:0 4px 18px rgba(0,0,0,.14);display:flex;flex-direction:column;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.zo-sh-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2.5px solid #19353b;padding-bottom:2.5mm}
.zo-sh-head h2{margin:0;font-size:21pt;letter-spacing:-.4px;line-height:1.1}
.zo-sh-head small{display:block;font-size:11pt;font-weight:700;color:#526b6e;margin-top:1mm}
.zo-sh-brand{display:flex;align-items:center;gap:2mm;text-align:right;font-size:8.5pt;font-weight:700;color:#637777;line-height:1.25}
.zo-sh-brand b{display:block;font-size:10.5pt;color:#135e64}
.zo-sh-name{display:flex;gap:6mm;margin-top:4mm;font-size:11pt;font-weight:700}
.zo-sh-name span{flex:1;border-bottom:1.2px dotted #637777;padding-bottom:1mm}
.zo-sh-name span.k{flex:.45}
.zo-sh-rule{margin-top:3mm;font-size:10pt;background:#eef4f0;border-radius:3mm;padding:2.3mm 4mm;font-weight:600;line-height:1.4}
.zo-sh-body{flex:1 1 0;display:grid;align-content:space-evenly;justify-items:center;gap:4mm 0;padding-top:2mm;min-height:0;overflow:hidden}
.zo-pz{display:flex;flex-direction:column;align-items:stretch}
.zo-pz .zo-svg{width:100%;height:auto;display:block}
.zo-lb{font-weight:800;font-size:10.5pt;margin-bottom:1.2mm}
.zo-lb i{font-style:normal;font-weight:650;color:#8a9a99;font-size:8.5pt;margin-left:2mm}
.zo-sh-foot{display:flex;justify-content:space-between;gap:4mm;font-size:8pt;color:#708384;font-weight:650;border-top:1px solid #d5ddd6;padding-top:2mm}

/* Bildirim ve tebrik */
.zo-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#193f44;color:#fff;font-size:14px;font-weight:700;padding:12px 20px;border-radius:99px;box-shadow:0 10px 26px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:.22s;z-index:60;max-width:92vw;text-align:center}
.zo-toast.show{opacity:1;transform:translate(-50%,0)}
.zo-modal{position:fixed;inset:0;background:rgba(25,53,59,.45);display:none;align-items:center;justify-content:center;z-index:70;padding:16px}
.zo-modal.show{display:flex}
.zo-mbox{background:#fff;border-radius:24px;padding:26px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:zoPop .3s ease}
@keyframes zoPop{0%{transform:scale(.7)}70%{transform:scale(1.05)}100%{transform:scale(1)}}
.zo-emo{font-size:54px}
.zo-mbox h2{margin:6px 0;font-size:26px}
.zo-mbox p{margin:0 0 16px;color:#526b6e;font-weight:650}
.zo-mbtns{display:grid;gap:8px}

@media(max-width:900px){
  .zo-play,.zo-tgrid{grid-template-columns:1fr}
  .zo-board .zo-svg{max-height:none}
  .zo-acts{grid-template-columns:repeat(6,1fr)}
  .zo-act{font-size:11px}
  .zo-pad{grid-template-columns:repeat(var(--kolon-m,var(--kolon,5)),1fr)}
}
@media(max-width:600px){
  .zo{padding-top:14px}
  .zo-levels{grid-template-columns:repeat(2,1fr);gap:8px}
  .zo-modes{width:100%}
  .zo-modes button{flex:1;padding:9px 6px;font-size:13px}
  .zo-ikon{width:50px;height:50px;font-size:28px}
  .zo-board{padding:8px;border-radius:16px}
  .zo-acts{grid-template-columns:repeat(3,1fr)}
  .zo-num{min-height:52px;font-size:24px}
}

/* ---------- v31 ---------- */
.zo-sayfalar.zo-yukleniyor{opacity:.35;transition:opacity .15s}
@media(max-width:600px){
  .zo-levels{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}
  .zo-lvl{align-items:center;text-align:center;padding:8px 4px;border-radius:12px}
  .zo-lvl b{font-size:13px}
  .zo-lvl span{font-size:10.5px;line-height:1.25}
  .zo-lvl i{font-size:10px;letter-spacing:0}
  .zo-bar{gap:6px}
  .zo-pill label{font-size:0}
  .zo-pill label::before{content:"No";font-size:13px}
  .zo-pill input{width:58px}
  .zo-zar{width:42px;height:42px}
  .zo-sure{font-size:15px;padding:7px 11px}
}
/* ---------- /v31 ---------- */
@page{size:A4;margin:0}
@media print{
  html,body{background:#fff!important}
  .header,.footer,.zo-crumbs,.zo-head,#zoOyna,.zo-form,.zo-toast,.zo-modal,.skip{display:none!important}
  .zo{padding:0!important;max-width:none!important;margin:0!important}
  #zoOgr{display:block!important}
  .zo-tgrid{display:block!important}
  .zo-onizleme{padding:0!important;background:#fff!important;height:auto!important;overflow:visible!important;border-radius:0}
  .zo-sayfalar{transform:none!important;width:auto!important}
  .zo-sheet{margin:0;box-shadow:none;break-after:page;page-break-after:always}
  .zo-sheet:last-child{break-after:auto;page-break-after:auto}
}

/* Oyuna özel SVG öğeleri */
.zo-hucre.zo-fk{stroke:#19353b;stroke-width:2.5}
.zo-ok-isaret{fill:none;stroke:#ae3766;stroke-width:3.6;stroke-linecap:round;stroke-linejoin:round}
.zo-apt-ip{fill:#fdedd9;stroke:#e0b98a;stroke-width:1.5}
.zo-apt-yazi{fill:#8a4a12;font-weight:800}
.zo-kk-cizgi{stroke:#8fa6a8;stroke-width:1.6}
.zo-kk-sayi{fill:#fff;font-weight:800}
.zo-cm-kutu{fill:#e0f3f0;stroke:#9cc6c1;stroke-width:1.5}
.zo-cm-sayi{fill:#135e64;font-weight:800}
.zo-cm-aralik{fill:#ae3766;font-weight:800}
.zo-ik-op{fill:#ae3766;font-weight:800}
.zo-ik-esit{fill:#637777;font-weight:800}
.zo-pr-bag{stroke:#d5ddd6;stroke-width:3}
.zo-pr-yol{stroke:#135e64;stroke-width:9;stroke-linecap:round}
.zo-pr{fill:#fff;stroke:#19353b;stroke-width:2.5}
.zo-pr.on{fill:#135e64;stroke:#0b454a}
.zo-pr.hata{fill:#c0392b;stroke:#8e2a1f}
.zo-pr-r{fill:#19353b;font-weight:800}
.zo-pr-r.on{fill:#fff}
.zo-kart{fill:#fbfcfa;stroke:#cfdcd4;stroke-width:1.5}
.zo-kart-h{fill:#fff;stroke:#d5ddd6;stroke-width:1}
.zo-kart-c{fill:none;stroke:#19353b;stroke-width:2}
.zo-kart-y{fill:#f0b429;stroke:#b7791f;stroke-width:1}
.zo-kart-x{stroke:#c0392b;stroke-width:3.5;stroke-linecap:round;fill:none}
.zo-kart-tik{stroke:#2f7a4a;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;fill:none}
.zo-kart-rakam{fill:#2f7a4a;font-weight:800}
.zo-kart-yazi{fill:#19353b;font-weight:750}
.zo-kart-no{fill:#193f44}
.zo-kart-noy{fill:#fff;font-weight:800}
.zo-cip{stroke:rgba(0,0,0,.28);stroke-width:1}
.zo-cip.ip{stroke:#ae3766;stroke-width:3.5}
.zo-cip-y{fill:#fff;font-weight:800;paint-order:stroke;stroke:rgba(0,0,0,.45);stroke-width:2px;pointer-events:none}
.zo-mf{stroke:rgba(0,0,0,.35);stroke-width:1.2}
.zo-mf-bos{fill:none;stroke:#19353b;stroke-width:2.2;stroke-dasharray:4 2.5}
.zo-num.svgli svg{width:42px;height:42px}
.zo-ys{fill:#f0b429;stroke:#9a6a12;stroke-width:1.5;stroke-linejoin:round}
.zo-ys.hata{fill:#c0392b;stroke:#7d1f15}
.zo-ys-nokta{fill:#526b6e}
.zo-hucre.zo-deniz{fill:#f3f9fb}
.zo-hucre.zo-deniz.ver{fill:#e6f1f4}
.zo-gemi{fill:#193f44}
.zo-gemi.acik{fill:#135e64;stroke:#f5d586;stroke-width:2.5}
.zo-gemi.hata{fill:#c0392b}
.zo-gemi.filo{fill:#526b6e}
.zo-su{fill:none;stroke:#1c7ed6;stroke-width:3;stroke-linecap:round}
.zo-su.acik{stroke:#135e64}
.zo-ab-sayi{fill:#19353b;font-weight:800}
.zo-ab-sayi.tamam{fill:#9aa9a8}
.zo-ab-sayi.asim{fill:#c0392b}
.zo-kk-serit{fill:#f0f3ee}
.zo-kk-ip{fill:#19353b;font-weight:800}
.zo-kk-ip.tamam{fill:#a9b7b5}
.zo-hucre.zo-kk-dolu{fill:#193f44}
.zo-hucre.zo-kk-dolu.hata{fill:#c0392b}
.zo-kk-x{stroke:#8a9a99;stroke-width:2.5;stroke-linecap:round;fill:none}
.zo-kk-x.hata{stroke:#c0392b}
.zo-abc-yol{fill:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.zo-abc-uc{stroke-width:2.5}
.zo-abc-harf{fill:#fff;font-weight:800}
.zo-abc-harf.soru{fill:#19353b}
.zo-pt-nokta{fill:#b9c5bf}
.zo-pt-nokta.hata{fill:#c0392b}
.zo-pt-yol{stroke:#135e64;stroke-width:9;stroke-linecap:round}
.zo-pt-yol.hata{stroke:#c0392b}
.zo-cit-zemin{fill:#fbfcfa}
.zo-cit-ip{fill:#19353b;font-weight:800}
.zo-cit-ip.tamam{fill:#a9b7b5}
.zo-cit-ip.asim{fill:#c0392b}
.zo-cit-cizgi{stroke:#135e64;stroke-width:7;stroke-linecap:round;pointer-events:none}
.zo-cit-cizgi.hata{stroke:#c0392b}
.zo-cit-x{stroke:#8a9a99;stroke-width:2.5;stroke-linecap:round;fill:none;pointer-events:none}
.zo-cit-x.hata{stroke:#c0392b}
.zo-cit-nokta{fill:#19353b}
.zo-cit-hit{fill:transparent;cursor:pointer}
.zo-cit-hit:hover{fill:rgba(19,94,100,.12)}
.zo-pn-dis{stroke:#19353b;stroke-width:4;stroke-linecap:square}
.zo-pn-ayri{stroke:#19353b;stroke-width:2.5}
.zo-pn-yazi{fill:#fff;font-weight:800;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.zo-pn-parca{fill:#9aa9a8;stroke:#fff;stroke-width:1}
.zo-num.zo-pn{flex-direction:column;gap:0;min-height:74px}
.zo-num.zo-pn svg{width:44px;height:44px}
.zo-pn-harf{font-size:13px;color:#19353b}
.zo-num.zo-pn.on .zo-pn-harf{color:#fff}
/* ---------- v35 dokunmatik ---------- */
.zo-board,#zoPad,.zo-bar,.zo-levels{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#zoPad button,.zo-bar button,.zo-lvl,.zo-pill{touch-action:manipulation}
/* ---------- /v35 ---------- */
