*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  --bg:#161d2c;--panel:#1c2333;--card:#222b3a;--border:#2a3347;--b2:#354058;
  --t1:#e6e7e8;--t2:#787b86;--t3:#434651;
  --green:#26a69a;--red:#ef5350;--amber:#f5a61c;--blue:#2962ff;
  --sb:env(safe-area-inset-bottom,0px);--st:env(safe-area-inset-top,0px);
}
html,body{height:100%;overflow:hidden;background:#08090d;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',sans-serif;touch-action:none;}
#frame{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(100vw,393px);height:min(100vh,852px);
  background:var(--bg);border-radius:min(2vw,16px);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 40px 120px rgba(0,0,0,.75);}
.scr{position:absolute;inset:0;display:flex;flex-direction:column;
  padding-top:var(--st);background:var(--bg);}
.scr.off{display:none;}

/* ── SHARED ── */
.spin{width:26px;height:26px;border:2px solid var(--b2);border-top-color:var(--amber);
  border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;flex-shrink:0;}

/* ── ONBOARDING ── */
#onboard{align-items:center;justify-content:center;padding:28px 24px;}
.ob-logo{width:72px;height:72px;border-radius:20px;background:var(--panel);
  border:1px solid var(--b2);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.ob-title{font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:6px;text-align:center;}
.ob-title em{color:var(--amber);font-style:normal;}
.ob-sub{font-size:13px;color:var(--t2);text-align:center;line-height:1.6;margin-bottom:32px;max-width:280px;}
.ob-form{width:100%;margin-bottom:12px;}
.ob-label{font-size:11px;font-weight:600;color:var(--t2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;display:block;}
.ob-input{width:100%;background:var(--card);border:1px solid var(--border);border-radius:10px;
  padding:13px 14px;color:var(--t1);font-size:15px;outline:none;transition:border .15s;}
.ob-input:focus{border-color:var(--amber);}
.ob-input::placeholder{color:var(--t3);}
.ob-err{font-size:11px;color:var(--red);margin-top:6px;min-height:16px;}
.ob-create{width:100%;padding:14px;border-radius:12px;background:var(--amber);color:#000;
  font-size:15px;font-weight:700;border:none;cursor:pointer;margin-bottom:10px;}
.ob-create:active{opacity:.85;}
.ob-skip{width:100%;padding:11px;border-radius:11px;border:1px solid var(--border);
  background:transparent;color:var(--t2);font-size:13px;cursor:pointer;}
.ob-skip:active{background:var(--card);}
.ob-disc{font-size:10px;color:var(--t3);text-align:center;margin-top:16px;line-height:1.5;}

/* ── HOME ── */
.hm-bg{position:absolute;inset:0;pointer-events:none;opacity:.12;}
#bg-cv{width:100%;height:100%;}
.hw{position:relative;z-index:1;width:100%;height:100%;
  overflow-y:auto;padding:20px 20px calc(24px + var(--sb));
  display:flex;flex-direction:column;align-items:center;}
.hw::-webkit-scrollbar{display:none;}
/* top bar on home */
.home-topbar{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:18px;}
.home-topbar-l{display:flex;align-items:center;gap:8px;}
.user-pill{display:flex;align-items:center;gap:7px;background:var(--panel);
  border:1px solid var(--border);border-radius:20px;padding:5px 10px 5px 5px;cursor:pointer;}
.user-pill:hover{border-color:var(--b2);}
.up-name{font-size:12px;font-weight:600;color:var(--t1);}
.up-guest{font-size:12px;color:var(--t2);}
.home-topbar-r{display:flex;gap:6px;}
.icon-btn{width:34px;height:34px;border-radius:10px;background:var(--panel);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  color:var(--t2);cursor:pointer;}
.icon-btn:hover{border-color:var(--b2);color:var(--t1);}

.app-ttl{font-size:24px;font-weight:700;letter-spacing:-.5px;margin-bottom:5px;}
.app-ttl em{color:var(--amber);font-style:normal;}
.app-tagline{font-size:12px;color:var(--t2);margin-bottom:18px;text-align:center;}
/* lang row */
.lang-row{display:flex;gap:5px;margin-bottom:18px;}
.lang-btn{padding:4px 12px;border-radius:20px;border:1px solid var(--border);
  background:transparent;color:var(--t2);font-size:11px;font-weight:600;cursor:pointer;}
.lang-btn.active{background:rgba(247,166,0,.12);border-color:rgba(247,166,0,.4);color:var(--amber);}
.st-row{display:flex;gap:8px;width:100%;margin-bottom:18px;}
.stc{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 6px;text-align:center;}
.sv{font-size:18px;font-weight:700;font-family:monospace;}
.sk{font-size:9px;color:var(--t2);letter-spacing:.08em;text-transform:uppercase;margin-top:2px;}
.go-btn{width:100%;padding:15px;border-radius:14px;background:var(--amber);color:#000;
  font-size:16px;font-weight:700;border:none;cursor:pointer;
  box-shadow:0 6px 24px rgba(247,166,0,.28);margin-bottom:14px;}
.go-btn:active{opacity:.85;}
.how-card{width:100%;background:var(--panel);border:1px solid var(--border);
  border-radius:14px;padding:14px;margin-bottom:14px;}
.how-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--amber);margin-bottom:10px;}
.how-step{display:flex;align-items:flex-start;gap:10px;margin-bottom:9px;}
.how-step:last-child{margin-bottom:0;}
.how-num{width:20px;height:20px;border-radius:50%;background:rgba(247,166,0,.15);
  border:1px solid rgba(247,166,0,.3);display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:700;color:var(--amber);flex-shrink:0;margin-top:1px;}
