.langfab{
  position:fixed; right:16px;
  bottom:calc(16px + env(safe-area-inset-bottom,0));
  width:48px; height:48px; border-radius:9999px;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; line-height:1; cursor:pointer;
  color:#eee; background:rgba(20,20,24,.60);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 4px 20px rgba(0,0,0,.45);
  z-index:2147483647;
}
.langfab:active{ transform:translateY(1px); }

.langmenu{
  position:fixed; right:16px;
  bottom:calc(76px + env(safe-area-inset-bottom,0));
  min-width:180px; border-radius:12px; overflow:hidden;
  background:rgba(12,13,16,.96);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 30px rgba(0,0,0,.50);
  z-index:2147483647; display:none;
}
.langitem{
  display:flex; gap:8px; align-items:center;
  padding:12px 14px; font:600 13px/1.2 system-ui,Segoe UI,Roboto,Arial;
  color:#e6e7eb; border-bottom:1px solid rgba(255,255,255,.06);
  cursor:pointer; -webkit-tap-highlight-color:rgba(255,255,255,.1);
}
.langitem:last-child{border-bottom:0}
.langitem:hover{background:rgba(255,255,255,.07)}
.langitem .dot{margin-left:auto; opacity:.6; font-size:12px}
.langitem .dot.active{opacity:1; color:#76d0ff}

/* Dokunmatik cihazlarda biraz büyüt */
@media (hover:none) and (pointer:coarse){
  .langfab{ width:56px; height:56px; font-size:22px; }
  .langmenu{ bottom:calc(90px + env(safe-area-inset-bottom,0)); min-width:200px; }
}

/* İstenirse body.no-langfab ile tamamen kapatılabilir */
body.no-langfab .langfab, body.no-langfab .langmenu{ display:none !important; }

/* Bazı global container'ların taşmasını engelle */
.langmenu * { pointer-events:auto }
