/* ===== FINAL8 — scripted chat (loads AFTER app.css + mobile.css) ===== */

/* ---------- Shell: full height flex, keyboard-safe ---------- */
#chat.final8{ display:none; }
#chat.final8.show{
  display:flex !important; flex-direction:column !important;
  overflow:hidden !important;
}
/* Mobile: full-bleed fixed */
@media (max-width:767px){
  #chat.final8.show{
    position:fixed !important; left:0 !important; right:0 !important; top:0 !important; bottom:auto !important;
    width:100% !important; max-width:none !important; margin:0 !important;
    border-radius:0 !important; border:0 !important;
    height:100dvh !important; max-height:none !important;
  }
  @supports (height:100dvh){ #chat.final8.show{ height:100dvh !important; } }
  #chat.final8.show{ height:var(--chat-h, 100dvh) !important; }
}
/* FINAL9c: tablet+desktop — center chat panel like profile (was position:relative → off to the right) */
@media (min-width:768px){
  #chat.final8.show{
    position:fixed !important;
    left:0 !important; right:0 !important;
    top:32px !important; bottom:auto !important;
    width:min(440px,92vw) !important;
    max-width:440px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    transform:none !important;
    height:calc(100dvh - 64px) !important;
    max-height:calc(100dvh - 64px) !important;
    border-radius:28px !important;
    border:1px solid #ffd9c4 !important;
    box-shadow:var(--shadow, 0 24px 64px rgba(26,15,20,.18)) !important;
  }
}
@media (min-width:1024px){
  #chat.final8.show{
    top:max(32px, env(safe-area-inset-top, 0px)) !important;
    height:calc(100dvh - 64px) !important;
    max-height:calc(100dvh - 64px) !important;
  }
}
#chat.final8 .chat-head{ flex:0 0 auto !important; }
#chat.final8 .bubbles{
  flex:1 1 0 !important; min-height:0 !important;
  overflow-y:auto !important; overflow-x:hidden !important;
  display:flex !important; flex-direction:column !important;
  gap:8px !important; padding:14px var(--gutter,16px) 14px !important;
  scroll-behavior:auto;
}
#chat.final8 .chat-head .st.is-typing{ color:var(--muted) !important; font-style:italic; }

/* ---------- Bubbles ---------- */
#chat.final8 .bubbles > *{ flex-shrink:0 !important; }
#chat.final8 .bubble{
  max-width:min(80%,320px) !important;
  padding:10px 14px !important;
  font-size:15px !important; line-height:1.4 !important;
  border-radius:18px 18px 18px 6px !important;
  background:#fff !important; border:1px solid #ffe4d4 !important;
  align-self:flex-start !important; margin-right:auto !important; margin-left:0 !important;
  box-shadow:0 2px 8px rgba(255,45,106,.08) !important;
  word-wrap:break-word; overflow-wrap:anywhere;
}
#chat.final8 .bubble.me{
  align-self:flex-end !important; margin-left:auto !important; margin-right:0 !important;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a)) !important;
  color:#fff !important; border:0 !important;
  border-radius:18px 18px 6px 18px !important;
  box-shadow:0 4px 14px rgba(255,45,106,.25) !important;
}
#chat.final8 .seen{
  align-self:flex-end !important; font-size:11px; color:var(--muted,#8a7480);
  font-weight:700; margin:-4px 4px 2px 0; letter-spacing:.2px; flex:0 0 auto;
}
#chat.final8 .typing{
  align-self:flex-start !important; display:flex !important; gap:5px;
  padding:12px 14px !important; background:#fff !important;
  border:1px solid #ffe4d4 !important; border-radius:18px 18px 18px 6px !important;
  width:fit-content !important; flex:0 0 auto;
}
#chat.final8 .typing i{ width:7px; height:7px; border-radius:50%; background:var(--pink,#ff2d6a); animation:blink 1.2s infinite; opacity:.5; }

