*, *::before, *::after { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { margin:0; padding:0; height:100%; overflow:hidden; background: var(--bg); -webkit-text-size-adjust:100%; text-size-adjust:100%;
    touch-action: manipulation; }
body { margin:0; min-height:100dvh; overflow:hidden; touch-action: manipulation; background: var(--bg); color: var(--fg);
    font-family: var(--font-sans); font-size: var(--fs-lg); line-height: var(--lh-base);
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
a { color: var(--accent); text-decoration: none; transition: color .15s; }
a:hover { color: var(--accent-hi); }
button, input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; outline: none; }
img, svg { display: block; max-width: 100%; }
h1,h2,h3 { margin:0; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* PWA-поведение: без выделения текста и без callout на ссылках/кнопках */
html, body { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
a, button, .tabbar, .tab, .tabbar .tab, .tab-avatar, .tab-avatar-circle {
    -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
}
input, textarea, [contenteditable="true"] {
    -webkit-user-select: text; user-select: text; -webkit-touch-callout: default;
}
img { -webkit-user-drag: none; -webkit-touch-callout: none; user-select: none; pointer-events: none; }
