/* Mobile touch shortcuts - FAB, pull refresh, toast */

.mc-mobile-fab {
  position: fixed;
  right: max(16px, env(safe-area-inset-right, 0px));
  bottom: max(20px, env(safe-area-inset-bottom, 0px));
  z-index: 95;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: var(--mc-ink, #0f172a);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.92);
  transition:
    opacity 0.28s ease,
    visibility 0.28s ease,
    transform 0.34s cubic-bezier(0.34, 1.25, 0.64, 1);
}

.mc-mobile-fab svg {
  display: block;
  width: 20px;
  height: 20px;
}

.mc-mobile-fab.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

body.mc-chrome-tone-dark .mc-mobile-fab,
body.mc-chrome-tone-vivid.mc-theme-night .mc-mobile-fab {
  color: #f2f1ed;
  background: rgba(15, 23, 42, 0.82);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32);
}

.mc-mobile-pull {
  position: fixed;
  top: max(8px, env(safe-area-inset-top, 0px));
  left: 50%;
  z-index: 96;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: 999px;
  color: var(--mc-accent, #0030de);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-120%) scale(0.8);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  pointer-events: none;
}

.mc-mobile-pull.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.mc-mobile-pull.is-ready {
  color: #fff;
  background: var(--mc-accent, #0030de);
}

.mc-mobile-pull svg {
  width: 18px;
  height: 18px;
  transition: transform 0.2s ease;
}

.mc-mobile-pull.is-active svg {
  transform: rotate(180deg);
}

.mc-mobile-gesture-toast-host {
  position: fixed;
  left: 50%;
  bottom: max(84px, calc(env(safe-area-inset-bottom, 0px) + 68px));
  z-index: 97;
  max-width: min(92vw, 320px);
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  color: #f2f1ed;
  background: rgba(15, 23, 42, 0.88);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(8px);
  transition: opacity 0.24s ease, transform 0.24s ease, visibility 0.24s ease;
  pointer-events: none;
}

.mc-mobile-gesture-toast-host.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

@media (hover: hover) and (pointer: fine) {
  .mc-mobile-fab,
  .mc-mobile-pull,
  .mc-mobile-gesture-toast-host {
    display: none !important;
  }
}
