.source-file-section { margin: 0 0 18px; }
.source-file-section-heading, .source-file-heading, .source-file-confirm, .source-file-control, .source-file-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.source-file-section-heading { justify-content: space-between; margin-bottom: 10px; }
.source-file-section-heading h2 { margin: 0; }
.source-file-section-heading p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: var(--text-small); }
.source-file-ref-list { display: grid; gap: 9px; }
.source-file-ref { padding: 13px 15px; border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); }
.source-file-ref.state-failed, .source-file-ref.state-pending_confirmation { border-color: var(--color-warning); background: var(--color-warning-soft); }
.source-file-ref.state-removed { border-color: var(--color-line); background: var(--color-surface-subtle); }
.source-file-heading { justify-content: space-between; align-items: flex-start; }
.source-file-heading strong { display: block; }
.source-file-meta { margin-top: 4px; color: var(--color-text-secondary); font-size: var(--text-caption); }
.source-file-status { max-width: 560px; color: var(--color-warning); font-size: var(--text-small); text-align: right; }
.source-file-control { margin-top: 11px; }
.source-file-control label { display: flex; gap: 7px; align-items: center; color: var(--color-text-secondary); font-size: var(--text-small); }
.source-file-control select { min-width: 150px; }
.source-file-confirm { margin-top: 10px; color: var(--color-text-secondary); font-size: var(--text-small); }
.source-file-error { margin-top: 10px; padding: 8px 10px; border-radius: var(--radius-xs); color: var(--color-danger); background: var(--color-danger-soft); font-size: var(--text-small); }
.source-file-note { margin-top: 9px; color: var(--color-text-secondary); font-size: var(--text-small); }
.source-file-current { margin-top: 18px; }
@media (max-width: 700px) {
  .source-file-heading, .source-file-section-heading { align-items: flex-start; flex-direction: column; }
  .source-file-status { max-width: none; text-align: left; }
}
