        /* ── the weather: what the screen says when a read fails, an answer
           is empty, or nobody is signed in. Every one of these is a line
           this round put there; before it they were an empty box, a spinner
           with no end, or a Rust string in the red toast. */
        slskOn: (function () { try { return __ss.slsk.connection; } catch (e) { return ''; } })(),
        signin: !!document.querySelector('.signin'),
        signinErr: (document.querySelector('.signin-err') || {}).textContent || '',
        why: (document.querySelector('.stub.why') || {}).textContent || '',
        /* the toast's one action, by its words: "Try again" or "Sign in" */
        retry: (document.querySelector('.toast:not(.notice) .na') || {}).textContent || '',
        again: !![].slice.call(document.querySelectorAll('.imp-foot .btn')).find(function (b) { return /Try again/.test(b.textContent); }),
        roomsNote: (document.querySelector('.rooms-note') || {}).textContent || '',
        offlineNote: (document.querySelector('.offline-note') || {}).textContent || '',
        netAsk: !!document.querySelector('.net-ask'),
        folderGone: (document.querySelector('.folder-gone') || {}).textContent || '',
        lyrNote: (document.querySelector('.lyr-note') || {}).textContent || '',
        lyrTools: !!document.querySelector('.lyr-tools'),
        trks: document.querySelectorAll('.screen .trk').length,
        /* the phone's trouble-words step leaves its eleven sentences here */
        trouble: (function () { try { return String(window.__trouble || ''); } catch (e) { return ''; } })(),