.source-mappings { margin-bottom: 24px; min-width: 0; font-size: 16px; line-height: 1.5; }
.source-mappings h2 { font-size: 24px; margin-bottom: 12px; }
.source-mappings h3 { font-size: 19px; margin: 20px 0 8px; }
.source-mappings h4 { font-size: 17px; margin: 0 0 8px; }
.source-mappings p { margin: 8px 0 16px; overflow-wrap: anywhere; }
.source-mappings .sm-search, .source-mappings .sm-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: end; }
.source-mappings .sm-search { grid-template-columns: minmax(0, 1fr) auto; }
.source-mappings .field { min-width: 0; }
.source-mappings .btn, .source-mappings .input, .source-mappings .select { min-height: 44px; font-size: 16px; max-width: 100%; }
.source-mappings .hint { font-size: 14px; }
.source-mappings .sm-row { border-top: 1px solid hsl(var(--border)); padding: 16px 0; overflow-wrap: anywhere; }
.source-mappings .sm-row h3 { margin-top: 0; }
.source-mappings #sm-editor { margin: 24px 0; padding: 16px; border: 1px solid hsl(var(--border)); border-radius: 8px; }
.source-mappings .button-row { flex-wrap: wrap; }
.source-mappings :focus-visible { outline: 2px solid hsl(var(--foreground)); outline-offset: 3px; }
@media (max-width: 640px) {
  .source-mappings .sm-search, .source-mappings .sm-fields { grid-template-columns: minmax(0, 1fr); }
  .source-mappings .btn { white-space: normal; }
}
/* Respond to actual available width, including zoom, without changing other settings. */
.source-mappings .sm-fields, #panel-sources #mailbox-form .row-2 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}
.source-mappings .field label { font-size: 16px; }
.source-mappings .field .hint { font-size: 14px; }
.source-mappings .input, .source-mappings .select,
#panel-sources #mailbox-form .input, #panel-sources #mailbox-form .select { min-width: 0; width: 100%; }
#panel-sources #mailbox-form .field { min-width: 0; }
#panel-sources #mailbox-form .btn { max-width: 100%; height: auto; min-height: 36px; white-space: normal; }
.source-mappings .field { max-width: none; }
.source-mappings .sm-search { margin-bottom: 16px; }
.source-mappings .sm-search .field { margin-bottom: 0; }
.source-mappings .error { color: hsl(var(--destructive)); }
