/* Navigation keeps its frame while data refreshes. A loading bar never moves cards. */
html { scrollbar-gutter:stable; }
@supports not (scrollbar-gutter:stable) { html { overflow-y:scroll; } }
html:root[data-theme] body .view-section { position:relative;display:flow-root; }
html:root[data-theme] body .view-section>.view-loading {
  position:absolute;inset-block-start:-12px;inset-inline:0;height:2px;
  padding:0;margin:0;border:0;border-radius:2px;background:var(--m-accent,var(--cyan));
  pointer-events:none;
}
.view-section>.view-loading>span {
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0;
}
@media (prefers-reduced-motion:no-preference) {
  html:root[data-theme] body,html:root[data-theme] body .sidebar { transition:background-color .18s ease-out; }
  html:root[data-theme] body .view-section { animation:viewFade .16s ease-out both; }
  @keyframes viewFade { from { opacity:.55; } to { opacity:1; } }
}
@media (prefers-reduced-motion:reduce) {
  html:root[data-theme] body .view-section { animation:none; }
}
