/* Точечные переопределения кита (публичные классы .chip/.badge/.tag-input):
аперкейс кит ставит всем бейджам/чипам глобально, но теги должны читаться
в оригинальном регистре (имена тегов регистрозависимы по смыслу). Прочие
бейджи (статус/приоритет/проект/время) остаются как в ките. */
.tag-input .chip,
.tag-suggest .chip,
.tag-badge {
text-transform: none;
}
/* Спиннер обновления данных: под топбаром в правом углу, контент не сдвигает */
.refresh-loader {
position: fixed;
top: 66px;
right: 18px;
z-index: 500;
}
/* --- iOS Safari (типовые проблемы, 2026-09-23) --- */
/* Зум полей при фокусе: iOS Safari автоматически зумит страницу, если у поля
font-size < 16px, и зум застревает после blur (ломает весь layout). У кита
поля/селекты 15px (наследуют body), поле тегов 13px — на touch-устройствах
поднимаем до 16px; на десктопе вид не меняется. */
@media (hover: none) and (pointer: coarse) {
.form-group .label .input,
.form-group .label .select-wrap .select,
.tag-input .tag-input-field {
font-size: 16px;
}
}
/* 100vh в iOS Safari выше видимой области (учитывает свёрнутую панель) — низ
drawer'ов/модалок уезжает под панель браузера и индикатор «домой». dvh —
фактическая высота (Safari 15.4+); на старых Safari невалидное значение
игнорируется и остаётся китовский 100vh. */
.drawer .drawer-panel {
min-height: 100dvh;
}
.nav-drawer {
max-height: 100dvh;
padding-bottom: env(safe-area-inset-bottom);
}
.modal .modal-dialog {
max-height: calc(100dvh - 48px);
}
/* viewport-fit=cover: контент уходит под жест-индикатор «домой» и «чёлку».
Тосты прижаты к bottom:15px кита — поднимаем на safe-area; в браузерном
Safari inset снизу = 0, поведение не меняется. */
.toast.a-show {
bottom: calc(15px + env(safe-area-inset-bottom));
}
/* контент drawer'а не упирается в индикатор «домой» */
.drawer .drawer-body {
padding-bottom: calc(18px + env(safe-area-inset-bottom));
}
/* в PWA (standalone) верх страницы уходит под статус-бар: топбар отступает
(в браузере inset = 0) */
.nav-topbar {
padding-top: env(safe-area-inset-top);
}
/* спиннер обновления держится ниже топбара, который в PWA становится выше */
.refresh-loader {
top: calc(66px + env(safe-area-inset-top));
}
/* Серая тап-подсветка WebKit поверх кнопок/чипов/ссылок — не в стиле кита.
Активное состояние у кита есть (media hover:none) — подсветка не нужна. */
a,
button,
.chip,
.badge,
.tag-input-wrap {
-webkit-tap-highlight-color: transparent;
}
/* iOS иногда раздувает текст при повороте в landscape — запрещаем */
html {
-webkit-text-size-adjust: 100%;
}