.foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    max-width: var(--shell);
    margin: 0 auto;
    padding: 10px 16px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    font: 11px var(--mono);
    color: var(--dim);
}

.foot a { color: var(--dim); }
.foot a:hover { color: var(--accent); text-decoration: none; }

.online { margin-top: 2px; }

.doc { margin-top: 2px; }

.doc h2 {
    margin: 14px 0 4px;
    font: 700 13px var(--serif);
    color: var(--text);
}

.doc h2:first-of-type { margin-top: 6px; }

.doc p { margin: 0 0 8px; max-width: 64ch; }

.doc ul { margin: 0 0 8px; padding-left: 18px; }
.doc li { margin: 2px 0; max-width: 62ch; }
.doc code { font: 12px var(--mono); color: var(--dim); }

.olist { border-top: 1px solid var(--line); }

.o-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    border-bottom: 1px solid var(--line);
}

.o-row .ava { width: 26px; height: 26px; font-size: 12px; }
.o-about { flex: 1; min-width: 0; color: var(--dim); font: 13px var(--serif); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o-when { flex: none; font: 11px var(--mono); color: var(--dim); }

.search-form { display: flex; gap: 8px; margin-bottom: 10px; }
.search-form input { flex: 1; }
.search-results { border-top: 1px solid var(--line); }
.s-room {
    padding: 5px 8px;
    background: var(--panel);
    border-bottom: 1px solid var(--line);
    font: 11px var(--mono);
    color: var(--dim);
}
.s-room a { color: var(--dim); }
.s-room a:hover { color: var(--accent); text-decoration: none; }