/* ---------- Locked nude photo bubble (4:5, blur already baked in) ---------- */
#chat.final8 .bubble.nude-bubble,
#chat.final8 #lockedBubble.nude-bubble{
  width:min(62vw,240px) !important; max-width:min(62vw,240px) !important;
  aspect-ratio:auto !important; height:auto !important;
  padding:0 !important; overflow:hidden !important;
  border:2px solid var(--pink,#ff2d6a) !important;
  border-radius:16px !important;
  background:#1a0f14 !important;
  box-shadow:0 8px 24px rgba(255,45,106,.26) !important;
  align-self:flex-start !important; margin-right:auto !important; margin-left:0 !important;
  min-height:0 !important; cursor:pointer;
}
#chat.final8 .nude-bubble .lock-media{
  display:block !important; width:100% !important; height:auto !important;
  aspect-ratio:4/5 !important; overflow:hidden !important;
  border-radius:14px !important; position:relative !important; background:#1a0f14 !important;
}
#chat.final8 .nude-bubble .lock-media img{
  width:100% !important; height:100% !important; max-width:100% !important;
  aspect-ratio:4/5 !important; object-fit:cover !important;
  border-radius:14px !important; display:block !important; min-height:0 !important;
}
/* AM already blurred these — never blur again */
#chat.final8 .nude-bubble .lock-media img.pre-blurred{ filter:none !important; transform:none !important; } /* D11: brightness baked into *_pb files */
#chat.final8 .nude-bubble .lock{
  position:absolute !important; inset:0 !important;
  display:flex !important; flex-direction:column !important;
  align-items:center !important; justify-content:center !important; gap:8px;
  padding:12px !important; z-index:2; border-radius:14px !important;
  background:linear-gradient(180deg,rgba(26,15,20,.08) 0%,rgba(26,15,20,.28) 55%,rgba(26,15,20,.62) 100%) !important;
  color:#fff; text-align:center;
}
#chat.final8 .nude-bubble .lock .ico{
  width:52px !important; height:52px !important; border-radius:50% !important;
  display:grid !important; place-items:center !important; font-size:1.4rem !important;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a)) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.3); margin:0 !important; flex:0 0 auto;
}
#chat.final8 .nude-bubble .lock span{
  font-size:13px !important; font-weight:800 !important; max-width:none !important;
  margin:0 !important; text-shadow:0 2px 8px rgba(0,0,0,.6); flex:0 0 auto;
}

/* ---------- In-thread Telegram card ---------- */
#chat.final8 .tg-card{
  align-self:flex-start; width:min(86%,320px); flex:0 0 auto;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:16px 14px; margin-top:4px;
  background:#fff; border:2px solid var(--pink,#ff2d6a); border-radius:18px;
  box-shadow:0 10px 28px rgba(255,45,106,.22);
  animation:pop .35s ease;
}
#chat.final8 .tg-card img{ width:48px; height:48px; border-radius:50%; object-fit:cover; border:2px solid var(--pink,#ff2d6a); }
#chat.final8 .tg-card .tg-txt{ font-weight:900; font-size:15px; text-align:center; line-height:1.25; }
#chat.final8 .tg-card .tg-go{
  display:grid; place-items:center; width:100%; min-height:48px; padding:12px 14px;
  border-radius:999px; background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a));
  color:#fff; font-weight:900; font-size:15px; text-decoration:none; text-align:center;
  box-shadow:0 8px 22px rgba(255,45,106,.32);
}

