.gallery-toc { display: flex; flex-wrap: wrap; gap: 6px; border-block: 1px solid var(--b04-border); padding: 10px 0; }
.gallery-toc a { min-height: var(--b04-target); display: inline-flex; align-items: center; padding: 8px 10px; text-decoration: none; border-radius: 4px; font-size: .8125rem; }
.gallery-toc a:hover { background: var(--b04-accent-soft); }
.gallery-family { display: grid; gap: 14px; min-width: 0; scroll-margin-top: 20px; }
.gallery-family-heading { display: grid; gap: 4px; padding-top: 16px; }
.gallery-family-heading h2 { font-size: 1.35rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.gallery-specimen { min-width: 0; }
.gallery-specimen .b04-state { background: var(--b04-bg); }
.gallery-specimen .b04-menu { width: fit-content; }
.gallery-specimen .b04-menu-items { left: 0; right: auto; }
.icon-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.icon-tile { display: grid; gap: 10px; align-content: start; border: 1px solid var(--b04-border); border-radius: 6px; padding: 16px; min-width: 0; }
.icon-tile .b04-icon { width: 24px; height: 24px; }
.icon-tile small { color: var(--b04-muted); font-size: .6875rem; }
@media (max-width: 1199px) { .gallery-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 599px) { .icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
