/* sidebar.css — cell-catalog sidebar. Tokens only. */
.sb-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-3); }
.sb-title { font-family: var(--display); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-dim); }
.sb-collapse { padding: 2px 7px; font-size: 11px; letter-spacing: 0; }
.sb-section { margin-bottom: var(--sp-3); }
.sb-cat { font-family: var(--mono); font-size: 9px; letter-spacing: 0.20em; text-transform: uppercase; color: var(--ink-faint); padding: var(--sp-2) 4px var(--sp-1); border-top: 1px solid var(--rule); }
.sb-section:first-of-type .sb-cat { border-top: none; }
.sb-item { display: flex; align-items: center; gap: var(--sp-2); padding: 5px 6px; border-radius: 1px; cursor: grab; color: var(--ink-mid); transition: background 120ms, color 120ms; }
.sb-item:hover { background: var(--surface-2); color: var(--ink); }
.sb-item:active { cursor: grabbing; }
.sb-nav { margin-bottom: var(--sp-3); }
.sb-nav-item { cursor: pointer; }
.sb-nav-item:active { cursor: pointer; }
.sb-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; flex: 0 0 16px; color: var(--ink-dim); }
.sb-item:hover .sb-icon { color: var(--accent); }
.sb-icon svg { width: 16px; height: 16px; }
.sb-icon .glyph { font-family: var(--mono); font-size: 13px; line-height: 1; }
.sb-label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; color: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* mini mode (§6.3 mini icons = 20px) */
.workspace.sidebar-mini { grid-template-columns: 56px 1fr; }
.workspace.sidebar-mini .sb-title,
.workspace.sidebar-mini .sb-cat,
.workspace.sidebar-mini .sb-label { display: none; }
.workspace.sidebar-mini .sb-head { justify-content: center; }
.workspace.sidebar-mini .sb-item { justify-content: center; padding: 7px 0; }
.workspace.sidebar-mini .sb-icon { width: 20px; height: 20px; flex-basis: 20px; }
.workspace.sidebar-mini .sb-icon svg { width: 20px; height: 20px; }
