ol.is-empty, ul.is-empty { list-style: none; padding-left: 0; }
.hub { max-width: 1100px; margin: 0 auto; padding: 16px; }
.hub-section { margin: 24px 0; }
.hub-list { display: grid; gap: 16px; }
.card { border: 1px solid var(--line, #d0d7de); border-radius: 8px; padding: 16px; background: var(--bg, #fff); margin-bottom: 12px; }
.approval h3 { margin: 0 0 4px; }
.approval.focused { border-color: var(--accent, #2563eb); border-width: 2px; }
.focus:focus { outline: none; }
.approval textarea { width: 100%; box-sizing: border-box; margin: 4px 0 8px; }
.preview { margin: 8px 0; overflow-x: auto; }
.hub-notes li.high { font-weight: 600; }
.hub-activity { font-size: .9rem; max-height: 280px; overflow-y: auto; }
.failures li { color: var(--danger, #b42318); }
.mono { font-family: var(--mono, monospace); }
.hub-tabs { display: flex; flex-wrap: wrap; gap: 4px 16px; border-bottom: 1px solid var(--line, #d0d7de); margin: 8px 0 16px; padding-bottom: 8px; }
.hub-tabs a { text-decoration: none; padding: 4px 2px; }
.hub-tabs a[aria-current="page"] { font-weight: 600; border-bottom: 2px solid currentColor; }
.badge { display: inline-block; min-width: 1.4em; padding: 0 6px; border-radius: 999px; background: var(--danger, #b42318); color: #fff; font-size: .75rem; text-align: center; }
.hub-inbox { list-style: none; padding: 0; }
.inbox-item.unread .inbox-title { font-weight: 600; }
.inbox-item.done { opacity: .7; }
.inbox-title { margin: 4px 0; }
.preview-text { white-space: pre-wrap; color: var(--muted, #57606a); }
.hub-split { display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: 16px; }
@media (max-width: 700px) { .hub-split { grid-template-columns: 1fr; } }
.channel-list { list-style: none; padding: 0; margin: 0; }
.channel-list li { margin: 0 0 8px; }
.linklike { background: none; border: 0; padding: 0; color: var(--link, #2563eb); cursor: pointer; font: inherit; text-decoration: underline; }
.messages { list-style: none; padding: 0; }
.message { border-bottom: 1px solid var(--line, #d0d7de); padding: 8px 0; }
.message-body { white-space: pre-wrap; margin: 4px 0; }
.channel-box textarea { width: 100%; box-sizing: border-box; }
.radio { display: flex; align-items: center; gap: 8px; margin: 6px 0; }
.radio input { margin: 0; }
.radio label { display: inline; margin: 0; font-weight: normal; }
