.sources-page {
 display: flex;
 flex-direction: column;
 gap: 16px;
 min-height: 100%;
 padding: 32px;
}

.sources-heading {
 display: flex;
 align-items: flex-start;
 justify-content: space-between;
 gap: 16px;
}

.sources-heading h1 {
 margin: 0 0 4px;
}

.sources-heading p {
 margin: 0;
 max-width: 40rem;
}

.sources-list {
 display: flex;
 flex-direction: column;
 gap: 8px;
}

.sources-row {
 display: grid;
 grid-template-columns:
  minmax(0, 1.4fr)
  auto;
 gap: 2px 16px;
 width: 100%;
 padding: 12px 14px;
 border: 1px solid var(--border);
 border-radius: var(--radius-md);
 background: var(--card);
 color: inherit;
 font: inherit;
 text-align: left;
 text-decoration: none;
 cursor: pointer;
}

.sources-row:hover {
 background: var(--accent);
}

.sources-row-title {
 font-weight: 600;
}

.sources-row-method {
 justify-self: end;
 font-family:
  ui-monospace, SFMono-Regular, Menlo,
  monospace;
 font-size: 13px;
}

.sources-row-url {
 grid-column: 1 / -1;
 font-size: 13px;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.sources-empty {
 margin: 0;
}

.sources-detail {
 display: flex;
 flex-direction: column;
 gap: 16px;
 max-width: 72rem;
}

.sources-detail h1 {
 margin: 0;
}

.sources-form {
 gap: 12px;
 max-width: 40rem;
}

.sources-field {
 display: flex;
 flex-direction: column;
 gap: 6px;
}

.sources-detail-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 max-width: 40rem;
}

.sources-sample {
 margin: 0;
 padding: 12px 14px;
 overflow: auto;
 max-height: 240px;
 border: 1px solid var(--border);
 border-radius: var(--radius-md);
 background: var(--card);
 font-size: 12px;
}

.sources-dataset-link {
 font-size: 14px;
}
