/* ==========================================================================
   fix 4 Part 9: no blue selection, no drag ghosts, anywhere (bonfium-fix4/PROMPT.md).
   Loaded on every page (app/fix3.php fix3_head()).
   The off-limits home sections (hero, listing stack, What moves, the vault, the 15 000 band) are left exactly as
   they are: the global rules skip them, so their DOM and computed styles do not change.
   ========================================================================== */

/* decorative and UI elements: the account card, plan cards, the badge preview, codes, buttons, pills, chips… */
.nosel, .nosel * { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; }

/* no image, icon or link drags a ghost away (outside the untouched home sections) */
:is(img, svg, a):not(:is(section.hero, #listing, #moves, .v4h-cta, #how) *) { -webkit-user-drag: none; }

/* the header and nav, the footer logo, buttons, pills, chips, segmented controls, avatars and field headers */
:is(.bf-nav-shell, .bf-nav, .v4-hdr, .v3-tabbar, .v4-tabs, footer .bf-logo, .bf-foot-logo, button, .btn, .v5-pill, .chip, .f4-seg, .av, .avatar, .v4-me, .v4-stage-h, .v3-stage-h):not(:is(section.hero, #listing, #moves, .v4h-cta, #how) *) {
  -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
}

/* the blue tap rectangle on phones: off on everything tappable, outside the untouched sections (which keep the browser's own) */
:is(a, button, label, summary, input, select, textarea, [role="button"], [role="radio"], [role="tab"], [tabindex], .nosel):not(:is(section.hero, #listing, #moves, .v4h-cta, #how) *) { -webkit-tap-highlight-color: transparent; }

/* where text can still be selected (long text, FAQ answers, terms, inputs): the brand tint, never browser blue */
::selection { background: rgba(14, 20, 23, .14); color: inherit; }
:is(.v3-stage, .v4-stage, .f4-dark, .v5h-dark, .bf-foot, footer, [data-field], .field-head) ::selection { background: rgba(255, 255, 255, .28); }

/* the "Copied" toast: clear glass, the header pill's tokens */
.f4-toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 2147483000; transform: translate(-50%, 8px);
  padding: 10px 18px; border-radius: 999px; font: 500 14px/1.2 var(--text, system-ui, sans-serif); color: #0E1417;
  background: var(--pill-bg, rgba(255,255,255,.16)); -webkit-backdrop-filter: var(--pill-filter, blur(20px) saturate(1.7)); backdrop-filter: var(--pill-filter, blur(20px) saturate(1.7));
  box-shadow: var(--pill-edge, inset 0 1px 0 rgba(255,255,255,.55), inset 0 0 0 1px rgba(255,255,255,.12)), var(--pill-shadow, 0 10px 28px -14px rgba(15,21,25,.28));
  opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease; -webkit-user-select: none; user-select: none; }
.f4-toast.on { opacity: 1; transform: translate(-50%, 0); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .f4-toast { background: rgba(255, 255, 255, .94); } }
@media (prefers-reduced-motion: reduce) { .f4-toast { transition: none; transform: translate(-50%, 0); } }

/* fix 4 Part 11: two-tone titles animate opacity and transform only (no blur), outside the untouched home sections */
.tt:not(:is(section.hero, #listing, #moves, .v4h-cta, #how) *) .bw { transition-property: opacity, transform; }
.tt.v5-pre:not(:is(section.hero, #listing, #moves, .v4h-cta, #how) *) .bw { filter: none; }
