/* TAIF V5 — Mobile Native Behaviors Final Consolidated Layer
   Operational cleanup round 02.
   Combines the native mobile behavior base and visibility/keyboard fix into one stable file. */

/* --- consolidated from styles/53-mobile-native-behaviors.css --- */
@media (max-width: 860px){
  body.taif-mobile-mode .taif-mobile-toast{
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    transform:translate(-50%, 18px);
    width:min(calc(100vw - 28px), 340px);
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    border-radius:14px;
    background:rgba(15, 23, 42, .92);
    color:#fff;
    font-size:13px;
    font-weight:800;
    line-height:1.35;
    text-align:center;
    box-shadow:0 14px 36px rgba(15, 23, 42, .22);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
    z-index:10030;
  }

  body.taif-mobile-mode .taif-mobile-toast[data-kind="success"]{
    background:rgba(22, 101, 52, .94);
  }

  body.taif-mobile-mode .taif-mobile-toast.is-visible{
    opacity:1;
    transform:translate(-50%, 0);
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh{
    --taif-pull-progress:0;
    position:fixed;
    top:calc(var(--mobile-app-bar-height, 52px) + 6px);
    left:50%;
    transform:translate(-50%, calc(-100% + (var(--taif-pull-progress) * 56px)));
    opacity:calc(.28 + (var(--taif-pull-progress) * .72));
    pointer-events:none;
    z-index:10020;
    transition:transform .16s ease, opacity .16s ease;
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh.is-visible{
    opacity:1;
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh__pill{
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.96);
    color:#0f172a;
    border:1px solid rgba(37,99,235,.14);
    box-shadow:0 14px 34px rgba(15,23,42,.10);
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh__icon{
    font-size:15px;
    line-height:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transform:rotate(calc(var(--taif-pull-progress) * 180deg));
    transition:transform .16s ease;
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh.is-refreshing .taif-mobile-pull-refresh__icon{
    animation:taif-mobile-pull-spin .8s linear infinite;
  }
}

@keyframes taif-mobile-pull-spin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

/* --- consolidated from styles/54-mobile-native-behaviors-fix.css --- */
/* TAIF V5 — Mobile Native Behaviors Fix V2
   Scope: mobile mode only.
   Fixes always-visible pull-refresh label and supports keyboard-safe field focus. */

@media (max-width: 860px){
  body.taif-mobile-mode .taif-mobile-pull-refresh{
    opacity:0 !important;
    visibility:hidden !important;
    transform:translate(-50%, -120%) !important;
  }

  body.taif-mobile-mode .taif-mobile-pull-refresh.is-visible,
  body.taif-mobile-mode .taif-mobile-pull-refresh.is-refreshing{
    opacity:1 !important;
    visibility:visible !important;
    transform:translate(-50%, calc(-100% + (var(--taif-pull-progress, 0) * 56px))) !important;
  }

  body.taif-mobile-mode .taif-keyboard-focus-target{
    scroll-margin-bottom:160px !important;
    scroll-margin-top:calc(var(--mobile-app-bar-height, 52px) + 20px) !important;
  }
}