/* ---------- Footer: chips + real input + TG button ---------- */
#chat.final8 .chat-footer{
  flex:0 0 auto !important;
  display:flex !important; flex-direction:column !important; gap:8px !important;
  padding:10px var(--gutter,16px) calc(10px + env(safe-area-inset-bottom,0px)) !important;
  background:#fff7f0 !important; border-top:1px solid #ffd9c4 !important;
  box-sizing:border-box !important; width:100% !important;
  max-height:none !important; overflow:visible !important;
}
#chat.final8 .chat-chips{ display:none; }
#chat.final8 .chat-chips.show{
  display:flex !important; flex-wrap:wrap !important; gap:8px;
  width:100%; box-sizing:border-box; justify-content:flex-end;
}
#chat.final8 .chat-chips .qchip{
  flex:0 1 auto; max-width:100%;
  padding:9px 14px; min-height:40px;
  border-radius:999px; border:1.5px solid #ffb8a0; background:#fff;
  font-weight:800; font-size:14px; line-height:1.2; color:#b3194a;
  white-space:normal; word-break:break-word; text-align:center;
  box-shadow:0 2px 8px rgba(255,45,106,.08);
}
#chat.final8 .chat-chips .qchip:active{ background:#fff0e8; }
#chat.final8 .chat-input-row{
  display:flex !important; align-items:center; gap:8px; width:100%; box-sizing:border-box; margin:0;
}
#chat.final8 .chat-input-row input{
  flex:1 1 auto; min-width:0; box-sizing:border-box;
  font-size:16px !important; line-height:1.3;
  padding:12px 16px; min-height:48px;
  border-radius:24px; border:1.5px solid #ffd0b8; background:#fff;
  color:#1a0f14; outline:none; -webkit-appearance:none;
}
#chat.final8 .chat-input-row input::placeholder{ color:#b09aa4; }
#chat.final8 .chat-input-row input:focus{ border-color:var(--pink,#ff2d6a); }
#chat.final8 .chat-input-row .send-btn{
  flex:0 0 auto; width:48px; height:48px; min-width:48px; min-height:48px;
  border-radius:50%; border:0; padding:0;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a));
  color:#fff; font-size:17px; display:grid; place-items:center;
  box-shadow:0 6px 16px rgba(255,45,106,.3);
}
#chat.final8 .chat-tg{ display:none; }
#chat.final8 .chat-tg.show{ display:block !important; width:100%; }
#chat.final8 .tg-big{
  display:grid; place-items:center; width:100%; box-sizing:border-box;
  min-height:56px; padding:15px 16px; border-radius:18px;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a));
  color:#fff; font-weight:900; font-size:16px; text-decoration:none; text-align:center;
  box-shadow:0 10px 28px rgba(255,45,106,.35);
  animation:tgPulse 1.7s ease-in-out infinite;
}
#chat.final8 .tg-big.harder{ animation-duration:.85s; }
@keyframes tgPulse{
  0%,100%{ transform:scale(1); box-shadow:0 10px 28px rgba(255,45,106,.35); }
  50%{ transform:scale(1.025); box-shadow:0 14px 36px rgba(255,45,106,.5); }
}
@media (prefers-reduced-motion:reduce){
  #chat.final8 .tg-big, #chat.final8 .tg-big.harder{ animation:none !important; transform:none !important; }
  #chat.final8 .typing i{ animation:none !important; opacity:.6 !important; }
  #chat.final8 .bubble, #chat.final8 .tg-card{ animation:none !important; }
}

/* ---------- Profile: single primary + small like, no Telegram ---------- */
#profile > .cta-bar{
  display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:10px !important; padding-top:10px !important;
}
#profile > .cta-bar > .primary{
  flex:1 1 auto !important; width:auto !important; min-height:54px !important;
  border-radius:16px !important; font-size:17px !important; font-weight:900 !important;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a)) !important;
  color:#fff !important; border:0 !important; padding:14px 16px !important;
  box-shadow:0 10px 28px rgba(255,45,106,.33) !important;
}
#profile > .cta-bar > .like-mini{
  flex:0 0 auto !important; width:auto !important; min-width:88px !important;
  min-height:54px !important; padding:0 14px !important;
  border-radius:16px !important; background:#fff !important;
  border:1.5px solid #ffd0b8 !important; color:var(--pink,#ff2d6a) !important;
  font-weight:900 !important; font-size:15px !important; white-space:nowrap;
}

/* Locked media that is already blurred by AM — never add CSS blur */
#profile .gal-tile.lockwrap img.pre-blurred,
#profile .hero-img.pre-blurred{
  filter:none !important;
  transform:none !important;
}
#profile .gal-tile.lockwrap .lock-label{ z-index:3; }

/* Locked gallery tiles: keep the 🔒 badge crisp above the veil */
#profile .gal-tile.lockwrap .lock-label{ background:rgba(26,15,20,.28) !important; z-index:1 !important; }
#profile .gal-tile.lockwrap::after{ z-index:4 !important; }
@media (max-width:359px){
  #chat.final8 .tg-big{ font-size:14px; padding:13px 10px; min-height:52px; }
  #chat.final8 .chat-chips .qchip{ font-size:13px; padding:8px 12px; min-height:38px; }
}

/* FINAL9b: pin short threads to the bottom WITHOUT a flex ::before spacer
   (the spacer caused blank lists / huge gaps when typing or the unlock sheet arrived). */
