/* Norvox — телефон. Подключается последним; поведение в js/mobile.js. */

/* ---------- только пальцем ---------- */
@media (pointer:coarse){
  /* iPhone приближает страницу, если шрифт в поле меньше 16 пикселей */
  input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select{font-size:16px!important}
  /* подсказки про клавиатуру компьютера */
  kbd{display:none!important}
  html,body{overscroll-behavior:none}
  button,a,[data-act]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

  /* кнопки под палец */
  .icon-btn{width:40px;height:40px}
  .ring-btn{height:40px}
  .tb-tab{min-height:42px}
  .btn{min-height:40px}
  .btn.sm{min-height:38px}
  .seg button{min-height:38px}
  .gz-chips button{min-height:38px}
  .gz-tabs button{min-height:42px}
  .linkish{min-height:36px;display:inline-flex;align-items:center}
  .sw-link{min-height:40px}
  .sw{min-width:36px;min-height:36px}
  .tools button{width:40px;height:40px}
  .tools .ico{width:20px;height:20px}
  .icon-btn.gear{width:36px;height:36px}
  .gz-fav{width:40px;height:40px}
  input[type=range]{min-height:32px}

  /* долгое нажатие открывает наше меню, а не выделение текста и не меню браузера */
  .msg,.dm,.tile,.mem,[data-ctx]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  .msg:hover{background:transparent}
  .chat .scroller{touch-action:pan-y}
}

/* ---------- узкий экран ---------- */
@media (max-width:760px){
  html,body{height:var(--app-h,100dvh)}
  body{position:fixed;left:0;right:0;top:0}
  body.pult{padding-block:max(6px,env(safe-area-inset-top,0px)) max(4px,env(safe-area-inset-bottom,0px))}

  /* окна не должны уходить под клавиатуру */
  .scrim{bottom:auto;height:var(--app-h,100dvh)}
  .modal{max-height:calc(var(--app-h,100dvh) - 24px)}
  .settings-ov{bottom:auto;height:var(--app-h,100dvh)}

  /* с клавиатурой места мало: панель разделов прячем */
  body.kb-open .topbar{display:none}
  body.kb-open.pult #app{grid-template-rows:minmax(0,1fr)}
  body.kb-open.pult{padding-bottom:0}
  body.kb-open.pult .gz-ov{top:0}
  body.kb-open .composer{padding-bottom:6px}

  body.pult .gz-ov{top:calc(56px + max(6px,env(safe-area-inset-top,0px)));bottom:auto;height:calc(var(--app-h,100dvh) - 56px - max(6px,env(safe-area-inset-top,0px)))}

  /* панель над сообщением закрывает короткие сообщения и ловит нажатия; всё то же есть в меню по долгому нажатию */
  .msg .tools,.msg:hover .tools,.msg.tap .tools{display:none!important}

  /* шапка разговора */
  .m-fold{display:none!important}
  .chat-head .title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .chat-head{gap:4px}

  /* меню и всплывающие окна — листом снизу, их легко достать пальцем */
  .ctx{left:6px!important;right:6px;top:auto!important;bottom:calc(6px + env(safe-area-inset-bottom,0px));width:auto;max-height:70%;overflow-y:auto;border-radius:18px;padding:8px;animation:m-sheet .2s var(--ease)}
  .ctx button{min-height:48px;font-size:15px}
  .pop{left:8px!important;right:8px;width:auto!important;top:max(8px,calc(var(--app-h,100dvh) - min(62dvh,460px) - 8px))!important;height:min(62dvh,460px)!important;max-height:calc(var(--app-h,100dvh) - 16px)}
  .incoming{left:16px;right:16px;width:auto;bottom:calc(84px + env(safe-area-inset-bottom,0px))}

  /* плашка достижения: сверху и не ловит касания, иначе закрывает поле ввода и нажатие уходит в неё */
  .ach-pop{top:calc(60px + env(safe-area-inset-top,0px))!important;bottom:auto!important;left:8px!important;right:8px!important;width:auto!important;max-width:none!important;pointer-events:none}

  /* свайп по сообщению: ответить */
  .msg.m-swipe{position:relative;will-change:transform}
  .msg.m-swipe::after{content:"↩";position:absolute;right:-44px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--acc)}

  /* настройки в два шага */
  .settings-ov{display:block}
  .settings-ov .set-nav{max-height:none;height:100%;overflow-y:auto;padding:max(10px,env(safe-area-inset-top,0px)) 12px calc(16px + env(safe-area-inset-bottom,0px));border-bottom:0}
  .settings-ov .set-nav button{min-height:48px;font-size:15px}
  .settings-ov .set-body{display:none;height:100%;overflow-y:auto;padding:max(8px,env(safe-area-inset-top,0px)) 14px calc(32px + env(safe-area-inset-bottom,0px))}
  .settings-ov.m-page .set-nav{display:none}
  .settings-ov.m-page .set-body{display:block}
  .settings-ov .set-close{display:none}
  .set-mhead{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 8px}
  .set-mhead b{font-family:var(--f-disp);font-size:20px;font-weight:800}
  .settings-ov .set-nav .set-mhead button{min-height:40px}
  .set-back{display:flex;align-items:center;gap:6px;min-height:44px;margin:0 0 6px -6px;padding:0 10px 0 4px;font-weight:600;color:var(--mut)}
  .set-back .ico{transform:rotate(90deg);width:18px;height:18px}
  .composer textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .composer textarea{white-space:pre-wrap}

  /* игровой центр: фильтры одной лентой, чтобы игры было видно сразу */
  .gz-chips,.gz-filters .seg{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}
  .gz-chips::-webkit-scrollbar,.gz-filters .seg::-webkit-scrollbar{display:none}
  .gz-chips button,.gz-filters .seg button{flex:none;white-space:nowrap}
}
/* покер: вертикальный стол, как и в r-cards.js */
@media (max-width:820px){
  .pk-oval{aspect-ratio:3/4;width:min(76%,380px);margin-top:56px;margin-bottom:64px}
  .pk-seat{width:70px;padding:2px;font-size:10px;z-index:1}
  .pk-cards{height:30px}.pk-cards .pc{--w:21px}
  .pk-board .pc{--w:32px}
  .pk-info{max-width:50%;text-align:center;font-size:10px;line-height:1.25}
  .gz-stabs button{min-height:40px}
}
@media (min-width:761px){.set-mhead,.set-back{display:none}}
@keyframes m-sheet{from{transform:translateY(24px);opacity:0}}

/* в поле ввода мало места: гифки и стикеры есть во вкладках окна эмодзи */
@media (max-width:760px){.composer [data-tab=gif],.composer [data-tab=sticker]{display:none}}
