select:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--magenta);
  outline-offset: 4px;
}

.contact-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.contact-form legend,
.contact-form-details summary {
  padding: 0;
  font-weight: 650;
}

.contact-required-control {
  position: relative;
}

.contact-form .contact-required-control input {
  padding-inline-end: 1.5rem;
}

.contact-required-mark {
  position: absolute;
  inset-block-start: .3rem;
  inset-inline-end: .55rem;
  color: var(--blue);
  font-size: 1.05rem;
  pointer-events: none;
}

.contact-reference {
  min-width: 0;
}

.contact-reference-picker {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem .6rem;
  min-width: 0;
  min-height: 44px;
  padding: .35rem .65rem;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 400;
  cursor: pointer;
}

.contact-reference-picker input[type="file"] {
  position: absolute;
  inset: 0 auto auto 0;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
  clip-path: inset(50%);
}

.contact-reference-picker:focus-within {
  outline: 2px solid var(--magenta);
  outline-offset: 4px;
}

.contact-reference-button {
  padding: .15rem .55rem;
  border: 1px solid var(--line);
  background: var(--mist);
  color: var(--blue);
  font-weight: 650;
}

.contact-reference-selection {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contact-reference .contact-reference-error {
  margin-block-start: .4rem;
  color: var(--magenta);
}

.contact-reference-clear {
  margin-block-start: .4rem;
  padding: .3rem 0;
  border: 0;
  background: none;
  color: var(--blue);
  font: inherit;
  font-size: .83rem;
  text-decoration: underline;
  cursor: pointer;
}

.contact-channel-options {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .65rem;
}

.contact-channel-options label,
.contact-confirmations label {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .4rem .65rem;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
}

.contact-channel-options input,
.contact-confirmations input {
  margin: 0;
  accent-color: var(--blue);
}

.contact-confirmations label {
  align-items: flex-start;
  margin-top: .5rem;
  padding: .65rem .75rem;
}

.contact-confirmations input {
  flex: 0 0 auto;
  margin-top: .25rem;
}

.contact-form-details {
  padding: .85rem 0;
  border-block: 1px solid var(--line);
}

.contact-form-details summary {
  color: var(--blue);
  cursor: pointer;
}

.contact-form-details .contact-fields,
.contact-form-details > label,
.contact-form-details > p {
  margin-top: .75rem;
}

.contact-form-note,
.contact-preview-status {
  margin: 0;
  font-size: .83rem;
  font-weight: 400;
}

.contact-preview-status {
  padding: .65rem .8rem;
  background: #e8f1fa;
  color: var(--blue);
  font-weight: 650;
}

.contact-form [hidden] {
  display: none;
}

.contact-form .button:disabled {
  background: #dae4ed;
  color: var(--text);
  cursor: not-allowed;
}
