body { margin: 0; }
/* Меню закреплено по высоте окна: при прокрутке и смене экранов пункты и блок пользователя не двигаются. */
.app-sidebar { display:flex; position:sticky; top:0; height:100vh; align-self:flex-start; }
.app-sidebar .tme-side { height:100%; overflow-y:auto; }
/* overflow:hidden у каркаса ломает position:sticky; clip так же обрезает свечение, но не создаёт контейнер прокрутки. */
.tme-app { overflow:clip; }
.app-span-3 { --span:3; --span-md:6; min-width:0; }
.app-span-4 { --span:4; --span-md:12; min-width:0; }
.app-span-6 { --span:6; --span-md:12; min-width:0; }
.app-span-8 { --span:8; --span-md:12; min-width:0; }
.app-span-12 { --span:12; min-width:0; }
.app-toolbar { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.app-mobile-nav { display:none; }
.app-login { min-height:100vh; display:grid; place-items:center; background:var(--bg-page); color:var(--ink); }
.app-login > * { width:min(400px,calc(100vw - 48px)); height:auto; align-self:center; }
.app-login form { display:grid; gap:20px; }
.app-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.app-rival-cell { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.app-delta { display:inline-flex; gap:8px; align-items:center; }
.app-login form { margin-top:24px; }
.tme-app .tme-drawer { position:fixed; height:100dvh; }
.tme-main a, .tme-drawer a { color:var(--accent); }
@media(max-width:768px) {
  .app-sidebar { display:none; }
  .app-mobile-nav { display:flex; flex-wrap:nowrap; gap:8px; position:sticky; top:0; z-index:3; padding:8px 0; overflow-x:auto; background:var(--bg-page); }
  .app-mobile-nav .tme-btn { flex:none; min-height:44px; }
  .tme-grid > div { grid-column:1/-1; }
}
