/* Shared design tokens and t-* typography; scoped to the laboratory catalogue. */
.sm-lab { --sm-header-offset: 0px; }
.sm-lab [hidden] { display: none !important; }
.sm-lab :is(h1,h2,h3,p) { margin: 0; }
.sm-lab-layout { display: grid; grid-template-columns: 339px minmax(0,1fr); gap: var(--space-12); align-items: start; margin: 0; }
.sm-lab-content { min-width: 0; }
.sm-lab-search { background: var(--c-copy); padding: var(--space-24); border-radius: var(--radius-sm); margin-bottom: var(--space-24); }
.sm-lab-search label { display: block; color: var(--c-white); margin-bottom: var(--space-12); }
.sm-lab-input { display: flex; gap: var(--space-12); align-items: center; background: var(--c-white); padding: var(--space-8) var(--space-16); border-radius: var(--radius-sm); color: var(--color-brand); }
.sm-lab-input svg { flex-shrink: 0; }
.sm-lab .sm-lab-input input { width: 100%; min-width: 0; border: 0; background: transparent; color: var(--color-heading); padding: var(--space-8) 0; border-radius: 0; outline: 0; box-shadow: none; }
.sm-lab-input:focus-within { outline: 3px solid var(--c-blue-light); outline-offset: 3px; }
.sm-lab .sm-lab-input button { border: 0; background: var(--color-brand); color: var(--c-white); padding: var(--space-10) var(--space-16); border-radius: var(--radius-sm); }
.sm-lab-group { background: var(--color-surface); border-radius: var(--radius-sm); overflow: hidden; margin-bottom: var(--space-20); }
.sm-lab-group-heading { background: var(--color-brand); color: var(--c-white); padding: var(--space-16) var(--space-24); }
.sm-lab-group-heading h3 { margin-top: var(--space-4); color: inherit; }
.sm-lab table { border-collapse: collapse; border: 0; margin: 0; width: 100%; table-layout: fixed; text-align: left; }
.sm-lab :is(th,td) { border: 0; border-bottom: 1px solid var(--color-surface-brand); padding: var(--space-16) var(--space-24); background: transparent !important; vertical-align: top; overflow-wrap: anywhere; }
.sm-lab th { color: var(--color-text); font-weight: var(--font-weight-book); }
.sm-lab td { color: var(--color-heading); }
.sm-lab tr:last-child td { border-bottom: 0; }
.sm-lab :is(th,td):last-child { width: 170px; text-align: right; }
.sm-lab td small { display: block; margin-top: var(--space-8); color: var(--color-text); }
.sm-lab-empty,.sm-lab-error { padding: var(--space-24); border-radius: var(--radius-sm); background: var(--color-surface); }
.sm-lab-error { margin-bottom: var(--space-20) !important; border: 1px solid var(--color-danger); }
.sm-lab-error button { border: 0; background: transparent; color: var(--color-brand); padding: var(--space-8); text-decoration: underline; }
.sm-lab-more { max-width: 340px; margin: var(--space-24) auto 0; }
.sm-lab [aria-busy="true"] { opacity: .6; }
@media(max-width:767px) {
    .sm-lab-layout { grid-template-columns: minmax(0,1fr); }
    .sm-lab-search { padding: var(--space-20); }
    .sm-lab-input { gap: var(--space-8); padding-inline: var(--space-12); }
    .sm-lab .sm-lab-input button { padding-inline: var(--space-8); }
    .sm-lab-group-heading { padding: var(--space-16); }
    .sm-lab :is(th,td) { padding: var(--space-16); }
    .sm-lab :is(th,td):last-child { width: 118px; }
    .sm-lab td { font-size: var(--text-body-sm-size); }
}
.sm-lab-group td a { color: inherit; text-decoration: none; }
.sm-lab-group td a:hover, .sm-lab-group td a:focus-visible { color: var(--color-brand); text-decoration: underline; }
.sm-lab-mobile-actions { grid-template-columns: 1fr; margin-bottom: var(--space-16); }
