.spatial-source-directory {
  width: 100%;
  min-width: 0;
  margin: 1.25rem 0 2rem;
  color: var(--theme-foreground, #172635);
  font: 0.9rem/1.5 var(--sans-serif, system-ui, sans-serif);
}
.spatial-source-directory__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.65rem;
}
.spatial-source-directory__controls label { display: flex; flex-direction: column; gap: 0.3rem; min-width: 0; font-weight: 600; }
.spatial-source-directory__search { flex: 1 1 15rem; }
.spatial-source-directory__category { flex: 1 1 14rem; }
.spatial-source-directory__controls :is(input, select, button) {
  box-sizing: border-box;
  min-width: 0;
  min-height: 2.7rem;
  max-width: 100%;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--theme-foreground-faint, #667987);
  border-radius: 4px;
  color: var(--theme-foreground, #172635);
  background: var(--theme-background, #ffffff);
  font: inherit;
}
.spatial-source-directory__controls :is(input, select) { width: 100%; }
.spatial-source-directory__controls button { cursor: pointer; }
.spatial-source-directory__controls input::placeholder { color: var(--theme-foreground-muted, #485968); opacity: 1; }
.spatial-source-directory__count { margin: 0.65rem 0; color: var(--theme-foreground-muted, #485968); }
.spatial-source-directory__scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--theme-foreground-faint, #667987); border-radius: 4px; }
.spatial-source-directory table { width: 100%; max-width: none; min-width: 39rem; margin: 0; table-layout: fixed; border-collapse: collapse; font: inherit; }
.spatial-source-directory caption { padding: 0.6rem 0.75rem; text-align: left; color: var(--theme-foreground-muted, #485968); font-size: 0.8rem; }
.spatial-source-directory :is(th, td) { padding: 0.7rem 0.75rem; text-align: left; vertical-align: top; white-space: normal; overflow-wrap: anywhere; border-top: 1px solid var(--theme-foreground-faint, #667987); }
.spatial-source-directory thead th { background: var(--theme-background-alt, #f5f7f7); }
.spatial-source-directory thead th:first-child { width: 25%; }
.spatial-source-directory thead th:nth-child(2) { width: 40%; }
.spatial-source-directory thead th:last-child { width: 35%; }
.spatial-source-directory p { max-width: none; margin: 0; }
.spatial-source-directory__source-category { display: block; margin-top: 0.3rem; color: var(--theme-foreground-muted, #485968); font-size: 0.8rem; font-weight: 400; }
.spatial-source-directory__coverage { margin-bottom: 0.35rem !important; font-weight: 600; }
.spatial-source-directory a { color: var(--theme-foreground-focus, #007a5e); text-decoration: underline; text-underline-offset: 0.15em; }
.spatial-source-directory summary { position: relative; cursor: pointer; }
.spatial-source-directory details > dl { margin: 0.6rem 0 0; font-size: 0.85rem; }
.spatial-source-directory dt { font-weight: 600; }
.spatial-source-directory dd { margin: 0.2rem 0 0.65rem; }
.spatial-source-directory dd:last-child { margin-bottom: 0; }
.spatial-source-directory dd ul { margin: 0; padding-left: 1.1rem; }
.spatial-source-directory dd li + li { margin-top: 0.3rem; }
.spatial-source-directory .spatial-source-directory__empty { padding: 1rem; border: 1px solid var(--theme-foreground-faint, #667987); border-radius: 4px; }
.spatial-source-directory [hidden] { display: none; }
.spatial-source-directory :is(input, select, button, summary, a, .spatial-source-directory__scroll):focus-visible { outline: 2px solid var(--theme-foreground-focus, #007a5e); outline-offset: 3px; }
.spatial-source-directory__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 600px) {
  .spatial-source-directory__controls { align-items: stretch; }
  .spatial-source-directory__controls label { flex-basis: 100%; }
  .spatial-source-directory :is(th, td) { padding: 0.6rem; }
}
