.sb-hub{margin:2px 8px 8px;border:1px solid transparent;border-radius:12px}
.sb-hub-head{width:100%;min-height:42px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;cursor:pointer;text-align:start}
.sb-hub-head:hover,.sb-hub-head:focus-visible{background:var(--surface-2);outline:none}
.sb-hub-title{font-size:13px;font-weight:700;letter-spacing:.01em}
.sb-hub-count{min-width:24px;padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:11px;text-align:center}
.sb-hub-caret{font-size:16px;transition:transform .18s ease}
.sb-hub-head[aria-expanded="false"] .sb-hub-caret{transform:rotate(90deg)}
.sb-hub-body[hidden]{display:none}
.sb-hub-body{padding:0 2px 4px}
.sb-subgroup{margin:0;border:0}
.sb-subgroup>.sb-sec{min-height:34px;padding-inline:10px;opacity:.78}
.sb-subgroup>.sb-sec .sb-sec-label{font-size:11px;font-weight:600}
.sb-advanced-collapsed:not(.sb-advanced-open) .sb-advanced-item{display:none}
.sb-more{width:calc(100% - 12px);margin:4px 6px;padding:7px 10px;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-2);font:inherit;font-size:11px;cursor:pointer;text-align:center}
.sb-more:hover,.sb-more:focus-visible{border-color:var(--brand);color:var(--text);outline:none;background:var(--surface-2)}
.app-frame.collapsed .sb-hub{margin-inline:4px}
.app-frame.collapsed .sb-hub-head{display:none}
.app-frame.collapsed .sb-hub-body,.app-frame.collapsed .sb-hub-body[hidden]{display:block}
.app-frame.collapsed .sb-subgroup>.sb-sec,.app-frame.collapsed .sb-more{display:none}
/* Live nav search reach: app.js's #nav-filter only toggles .hidden on .ni/.sb-group,
   so a match tucked inside a collapsed hub body or behind "More" would stay hidden.
   The simplifier's JS sets these classes while a query is active; here we surface the
   matches. Non-matches carry .hidden{display:none!important} so they never leak. */
.sb-hub-body.sb-hub-search-open,.sb-hub-body.sb-hub-search-open[hidden]{display:block}
.sb-hub.sb-hub-search-empty{display:none}
.sb-advanced-collapsed.sb-search-reveal .sb-advanced-item:not(.hidden){display:flex}
@media (max-width:900px){.sb-hub{margin-inline:6px}.sb-hub-head{min-height:46px}.sb-more{min-height:40px}}
@media (prefers-reduced-motion:reduce){.sb-hub-caret{transition:none}}
