/* Mobil oynanış (place): style.css'ten sonra yüklenir. Yer seçme işareti, durum çubuğu ve onay kartı (başparmak bölgesi).
   Anchor: işaretin ucu (alt orta) seçilen zemin noktasındadır; konumu place-pin.js her karede transform ile verir. */
.place-pin { position: fixed; left: 0; top: 0; width: 56px; height: 76px; margin: -76px 0 0 -28px; z-index: var(--z-map-card);
  touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; cursor: grab; will-change: transform;
  --pin: #2f9e5b; --pin-ink: #fff; }
.place-pin[hidden], .place-bar[hidden] { display: none; }
/* While a placement card is up, the stale quest bubble and the left dock would cover its Vazgeç/Onayla buttons. */
body:has(.place-bar:not([hidden], [data-mode="chip"])) :is(#quick-dock, #coach-bubble, #coach-ring, #attrib, #chat[data-chat-mode="compact"]) { visibility: hidden; } /* the compact chat too (it sat over the bar's Vazgeç) */
.place-pin[data-tone="bad"] { --pin: #c93a3a; }
.place-pin-head { position: absolute; left: 6px; top: 0; width: 44px; height: 44px; box-sizing: border-box; border-radius: 50%;
  display: grid; place-items: center; font: 700 22px/1 var(--font-display, sans-serif); color: var(--pin-ink);
  background: var(--pin); border: 3px solid #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .45); transition: background-color .12s; }
.place-pin-stem { position: absolute; left: 26px; top: 42px; width: 4px; height: 26px; border-radius: 2px; background: var(--pin); box-shadow: 0 0 0 1px #fff; }
.place-pin-dot { position: absolute; left: 20px; top: 66px; width: 16px; height: 10px; border-radius: 50%; background: var(--pin); border: 2px solid #fff; box-sizing: border-box; opacity: .9; }
.place-pin.dragging { cursor: grabbing; }
.place-pin.dragging .place-pin-head { transform: scale(1.12); }

/* Durum çubuğu. Kart varken: kartın üst kenarına yapışık, içerik genişliğinde küçük bir hap (haritayı örtmez, pinle çakışmaz).
   Kart yokken (ipucu / uygun değil): kartın yerinde, kompakt; neden + Vazgeç + devre dışı Onayla. */
.place-bar { position: fixed; z-index: var(--z-action-card); right: 20px; width: min(280px, calc(100vw - 40px)); box-sizing: border-box;
  bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px) + 14px);
  padding: 6px 10px; border-radius: var(--radius-md, 10px); background: var(--glass); border: 2px solid var(--pin-tone, #7a6a4f);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .3); color: var(--ink); overflow-wrap: anywhere; }
.place-bar[data-tone="ok"] { --pin-tone: #2f9e5b; }
.place-bar[data-tone="bad"] { --pin-tone: #c93a3a; }
.place-msg { margin: 0; display: grid; grid-template-columns: auto 1fr; column-gap: 6px; align-items: baseline; font-size: 14px; line-height: 1.3; font-weight: 600; }
.place-bar[data-tone="ok"] .place-icon { color: #1f7a44; }
.place-bar[data-tone="bad"] .place-icon { color: #b02a2a; }
.place-actions { display: flex; gap: 8px; margin-top: 6px; }
.place-bar button { min-height: 44px; border-radius: var(--radius-md, 10px); border: 1px solid var(--border, #b9a77f); font-weight: 600; font-size: 15px;
  background: var(--surface, #f4ead2); color: var(--ink); cursor: var(--cursor-pointer, pointer); touch-action: manipulation; }
.place-cancel { flex: 0 1 36%; }
.place-confirm { flex: 1 1 56%; background: var(--btn-beige, #e8d9b0); }
.place-confirm:disabled { opacity: .5; cursor: not-allowed; }
.place-bar[data-mode="hint"] .place-confirm { display: none; }
.place-bar[data-mode="chip"] { pointer-events: none; left: auto; width: fit-content; max-width: min(280px, calc(100vw - 40px)); padding: 3px 12px; border-radius: 999px;
  bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px) + var(--place-card-h, 0px) + 2px); }
.place-bar[data-mode="chip"] .place-actions { display: none; }
.place-bar[data-mode="chip"] .place-msg { font-size: 13px; }

@media (max-width: 760px), (pointer: coarse) and (max-width: 1100px), (max-height: 500px) and (max-width: 1100px) {
  .place-bar { left: var(--edge-left, 8px); right: var(--edge-right, 8px); width: auto; bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px)); }
  .place-bar[data-mode="chip"] { left: var(--edge-left, 8px); right: auto; width: fit-content; max-width: calc(100vw - var(--edge-left, 8px) - var(--edge-right, 8px));
    bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px) + var(--place-card-h, 0px) + 2px); }

  /* Kart yokken çubuk toast'ın yerindedir: toast çubuğun üstüne çıkar. */
  body:has(.place-bar[data-mode="hint"]:not([hidden])) #toasts, body:has(.place-bar[data-mode="invalid"]:not([hidden])) #toasts {
    bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px) + var(--place-bar-h, 0px) + 14px); }

  /* Onay kartı: başparmak bölgesinde, tam genişlik; dokunma hedefleri >=44px, onay sağda ve büyük. */
  /* Kart haritanın en az ~%40'ını açık bırakır (360x640'ta pin görünür kalsın); fazlası kartın içinde kayar. */
  .action-card { padding-bottom: 10px; max-height: 56dvh; }
  .action-card .row2 { gap: 10px; align-items: stretch; }
  .action-card button { min-height: 48px; }
  .action-card .row2 .cancel { order: 1; flex: 0 1 34%; }
  .action-card .row2 .confirm { order: 2; flex: 1 1 56%; min-height: 56px; font-size: 1.05em; }
  .action-card .confirm:disabled { opacity: .5; cursor: not-allowed; }
}
/* A phone's quest tracker ("❓ Ne yapmalıyım?") sits over the map and opened the full-screen booklet when a placement tap landed on it: it steps aside while a pick is on. */
body:has(.place-bar:not([hidden])) #quest-tracker:not(.progress-dock) { visibility: hidden; }