#chat.final8 .bubbles{
  justify-content:flex-start !important;
}
#chat.final8 .bubbles > :first-child{
  margin-top:auto !important;
}

/* FINAL8C: 🔒 badge on locked gallery tiles at ALL widths (was mobile-only via mobile.css ≤767px) */
#profile .gal-tile.lockwrap{ position:relative; overflow:hidden; }
#profile .gal-tile.lockwrap::after{ content:"🔒"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-size:15px; line-height:1;
  background:rgba(255,255,255,.92); box-shadow:0 4px 12px rgba(0,0,0,.25); z-index:4; pointer-events:none; }
#profile .gal-tile.lockwrap.more-tile::after{ content:none; }
@media (min-width:768px){ #profile .gal-tile.lockwrap::after{ width:40px; height:40px; font-size:18px; } }

/* ===================== FINAL9 ===================== */

/* Chat header is tappable → her profile (back button excluded in JS) */
#chat .chat-head.tappable{ cursor:pointer; }
#chat .chat-head.tappable > div{ min-width:0; }
#chat .chat-head.tappable .nm{
  display:flex; align-items:center; gap:5px;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
#chat .chat-head.tappable .nm::after{
  content:"›"; font-size:1.05rem; line-height:1; color:var(--pink,#ff2d6a);
  font-weight:900; flex:0 0 auto; transform:translateY(-1px);
}
#chat .chat-head.tappable:active{ background:#fff0e8; }

/* BUG4: instant unlock sheet after tapping the blurred photo */
#chat.final8 .tg-card.unlock-sheet{
  width:min(88%,330px); gap:8px; padding:14px 14px 16px;
  background:linear-gradient(180deg,#fff 0%,#fff4ee 100%);
}
#chat.final8 .unlock-sheet .u-thumb{
  position:relative; width:min(46vw,160px); aspect-ratio:4/5;
  border-radius:14px; overflow:hidden; background:#1a0f14;
  border:2px solid var(--pink,#ff2d6a); flex:0 0 auto;
}
#chat.final8 .unlock-sheet .u-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  border:0; border-radius:0;
}
#chat.final8 .unlock-sheet .u-thumb img.pre-blurred{ filter:none; transform:none; }
#chat.final8 .unlock-sheet .u-thumb .u-lock{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  font-size:17px; line-height:1; background:rgba(255,255,255,.94);
  box-shadow:0 4px 14px rgba(0,0,0,.3);
}
#chat.final8 .unlock-sheet .tg-txt{ font-size:16px; }
#chat.final8 .unlock-sheet .u-sub{
  font-size:13px; line-height:1.35; color:var(--muted,#8a7480);
  font-weight:700; text-align:center; margin:-2px 0 2px;
}
/* the pulsing lives on the footer button only — a second pulsing button reads as spam */
#chat.final8 .unlock-sheet .tg-go{ animation:none; min-height:52px; font-size:16px; }

/* BUG2: post-chat profile CTA — Telegram primary + small "Message her" */
#profile > .cta-bar.post-chat > .primary.tg-primary{
  display:grid !important; place-items:center !important;
  text-decoration:none !important; box-sizing:border-box !important;
  line-height:1.2 !important; font-size:16px !important;
  padding:14px 12px !important; white-space:nowrap !important;
  letter-spacing:-.01em !important;
}
#profile > .cta-bar.post-chat > .like-mini{
  min-width:0 !important; flex:0 1 auto !important;
  font-size:14px !important; padding:0 12px !important;
  overflow:hidden !important; text-overflow:ellipsis !important;
}
@media (max-width:400px){
  #profile > .cta-bar.post-chat > .primary.tg-primary{ font-size:15px !important; padding:14px 8px !important; }
  #profile > .cta-bar.post-chat > .like-mini{ font-size:13px !important; padding:0 10px !important; }
}
@media (max-width:359px){
  #profile > .cta-bar.post-chat > .primary.tg-primary{ font-size:13.5px !important; padding:13px 6px !important; }
  #profile > .cta-bar.post-chat > .like-mini{ font-size:12px !important; padding:0 7px !important; min-height:52px !important; }
  #chat.final8 .unlock-sheet{ width:92%; }
}