.how-text{font-size:11px;color:var(--t2);line-height:1.55;}
.how-text b{color:var(--t1);}
.pairs-lbl{font-size:10px;color:var(--t3);margin-bottom:12px;text-align:center;}
.disc{font-size:10px;color:var(--t3);text-align:center;line-height:1.5;}

/* ── LOADING ── */
#ld{position:absolute;inset:0;background:var(--bg);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;z-index:400;}
#ld.off{display:none;}
.ld-t{font-size:13px;color:var(--t2);}

/* ── OVERLAY SHEET (profile / leaderboard) ── */
.overlay{position:absolute;inset:0;background:rgba(8,10,18,.88);backdrop-filter:blur(8px);
  display:flex;align-items:flex-end;z-index:250;}
.overlay.off{display:none;}
.ov-sheet{background:var(--panel);border:1px solid var(--b2);border-radius:22px 22px 0 0;
  width:100%;max-height:88%;display:flex;flex-direction:column;
  padding-bottom:calc(16px + var(--sb));}
.ov-handle{width:36px;height:4px;border-radius:2px;background:var(--border);
  margin:12px auto 0;}
.ov-header{display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px 10px;}
.ov-title{font-size:16px;font-weight:700;}
.ov-close{width:28px;height:28px;border-radius:8px;background:var(--card);
  border:none;color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.ov-body{flex:1;overflow-y:auto;padding:0 18px 8px;}
.ov-body::-webkit-scrollbar{display:none;}

/* Profile sheet */
.prof-hero{display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--card);border-radius:12px;margin-bottom:16px;}
.prof-info{flex:1;min-width:0;}
.prof-name{font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t1);}
.prof-since{font-size:11px;color:var(--t3);margin-top:2px;}
.edit-btn{padding:6px 12px;border-radius:8px;background:transparent;
  border:1px solid var(--border);color:var(--t2);font-size:11px;font-weight:600;cursor:pointer;}
.edit-btn:hover{border-color:var(--b2);color:var(--t1);}
.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.jc{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px;}
.jc-val{font-size:20px;font-weight:700;font-family:monospace;margin-bottom:2px;color:var(--t1);}
.jc-lbl{font-size:10px;color:var(--t2);letter-spacing:.06em;text-transform:uppercase;}
.rank-strip{display:flex;gap:8px;margin-bottom:14px;}
.rank-box{flex:1;background:var(--card);border:1px solid var(--border);border-radius:10px;
  padding:10px;text-align:center;}
.rank-pos{font-size:22px;font-weight:700;font-family:monospace;}
.rank-lbl{font-size:10px;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;}
.save-btn{width:100%;padding:13px;border-radius:12px;background:var(--amber);color:#000;
  font-size:14px;font-weight:700;border:none;cursor:pointer;margin-top:8px;}
.save-btn:active{opacity:.85;}
.danger-btn{width:100%;padding:11px;border-radius:12px;background:transparent;
  border:1px solid rgba(239,83,80,.3);color:rgba(239,83,80,.7);
  font-size:13px;cursor:pointer;margin-top:8px;}
