/* Trade chat launcher mascots — enhancement styling only.
 * The host launcher's position, size and brand colors stay owned by the
 * existing site/shell CSS. These rules only affect the added contents and
 * additive safe-area margins, so donor CTAs, call bars and layouts are not
 * repositioned. */
[data-tcl-enhanced]{display:inline-flex;align-items:center;justify-content:center}
[data-tcl-enhanced]:not(.tcl-vertical){min-height:44px;min-width:44px}
[data-tcl-enhanced]:focus-visible{outline:3px solid #92a8ff;outline-offset:2px}
/* Additive only: on devices with insets the launcher moves AWAY from the
 * edges; on normal screens env() is 0 and nothing changes. */
[data-tcl-enhanced].tcl-safe{margin-right:env(safe-area-inset-right,0px);margin-bottom:env(safe-area-inset-bottom,0px)}
.tcl-inner{display:flex;align-items:center;gap:9px;writing-mode:horizontal-tb;text-align:left;pointer-events:none}
.tcl-mascot{display:flex;flex:0 0 auto;line-height:0}
.tcl-mascot img{width:34px;height:34px;display:block;filter:drop-shadow(0 1px 2px rgb(0 0 0/.28))}
.tcl-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.tcl-invite{font-weight:800;font-size:.82rem;line-height:1.15}
.tcl-action{font-size:.68rem;line-height:1.2;opacity:.82;display:inline-flex;align-items:center;gap:4px}
.tcl-action::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tcl-accent,currentColor);opacity:.85}
[data-tcl-enhanced].tcl-compact .tcl-copy{display:none}
[data-tcl-enhanced].tcl-vertical .tcl-copy{display:none}
[data-tcl-enhanced].tcl-vertical .tcl-inner{flex-direction:column;gap:4px}
/* Narrow-viewport AUTO fallback only. Hosts where the integrator explicitly
 * passed compact:false carry .tcl-full and keep their full label at any
 * width; .tcl-vertical edge tabs and explicit .tcl-compact keep their rules. */
@media(max-width:374px){[data-tcl-enhanced]:not(.tcl-vertical):not(.tcl-compact):not(.tcl-full) .tcl-copy{display:none}}
@keyframes tcl-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tcl-inner.tcl-enter{animation:tcl-rise .28s cubic-bezier(.2,.8,.2,1) both}
@media(prefers-reduced-motion:reduce){.tcl-inner{animation:none!important;transition:none!important}}
/* Honest unavailable state: non-interactive, grayscale, clearly labeled. */
.tcl-unavailable{position:fixed;z-index:80;right:max(14px,env(safe-area-inset-right,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:9px;min-height:44px;min-width:44px;padding:10px 14px;border-radius:13px;border:1px solid #5a6172;background:#3a3f4c;color:#d8dce6;font:600 12px/1.3 system-ui,sans-serif;cursor:not-allowed;opacity:.92}
.tcl-unavailable .tcl-mascot img{filter:grayscale(1) opacity(.85)}
.tcl-unavailable .tcl-action{opacity:.7}