/* FINAL9b: unlock sheet is a FIXED overlay on #chat — always visible, never scrolled away */
#chat.final8 .unlock-overlay{
  position:absolute; left:0; right:0; bottom:0; top:0;
  z-index:80; display:none; align-items:flex-end; justify-content:center;
  padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));
  background:rgba(26,15,20,.5); /* D11: no backdrop blur (WebKit main-thread cost) */
  box-sizing:border-box;
}
#chat.final8 .unlock-overlay.show{ display:flex !important; }
#chat.final8 .unlock-overlay .unlock-sheet{
  width:min(92%,360px); max-height:min(78dvh,560px); overflow:auto;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:16px 16px 18px; border-radius:22px;
  background:linear-gradient(180deg,#fff 0%,#fff4ee 100%);
  border:2px solid var(--pink,#ff2d6a);
  box-shadow:0 18px 50px rgba(26,15,20,.35);
  animation:unlockPop .22s ease-out;
}
@keyframes unlockPop{ from{ transform:translateY(24px); opacity:.4; } to{ transform:none; opacity:1; } }
#chat.final8 .unlock-overlay .u-thumb{
  position:relative; width:min(52vw,200px); aspect-ratio:4/5;
  border-radius:16px; overflow:hidden; background:#1a0f14;
  border:2px solid var(--pink,#ff2d6a); flex:0 0 auto;
}
#chat.final8 .unlock-overlay .u-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
#chat.final8 .unlock-overlay .u-thumb img.pre-blurred{ filter:none; transform:none; }
#chat.final8 .unlock-overlay .u-thumb .u-lock{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  font-size:20px; background:rgba(255,255,255,.95); box-shadow:0 6px 18px rgba(0,0,0,.35);
}
#chat.final8 .unlock-overlay .tg-txt{ font-size:18px; font-weight:900; text-align:center; color:#1a0f14; }
#chat.final8 .unlock-overlay .u-sub{ font-size:14px; font-weight:700; color:var(--muted,#8a7480); text-align:center; }
#chat.final8 .unlock-overlay .tg-go{
  display:grid; place-items:center; width:100%; min-height:56px; padding:14px 16px;
  border-radius:16px; font-weight:900; font-size:17px; color:#fff; text-decoration:none;
  background:var(--grad-cta, linear-gradient(135deg,#ff2d6a,#ff8a1a));
  box-shadow:0 8px 22px rgba(255,45,106,.35);
}
#chat.final8 .unlock-overlay .u-x{
  position:absolute; top:10px; right:14px; width:36px; height:36px; border:0; border-radius:50%;
  background:rgba(255,255,255,.9); font-size:18px; font-weight:900; cursor:pointer; color:#1a0f14;
}

/* FINAL9b: while unlock overlay is open, hide the footer TG bar so buttons don't stack */
#chat.final8.unlock-open .chat-tg,
#chat.final8.unlock-open .chat-footer .chat-tg,
#chat.final8.unlock-open #chatTgFooter{ display:none !important; }
#chat.final8 .chat-footer{ position:relative; z-index:20; }
#chat.final8 .chat-head{ position:relative; z-index:21; }

/* FINAL9b typing: never leave a giant gap above the dots */
#chat.final8 .typing{ margin:0 !important; align-self:flex-start !important; flex:0 0 auto !important; }
#chat.final8 .bubbles{ gap:8px !important; }

/* FINAL9b footer kill under unlock overlay */
#chat.final8.unlock-open .chat-tg,
#chat.final8.unlock-open .chat-tg.show,
#chat.final8.unlock-open #chatTgFooter,
#chat.final8.unlock-open #chatTgFooter.show,
#chat.final8.unlock-open .tg-big,
#chat.final8.unlock-open .chat-footer .chat-tg.show{
  display:none !important; visibility:hidden !important; height:0 !important; overflow:hidden !important; pointer-events:none !important;
}
#chat.final8 .unlock-overlay{
  z-index:200 !important;
  background:rgba(20,8,14,.55) !important;
}
#chat.final8 .chat-footer{ z-index:10 !important; }
#chat.final8 .chat-head{ z-index:11 !important; }

/* FINAL9b no-pop: pop keyframes left last bubble semi-transparent mid-animation */
#chat.final8 .bubble,
#chat.final8 .tg-card,
#chat.final8 .typing{
  animation:none !important;
  opacity:1 !important;
  transform:none !important;
}

