/* Data Sources page (/sources) */
.src-tot { display: flex; flex-wrap: wrap; gap: var(--s-5, 20px); margin: var(--s-5, 20px) 0; }
.src-legend { font-size: var(--fs-sm, 14px); color: var(--ink-3); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.src-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: var(--s-5, 20px); margin-bottom: var(--s-7, 40px); }
.src-card { border-top: var(--heavy, 3px solid var(--ink)); padding-top: 10px; min-width: 0; }
.src-card header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.src-card h3 { margin: 0; font: 700 17px/1.3 var(--font-display, serif); }
.src-lane { font: 700 var(--fs-2xs, 11px)/1.2 var(--font-label, sans-serif); letter-spacing: var(--track-label, .06em); text-transform: uppercase; color: var(--ink-4); white-space: nowrap; }
.src-bar { height: 8px; background: var(--paper-3); margin: 10px 0; }
.src-bar span { display: block; height: 100%; background: var(--ink); }
.src-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; margin: 0; font-size: var(--fs-sm, 14px); }
.src-dl div { display: flex; justify-content: space-between; gap: 8px; border-bottom: var(--hair, 1px solid var(--paper-3)); padding: 3px 0; }
.src-dl dt { color: var(--ink-3); }
.src-dl dd { margin: 0; text-align: right; }
.src-bad { color: var(--red); }
.src-strip { display: flex; flex-wrap: wrap; gap: 1px; margin-top: 10px; }
.src-u { display: inline-block; width: 7px; height: 12px; background: var(--paper-3); }
.src-u.done { background: var(--ink); }
.src-u.open { background: var(--ink-olive, #6c7d18); }
.src-u.failed { background: var(--red); }
.src-strip-ax { display: flex; justify-content: space-between; font-size: var(--fs-2xs, 11px); color: var(--ink-4); }
.src-next { font-size: var(--fs-sm, 14px); margin: 8px 0 0; }
.src-note { font-size: var(--fs-sm, 14px); color: var(--ink-3); margin: 6px 0 0; }
.src-fail { font-size: var(--fs-sm, 14px); margin-top: 6px; }
.src-t { width: 100%; border-collapse: collapse; font-size: var(--fs-sm, 14px); }
.src-t th, .src-t td { text-align: left; vertical-align: top; padding: 8px 10px 8px 0; border-bottom: var(--hair, 1px solid var(--paper-3)); }
.src-t thead th { font: 700 var(--fs-2xs, 11px)/1.2 var(--font-label, sans-serif); text-transform: uppercase; border-bottom: var(--heavy, 3px solid var(--ink)); }
.src-t .num { text-align: right; white-space: nowrap; }
@media (max-width: 640px) { .src-dl { grid-template-columns: 1fr; } .src-t td:last-child { min-width: 12em; } }
