.customer-contact-fields {
  --contact-gap: .75rem;
  --contact-padding: .75rem;
  --contact-radius: .7rem;
  --contact-line: 1px;
  --contact-type-width: clamp(6.5rem, 30%, 8rem);
  --contact-type-padding: .5rem;
  --contact-focus: 2px;
  --contact-focus-offset: 2px;
  display: grid;
  gap: var(--contact-gap);
  min-width: 0;
  border: 0;
  padding: 0;
  margin: 0 0 var(--contact-gap);
}
.customer-contact-row {
  display: grid;
  grid-template-columns: minmax(0, var(--contact-type-width)) minmax(0, 1fr);
  align-items: stretch;
  gap: var(--contact-gap);
  min-width: 0;
}
.customer-contact-fields select,
.customer-contact-fields input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  font: inherit;
  color: inherit;
  background: var(--renewal-surface, var(--panel, inherit));
  padding: var(--contact-padding);
  border: var(--contact-line) solid var(--renewal-border, var(--line, currentColor));
  border-radius: var(--contact-radius);
  margin: 0;
}
.customer-contact-fields select {
  padding-inline: var(--contact-type-padding);
}
.customer-contact-fields select:focus-visible,
.customer-contact-fields input:focus-visible {
  outline: var(--contact-focus) solid var(--accent, var(--green, currentColor));
  outline-offset: var(--contact-focus-offset);
}
.customer-suggestion {
  --suggestion-gap: .5rem;
  --suggestion-padding: .75rem;
  --suggestion-radius: .7rem;
  --suggestion-border: 1px;
  --suggestion-toggle-width: 2.5rem;
  --suggestion-list-height: 14rem;
  --suggestion-layer: 10;
  position: relative;
  min-width: 0;
  width: 100%;
}
.customer-suggestion > input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding-right: var(--suggestion-toggle-width);
}
.customer-contact-row .customer-suggestion > input { height: 100%; }
.customer-suggestion > .customer-suggestion-toggle {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: var(--suggestion-toggle-width);
  padding: 0;
  margin: 0;
  background: transparent;
  color: inherit;
  border: 0;
  border-radius: var(--suggestion-radius);
  cursor: pointer;
  font: inherit;
}
.customer-suggestion-popup {
  position: absolute;
  inset-inline: 0;
  top: calc(100% + var(--suggestion-gap));
  z-index: var(--suggestion-layer);
  color: var(--renewal-text, var(--text, var(--ink, inherit)));
  background: var(--renewal-surface, var(--surface, var(--panel, Canvas)));
  border: var(--suggestion-border) solid var(--renewal-border, var(--line, currentColor));
  border-radius: var(--suggestion-radius);
  overflow: hidden;
}
.customer-suggestion-popup[hidden] { display: none; }
.customer-suggestion-popup.is-above { top: auto; bottom: calc(100% + var(--suggestion-gap)); }
.customer-suggestion-popup ul {
  margin: 0;
  padding: 0;
  max-height: var(--suggestion-list-height);
  overflow-y: auto;
  list-style: none;
}
.customer-suggestion-popup li,
.customer-suggestion-popup p {
  margin: 0;
  padding: var(--suggestion-padding);
  overflow-wrap: anywhere;
  font: inherit;
}
.customer-suggestion-popup p:empty { display: none; }
.customer-suggestion-popup li { cursor: pointer; }
.customer-suggestion-popup li:hover,
.customer-suggestion-popup li[aria-selected=true] {
  background: var(--renewal-soft, var(--surface-soft, var(--line, Highlight)));
}