/* FINAL9b hide footer shell under unlock overlay */
#chat.final8.unlock-open .chat-footer{
  visibility:hidden !important;
  pointer-events:none !important;
}
#chat.final8.unlock-open .unlock-overlay{
  /* cover chat including where footer was */
  bottom:0 !important; top:0 !important;
}

/* FINAL9c typing scroll: keep dots above the fold */
#chat.final8 .typing{
  scroll-margin-bottom:24px !important;
  scroll-margin-top:8px !important;
}

/* AMFIX P1-1: 7 CTAs (non-safe, post-chat) */
.cta7{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 4px}
.cta7-b{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 6px;border-radius:12px;background:#fff;border:1px solid #ffc9b0;color:#c2185b;font-weight:700;font-size:.86rem;line-height:1.1;text-decoration:none;text-align:center}
.cta7-b.p{background:linear-gradient(135deg,#ff5f8f,#ff8a5c);color:#fff;border:0}
.cta7-b:last-child{grid-column:1/-1}
#chat.final8 .cta7-slot.in-chat{align-self:stretch;width:100%;max-width:360px;margin:2px auto 6px;flex:0 0 auto}
#profile .cta7-slot:empty{display:none}
/* AMFIX P2-5: footer tap targets >= 44px */
.footer a{display:inline-block;padding:14px 12px;min-height:44px;min-width:44px;box-sizing:border-box}
/* AMFIX P1-5: direct_tg/external — no deck flash before redirect */
html.redirecting body{visibility:hidden}


/* ===== JUICY (FINAL_QA D3/D7/D8/D9/D12) ===== */
/* D7: banner traffic — the chat shell is up before JS; the swipe app is never painted underneath */
html.pre-chat:not(.chat-ready) #app{ visibility:hidden !important; }
#chat.skel .chat-footer{ visibility:hidden; }
#chat.skel .chat-head .nm{ min-width:60px; }
/* D7: near-you — card skeleton while the deck loads, and ✕/ℹ/♥ inert until it is ready */
#deck:empty{ border-radius:22px; background:linear-gradient(100deg,#ffe9df 30%,#fff4ee 50%,#ffe9df 70%); background-size:300% 100%; animation:aaSkel 1.3s ease-in-out infinite; }
@keyframes aaSkel{ 0%{background-position:100% 0} 100%{background-position:0 0} }
html:not(.deck-ready) .actions button{ opacity:.45; pointer-events:none; }
@media (prefers-reduced-motion:reduce){ #deck:empty{ animation:none; } }
/* D8: an image that could not load becomes a soft gradient, never a broken icon */
img.img-ph{ object-fit:cover; background:linear-gradient(135deg,#ffd1dc,#e9c6ff); }
/* D9: a Telegram button cannot be fired twice within 1.5 s */
html.tg-busy .tg-big, html.tg-busy .tg-go, html.tg-busy .cta7-b, html.tg-busy [data-act="tg"], html.tg-busy .hero-lock, html.tg-busy .gal-tile.lockwrap, html.tg-busy #lockedBubble{ pointer-events:none !important; }
/* D12: short landscape phones — CTAs collapse into ONE scrollable row, slimmer footer, bubbles stay visible */
@media (max-height:450px) and (orientation:landscape){
  #chat .cta7{ display:flex !important; flex-wrap:nowrap !important; overflow-x:auto !important; gap:6px !important; grid-template-columns:none !important; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:2px; }
  #chat .cta7::-webkit-scrollbar{ display:none; }
  #chat .cta7 .cta7-b{ flex:0 0 auto !important; min-height:36px !important; padding:6px 12px !important; font-size:13px !important; white-space:nowrap; }
  #chat .chat-tg .tg-big{ min-height:40px !important; padding:8px 14px !important; font-size:14px !important; }
  #chat .chat-footer{ padding-top:2px !important; }
  #chat .chat-input-row input{ min-height:36px !important; }
  #chat .chat-head{ padding-top:4px !important; padding-bottom:4px !important; }
  #chat .chat-head img{ width:32px !important; height:32px !important; }
  #chat .bubbles{ min-height:96px; }
}
