.address-original-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.address-builder {
  position: relative;
  display: grid;
  gap: .55rem;
  padding: .7rem;
  border: 1px solid #dce7ef;
  border-radius: .75rem;
  background: #f7fafc;
}

.registration-sheet:has(.address-builder .searchable-select.is-open),
.content-card:has(.address-builder .searchable-select.is-open) {
  overflow: visible;
}

.paper-field:has(.address-builder .searchable-select.is-open),
.workforce-field:has(.address-builder .searchable-select.is-open),
.address-builder:has(.searchable-select.is-open) {
  position: relative;
  z-index: 1200;
}

.address-builder .searchable-select-panel {
  z-index: 1210;
}

.address-mode-switch {
  display: inline-flex;
  justify-self: start;
  gap: .2rem;
  padding: .2rem;
  border: 1px solid #d7e4ed;
  border-radius: .65rem;
  background: #eef4f8;
}

.address-mode-button {
  border: 0;
  border-radius: .48rem;
  padding: .38rem .78rem;
  background: transparent;
  color: #5a7181;
  font-size: .78rem;
  font-weight: 700;
}

.address-mode-button.is-active {
  background: #fff;
  color: #116b96;
  box-shadow: 0 1px 4px rgba(22, 63, 89, .12);
}

.address-select-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.address-builder .form-select,
.address-builder .form-control,
.address-builder .searchable-select-control {
  width: 100% !important;
  min-height: 2.65rem !important;
  border: 1px solid #c8d7e3 !important;
  border-radius: .55rem !important;
  background-color: #fff !important;
  padding: .48rem .7rem !important;
  color: #17344b !important;
  font-size: .86rem !important;
  line-height: 1.25 !important;
  box-shadow: 0 1px 2px rgba(25, 55, 79, .04) !important;
}

.address-builder .form-select:focus,
.address-builder .form-control:focus,
.address-builder .searchable-select.is-open .searchable-select-control {
  border-color: #3297c5 !important;
  box-shadow: 0 0 0 .2rem rgba(50, 151, 197, .14) !important;
  outline: 0;
}

.address-builder .searchable-select { width: 100%; }
.address-detail { grid-column: 1 / -1; }

.address-builder-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.address-status {
  overflow: hidden;
  color: #6b7f8d;
  font-size: .76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.address-manual-toggle {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: .22rem .62rem;
  background: #eaf4f9;
  color: #17678e;
  font-size: .75rem;
  font-weight: 650;
}

.address-manual-toggle:hover { background: #dceef6; color: #0f5274; }
.address-manual-input { min-height: 4.25rem !important; resize: vertical; }
.address-builder.is-manual .address-select-row,
.address-builder.is-manual .address-detail,
.address-builder.is-manual .address-mode-switch { display: none; }

:root[data-theme="dark"] .address-builder { border-color: #31495c; background: #142333; }
:root[data-theme="dark"] .address-builder .form-select,
:root[data-theme="dark"] .address-builder .form-control,
:root[data-theme="dark"] .address-builder .searchable-select-control {
  border-color: #435d70 !important;
  background-color: #1b2c3d !important;
  color: #e7f1f7 !important;
}
:root[data-theme="dark"] .address-status { color: #9db0bf; }
:root[data-theme="dark"] .address-manual-toggle { background: #203d50; color: #9bd8f2; }
:root[data-theme="dark"] .address-mode-switch { border-color: #3b5366; background: #1b2c3d; }
:root[data-theme="dark"] .address-mode-button { color: #a7bac8; }
:root[data-theme="dark"] .address-mode-button.is-active { background: #27475c; color: #b9e7fb; }

@media (max-width: 800px) {
  .address-select-row { grid-template-columns: 1fr; }
}

@media print {
  .address-builder { display: none !important; }
  .address-original-input {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    clip: auto !important;
    overflow: visible !important;
  }
}
