.address-editor { color: inherit; }
.address-editor__field { display: block; padding: 11px 0; border-bottom: 1px solid var(--line, #303034); }
.address-editor__field > span,
.address-editor__location > legend { display: block; margin-bottom: 7px; color: var(--muted, #aaa); font-size: 13px; }
.address-editor input,
.address-editor textarea { width: 100%; border: 0; outline: 0; background: transparent; color: inherit; font: inherit; }
.address-editor input,
.address-editor textarea { padding: 7px 0; resize: vertical; }
.address-editor__location { min-width: 0; margin: 12px 0 0; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--line, #303034); }
.address-location-trigger { display: grid; width: 100%; min-height: 50px; grid-template-columns: minmax(0,1fr) 18px; gap: 10px; align-items: center; padding: 9px 16px; border: 0; border-radius: 8px; background: #2a282b; color: #aaa; cursor: pointer; text-align: left; }
.address-location-trigger > span { overflow: hidden; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.address-location-trigger > i { width: 8px; height: 8px; border-top: 2px solid #aaa; border-right: 2px solid #aaa; transform: rotate(45deg); }
.address-editor__save { width: 100%; height: 50px; margin-top: 18px; border: 0; border-radius: 7px; background: #fe2c55; color: white; cursor: pointer; font-size: 17px; font-weight: 700; }
.address-editor__save:disabled { cursor: wait; opacity: .65; }
.address-editor__sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.has-address-sheet { overflow: hidden; }
body.has-location-sheet { overflow: hidden; }
.address-location-sheet { position: fixed; inset: 0; z-index: 110; display: none; align-items: flex-end; justify-content: center; }
.address-location-sheet.is-open { display: flex; }
.address-location-sheet__backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(0,0,0,.68); }
.address-location-sheet__panel { position: relative; display: flex; width: min(100%,420px); height: min(76vh,620px); flex-direction: column; overflow: hidden; border-radius: 10px 10px 0 0; background: #272729; color: #eee; }
.address-location-sheet__panel > header { display: grid; height: 56px; flex: 0 0 56px; grid-template-columns: 52px minmax(0,1fr) 52px; align-items: center; border-bottom: 1px solid #38383b; }
.address-location-sheet__panel h3 { margin: 0; overflow: hidden; font-size: 17px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.address-location-sheet__panel header button { display: grid; width: 52px; height: 56px; place-items: center; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 28px; }
.address-location-sheet__panel header button:first-child span { width: 11px; height: 11px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(45deg); }
.address-location-sheet__status { padding: 38px 20px; color: #aaa; text-align: center; }
.address-location-sheet__status.is-loading::before { display: block; width: 23px; height: 23px; margin: 0 auto 12px; border: 2px solid #555; border-top-color: #fe2c55; border-radius: 50%; animation: address-location-spin 700ms linear infinite; content: ""; }
.address-location-sheet__list { overflow-y: auto; overscroll-behavior: contain; }
.address-location-sheet__list > button { display: flex; width: 100%; min-height: 51px; align-items: center; padding: 9px 18px; border: 0; border-bottom: 1px solid #353538; background: transparent; color: inherit; cursor: pointer; text-align: left; }
.address-location-sheet__list > button::after { width: 8px; height: 8px; margin-left: auto; border-top: 2px solid #888; border-right: 2px solid #888; content: ""; transform: rotate(45deg); }
@keyframes address-location-spin { to { transform: rotate(360deg); } }

@media (prefers-color-scheme: light) {
  .address-location-trigger { background: #f1f1f3; color: #666; }
  .address-location-sheet__panel { background: #fff; color: #222; }
  .address-location-sheet__panel > header,
  .address-location-sheet__list > button { border-color: #e6e6e8; }
}

@media (prefers-reduced-motion: reduce) {
  .address-location-sheet__status.is-loading::before { animation: none; }
}
