
/* ============================================================
   v50 PWA: select fit + bottom nav lock + button tap guard
   ============================================================ */

@media(max-width:860px){
  html,
  body{
    -webkit-text-size-adjust:100%!important;
    overscroll-behavior-y:contain!important;
    overflow-x:hidden!important;
  }

  input,
  textarea,
  select{
    font-size:16px!important;
  }

  button,
  a,
  input,
  textarea,
  select,
  .custom-select__trigger,
  .salary-v5-select__trigger{
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }

  /* Нижнее меню всегда закреплено внизу viewport, без "уезжания" при scroll */
  .mobile-bottom,
  .mobile-bottom.is-pwa-fixed{
    display:grid!important;
    grid-template-columns:repeat(4,1fr)!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:auto!important;
    bottom:0!important;
    width:100vw!important;
    max-width:100vw!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:6px 8px max(7px, env(safe-area-inset-bottom, 0px))!important;
    transform:translate3d(0,0,0)!important;
    -webkit-transform:translate3d(0,0,0)!important;
    will-change:auto!important;
    z-index:2147482000!important;
    background:rgba(255,255,255,.985)!important;
    border-top:1px solid rgba(219,229,242,.95)!important;
    box-shadow:0 -10px 28px rgba(15,23,42,.08)!important;
    -webkit-backdrop-filter:saturate(160%) blur(18px)!important;
    backdrop-filter:saturate(160%) blur(18px)!important;
  }

  .mobile-bottom a{
    min-height:62px!important;
    height:62px!important;
    padding:7px 4px!important;
    justify-content:center!important;
    border-radius:16px!important;
  }

  .main{
    padding-bottom:calc(98px + env(safe-area-inset-bottom, 0px))!important;
  }

  /* Когда открыт список/календарь/модалка — нижнее меню именно убираем, а не сдвигаем */
  body.pvz-select-v50-open .mobile-bottom,
  body.pvz-picker-v50-open .mobile-bottom,
  body.pvz-modal-v50-open .mobile-bottom,
  body.pvz-any-modal-open .mobile-bottom,
  body.modal-is-open .mobile-bottom,
  body.lock-scroll .mobile-bottom,
  body.pvz-dialog-open .mobile-bottom{
    display:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:none!important;
  }

  /* Старые встроенные меню отключены, чтобы не было конфликтов с кликами */
  .custom-select.is-open .custom-select__menu,
  .salary-v5-select.is-open .salary-v5-select__menu{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  .custom-select.is-open::before,
  .salary-v5-select.is-open::before,
  .pvz-select-backdrop{
    display:none!important;
    content:none!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  html.pvz-select-v50-open,
  body.pvz-select-v50-open{
    overflow:hidden!important;
    touch-action:none!important;
  }

  .pvz-select-v50-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:2147483200!important;
    background:rgba(15,23,42,.08)!important;
    -webkit-backdrop-filter:blur(2px)!important;
    backdrop-filter:blur(2px)!important;
  }

  .pvz-select-v50-menu{
    position:fixed!important;
    left:var(--pvz-v50-left, 16px)!important;
    top:var(--pvz-v50-top, 120px)!important;
    width:var(--pvz-v50-width, calc(100vw - 32px))!important;
    max-width:calc(100vw - 24px)!important;
    max-height:var(--pvz-v50-max-height, 300px)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    scroll-padding:10px 0 18px!important;
    z-index:2147483300!important;
    padding:8px!important;
    padding-bottom:18px!important;
    border-radius:22px!important;
    border:1px solid rgba(206,222,255,.98)!important;
    background:rgba(255,255,255,.995)!important;
    box-shadow:0 26px 72px rgba(15,23,42,.23), 0 0 0 1px rgba(255,255,255,.9) inset!important;
    box-sizing:border-box!important;
    animation:pvzV50MenuIn .14s cubic-bezier(.2,.8,.2,1) both!important;
    transform-origin:var(--pvz-v50-origin, top center)!important;
  }

  .pvz-select-v50-menu[data-up="1"]{
    animation-name:pvzV50MenuInUp!important;
  }

  .pvz-select-v50-option{
    width:100%!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:11px 14px!important;
    margin:2px 0!important;
    border:0!important;
    border-radius:15px!important;
    background:transparent!important;
    color:#344054!important;
    font:inherit!important;
    font-size:16px!important;
    line-height:1.22!important;
    text-align:left!important;
    cursor:pointer!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    transition:background-color .13s ease, transform .13s ease, color .13s ease!important;
  }

  .pvz-select-v50-option:active{
    transform:scale(.985)!important;
    background:#f3f7ff!important;
  }

  .pvz-select-v50-option.is-selected{
    background:#eef4ff!important;
    color:#1f4fd8!important;
    font-weight:900!important;
    box-shadow:inset 0 0 0 1px #d5e3ff!important;
  }

  .pvz-select-v50-option__text{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:normal!important;
  }

  .pvz-select-v50-option__check{
    flex:0 0 auto!important;
    width:24px!important;
    text-align:center!important;
    color:#2f6bff!important;
    font-weight:900!important;
    font-size:22px!important;
  }

  /* Календарь/выбор месяца — внутри видимой области, не под нижним меню */
  .range-dp,
  .pvz-dp,
  .schedule-month-popover,
  .salary-v5-month-popover{
    position:fixed!important;
    left:var(--pvz-picker-left, 16px)!important;
    top:var(--pvz-picker-top, 110px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--pvz-picker-width, calc(100vw - 32px))!important;
    max-width:calc(100vw - 24px)!important;
    max-height:var(--pvz-picker-max-height, 66dvh)!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    z-index:2147483000!important;
    border-radius:24px!important;
    border:1px solid rgba(206,222,255,.98)!important;
    background:rgba(255,255,255,.995)!important;
    box-shadow:0 26px 72px rgba(15,23,42,.23)!important;
    box-sizing:border-box!important;
    padding:14px!important;
  }

  .range-nav,
  .schedule-month-nav,
  .salary-v5-month-nav,
  .pvz-dp-head button{
    min-width:42px!important;
    min-height:42px!important;
  }

  .range-day,
  .pvz-dp-grid button{
    min-height:38px!important;
    border-radius:12px!important;
  }

  .schedule-month-option,
  .salary-v5-month-option,
  .pvz-dp-months button{
    min-height:46px!important;
    border-radius:16px!important;
    font-size:15px!important;
  }

  /* Всплывающие окна фиксированы, не двигаются и не вызывают zoom */
  #modalBackdrop,
  .modal-backdrop,
  .salary-v5-modal-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:2147482500!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:calc(14px + env(safe-area-inset-top, 0px)) 14px calc(18px + env(safe-area-inset-bottom, 0px))!important;
    box-sizing:border-box!important;
    background:rgba(15,23,42,.42)!important;
    -webkit-backdrop-filter:blur(8px)!important;
    backdrop-filter:blur(8px)!important;
    overflow:hidden!important;
  }

  .modal,
  .modal-card,
  .dialog,
  .salary-v5-modal,
  #modalBackdrop .modal,
  #modalBackdrop .modal-card{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:min(92vw, 560px)!important;
    max-width:92vw!important;
    max-height:calc(100dvh - 42px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))!important;
    margin:0!important;
    border-radius:28px!important;
    overflow:hidden!important;
    background:#fff!important;
    box-shadow:0 28px 86px rgba(15,23,42,.28)!important;
    box-sizing:border-box!important;
  }

  .modal__head,
  .modal-head,
  .modal-header,
  .dialog__head,
  .salary-v5-modal__head{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    background:#fff!important;
    border-radius:28px 28px 0 0!important;
  }

  .modal__body,
  .modal-body,
  .dialog__body,
  .salary-v5-modal__body,
  #modalBackdrop form,
  .modal form{
    max-height:calc(100dvh - 170px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  .modal__footer,
  .modal-footer,
  .dialog__footer,
  .salary-v5-modal__foot{
    position:sticky!important;
    bottom:0!important;
    z-index:2!important;
    background:#fff!important;
    border-radius:0 0 28px 28px!important;
    padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px))!important;
  }

  .modal-close,
  [data-modal-close],
  [data-close-modal],
  #closeModal,
  .salary-v5-modal__head button{
    min-width:54px!important;
    min-height:54px!important;
    border-radius:18px!important;
  }

  @media(hover:none){
    .card:hover,
    .btn:hover,
    button:hover,
    .custom-select__trigger:hover,
    .salary-v5-select__trigger:hover,
    .schedule-month-display:hover,
    .salary-v5-month-display:hover,
    .date-range-field:hover{
      transform:none!important;
      box-shadow:inherit!important;
    }
  }
}

@keyframes pvzV50MenuIn{
  from{opacity:0; transform:translateY(-5px) scale(.985);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@keyframes pvzV50MenuInUp{
  from{opacity:0; transform:translateY(5px) scale(.985);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
