/* mobile.css — адаптация под смартфоны и сенсорное управление */

:root {
  --mobile-header-height: 0px;
  --mobile-bottom-nav-height: 0px;
  --mobile-touch-min: 44px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.is-touch {
  -webkit-tap-highlight-color: transparent;
}

/* Samsung Internet и др.: синяя обводка :focus при тапе по кнопкам */
body.is-touch button,
body.is-touch button:focus,
body.is-touch button:active,
body.is-touch button:focus-visible,
body.is-touch [role="button"]:focus,
body.is-touch [role="button"]:active {
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
  -webkit-focus-ring-color: transparent;
}

body.is-touch .messenger-compose__attach,
body.is-touch .messenger-compose__emoji,
body.is-touch .messenger-compose__send,
body.is-touch .messenger-peer-cap__menu,
body.is-touch .messenger-new-fab,
body.is-touch .messenger-mobile-back-btn {
  -webkit-tap-highlight-color: transparent !important;
  outline: none !important;
}

body.is-touch .messenger-compose__attach:focus,
body.is-touch .messenger-compose__attach:active,
body.is-touch .messenger-compose__emoji:focus,
body.is-touch .messenger-compose__emoji:active {
  outline: none !important;
  box-shadow: none !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

/* Нижняя навигация создаётся скриптом — по умолчанию скрыта (стили только ≤768px) */
.mobile-bottom-nav {
  display: none !important;
}

.mobile-bottom-nav__icon svg {
  width: 24px;
  height: 24px;
  max-width: 24px;
  max-height: 24px;
  flex-shrink: 0;
}

/* Стрелка «назад к чатам» — только на телефоне в открытом чате */
.messenger-mobile-back-btn {
  display: none !important;
}

/* ===== Общая типографика и отступы ===== */
@media (max-width: 768px) {
  body.diary-fullscreen #diary-fullscreen-hint {
    display: none !important;
  }

  /* На телефоне скроллбары не нужны и при анимациях дают жёлтые полосы */
  html,
  body {
    overflow-x: hidden;
    overscroll-behavior: none;
    scrollbar-width: none;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  * {
    scrollbar-width: none;
  }

  *::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  /* Матрица статистики «По темам» / «Контрольные»: видимый горизонтальный скроллбар */
  #diary-stats-topics-hscroll-top,
  #diary-stats-topics-scroll {
    scrollbar-width: thin !important;
    scrollbar-color: var(--scrollbar-thumb, #FBEC5D) var(--scrollbar-track, #2f2f2f) !important;
  }
  #diary-stats-topics-hscroll-top::-webkit-scrollbar,
  #diary-stats-topics-scroll::-webkit-scrollbar {
    display: block !important;
    width: 10px !important;
    height: 10px !important;
  }
  #diary-stats-topics-hscroll-top::-webkit-scrollbar-thumb,
  #diary-stats-topics-scroll::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb, #FBEC5D) !important;
    border-radius: 999px;
  }
  #diary-stats-topics-hscroll-top::-webkit-scrollbar-track,
  #diary-stats-topics-scroll::-webkit-scrollbar-track {
    background: var(--scrollbar-track, #2f2f2f) !important;
  }

  body.mobile-page-leaving,
  body.mobile-page-entering,
  body.messenger-mobile-dialog-closing {
    overflow: hidden !important;
  }

  html:has(body.mobile-page-leaving),
  html:has(body.mobile-page-entering),
  html:has(body.messenger-mobile-dialog-closing) {
    overflow: hidden;
  }

  /* Шапка заменена нижней навигацией */
  .header--cabinet {
    display: none !important;
  }

  body.has-mobile-bottom-nav .main {
    padding-top: max(12px, calc(var(--safe-top) + 8px));
    padding-inline: max(12px, var(--safe-left)) max(12px, var(--safe-right));
    padding-bottom: calc(var(--mobile-bottom-nav-height, 64px) + 12px);
    gap: 16px;
    min-height: calc(var(--app-vh, 1vh) * 100 - var(--mobile-bottom-nav-height, 0px));
    box-sizing: border-box;
  }

  .main {
    padding-top: max(12px, calc(var(--safe-top) + 8px));
    padding-inline: max(12px, var(--safe-left)) max(12px, var(--safe-right));
    gap: 16px;
    min-height: calc(var(--app-vh, 1vh) * 100 - var(--mobile-bottom-nav-height, 0px));
    box-sizing: border-box;
  }

  .main__btn,
  a.main__btn {
    width: 100%;
    max-width: none;
    height: var(--mobile-touch-min);
    min-height: var(--mobile-touch-min);
    font-size: 1.15rem;
    border-radius: 16px;
    line-height: var(--mobile-touch-min);
  }

  a.main__btn {
    line-height: var(--mobile-touch-min);
  }

  .main__subtitle {
    font-size: 1rem;
    padding-inline: 4px;
    text-align: center;
  }

  .main__actions {
    width: 100%;
    max-width: 420px;
    padding-inline: 4px;
    box-sizing: border-box;
  }

  .cabinet-main {
    padding-inline: max(12px, var(--safe-left)) max(12px, var(--safe-right));
  }

  .cabinet-card {
    padding: 20px 16px;
    border-radius: 18px;
  }

  .notification {
    left: max(12px, var(--safe-left));
    right: max(12px, var(--safe-right));
    transform: none;
    max-width: none;
    width: auto;
    padding: 14px 18px;
    font-size: 1rem;
    box-sizing: border-box;
  }

  .notification.show {
    top: max(12px, calc(var(--safe-top) + 8px));
  }

  .notification.notification--pop.show,
  .notification.hide-up {
    animation: none;
  }

  .notification.messenger-toast-clickable:hover {
    transform: none;
    filter: none;
  }
}

