/* Redwood-style source object field selection. */
#source-object-dialog .modal-form {
  max-height: min(530px, calc(100dvh - 300px));
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.primary-field-control { min-width: 0; }
.primary-field-control > label { display: grid; gap: 8px; min-width: 0; }

.primary-field-combobox { position: relative; display: flex; min-width: 0; }
.primary-field-combobox input { padding-right: 48px !important; font-weight: 500 !important; }
.primary-field-combobox input::-webkit-search-cancel-button { display: none; }
.primary-field-toggle {
  position: absolute; right: 1px; top: 1px; bottom: 1px; width: 42px; min-height: auto !important;
  padding: 0 !important; border: 0 !important; border-left: 1px solid #a9a49f !important; background: #fff !important;
  color: #161513 !important; font-size: 1.2rem !important; line-height: 1; cursor: pointer;
}
.primary-field-toggle:disabled { cursor: default; color: #77716b !important; }
.primary-field-options {
  position: absolute; z-index: 5; top: calc(100% + 2px); right: 0; left: 0; max-height: 220px; overflow-y: auto;
  border: 1px solid #a9a49f; background: #fff; box-shadow: none;
}
.primary-field-option { display: block !important; width: 100%; min-height: 44px !important; padding: 10px 12px !important; border: 0 !important; border-bottom: 1px solid #e3e0dc !important; background: #fff !important; color: #161513 !important; text-align: left; font-size: 1rem !important; font-weight: 500 !important; line-height: 1.35; }
.primary-field-option:last-child { border-bottom: 0 !important; }
.primary-field-option:hover, .primary-field-option[aria-selected="true"] { background: #f7f6f4 !important; }
.primary-field-empty { margin: 0; padding: 10px 12px; color: #625f5c; font-size: .9rem; }

/* Keep source-object choices readable without the global form-control bold weight. */
#source-object-dialog select,
#source-object-dialog select option { font-weight: 500 !important; }

.field-recommendation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 8px;
}
.field-recommendation > span { display: none; }
.field-recommendation-actions { display: flex; flex: 0 0 auto; gap: 8px; }

.field-recommendation #recommend-object-fields,
.field-recommendation #refresh-object-fields {
  display: inline-flex !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 38px !important;
  padding: 0 16px !important;
  border: 1px solid #161513 !important;
  border-radius: 2px !important;
  background: #fff !important;
  color: #161513 !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  line-height: 1;
  box-shadow: none !important;
}
.field-recommendation #recommend-object-fields:hover,
.field-recommendation #recommend-object-fields:focus-visible,
.field-recommendation #refresh-object-fields:hover,
.field-recommendation #refresh-object-fields:focus-visible { background: #f4f3f2 !important; border-color: #161513 !important; color: #161513 !important; }
.field-recommendation-notice { display: flex; align-items: center; min-height: 1.3em; margin: 0 0 10px; color: #5f5b58; }

.field-metadata {
  margin-top: 18px;
  border-top: 1px solid #d8d5d2;
  padding-top: 16px;
}

.field-metadata-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: .9rem;
  font-weight: 600;
}

.field-metadata-heading #generate-field-metadata {
  display: inline-flex !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 38px !important;
  padding: 0 16px !important;
  border: 1px solid #161513 !important;
  border-radius: 2px !important;
  background: #fff !important;
  color: #161513 !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  line-height: 1;
  box-shadow: none !important;
}
.field-metadata-heading #generate-field-metadata:hover,
.field-metadata-heading #generate-field-metadata:focus-visible { background: #f4f3f2 !important; border-color: #161513 !important; color: #161513 !important; }

.field-metadata-notice { display: flex; align-items: center; min-height: 1.3em; margin: 10px 0; color: #5f5b58; font-size: .9rem; }

.field-metadata-list {
  display: grid;
  grid-template-columns: minmax(120px, .55fr) minmax(0, 1.45fr);
  margin: 0;
  border: 1px solid #d8d5d2;
  background: #fff;
}

.field-metadata-list dt,
.field-metadata-list dd {
  min-width: 0;
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #e3e0dc;
  font-size: .9rem;
  overflow-wrap: anywhere;
}

.field-metadata-list dt { border-right: 1px solid #e3e0dc; font-weight: 600; }
.field-metadata-list dt:nth-last-of-type(1), .field-metadata-list dd:last-child { border-bottom: 0; }

@media (max-width: 600px) {
  .field-recommendation, .field-metadata-heading { align-items: flex-start; flex-direction: column; }
  .field-recommendation-actions { flex-wrap: wrap; }
}

.object-field-picker {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.new-object-name[hidden] { display: none; }

.object-field-picker legend {
  padding: 0;
  color: #312d2a;
  font-size: .9rem;
  font-weight: 600;
}

.object-field-picker input[type='checkbox'] {
  appearance: none;
  -webkit-appearance: none;
  display: inline-grid;
  flex: 0 0 18px;
  width: 18px !important;
  min-width: 18px;
  height: 18px;
  min-height: 18px !important;
  margin: 0;
  padding: 0 !important;
  place-content: center;
  border: 1px solid #77716b;
  border-radius: 2px;
  background: #fff;
  cursor: pointer;
}

.object-field-picker input[type='checkbox']::before {
  width: 9px;
  height: 5px;
  content: '';
  border: solid #fff;
  border-width: 0 0 2px 2px;
  transform: rotate(-45deg) scale(0);
  transform-origin: center;
}

.object-field-picker input[type='checkbox']:checked {
  border-color: #0572ce;
  background: #0572ce;
}

.object-field-picker input[type='checkbox']:checked::before { transform: rotate(-45deg) scale(1); }
.object-field-picker input[type='checkbox']:focus-visible { outline: 2px solid #1685b5; outline-offset: 2px; }

.select-all-fields {
  display: inline-flex !important;
  grid-template-columns: none !important;
  align-items: center;
  width: max-content;
  margin: 12px 0;
  padding: 0 !important;
  gap: 8px;
  color: #312d2a;
  font-size: .9rem;
  font-weight: 600 !important;
}

.object-field-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid #d8d5d2;
  background: #fff;
}

.object-field-list label {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 10px 14px !important;
  gap: 10px;
  border-right: 1px solid #e3e0dc;
  border-bottom: 1px solid #e3e0dc;
  color: #161513 !important;
  font-size: .9rem;
  font-weight: 400 !important;
  line-height: 1.35;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.object-field-list label[hidden] { display: none !important; }

.object-field-list label:nth-child(2n) { border-right: 0; }
.object-field-list label:hover { background: #f7f5f3; }

@media (max-width: 640px) {
  #source-object-dialog .modal-form { max-height: calc(100dvh - 250px); }
  .object-field-list { grid-template-columns: 1fr; max-height: min(40dvh, 280px); }
  .object-field-list label { border-right: 0; }
  .field-metadata-list { grid-template-columns: 1fr; }
  .field-metadata-list dt { border-right: 0; border-bottom: 0; padding-bottom: 2px; }
  .field-metadata-list dd { padding-top: 2px; }
}