.edit-row{display:flex;gap:8px;align-items:flex-end;margin-bottom:12px;}
.edit-input{flex:1;background:var(--bg);border:1px solid var(--amber);border-radius:8px;
  padding:10px 12px;color:var(--t1);font-size:14px;outline:none;}

/* Leaderboard sheet */
.lb-tabs{display:flex;gap:6px;margin-bottom:14px;}
.lb-tab{flex:1;padding:9px;border-radius:8px;border:1px solid var(--border);
  background:var(--card);color:var(--t2);font-size:12px;font-weight:600;cursor:pointer;text-align:center;}
.lb-tab.active{background:rgba(247,166,0,.12);border-color:rgba(247,166,0,.4);color:var(--amber);}
.lb-row{display:flex;align-items:center;gap:10px;padding:9px 10px;
  background:var(--card);border-radius:10px;margin-bottom:6px;}
.lb-row.me{border:1px solid rgba(247,166,0,.3);background:rgba(247,166,0,.06);}
.lb-rank{font-size:13px;font-weight:700;font-family:monospace;width:26px;
  text-align:center;flex-shrink:0;color:var(--t2);}
.lb-rank.gold{color:#ffd700;}
.lb-rank.silver{color:#c0c0c0;}
.lb-rank.bronze{color:#cd7f32;}
.lb-uname{flex:1;font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t1);}
.lb-meta{font-size:10px;color:var(--t2);}
.lb-val{font-size:13px;font-weight:700;font-family:monospace;flex-shrink:0;}
.lb-empty{text-align:center;color:var(--t3);font-size:13px;padding:24px 0;}
.lb-loading{display:flex;justify-content:center;padding:24px 0;}

/* W1 Bias-Only badge */
#ph-w1bias{animation:fadeIn .25s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tfb.w1-active{background:rgba(41,98,255,.18)!important;color:#6090ff!important;}

/* ── GAME (same as v7) ── */
#game{background:var(--bg);}
.g-top{height:44px;background:var(--panel);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 10px;gap:7px;flex-shrink:0;}
.g-sym{font-size:13px;font-weight:700;color:var(--t1);}
.g-tf-badge{font-size:10px;font-weight:700;background:var(--card);border:1px solid var(--border);
  border-radius:4px;padding:2px 5px;color:var(--t2);}
.g-date{font-size:10px;color:var(--t3);}
.g-r{margin-left:auto;display:flex;align-items:center;gap:6px;}
.sc-pill{background:var(--card);border:1px solid var(--border);border-radius:20px;
  padding:3px 9px;font-size:11px;font-weight:700;font-family:monospace;}
.x-btn{width:28px;height:28px;border-radius:7px;background:var(--card);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  color:var(--t2);cursor:pointer;flex-shrink:0;}
.tf-row{display:flex;background:var(--panel);border-bottom:1px solid var(--border);
  padding:0 2px;height:32px;align-items:center;flex-shrink:0;}
.tfb{flex:1;height:26px;border-radius:5px;border:none;background:transparent;
  color:var(--t2);font-size:10px;font-weight:700;cursor:pointer;padding:0 2px;}
.tfb.active{background:rgba(41,98,255,.18);color:var(--blue);}
.draw-row{display:flex;background:var(--panel);border-bottom:1px solid var(--border);
  padding:2px 5px;gap:2px;height:40px;align-items:center;flex-shrink:0;
  overflow-x:auto;scrollbar-width:none;}
.draw-row::-webkit-scrollbar{display:none;}
.db{width:32px;height:32px;border-radius:6px;border:none;background:transparent;
  color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .12s;}
.db.active{background:rgba(41,98,255,.15);color:var(--blue);}
.db:active{opacity:.7;}
.db.undo-btn:disabled{opacity:.3;cursor:not-allowed;}
.db.undo-btn{color:var(--amber) !important;}
.db.magnet-btn.active{background:rgba(41,98,255,.2) !important;color:#60aaff !important;}
.db.eye-btn.active{background:rgba(120,123,134,.15) !important;color:var(--t1) !important;}
.g-pnl{font-size:11px;font-weight:700;font-family:monospace;padding:2px 8px;border-radius:12px;display:none;}
.dsep{width:1px;height:20px;background:var(--border);flex-shrink:0;margin:0 2px;}
.cw{flex:1;position:relative;overflow:hidden;cursor:grab;}
@keyframes entryFlash{0%{opacity:.8}50%{opacity:.3}100%{opacity:0}}
.entry-flash{position:absolute;inset:0;pointer-events:none;z-index:8;}
.entry-flash.long{background:rgba(38,166,154,.25);animation:entryFlash .8s ease-out forwards;}
.entry-flash.short{background:rgba(239,83,80,.2);animation:entryFlash .8s ease-out forwards;}
.cw:active{cursor:grabbing;}
canvas#cv{position:absolute;inset:0;display:block;}
.reset-btn{position:absolute;right:8px;bottom:8px;width:28px;height:28px;
.sess-toggle{position:absolute;left:10px;top:10px;display:inline-flex !important;align-items:center;gap:6px;background:rgba(20,24,36,.92);border:1px solid var(--b3);border-radius:14px;padding:5px 10px 5px 8px;font-size:11px;color:var(--t1);cursor:pointer;z-index:50;-webkit-tap-highlight-color:transparent;font-family:inherit;line-height:1;}
.sess-toggle:hover{border-color:var(--b3);color:var(--t1);}
.sess-toggle.off{opacity:.42;}
.sess-toggle.off .sess-dots{opacity:.3;}
.sess-toggle svg{display:block;}
.sess-toggle .sess-dots{display:inline-flex;gap:2px;margin-left:2px;}
.sess-toggle .sess-dots i{width:5px;height:5px;border-radius:50%;display:block;}
  border-radius:6px;background:rgba(30,34,45,.9);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t2);z-index:10;}
.txt-overlay{position:absolute;inset:0;background:rgba(8,10,18,.75);
  display:flex;align-items:center;justify-content:center;z-index:350;
  touch-action:auto;-webkit-overflow-scrolling:touch;}
.txt-overlay.off{display:none;}
.txt-overlay input{touch-action:auto;-webkit-user-select:text;user-select:text;}
.txt-box{background:var(--panel);border:1px solid var(--amber);border-radius:12px;
  padding:14px 16px;width:260px;display:flex;flex-direction:column;gap:10px;}
.txt-box input{background:var(--bg);border:1px solid var(--b2);border-radius:8px;
  padding:9px 12px;color:var(--t1);font-size:16px;outline:none;width:100%;}
.txt-box input:focus{border-color:var(--amber);}
.txt-box-label{font-size:11px;color:var(--t2);font-weight:600;letter-spacing:.06em;}
.txt-btns{display:flex;gap:8px;}
.txt-ok{flex:1;padding:9px;border-radius:8px;background:var(--amber);color:#000;
  font-weight:700;font-size:13px;border:none;cursor:pointer;}
.txt-cancel{padding:9px 14px;border-radius:8px;border:1px solid var(--border);
  background:transparent;color:var(--t2);font-size:13px;cursor:pointer;}
.entry-banner{position:absolute;top:8px;left:50%;transform:translateX(-50%);
  background:rgba(247,166,0,.12);border:1px solid rgba(247,166,0,.3);
  border-radius:20px;padding:4px 14px;font-size:10px;font-weight:700;
  color:var(--amber);pointer-events:none;white-space:nowrap;letter-spacing:.06em;}
.entry-banner.off{display:none;}
.step-guide{position:absolute;left:50%;transform:translateX(-50%);
  bottom:42px;background:rgba(20,24,36,.95);border:1px solid var(--b2);
  border-radius:10px;padding:6px 14px;font-size:11px;color:var(--t2);
  pointer-events:none;white-space:nowrap;z-index:15;}
.step-guide.off{opacity:0;}
.step-guide b{color:var(--amber);}
.sheet{background:var(--panel);border-top:1px solid var(--border);
  padding:0 12px;padding-bottom:calc(10px + var(--sb));flex-shrink:0;
  position:relative;overflow:visible;transition:max-height .3s ease,padding .3s ease;}
.sheet .sheet-inner{padding-top:10px;overflow:hidden;transition:max-height .3s ease;}
.sheet.collapsed{max-height:28px;padding-bottom:0;overflow:visible;}
.sheet.collapsed .sheet-inner{max-height:0;overflow:hidden;visibility:hidden;}


.dir-row{display:flex;gap:7px;margin-bottom:9px;}
.db2{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);
  background:var(--card);font-weight:700;font-size:13px;cursor:pointer;}
.db2.lon{color:rgba(38,166,154,.6);border-color:rgba(38,166,154,.3);}
.db2.lon.on{background:rgba(38,166,154,.15);border-color:var(--green);color:var(--green);}
.db2.sho{color:rgba(239,83,80,.6);border-color:rgba(239,83,80,.3);}
.db2.sho.on{background:rgba(239,83,80,.15);border-color:var(--red);color:var(--red);}
.lv-row{display:flex;gap:7px;margin-bottom:9px;}
.lvb{flex:1;background:var(--card);border:1px solid var(--border);border-radius:10px;
  padding:8px 9px;cursor:pointer;}
.lvb.sel-en{border-color:var(--amber);}
.lvb.sel-tp{border-color:var(--green);}
.lvb.sel-sl{border-color:var(--red);}
.lv-tag{font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px;}
.lv-tag.en{color:var(--amber);}.lv-tag.tp{color:var(--green);}.lv-tag.sl{color:var(--red);}
.lv-val{font-size:12px;font-weight:600;font-family:monospace;color:var(--t1);}
.rr-strip{display:flex;align-items:center;justify-content:space-between;
  background:var(--card);border:1px solid var(--border);border-radius:10px;
  padding:7px 11px;margin-bottom:9px;}
.rr-lbl{font-size:11px;color:var(--t2);}
.rr-val{font-size:12px;font-weight:700;font-family:monospace;color:var(--t1);}
.rr-hint{font-size:10px;color:var(--t3);}
.rdy-btn{width:100%;padding:13px;border-radius:12px;background:var(--green);
  color:#000;font-size:14px;font-weight:700;border:none;cursor:pointer;}
.rdy-btn:disabled{background:var(--card);color:var(--t3);border:1px solid var(--border);}
.rdy-btn:not(:disabled):active{opacity:.85;}
.rp-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;}
.rp-left{display:flex;align-items:center;gap:7px;}
.rp-dot{width:6px;height:6px;border-radius:50%;background:var(--amber);animation:blink 1s infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
.rp-info{font-size:12px;color:var(--t2);}
.rp-info b{color:var(--t1);}
.spd-row{display:flex;align-items:center;gap:8px;padding:6px 0 2px;}
.spd-label{font-size:10px;color:var(--t3);font-family:monospace;flex-shrink:0;width:30px;}
.spd-label:last-of-type{text-align:right;}
.spd-slider{flex:1;height:3px;accent-color:var(--amber);cursor:pointer;}
.spd-val{font-size:11px;font-weight:700;font-family:monospace;color:var(--amber);width:30px;text-align:right;flex-shrink:0;}
.rp-btns{display:flex;gap:6px;}
.skip-btn{padding:5px 10px;border-radius:7px;background:rgba(239,83,80,.12);border:1px solid rgba(239,83,80,.3);color:var(--red);font-size:11px;font-weight:700;cursor:pointer;}
/* Result */
#result{position:absolute;inset:0;background:rgba(8,10,18,.9);backdrop-filter:blur(6px);
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;z-index:300;}
#result.off{display:none;}
#result-cv-wrap{flex:1;position:relative;overflow:hidden;min-height:0;}
canvas#result-cv{position:absolute;inset:0;width:100%;height:100%;}
.rc{background:var(--panel);border:1px solid var(--b2);border-radius:22px 22px 0 0;
  padding:20px 20px;padding-bottom:calc(20px + var(--sb));width:100%;}
.re{font-size:46px;text-align:center;margin-bottom:5px;}
.rt{font-size:20px;font-weight:700;text-align:center;margin-bottom:4px;}
.rs{font-size:12px;color:var(--t2);text-align:center;margin-bottom:14px;}
.rstats{background:var(--card);border-radius:11px;border:1px solid var(--border);
  padding:11px 13px;margin-bottom:12px;}
.rrow{display:flex;justify-content:space-between;padding:3px 0;}
.rk{font-size:11px;color:var(--t2);}.rv{font-size:11px;font-weight:600;font-family:monospace;color:var(--t1);}
.rdiv{height:1px;background:var(--border);margin:5px 0;}
.rpts-row{display:flex;justify-content:space-between;align-items:center;}
.rpts-lbl{font-size:12px;color:var(--t2);}
.rpts-val{font-size:18px;font-weight:700;font-family:monospace;}
.nxt{width:100%;padding:13px;border-radius:12px;background:var(--amber);color:#000;
  font-size:15px;font-weight:700;border:none;cursor:pointer;margin-bottom:7px;}
.nxt:active{opacity:.85;}
.hmb{width:100%;padding:10px;border-radius:11px;border:1px solid var(--border);
  background:transparent;color:var(--t2);font-size:13px;cursor:pointer;}
.hmb:active{background:var(--card);}


/* ══════════════════════════════════════════════════════════════════
   v49 — DESKTOP RESPONSIVE (1200px+)
   Mobilde HİÇBİR ŞEY değişmez, sadece 1200px+ masaüstünde yeni layout.
   
   STRATEJİ:
   - #game flex-column kalıyor (orijinal davranış).
   - .cw ve .tf-row flex child olarak kalıyorlar (boyutları doğal olarak
     hesaplanır, canvas resize güvenle çalışır).
   - Sol toolbar (.draw-row) ve sağ panel (.sheet) absolute positioned,
     game ekranının solunda ve sağında duruyorlar.
   - #game'e padding-left:56px ve padding-right:300px ekleyerek flex
     child'ları (g-top, tf-row, cw) bu padding'den ötürü dar alan içinde
     tutuyoruz. Böylece toolbar ve sheet fiziksel olarak kenarlara yapışıyor
     ama chart içerikleri onlarla çakışmıyor.
   ══════════════════════════════════════════════════════════════════ */
@media (min-width: 1200px){
  
  /* Frame: ekranı tam doldur */
  #frame{
    width: 100vw;
    height: 100vh;
    max-width: none;
    border-radius: 0;
    box-shadow: none;
    left: 0;
    top: 0;
    transform: none;
  }
  
  /* HOME */
  .hw{
    max-width: 600px;
    margin: 0 auto;
    padding: 48px 32px calc(48px + var(--sb));
  }
  .home-topbar{max-width: 600px; margin-left: auto; margin-right: auto;}
  .app-ttl{font-size: 32px;}
  .app-tagline{font-size: 14px; margin-bottom: 24px;}
  .st-row{margin-bottom: 24px;}
  .sv{font-size: 22px;}
  .go-btn{padding: 18px; font-size: 17px;}
  
  /* ONBOARDING */
  #onboard{padding: 48px;}
  .ob-title{font-size: 34px;}
  .ob-sub{font-size: 14px; max-width: 360px;}
  .ob-input{padding: 14px 16px; font-size: 16px;}
  
  /* ── GAME: flex-column AYNI KALIYOR, sadece padding'le kenarlarda yer açıyoruz ── */
  #game{
    padding-left: 56px;          /* sol toolbar'a yer */
    padding-right: 300px;         /* sağ panele yer */
    transition: padding-right .3s ease;
    box-sizing: border-box;
  }
  
  /* Sheet kapalıyken chart sağa 40px çıkıntıya kadar uzasın */
  #game:has(.sheet.collapsed){
    padding-right: 40px;
  }
  
  /* Header */
  .g-top{
    height: 48px;
    padding: 0 16px;
    gap: 10px;
  }
  .g-sym{font-size: 15px;}
  .g-tf-badge{font-size: 11px; padding: 3px 7px;}
  .g-date{font-size: 11px;}
  .sc-pill{font-size: 12px; padding: 4px 11px;}
  .x-btn{width: 32px; height: 32px;}
  
  /* Sol toolbar: #game padding'inin içine absolute positioned */
  .draw-row{
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 56px;
    flex-direction: column;
    height: auto;
    padding: 8px 0;
    gap: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    border-right: 1px solid var(--border);
    border-bottom: none;
    justify-content: flex-start;
    align-items: center;
    z-index: 3;
  }
  .draw-row::-webkit-scrollbar{display: none;}
  .db{width: 40px; height: 40px;}
  .db svg{width: 18px; height: 18px;}
  .dsep{
    width: 28px;
    height: 1px;
    margin: 6px 0;
  }
  
  /* TF row: normal flex flow'da kalıyor ama masaüstünde biraz daha ferah */
  .tf-row{
    height: 36px;
    padding: 4px 12px;
    gap: 4px;
  }
  .tfb{
    flex: 0 0 auto;
    min-width: 52px;
    height: 28px;
    font-size: 11px;
    padding: 0 12px;
  }
  
  /* Chart: flex:1 KORUNUYOR (orijinal). Boyut doğal olarak hesaplanır. */
  .cw{
    cursor: crosshair;
  }
  
  /* Reset button */
  .reset-btn{right: 12px; bottom: 12px; width: 32px; height: 32px;}
  
  /* Session toggle */
  .sess-toggle{left: 14px; top: 14px;}
  
  /* Sağ panel (sheet): absolute, #game'in padding-right alanında */
  .sheet{
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 300px;
    border-top: none;
    border-left: 1px solid var(--border);
    padding: 16px;
    padding-bottom: calc(16px + var(--sb));
    overflow-y: auto;
    overflow-x: visible;
    max-height: none;
    transition: right .3s ease;
    z-index: 2;
  }
  /* Collapsed: panel sağa kayar, 40px çıkıntı kalır.
     transform yerine right kullanıyoruz — transform stacking context
     yaratıp fixed child butonunu bozuyordu. */
  .sheet.collapsed{
    right: -260px;  /* 300 - 40 = 260 sağa kayar, 40 çıkıntı */
  }
  .sheet::-webkit-scrollbar{width: 6px;}
  .sheet::-webkit-scrollbar-thumb{background: var(--b2); border-radius: 3px;}
  .sheet .sheet-inner{
    max-height: none !important;
    overflow: visible !important;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    visibility: visible !important;
  }
  .sheet.collapsed .sheet-inner{visibility: hidden;}
  
  /* Sheet collapse button: sol kenarda dikey ortada, tam daire.
     ÖNEMLİ: #frame overflow:hidden olduğu için, butonun yarısı normal
     absolute positioning'te kesiliyordu. Çözüm: position:fixed ile
     viewport'a göre konumlandırıyoruz — frame overflow'u etkilemez. */
  .sheet > button:first-of-type{
    position: fixed !important;
    top: 50% !important;
    right: 282px !important;     /* 300px (sheet width) - 18px (yarı buton) */
    left: auto !important;
    transform: translateY(-50%);
    background: var(--panel) !important;
    width: 32px !important;
    height: 32px !important;
    z-index: 50;
    transition: right .3s ease;
  }
  #sheet-arrow{
    transform: rotate(-90deg) !important;
    transition: transform .3s;
  }
  /* Panel kapalıyken: button panelin 40px çıkıntısının sol kenarına kayar */
  .sheet.collapsed > button:first-of-type,
  #game:has(.sheet.collapsed) .sheet > button:first-of-type{
    right: 22px !important;     /* 40 (çıkıntı) - 18 (yarı buton) */
  }
  .sheet.collapsed #sheet-arrow{
    transform: rotate(90deg) !important;
  }
  
  /* Cancel setup button */
  #cancel-setup-btn{
    top: 10px !important;
    right: 10px !important;
  }
  
  /* Sheet içi: alt alta (dikey) */
  .lv-row{
    flex-direction: column;
    gap: 8px;
    margin-bottom: 0;
  }
  .lvb{padding: 10px 12px;}
  .lv-tag{font-size: 9px; margin-bottom: 3px;}
  .lv-val{font-size: 14px;}
  
  .dir-row{margin-bottom: 0;}
  .db2{padding: 12px; font-size: 14px;}
  
  .rr-strip{margin-bottom: 0; padding: 10px 14px;}
  .rr-lbl{font-size: 12px;}
  .rr-val{font-size: 14px;}
  .rr-hint{font-size: 11px;}
  
  .rdy-btn{padding: 15px; font-size: 15px;}
  .spd-row{padding: 8px 0 4px;}
  
  .entry-banner{top: 14px;}
  .step-guide{bottom: 70px;}  /* tarih bar'ı ve session yazılarından uzak */
  
  /* Overlay'ler */
  .ov-sheet{
    max-width: 520px;
    margin: 0 auto;
    border-radius: 18px !important;
    max-height: 85vh;
  }
  .overlay{
    align-items: center;
    justify-content: center;
    padding: 32px;
  }
  
  /* Result */
  #result{align-items: center; justify-content: center; padding: 40px;}
  #result-cv-wrap{
    max-width: 640px;
    max-height: 360px;
    border-radius: 14px 14px 0 0;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 16/9;
  }
  .rc{
    max-width: 640px;
    border-radius: 0 0 14px 14px;
  }
}

/* ══════════════════════════════════════════════════════════════════
   v49 — TABLET / GENİŞ MOBIL ARA BOYUT (900-1199px)
   ══════════════════════════════════════════════════════════════════ */
@media (min-width: 900px) and (max-width: 1199px){
  #frame{
    width: min(100vw, 520px);
    height: min(100vh, 900px);
  }
}