/* ===== Модальные окна ===== */
@keyframes mobile-modal-sheet-in {
  from {
    transform: translateY(100%);
    opacity: 0.6;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

html.modal-scroll-lock,
body.modal-scroll-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.modal-scroll-lock {
  position: fixed;
  width: 100%;
  left: 0;
  right: 0;
}

@media (max-width: 768px) {
  .modal:not(#cabinet-profile-modal):not(#cabinet-settings-modal) {
    padding: 0;
    align-items: flex-end;
    overflow: hidden;
    overscroll-behavior: contain;
  }

  #cabinet-profile-modal.modal,
  #cabinet-settings-modal.modal {
    padding: 0;
    overflow: hidden;
    overscroll-behavior: contain;
  }

  .modal:not(#cabinet-profile-modal):not(#cabinet-settings-modal) .modal-content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 22px 16px max(18px, calc(var(--safe-bottom) + 8px));
    border-radius: 20px 20px 0 0;
    max-height: min(92vh, calc(var(--app-vh, 1vh) * 92));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform: translateY(100%) !important;
    opacity: 1 !important;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .modal {
    transition: opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .modal.show:not(#cabinet-profile-modal):not(#cabinet-settings-modal) .modal-content {
    transform: translateY(0) !important;
    opacity: 1 !important;
  }

  .messenger-group-settings-modal .modal-content.messenger-group-settings-modal__content,
  .messenger-profile-modal .modal-content.messenger-profile-modal__content,
  .messenger-search-modal .modal-content.messenger-search-modal__content,
  .messenger-group-modal .modal-content.messenger-group-modal__content,
  .messenger-new-chat-modal .modal-content.messenger-new-chat-modal__content,
  .auth-flow-modal .modal-content.messenger-group-settings-modal__content {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 20px 20px 0 0;
  }

  #register-modal,
  #login-modal {
    align-items: flex-end;
  }

  #register-modal .modal-content,
  #login-modal .modal-content {
    max-height: min(94vh, calc(var(--app-vh, 1vh) * 94));
  }

  .modal-close-btn {
    top: 10px;
    right: 10px;
    width: var(--mobile-touch-min);
    height: var(--mobile-touch-min);
    font-size: 2rem;
  }

  .modal-buttons {
    flex-direction: column;
    gap: 10px;
  }

  .modal .modal-buttons .main__btn,
  .modal .modal-buttons .modal-btn-cancel,
  .modal .modal-buttons .modal-btn-submit {
    width: 100%;
    min-width: 0;
    height: var(--mobile-touch-min);
    font-size: 1.05rem;
  }

  .toggle-setting {
    gap: 12px;
    padding: 12px 0;
  }

  .toggle-setting__label {
    font-size: 1.05rem;
  }

  .toggle-switch {
    width: 56px;
    height: 32px;
    flex-shrink: 0;
  }

  .toggle-slider__circle {
    width: 24px;
    height: 24px;
  }

  .toggle-switch input:checked + .toggle-slider > .toggle-slider__circle {
    transform: translateX(22px);
  }
}

/* ===== Профиль и настройки — нативные панели (не модалки снизу) ===== */
@media (max-width: 768px) {
  body.page-settings .profile-main {
    display: none !important;
  }

  body.cabinet-settings-mobile-panel-open .main {
    visibility: hidden;
    pointer-events: none;
  }

  /* Профиль на телефоне — нативная панель как чат/дневник (не модалка) */
  body.cabinet-profile-mobile-panel-open .main {
    visibility: hidden;
    pointer-events: none;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.modal {
    display: block;
    position: fixed;
    left: max(6px, var(--safe-left));
    right: max(6px, var(--safe-right));
    top: max(8px, calc(var(--safe-top) + 4px));
    bottom: calc(var(--mobile-bottom-nav-height, 64px) + 8px);
    z-index: 90;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    background: transparent !important;
    opacity: 1 !important;
    pointer-events: none;
    align-items: stretch;
    justify-content: flex-start;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.modal:not(.show) {
    visibility: hidden;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.modal.show,
  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.modal.cabinet-profile-modal--mobile-closing {
    visibility: visible;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.cabinet-profile-modal-content,
  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    border-radius: 16px;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.09),
      0 6px 22px rgba(0, 0, 0, 0.28);
    border: none;
    background: #353535 !important;
    color: rgba(255, 255, 255, 0.94);
    transform: translate3d(calc(100% + max(6px, var(--safe-right))), 0, 0) !important;
    opacity: 1 !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
    max-height: none !important;
    overflow-y: hidden !important;
    border-radius: 16px !important;
    pointer-events: auto;
    will-change: transform;
  }

  body.dark-theme #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.cabinet-profile-modal-content,
  body.dark-theme #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    background: #262626 !important;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.cabinet-profile-modal--mobile-open .modal-content.cabinet-profile-modal-content,
  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.cabinet-profile-modal--mobile-open .modal-content.messenger-group-settings-modal__content,
  body.page-profile #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show .modal-content.cabinet-profile-modal-content,
  body.page-profile #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show .modal-content.messenger-group-settings-modal__content {
    transform: translate3d(0, 0, 0) !important;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-close-btn {
    display: none !important;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-modal__head-strip {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    min-height: 68px;
    max-height: 68px;
    padding: 12px;
    margin: 0;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .messenger-group-settings-modal__title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    text-align: center;
    font-size: 1.05rem;
    order: 2;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-edit-btn {
    order: 3;
    flex-shrink: 0;
    margin-left: auto;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-modal__shell {
    flex: 1 1 auto;
    min-height: 0;
    padding: 0 12px 12px;
    box-sizing: border-box;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .messenger-gs-section__label {
    padding-inline: 2px;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-edit-actions {
    margin-inline: 0;
    border-radius: 0 0 16px 16px;
    background: #353535;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }

  body.dark-theme #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .cabinet-profile-edit-actions {
    background: #262626;
  }

  #cabinet-profile-modal.cabinet-profile-gender-menu-open.cabinet-profile-modal--mobile-panel .modal-content.cabinet-profile-modal-content,
  #cabinet-profile-modal.cabinet-profile-gender-menu-open.cabinet-profile-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    overflow: visible !important;
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.cabinet-profile-modal--edit-entering .modal-content.cabinet-profile-modal-content,
  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.cabinet-profile-modal--edit-entering .modal-content.messenger-group-settings-modal__content {
    transition: box-shadow 0.32s cubic-bezier(0.33, 1, 0.68, 1);
  }

  #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.cabinet-profile-modal--edit-entering.cabinet-profile-modal--editing .cabinet-profile-modal__head-strip .messenger-group-settings-modal__title {
    transition: opacity 0.22s ease, transform 0.22s ease;
    animation: cabinet-profile-mobile-title-in 0.24s cubic-bezier(0.33, 1, 0.68, 1) both;
  }

  @keyframes cabinet-profile-mobile-title-in {
    from {
      opacity: 0.55;
      transform: translateY(-4px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Вложенные модалки профиля — обычный overlay поверх */
  #cabinet-profile-avatar-modal.modal {
    align-items: center;
    justify-content: center;
    padding: max(12px, var(--safe-top)) 14px calc(var(--mobile-bottom-nav-height, 64px) + 14px);
    overflow-y: auto;
  }

  #cabinet-profile-avatar-modal .modal-content.messenger-group-avatar-edit-modal__content {
    width: min(500px, calc(100vw - 28px));
    max-width: min(500px, calc(100vw - 28px));
    margin: 0 auto;
    border-radius: 16px;
    max-height: min(88vh, calc(var(--app-vh, 1vh) * 88 - var(--mobile-bottom-nav-height, 64px) - 24px));
    padding: 22px 20px 18px;
    transform: scale(0.94) translateY(12px) !important;
    transition: transform 0.28s ease-out, opacity 0.28s ease-out !important;
    opacity: 0 !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.42);
  }

  #cabinet-profile-avatar-modal.show .modal-content.messenger-group-avatar-edit-modal__content {
    transform: scale(1) translateY(0) !important;
    opacity: 1 !important;
  }
  #profile-edit-name-modal.modal {
    align-items: center;
    justify-content: center;
    padding: max(12px, var(--safe-top)) 14px calc(var(--mobile-bottom-nav-height, 64px) + 14px);
  }

  #profile-edit-name-modal .modal-content.messenger-group-settings-modal__content {
    width: min(500px, calc(100vw - 28px));
    max-width: min(500px, calc(100vw - 28px));
    margin: 0 auto;
    border-radius: 16px;
    max-height: min(80vh, calc(var(--app-vh, 1vh) * 80 - var(--mobile-bottom-nav-height, 64px) - 24px));
    transform: scale(0.94) translateY(12px) !important;
    transition: transform 0.28s ease-out, opacity 0.28s ease-out !important;
    opacity: 0 !important;
  }

  #profile-edit-name-modal.show .modal-content.messenger-group-settings-modal__content {
    transform: scale(1) translateY(0) !important;
    opacity: 1 !important;
  }

  /* Настройки на телефоне — нативная панель как профиль/чат */
  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.modal {
    display: block;
    position: fixed;
    left: max(6px, var(--safe-left));
    right: max(6px, var(--safe-right));
    top: max(8px, calc(var(--safe-top) + 4px));
    bottom: calc(var(--mobile-bottom-nav-height, 64px) + 8px);
    z-index: 90;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    background: transparent !important;
    opacity: 1 !important;
    pointer-events: none;
    align-items: stretch;
    justify-content: flex-start;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.modal:not(.show) {
    visibility: hidden;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.modal.show,
  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.modal.cabinet-settings-modal--mobile-closing {
    visibility: visible;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.cabinet-settings-modal__content,
  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    border-radius: 16px;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.09),
      0 6px 22px rgba(0, 0, 0, 0.28);
    border: none;
    background: #353535 !important;
    color: rgba(255, 255, 255, 0.94);
    transform: translate3d(calc(100% + max(6px, var(--safe-right))), 0, 0) !important;
    opacity: 1 !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
    max-height: none !important;
    pointer-events: auto;
    will-change: transform;
  }

  body.dark-theme #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.cabinet-settings-modal__content,
  body.dark-theme #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    background: #262626 !important;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.cabinet-settings-modal--mobile-open .modal-content.cabinet-settings-modal__content,
  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.cabinet-settings-modal--mobile-open .modal-content.messenger-group-settings-modal__content,
  body.page-settings #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show .modal-content.cabinet-settings-modal__content,
  body.page-settings #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show .modal-content.messenger-group-settings-modal__content {
    transform: translate3d(0, 0, 0) !important;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-close-btn,
  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .cabinet-settings-modal__close {
    display: none !important;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .messenger-group-settings-modal__head-strip {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    min-height: 68px;
    max-height: 68px;
    padding: 12px;
    margin: 0;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .messenger-group-settings-modal__head-back {
    order: 1;
    flex-shrink: 0;
    margin: 0;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .messenger-group-settings-modal__title {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    text-align: center;
    font-size: 1.05rem;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .cabinet-settings-modal__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding: 8px 12px 12px;
    box-sizing: border-box;
  }

  #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .messenger-gs-section__label {
    padding-inline: 2px;
  }

  body.page-profile .profile-main {
    display: none !important;
  }

  .profile-main {
    align-items: stretch;
    padding-inline: max(12px, var(--safe-left)) max(12px, var(--safe-right));
    min-height: calc(var(--app-vh, 1vh) * 100 - var(--mobile-bottom-nav-height, 0px));
    padding-bottom: calc(var(--mobile-bottom-nav-height, 64px) + 12px);
    box-sizing: border-box;
  }

  .profile-plaque {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 88px;
    padding: 12px;
    border-radius: 24px;
    gap: 10px;
    box-sizing: border-box;
  }

  .profile-plaque__avatar {
    width: 64px;
    height: 64px;
  }

  .profile-plaque__info {
    min-width: 0;
    width: auto;
    flex: 1 1 auto;
    height: auto;
    min-height: 64px;
    padding: 10px 14px;
    border-radius: 20px;
  }

  .profile-plaque__name {
    font-size: clamp(1.1rem, 4.5vw, 1.45rem);
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .profile-plaque__number {
    font-size: 1rem;
  }

  .profile-plaque__copy-btn {
    min-width: var(--mobile-touch-min);
    min-height: var(--mobile-touch-min);
    padding: 10px;
  }
}

/* ===== Дневник ===== */
@media (max-width: 768px) {
  /* Ученический дневник: порядок блоков совпадает с Android — поиск,
     переключатель представления, фильтры, действия и таблица. */
  body.diary-mobile-android-layout .diary-section {
    gap: 8px;
    padding: 0;
    overflow: visible;
  }

  body.diary-mobile-android-layout .diary-controls-panel {
    gap: 8px;
    padding: 10px;
    border-radius: 14px;
  }

  .diary-mobile-view-switcher {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.06);
  }

  .diary-mobile-view-switcher[hidden] {
    display: none !important;
  }

  .diary-mobile-module-picker {
    display: grid;
    gap: 8px;
    min-width: 0;
  }

  .diary-mobile-module-picker[hidden] {
    display: none !important;
  }

  .diary-mobile-section-label {
    display: none;
  }

  .diary-mobile-module-picker__chips {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 3px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .diary-mobile-module-picker__chips::-webkit-scrollbar {
    display: none;
  }

  .diary-mobile-module-chip {
    flex: 0 0 auto;
    min-height: 40px;
    max-width: min(62vw, 230px);
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.82);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
  }

  .diary-mobile-module-chip--active {
    border-color: rgba(251, 236, 93, 0.95);
    background: rgba(251, 236, 93, 0.16);
    color: #fbec5d;
  }

  .diary-mobile-view-switcher__tab {
    min-height: 40px;
    padding: 7px 8px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 700;
  }

  .diary-mobile-view-switcher__tab--active {
    background: #fbec5d;
    color: #292929;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  }

  body.diary-mobile-android-layout .diary-controls-panel__head {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  body.diary-mobile-android-layout .diary-controls-panel__head-tools {
    order: -1;
    width: 100%;
    min-height: 0;
  }

  body.diary-mobile-android-layout .diary-inline-search--panel,
  body.diary-mobile-android-layout .diary-inline-search--panel.messenger-inline-search--expanded {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
  }

  body.diary-mobile-android-layout .diary-inline-search--panel .messenger-inline-search__submit,
  body.diary-mobile-android-layout .diary-inline-search--panel.messenger-inline-search--expanded .messenger-inline-search__submit {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    flex-basis: 44px !important;
  }

  body.diary-mobile-android-layout .diary-inline-search--panel:not(.messenger-inline-search--expanded) .messenger-inline-search__body {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
  }

  body.diary-mobile-android-layout .diary-inline-search--panel:not(.messenger-inline-search--expanded) .messenger-inline-search__input {
    display: block;
    width: 100%;
    min-width: 0;
  }

  body.diary-mobile-android-layout .diary-controls-panel__head .diary-toolbar {
    flex-basis: auto;
    width: 100%;
  }

  body.diary-mobile-android-layout .diary-module-selector {
    display: none !important;
  }

  body.diary-mobile-android-layout .diary-subject-selector,
  body.diary-mobile-android-layout .diary-class-selector {
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  body.diary-mobile-android-layout .diary-parent-child-switcher {
    order: 0;
    margin: 0;
  }

  body.diary-mobile-android-layout .diary-student-hw-range {
    order: 1;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }

  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-controls-panel__head,
  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-mobile-module-picker,
  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-parent-child-switcher,
  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-student-hw-range,
  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-teacher-subject-note,
  body.diary-mobile-android-layout.diary-mobile-stats-view #diary-table-scroll-stack,
  body.diary-mobile-android-layout.diary-mobile-stats-view #diary-student-tomorrow-view {
    display: none !important;
  }

  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-student-stats {
    display: block !important;
    margin: 0;
    padding: 4px 0 0;
  }

  /* В режимах, где пока нет вычисляемой статистики, не оставляем пустой экран. */
  body.diary-mobile-android-layout.diary-mobile-stats-view .diary-student-stats[hidden]::before {
    content: 'Статистика для этого режима появится после загрузки данных.';
    display: block;
    padding: 14px 2px 4px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.92rem;
    line-height: 1.45;
  }

  /* У страницы и таблицы независимая прокрутка: свайп вне таблицы листает
     страницу, а внутри таблицы — её собственный scrollport. */
  body.page-diary:not(.diary-modal-open) {
    overflow-y: scroll !important;
    position: static;
    overscroll-behavior-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-diary:not(.diary-modal-open) .main--diary,
  body.page-diary:not(.diary-modal-open) .diary-section,
  body.page-diary:not(.diary-modal-open) .diary-table-scroll-stack {
    height: auto !important;
    min-height: 0;
    max-height: none !important;
    overflow: visible !important;
  }

  body.page-diary:not(.diary-modal-open) .main--diary {
    padding-top: 6px;
    padding-bottom: max(12px, var(--safe-bottom));
  }

  body.page-diary:not(.diary-modal-open) .diary-table-wrapper {
    height: min(62vh, calc(var(--app-vh, 1vh) * 62));
    max-height: min(62vh, calc(var(--app-vh, 1vh) * 62));
    overflow: auto;
    overscroll-behavior: auto;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
  }

  /* В раскрытом меню администратора длинный список листается отдельно,
     не упираясь в высоту модального окна. */
  .diary-settings-subjects-content--open {
    max-height: min(66vh, 640px);
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  /* Отдельная мобильная колонка дат: не зависит от desktop-правил
     corner/date и many-cols. */
  body.page-diary:not(.diary-modal-open) .diary-table col.diary-table__mobile-date-column {
    width: 72px;
  }

  body.page-diary:not(.diary-modal-open) .diary-table col.diary-table__mobile-content-column {
    width: var(--diary-mobile-column-width);
  }

  body.page-diary:not(.diary-modal-open) .diary-table .diary-table__cell--mobile-date-column {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    overflow: hidden;
  }

  body.page-diary:not(.diary-modal-open) .diary-table__corner-cap {
    flex-direction: column;
    width: 72px !important;
    min-width: 0 !important;
    max-width: 72px !important;
    overflow: hidden;
  }

  body.page-diary:not(.diary-modal-open) .diary-table thead .diary-table__cell--mobile-date-column {
    border-top-width: 0;
  }

  body.page-diary:not(.diary-modal-open) .diary-table__corner-actions {
    flex: 0 0 34px;
    flex-direction: row;
    width: 100%;
    height: 34px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  body.page-diary:not(.diary-modal-open) .diary-table__corner-fs-cell,
  body.page-diary:not(.diary-modal-open) .diary-table__corner-more-cell {
    flex: 1 1 50%;
    width: 50%;
    min-height: 34px;
    border-top: 0;
    border-bottom: 0;
  }

  body.page-diary:not(.diary-modal-open) .diary-table__corner-fs-cell {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }

  body.page-diary:not(.diary-modal-open) .diary-table__corner-week-cell {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    padding: 3px 2px 4px;
    overflow: hidden;
    font-size: 0.62rem;
  }

  body.page-diary:not(.diary-modal-open) .diary-table thead .diary-table__sticky-week {
    width: 100%;
    font-size: 0.78rem;
    line-height: 1.1;
    white-space: nowrap;
  }

  body.page-diary:not(.diary-modal-open) .diary-table__date--full,
  body.page-diary:not(.diary-modal-open) .diary-table__checkpoint-title--full {
    display: none;
  }

  body.page-diary:not(.diary-modal-open) .diary-table tbody .diary-table__cell--mobile-date-column {
    padding-inline: 6px;
  }

  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table col.diary-table__mobile-date-column {
    width: 152px;
  }

  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table .diary-table__cell--mobile-date-column {
    width: 152px !important;
    min-width: 152px !important;
    max-width: 152px !important;
    padding-inline: 12px;
  }

  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table__date--short,
  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table__checkpoint-title--short {
    display: none;
  }

  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table__date--full,
  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table__checkpoint-title--full {
    display: block;
  }

  body.page-diary:not(.diary-modal-open) .diary-table__checkpoint-title--short {
    font-size: 1rem;
    text-align: center;
  }

  /* Мобильная таблица использует явную сетку из <col>: алгоритм auto больше
     не может отдать первому столбцу свободное место от остальных колонок. */
  body.page-diary:not(.diary-modal-open) .diary-table {
    width: var(--diary-mobile-table-width, 72px) !important;
    max-width: none !important;
    min-width: 0 !important;
    table-layout: fixed !important;
  }

  body.page-diary.diary-mobile-dates-expanded:not(.diary-modal-open) .diary-table {
    width: calc(var(--diary-mobile-table-width, 72px) + 80px) !important;
  }

  body.page-diary:not(.diary-modal-open) .diary-table thead .diary-table__cell--header {
    width: 1%;
    white-space: nowrap;
  }

  .main--diary {
    padding-inline: max(8px, var(--safe-left)) max(8px, var(--safe-right));
    padding-top: 12px;
  }

  .diary-section {
    padding: 8px 0;
    gap: 12px;
  }

  .diary-controls-panel {
    padding: 14px 12px;
    border-radius: 16px;
  }

  .diary-toolbar {
    gap: 10px 12px;
  }

  .diary-module-selector,
  .diary-subject-selector,
  .diary-class-selector {
    flex: 1 1 100%;
    min-width: 0;
  }

  .diary-module-select,
  .diary-homework-form__date,
  .diary-homework-form__input {
    font-size: 16px; /* предотвращает zoom на iOS при фокусе */
  }

  .diary-mode-row {
    gap: 8px;
  }

  .diary-mode-toggle__btn,
  .messenger-folder-tab {
    min-height: var(--mobile-touch-min);
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .diary-table-wrapper {
    border-radius: 12px;
    -webkit-overflow-scrolling: touch;
  }

  .diary-inline-search--panel.messenger-inline-search--expanded {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .diary-bulk-grades-modal__footer .main__btn {
    width: 100%;
    min-width: 0;
  }

  .diary-homework-sort-menu {
    left: 0;
    right: 0;
    max-width: none;
    min-width: 0;
  }
}

/* ===== Переходы между разделами (нижняя навигация) ===== */
@media (max-width: 768px) {
  html {
    background: #484848;
  }

  body {
    --mobile-page-slide-gap: 8px;
    --mobile-page-nav-duration: 90ms;
  }

  body.dark-theme {
    background: #1a1a1a;
  }

  html:has(body.dark-theme) {
    background: #1a1a1a;
  }

  body.mobile-page-leaving .main,
  body.mobile-page-leaving .messenger-shell,
  body.mobile-page-leaving .profile-main,
  body.mobile-page-leaving .cabinet-main,
  body.mobile-page-leaving #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-leaving #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transition: transform var(--mobile-page-nav-duration) cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
    overflow: hidden;
    opacity: 1 !important;
  }

  body.mobile-page-entering .main,
  body.mobile-page-entering .messenger-shell,
  body.mobile-page-entering .profile-main,
  body.mobile-page-entering .cabinet-main,
  body.mobile-page-entering #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-entering #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    overflow: hidden;
    opacity: 1 !important;
  }

  body.mobile-page-leaving--next .main,
  body.mobile-page-leaving--next .messenger-shell,
  body.mobile-page-leaving--next .profile-main,
  body.mobile-page-leaving--next .cabinet-main,
  body.mobile-page-leaving--next #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-leaving--next #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(calc(-50% - var(--mobile-page-slide-gap)), 0, 0);
  }

  body.mobile-page-leaving--prev .main,
  body.mobile-page-leaving--prev .messenger-shell,
  body.mobile-page-leaving--prev .profile-main,
  body.mobile-page-leaving--prev .cabinet-main,
  body.mobile-page-leaving--prev #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-leaving--prev #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(calc(50% + var(--mobile-page-slide-gap)), 0, 0);
  }

  body.mobile-page-entering--next:not(.mobile-page-entered) .main,
  body.mobile-page-entering--next:not(.mobile-page-entered) .messenger-shell,
  body.mobile-page-entering--next:not(.mobile-page-entered) .profile-main,
  body.mobile-page-entering--next:not(.mobile-page-entered) .cabinet-main,
  body.mobile-page-entering--next:not(.mobile-page-entered) #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-entering--next:not(.mobile-page-entered) #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(calc(50% + var(--mobile-page-slide-gap)), 0, 0);
    transition: none;
  }

  body.mobile-page-entering--prev:not(.mobile-page-entered) .main,
  body.mobile-page-entering--prev:not(.mobile-page-entered) .messenger-shell,
  body.mobile-page-entering--prev:not(.mobile-page-entered) .profile-main,
  body.mobile-page-entering--prev:not(.mobile-page-entered) .cabinet-main,
  body.mobile-page-entering--prev:not(.mobile-page-entered) #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-entering--prev:not(.mobile-page-entered) #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(calc(-50% - var(--mobile-page-slide-gap)), 0, 0);
    transition: none;
  }

  body.mobile-page-entering--next.mobile-page-entered .main,
  body.mobile-page-entering--next.mobile-page-entered .messenger-shell,
  body.mobile-page-entering--next.mobile-page-entered .profile-main,
  body.mobile-page-entering--next.mobile-page-entered .cabinet-main,
  body.mobile-page-entering--next.mobile-page-entered #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-entering--next.mobile-page-entered #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(0, 0, 0);
    transition: transform var(--mobile-page-nav-duration) cubic-bezier(0.4, 0, 0.2, 1);
  }

  body.mobile-page-entering--prev.mobile-page-entered .main,
  body.mobile-page-entering--prev.mobile-page-entered .messenger-shell,
  body.mobile-page-entering--prev.mobile-page-entered .profile-main,
  body.mobile-page-entering--prev.mobile-page-entered .cabinet-main,
  body.mobile-page-entering--prev.mobile-page-entered #cabinet-profile-modal.cabinet-profile-modal--mobile-panel.show,
  body.mobile-page-entering--prev.mobile-page-entered #cabinet-settings-modal.cabinet-settings-modal--mobile-panel.show {
    transform: translate3d(0, 0, 0);
    transition: transform var(--mobile-page-nav-duration) cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Capacitor: мягче и бесшовнее между разделами */
  body.capacitor-native-app {
    --mobile-page-nav-duration: 0.28s;
    --mobile-page-slide-gap: 18px;
    -webkit-tap-highlight-color: transparent;
    background: #484848;
  }

  body.capacitor-native-app.mobile-page-leaving .main,
  body.capacitor-native-app.mobile-page-leaving .messenger-shell,
  body.capacitor-native-app.mobile-page-leaving .profile-main,
  body.capacitor-native-app.mobile-page-leaving .cabinet-main {
    transition:
      transform var(--mobile-page-nav-duration) cubic-bezier(0.32, 0.72, 0, 1),
      opacity var(--mobile-page-nav-duration) ease;
    opacity: 0.72;
  }

  body.capacitor-native-app.mobile-page-entering .main,
  body.capacitor-native-app.mobile-page-entering .messenger-shell,
  body.capacitor-native-app.mobile-page-entering .profile-main,
  body.capacitor-native-app.mobile-page-entering .cabinet-main {
    transition:
      transform var(--mobile-page-nav-duration) cubic-bezier(0.32, 0.72, 0, 1),
      opacity var(--mobile-page-nav-duration) ease;
  }

  body.capacitor-native-app.mobile-page-entering--next:not(.mobile-page-entered) .main,
  body.capacitor-native-app.mobile-page-entering--next:not(.mobile-page-entered) .messenger-shell,
  body.capacitor-native-app.mobile-page-entering--next:not(.mobile-page-entered) .profile-main,
  body.capacitor-native-app.mobile-page-entering--next:not(.mobile-page-entered) .cabinet-main {
    opacity: 0.72;
  }

  body.capacitor-native-app.mobile-page-entering--prev:not(.mobile-page-entered) .main,
  body.capacitor-native-app.mobile-page-entering--prev:not(.mobile-page-entered) .messenger-shell,
  body.capacitor-native-app.mobile-page-entering--prev:not(.mobile-page-entered) .profile-main,
  body.capacitor-native-app.mobile-page-entering--prev:not(.mobile-page-entered) .cabinet-main {
    opacity: 0.72;
  }

  body.capacitor-native-app.mobile-page-entering--next.mobile-page-entered .main,
  body.capacitor-native-app.mobile-page-entering--next.mobile-page-entered .messenger-shell,
  body.capacitor-native-app.mobile-page-entering--next.mobile-page-entered .profile-main,
  body.capacitor-native-app.mobile-page-entering--next.mobile-page-entered .cabinet-main,
  body.capacitor-native-app.mobile-page-entering--prev.mobile-page-entered .main,
  body.capacitor-native-app.mobile-page-entering--prev.mobile-page-entered .messenger-shell,
  body.capacitor-native-app.mobile-page-entering--prev.mobile-page-entered .profile-main,
  body.capacitor-native-app.mobile-page-entering--prev.mobile-page-entered .cabinet-main {
    opacity: 1;
  }

  /* Во время enter-перехода страницы не дублируем внутренний свайп панели профиля */
  body.mobile-page-entering #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.cabinet-profile-modal-content,
  body.mobile-page-entering #cabinet-profile-modal.cabinet-profile-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    transform: none !important;
    transition: none !important;
  }

  body.mobile-page-entering #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.cabinet-settings-modal__content,
  body.mobile-page-entering #cabinet-settings-modal.cabinet-settings-modal--mobile-panel .modal-content.messenger-group-settings-modal__content {
    transform: none !important;
    transition: none !important;
  }
}

  body.bg-pattern-drift .bg-pattern,
  body.bg-pattern-return .bg-pattern,
  body.dark-theme.bg-pattern-drift .bg-pattern,
  body.dark-theme.bg-pattern-return .bg-pattern {
    animation: none !important;
    will-change: auto;
  }

  .account-approval-field {
    grid-template-columns: 1fr auto;
    gap: 8px;
  }

  .account-approval-field__value {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  .diary-stats-kpi-split__col {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
}

/* ===== Нижняя навигация ===== */
@media (max-width: 768px) {
  /* Плитки «Дневник / Мессенджер» дублируют нижнюю панель */
  .cabinet-welcome__tiles {
    display: none;
  }

  .cabinet-main--welcome {
    padding-top: 16px;
    gap: 12px;
  }

  .mobile-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 120;
    display: flex !important;
    align-items: stretch;
    justify-content: space-around;
    gap: 2px;
    min-height: 58px;
    padding: 6px max(8px, var(--safe-left)) max(8px, var(--safe-bottom)) max(8px, var(--safe-right));
    background: #2a2a2a;
    border-top: 1px solid rgba(251, 236, 93, 0.18);
    box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.35);
    box-sizing: border-box;
  }

  body.dark-theme .mobile-bottom-nav {
    background: #1e1e1e;
    border-top-color: rgba(251, 236, 93, 0.22);
  }

  .mobile-bottom-nav__item {
    flex: 1 1 0;
    min-width: 0;
    max-width: 96px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 4px 2px;
    border: none;
    border-radius: 12px;
    background: transparent;
    color: rgba(255, 255, 255, 0.58);
    text-decoration: none;
    font-family: 'Kdam Thmor Pro', Arial, sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.1;
    cursor: pointer;
    position: relative;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-bottom-nav__item--active {
    color: #fbec5d;
    background: rgba(251, 236, 93, 0.1);
  }

  .mobile-bottom-nav__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
  }

  .mobile-bottom-nav__icon svg {
    width: 24px;
    height: 24px;
  }

  .mobile-bottom-nav__label {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-bottom-nav__badge {
    position: absolute;
    top: 6px;
    right: calc(50% - 18px);
    width: 9px;
    height: 9px;
    padding: 0;
    border-radius: 50%;
    text-indent: -9999px;
    font-size: 0;
  }
}

/* ===== Мессенджер: master-detail на узком экране ===== */
@media (max-width: 768px) {
  #msgr-messenger-settings-btn {
    display: none !important;
  }

  body.has-mobile-bottom-nav .main.messenger-main,
  .main.messenger-main {
    /* Те же отступы, что у панели профиля и диалога чата */
    padding-top: max(8px, calc(var(--safe-top) + 4px));
    padding-inline: max(6px, var(--safe-left)) max(6px, var(--safe-right));
    padding-bottom: calc(var(--mobile-bottom-nav-height, 64px) + 8px);
    gap: 0;
    height: calc(var(--app-vh, 1vh) * 100);
    min-height: calc(var(--app-vh, 1vh) * 100);
    max-height: calc(var(--app-vh, 1vh) * 100);
    overflow: hidden;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
  }

  .messenger-shell {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    height: 100%;
    min-height: 0;
    flex: 1 1 0;
    border-radius: 16px;
    background: #353535;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.09),
      0 6px 22px rgba(0, 0, 0, 0.28);
    overflow: hidden;
  }

  body.messenger-mobile-layout .bg-pattern {
    display: none !important;
  }

  body.dark-theme .messenger-shell {
    background: #262626;
  }

  .messenger-chats {
    display: contents;
  }

  .messenger-chats__head {
    order: 1;
    flex-shrink: 0;
    padding: 12px 12px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  .messenger-controls {
    order: 2;
    flex-shrink: 0;
    padding: 8px 12px 10px;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .messenger-folder-toolbar__tabs {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    touch-action: pan-x;
  }

  .messenger-folder-toolbar__tabs::-webkit-scrollbar {
    display: none;
  }

  .messenger-chats__body {
    order: 3;
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: hidden;
    margin-bottom: 0;
  }

  .messenger-chats__list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 72px;
  }

  .messenger-chats__list > .messenger-chat,
  .messenger-chats__list > .messenger-chats__empty {
    flex-shrink: 0;
  }

  .messenger-chats__search {
    width: 100%;
    min-height: var(--mobile-touch-min);
    font-size: 16px;
    box-sizing: border-box;
    background: rgba(53, 53, 53, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.94);
  }

  .messenger-chats__search::placeholder {
    color: rgba(255, 255, 255, 0.45);
  }

  .messenger-folder-toggle {
    flex-wrap: nowrap;
    max-width: none;
    width: max-content;
    min-width: 0;
    overflow: visible;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
  }

  #msgr-folder-toggle.messenger-folder-toggle {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .messenger-folder-toggle--touch-dragging {
    touch-action: none;
  }

  body.msgr-folder-tab-dragging .messenger-folder-toolbar__tabs {
    overflow: visible;
  }

  .messenger-folder-tab {
    padding: 10px 14px;
    font-size: 0.92rem;
    flex: 0 0 auto;
    border-radius: 11px;
  }

  #msgr-folder-toggle .messenger-folder-tab--active {
    border-radius: 11px;
    box-shadow: inset 0 0 0 1.5px rgba(251, 236, 93, 0.42) !important;
  }

  .messenger-folder-toolbar__settings {
    width: var(--mobile-touch-min);
    height: var(--mobile-touch-min);
  }

  .messenger-chat {
    padding: 12px;
    min-height: var(--mobile-touch-min);
    border-radius: 14px;
  }

  .messenger-chat--active {
    background: rgba(255, 255, 255, 0.07) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
  }

  body.dark-theme .messenger-chat--active {
    background: rgba(255, 255, 255, 0.07) !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }

  .messenger-chat--active:hover,
  body.dark-theme .messenger-chat--active:hover {
    background: rgba(255, 255, 255, 0.09) !important;
    box-shadow: none !important;
  }

  .messenger-dialog {
    position: fixed;
    left: max(6px, var(--safe-left));
    right: max(6px, var(--safe-right));
    top: max(8px, calc(var(--safe-top) + 4px));
    bottom: calc(var(--mobile-bottom-nav-height, 64px) + 8px);
    z-index: 90;
    min-height: 0;
    height: auto;
    border-radius: 16px;
    display: flex !important;
    flex-direction: column;
    transform: translate3d(calc(100% + max(6px, var(--safe-right))), 0, 0);
    opacity: 1;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s;
    will-change: transform;
  }

  body.messenger-mobile-dialog-open .messenger-dialog,
  body.messenger-mobile-dialog-closing .messenger-dialog {
    visibility: visible;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s;
  }

  body.messenger-mobile-dialog-open .messenger-dialog {
    transform: translate3d(0, 0, 0);
    pointer-events: auto;
  }

  body.messenger-mobile-dialog-closing .messenger-dialog {
    transform: translate3d(calc(100% + max(6px, var(--safe-right))), 0, 0);
    pointer-events: none;
  }

  .messenger-dialog.messenger-dialog--enter {
    animation: none !important;
  }

  .messenger-pinned {
    flex: 0 0 auto;
    flex-shrink: 0;
  }

  .messenger-messages {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: manipulation;
    padding-bottom: calc(var(--msgr-compose-height, 66px) + 4px);
    scroll-padding-bottom: calc(var(--msgr-compose-height, 66px) + 4px);
  }

  .messenger-msg,
  .messenger-msg__bubble {
    -webkit-touch-callout: none;
  }

  .messenger-msg--selectable .messenger-msg__select-bg {
    left: 28px;
    right: 2px;
  }

  .messenger-compose {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    flex: none;
    flex-shrink: 0;
    z-index: 3;
    gap: 0;
    background: transparent;
    border-top: none;
    pointer-events: auto;
  }

  .messenger-compose__top:not(:has(> :not([hidden]))) {
    display: none;
  }

  body.dark-theme .messenger-compose {
    background: transparent;
  }

  .messenger-scroll-bottom {
    bottom: calc(var(--msgr-compose-full-height, var(--msgr-compose-height, 64px)) + 12px);
  }

  .messenger-dialog__head.messenger-peer-cap {
    position: sticky;
    top: 0;
    z-index: 6;
    flex-shrink: 0;
    flex-wrap: nowrap !important;
    padding: 12px;
    gap: 10px;
    align-items: center;
    min-height: 68px;
    height: 68px;
    max-height: 68px;
    box-sizing: border-box;
    overflow: hidden;
    background: #353535;
  }

  body.dark-theme .messenger-dialog__head.messenger-peer-cap {
    background: #262626;
  }

  body.messenger-mobile-keyboard-open .mobile-bottom-nav {
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(110%);
    opacity: 0;
  }

  body.messenger-mobile-keyboard-open.messenger-mobile-dialog-open .messenger-dialog {
    top: calc(var(--msgr-vv-offset-top, 0px) + max(8px, calc(var(--safe-top) + 4px)));
    bottom: auto;
    height: var(--msgr-vv-height, calc(var(--app-vh, 1vh) * 100));
    max-height: var(--msgr-vv-height, calc(var(--app-vh, 1vh) * 100));
  }

  body.messenger-mobile-keyboard-open .messenger-dialog__head.messenger-peer-cap {
    position: sticky;
    top: 0;
    z-index: 6;
  }

  /* Capacitor Keyboard API — те же правила, что и visualViewport на Samsung Browser */
  body.capacitor-keyboard-open .mobile-bottom-nav {
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(110%);
    opacity: 0;
  }

  body.capacitor-keyboard-open.messenger-mobile-dialog-open .messenger-dialog {
    top: calc(var(--msgr-vv-offset-top, 0px) + max(8px, calc(var(--safe-top) + 4px)));
    bottom: auto;
    height: calc(var(--msgr-vv-height, calc(var(--app-vh, 1vh) * 100)) - var(--cap-keyboard-height, 0px));
    max-height: calc(var(--msgr-vv-height, calc(var(--app-vh, 1vh) * 100)) - var(--cap-keyboard-height, 0px));
  }

  body.capacitor-keyboard-open .messenger-dialog__head.messenger-peer-cap {
    position: sticky;
    top: 0;
    z-index: 6;
  }

  /* Capacitor / app-shell: клавиатура через adjustResize, без ручного ресайза диалога */
  body.capacitor-native-app.messenger-mobile-keyboard-open.messenger-mobile-dialog-open .messenger-dialog,
  body.capacitor-native-app.capacitor-keyboard-open.messenger-mobile-dialog-open .messenger-dialog {
    top: max(8px, calc(var(--safe-top) + 4px)) !important;
    bottom: max(8px, var(--safe-bottom, 0px)) !important;
    height: auto !important;
    max-height: none !important;
  }

  body.app-shell-embed.messenger-mobile-keyboard-open.messenger-mobile-dialog-open .messenger-dialog,
  body.app-shell-embed.capacitor-keyboard-open.messenger-mobile-dialog-open .messenger-dialog {
    top: max(8px, calc(var(--safe-top) + 4px)) !important;
    /* Для iframe app-shell embed app-shell.css уже задаёт bottom:0 — не оставляем лишнюю "полосу" снизу. */
    bottom: var(--safe-bottom, 0px) !important;
    height: auto !important;
    max-height: none !important;
  }

  body.capacitor-native-app.capacitor-keyboard-open .mobile-bottom-nav,
  body.capacitor-native-app.messenger-mobile-keyboard-open .mobile-bottom-nav {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .messenger-peer-cap__media,
  .messenger-peer-cap__info,
  #msgr-dialog-menu-btn {
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease 0.06s,
      margin 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      visibility 0s;
  }

  body.messenger-inline-search-expanded .messenger-peer-cap__media,
  body.messenger-inline-search-expanded .messenger-peer-cap__info,
  body.messenger-inline-search-expanded #msgr-dialog-menu-btn {
    flex: 0 0 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease,
      visibility 0s linear 0.28s;
  }

  body.messenger-inline-search-expanded .messenger-compose {
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
  }

  body.messenger-inline-search-expanded.messenger-mobile-dialog-open .messenger-dialog {
    top: max(8px, calc(var(--safe-top) + 4px)) !important;
    bottom: calc(var(--mobile-bottom-nav-height, 64px) + 8px) !important;
    height: auto !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: #353535 !important;
    isolation: isolate;
  }

  body.dark-theme.messenger-inline-search-expanded.messenger-mobile-dialog-open .messenger-dialog {
    background: #262626 !important;
  }

  body.messenger-inline-search-expanded .messenger-messages {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    position: relative !important;
    z-index: 1 !important;
  }

  body.messenger-inline-search-expanded .messenger-dialog__head.messenger-peer-cap {
    flex-shrink: 0 !important;
    z-index: 8 !important;
    background: #353535;
  }

  body.dark-theme.messenger-inline-search-expanded .messenger-dialog__head.messenger-peer-cap {
    background: #262626;
  }

  body.messenger-mobile-dialog-open .messenger-chats__head,
  body.messenger-mobile-dialog-open .messenger-controls,
  body.messenger-mobile-dialog-open .messenger-chats__body {
    visibility: hidden;
    pointer-events: none;
  }

  .messenger-peer-cap__info {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 1000px;
    overflow: hidden;
  }

  .messenger-peer-cap__info .messenger-dialog__title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25;
  }

  .messenger-peer-cap__info .messenger-dialog__sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
  }

  .messenger-mobile-back-btn {
    order: 0;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
  }

  .messenger-peer-cap__media {
    order: 1;
    flex: 0 0 auto;
    max-width: 52px;
    overflow: hidden;
  }

  #msgr-selection-actions {
    order: 3;
  }

  #msgr-inline-search {
    order: 4;
    flex: 1 1 44px;
    min-width: 44px;
    max-width: 44px;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    margin-left: auto !important;
    margin-right: 0 !important;
    padding: 0;
    border-radius: 14px;
    display: inline-flex !important;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid transparent;
    box-shadow: none;
    overflow: hidden;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      background 0.22s ease,
      border-color 0.22s ease,
      box-shadow 0.22s ease,
      margin-left 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  }

  #msgr-inline-search.messenger-inline-search--expanded {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 56px);
    margin-left: 8px !important;
    justify-content: flex-start;
    gap: 4px;
    padding: 0 4px 0 0;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }

  #msgr-dialog-menu-btn {
    order: 5;
    margin-left: 0;
    flex: 0 0 auto;
    max-width: 44px;
    overflow: hidden;
  }

  #msgr-inline-search .messenger-inline-search__submit {
    width: 44px;
    min-width: 44px;
    height: 44px;
    max-height: 44px;
    flex: 0 0 44px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 14px;
    box-sizing: border-box;
    color: rgba(255, 255, 255, 0.92);
    outline: none;
  }

  #msgr-inline-search:not(.messenger-inline-search--expanded) {
    justify-content: center !important;
    margin-left: auto !important;
    padding: 0 !important;
    gap: 0 !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }

  #msgr-inline-search:not(.messenger-inline-search--expanded) .messenger-inline-search__submit {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
  }

  #msgr-inline-search:not(.messenger-inline-search--expanded):focus-within {
    background: rgba(255, 255, 255, 0.14) !important;
  }

  #msgr-inline-search .messenger-inline-search__body,
  #msgr-inline-search .messenger-inline-search__nav-stack,
  #msgr-inline-search .messenger-inline-search__count {
    display: flex;
    align-items: center;
    overflow: hidden;
    flex: 0 0 auto;
    min-width: 0;
    max-width: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease,
      visibility 0s linear 0.28s;
  }

  #msgr-inline-search .messenger-inline-search__body {
    flex: 1 1 auto;
  }

  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__body {
    max-width: 100%;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    gap: 6px;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease 0.04s,
      visibility 0s;
  }

  #msgr-inline-search.messenger-inline-search--expanded.messenger-inline-search--with-query .messenger-inline-search__nav-stack {
    max-width: 72px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    flex-direction: row !important;
    gap: 4px;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease 0.06s,
      visibility 0s;
  }

  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__nav-stack {
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease 0.06s,
      visibility 0s;
  }

  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__count {
    max-width: 72px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    flex: 0 0 auto;
    font-size: 0.78rem;
    transition:
      max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.22s ease 0.04s,
      visibility 0s;
  }

  #msgr-inline-search .messenger-inline-search__count[aria-hidden="true"],
  #msgr-inline-search .messenger-inline-search__nav-stack[aria-hidden="true"] {
    max-width: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #msgr-inline-search .messenger-inline-search__submit-label {
    display: none !important;
  }

  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__submit {
    border-radius: 12px;
  }

  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__submit:focus,
  #msgr-inline-search.messenger-inline-search--expanded .messenger-inline-search__submit:focus-visible {
    background: rgba(255, 255, 255, 0.1) !important;
  }

  #msgr-inline-search .messenger-inline-search__input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    height: 32px;
    font-size: 16px;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 6px;
  }

  #msgr-inline-search:not(.messenger-inline-search--expanded) .messenger-inline-search__input {
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
  }

  #msgr-inline-search .messenger-inline-search__nav {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    border-radius: 10px;
  }

  body.messenger-mobile-layout .messenger-dialog__head.messenger-peer-cap {
    flex-wrap: nowrap !important;
  }

  body.messenger-mobile-layout #msgr-inline-search {
    width: auto !important;
    min-width: 44px !important;
  }

  body.messenger-mobile-layout #msgr-inline-search.messenger-inline-search--expanded {
    width: auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 56px) !important;
    margin-left: 8px !important;
  }

  body.messenger-mobile-layout #msgr-inline-search:not(.messenger-inline-search--expanded) {
    max-width: 44px !important;
    margin-left: auto !important;
    justify-content: center !important;
  }

  #msgr-dialog-top-menu.messenger-context-menu {
    transform-origin: top right;
  }

  #msgr-dialog-top-menu.messenger-context-menu.messenger-context-menu--open {
    animation: messengerMenuPopRight 420ms cubic-bezier(0.16, 1, 0.3, 1);
  }

  @keyframes messengerMenuPopRight {
    0% { transform: scale(0.92) translateY(12px); }
    55% { transform: scale(1.03) translateY(0); }
    100% { transform: scale(1) translateY(0); }
  }

  body.messenger-selection-head-compact .messenger-peer-cap__media,
  body.messenger-selection-head-compact .messenger-peer-cap__info,
  body.messenger-selection-head-compact #msgr-inline-search,
  body.messenger-selection-head-compact #msgr-dialog-menu-btn {
    display: none !important;
  }

  .messenger-mobile-back-btn {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    color: #fbec5d;
    font-size: 0;
    line-height: 0;
    font-family: 'Kdam Thmor Pro', Arial, sans-serif;
    display: none !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .messenger-mobile-back-btn__icon {
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    display: block;
  }

  body.messenger-mobile-layout.messenger-mobile-dialog-open .messenger-mobile-back-btn,
  body.messenger-mobile-layout.messenger-mobile-dialog-closing .messenger-mobile-back-btn {
    display: inline-flex !important;
  }

  body.messenger-selection-head-compact .messenger-selection-actions {
    flex: 1 1 auto;
    min-width: 0;
    margin-left: 0;
    padding-left: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    justify-content: flex-start;
    gap: 4px;
    overflow-y: visible;
  }

  body.messenger-selection-head-compact .messenger-selection-actions__count,
  body.messenger-selection-head-compact .messenger-selection-actions__btn {
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
  }

  body.messenger-selection-head-compact .messenger-selection-actions::-webkit-scrollbar {
    display: none;
  }

  body.messenger-selection-head-compact .messenger-selection-actions__btn span {
    display: none;
  }

  body.messenger-selection-head-compact .messenger-selection-actions__btn {
    min-width: var(--mobile-touch-min);
    min-height: 36px;
    padding: 8px;
  }

  body.messenger-selection-head-compact .messenger-mobile-back-btn {
    display: inline-flex !important;
  }

  .messenger-profile-modal.show {
    z-index: 100000 !important;
  }

  .messenger-peer-cap__menu {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  .messenger-compose {
    padding: 4px 10px max(12px, calc(var(--safe-bottom) + 8px));
  }

  .messenger-compose__attach,
  .messenger-compose__emoji,
  .messenger-compose__input {
    background: #2e2e2e !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
  }

  body.dark-theme .messenger-compose__attach,
  body.dark-theme .messenger-compose__emoji,
  body.dark-theme .messenger-compose__input {
    background: #1f1f1f !important;
  }

  .messenger-compose__send {
    background: #fbec5d !important;
    border: 1px solid rgba(42, 42, 42, 0.28) !important;
    box-shadow: 0 0 22px rgba(251, 236, 93, 0.42) !important;
  }

  .messenger-compose__send.messenger-compose__send--edit,
  .messenger-compose__send.messenger-compose__send--recording {
    background: #2e2e2e !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
    color: rgba(255, 255, 255, 0.92) !important;
  }

  body.dark-theme .messenger-compose__send.messenger-compose__send--edit,
  body.dark-theme .messenger-compose__send.messenger-compose__send--recording {
    background: #1f1f1f !important;
  }

  .messenger-compose__input,
  .messenger-compose__attach,
  .messenger-compose__emoji,
  .messenger-compose__send {
    min-height: 44px;
  }

  .messenger-compose__input {
    font-size: 16px;
  }

  .messenger-compose__input::placeholder {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .messenger-compose__attach:focus,
  .messenger-compose__attach:focus-visible,
  .messenger-compose__emoji:focus,
  .messenger-compose__emoji:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
  }

  .messenger-compose__send:focus,
  .messenger-compose__send:focus-visible {
    outline: none !important;
  }

  .messenger-compose__controls {
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
  }

  .messenger-msg .messenger-voice-bubble {
    width: min(300px, calc(100vw - 96px)) !important;
    min-width: min(240px, calc(100vw - 96px)) !important;
    max-width: min(300px, calc(100vw - 96px)) !important;
    box-sizing: border-box;
    gap: 8px;
    padding: 6px 10px 6px 6px;
  }

  .messenger-msg .messenger-voice-bubble__play {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
  }

  .messenger-msg .messenger-voice-bubble__body {
    flex: 1 1 auto;
    min-width: 0;
  }

  .messenger-msg .messenger-voice-bubble__top {
    grid-template-columns: minmax(0, 1fr) 28px;
    column-gap: 6px;
  }

  .messenger-msg .messenger-voice-bubble__bottom {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 6px;
  }

  .messenger-msg .messenger-voice-bubble__time {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .messenger-msg .messenger-voice-bubble__status {
    flex-wrap: nowrap;
    white-space: nowrap;
  }

  .messenger-msg--me .messenger-msg__bubble:has(.messenger-voice-bubble),
  .messenger-msg--peer .messenger-msg__bubble:has(.messenger-voice-bubble) {
    max-width: min(100%, calc(100vw - 80px));
  }

  .messenger-voice-record--touch .messenger-voice-record__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .messenger-voice-record--touch:not(.messenger-voice-record--locked) .messenger-voice-record__hint--lock {
    display: inline-flex !important;
  }

  .messenger-voice-record--touch .messenger-voice-record__hint--cancel {
    display: none !important;
  }

  .messenger-voice-record--touch .messenger-voice-record__cancel {
    display: none !important;
  }

  .messenger-voice-record--touch.messenger-voice-record--locked .messenger-voice-record__cancel {
    display: inline-flex !important;
    min-width: var(--mobile-touch-min);
    min-height: var(--mobile-touch-min);
    width: var(--mobile-touch-min);
    height: var(--mobile-touch-min);
    border-radius: 14px;
    font-size: 1.1rem;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.92);
  }

  .messenger-voice-record--touch .messenger-voice-record__stop {
    display: none !important;
  }

  .messenger-assignment-modal__controls {
    grid-template-columns: 1fr;
  }

  .messenger-compose__controls .messenger-compose__send.messenger-compose__send--edit {
    flex: 1 1 100%;
    width: 100%;
    min-width: 100%;
  }

  .messenger-new-fab {
    bottom: max(14px, calc(var(--safe-bottom) + 10px));
  }

  .messenger-group-avatar-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  /* Все модалки мессенджера — снизу */
  .messenger-new-chat-modal.modal,
  .messenger-group-modal.modal,
  .messenger-profile-modal.modal,
  .messenger-group-settings-modal.modal,
  .messenger-search-modal.modal {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  .messenger-new-chat-modal .modal-content,
  .messenger-new-chat-modal .modal-content.messenger-new-chat-modal__content,
  .messenger-group-modal .modal-content,
  .messenger-group-modal .modal-content.messenger-group-modal__content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    max-height: min(92vh, calc(var(--app-vh, 1vh) * 92)) !important;
    transform: translateY(100%) scale(1) !important;
    opacity: 1 !important;
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .messenger-new-chat-modal.show .modal-content,
  .messenger-new-chat-modal.show .modal-content.messenger-new-chat-modal__content,
  .messenger-group-modal.show .modal-content,
  .messenger-group-modal.show .modal-content.messenger-group-modal__content {
    transform: translateY(0) scale(1) !important;
    opacity: 1 !important;
  }

  /* Дневник: модалки ДЗ/КТ/КР выше типового sheet мессенджера */
  body.page-diary .diary-homework-modal.messenger-new-chat-modal .modal-content.messenger-new-chat-modal__content.diary-homework-modal__content,
  body.page-diary #diary-homework-modal .modal-content.diary-homework-modal__content,
  body.page-diary #diary-kr-homework-modal .modal-content.diary-homework-modal__content {
    max-height: min(96vh, calc(var(--app-vh, 1vh) * 96)) !important;
  }
}

/* ===== Сенсорные устройства: убираем hover-эффекты, увеличиваем зоны нажатия ===== */
@media (hover: none) and (pointer: coarse) {
  .main__btn:hover,
  .header__back-btn:hover,
  .cabinet-profile-icon:hover,
  .cabinet-welcome-tile:hover,
  .messenger-chat:hover,
  .messenger-folder-tab:hover,
  .diary-add-homework-btn:hover,
  .modal-close-btn:hover,
  .modal-btn-submit:hover,
  .messenger-controls__new:hover,
  .messenger-peer-cap__menu:hover,
  .messenger-msg__reaction:hover {
    transform: none;
    box-shadow: inherit;
  }

  .main__btn:active,
  .cabinet-welcome-tile:active,
  .messenger-chat:active,
  .header__back-btn:active {
    transform: scale(0.98);
    opacity: 0.92;
  }

  .messenger-folder-tab,
  .diary-mode-toggle__btn,
  .diary-homework-sort__btn,
  .messenger-compose__send,
  .messenger-compose__attach,
  .messenger-compose__emoji,
  .password-toggle,
  .auth-flow-modal__password-toggle {
    min-width: var(--mobile-touch-min);
    min-height: var(--mobile-touch-min);
  }

  .diary-table__homework-expand-btn,
  .diary-table__homework-msgr-btn {
    min-width: 36px;
    min-height: 36px;
  }

  .messenger-inline-search__nav,
  .messenger-inline-search__submit {
    min-width: var(--mobile-touch-min);
    min-height: var(--mobile-touch-min);
  }
}

/* Офлайн-баннер (дневник / мессенджер) */
.samolet-offline-banner {
  position: fixed;
  top: max(8px, var(--safe-top, 0px));
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  max-width: min(420px, calc(100vw - 24px));
  padding: 8px 14px;
  border-radius: 10px;
  background: rgba(200, 60, 60, 0.95);
  color: #fff;
  font-size: 13px;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  pointer-events: none;
}

body.samolet-offline-mode .samolet-offline-banner {
  pointer-events: auto;
}

@media (min-width: 769px) {
  .diary-table__date--short,
  .diary-table__checkpoint-title--short {
    display: none !important;
  }
}
