/* Shared list/form/confirmation patterns for personal addresses. */
.address-page{background:var(--paper);overflow-x:clip}
.address-page>.order-flow-hero{height:175px}
.address-page>.detail-content{position:relative;z-index:1;padding-top:0}
.address-list{display:grid;gap:14px;margin-block:24px}
.address-card{border:1px solid var(--line);border-radius:16px;background:var(--white,#fff);padding:20px 14px}
.address-card-summary{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;align-items:center}
.address-card h2{font-size:1.3rem;margin:0 0 6px;overflow-wrap:anywhere}
.address-card p{margin:0;color:var(--navy-soft);line-height:1.5;overflow-wrap:anywhere}
.address-card small{color:var(--navy-soft)}
.address-card .address-purpose{display:block;margin-top:8px;font-size:.78rem}
.address-symbol{color:var(--orange);display:grid;place-items:center}
.address-symbol svg{width:46px;height:46px}
.address-page svg,.address-remove-dialog svg{fill:none;stroke:currentColor;stroke-width:1.8}
.address-primary{display:inline-block;font-size:.65rem!important;padding:3px 6px;border-radius:6px;background:var(--green-surface,#edf5e9);color:#326941!important;vertical-align:middle}
.address-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.address-actions button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border:0;background:transparent;color:var(--orange);font:inherit;font-weight:750;cursor:pointer}
.address-actions button+button{border-left:1px solid var(--line);color:#d32b20}
.address-actions svg{width:23px;height:23px}
.address-add{display:flex;align-items:center;justify-content:center;gap:12px;border:1.5px solid var(--orange);border-radius:12px;width:100%;min-height:54px;background:transparent;color:var(--orange);font:inherit;font-weight:800;cursor:pointer}
.address-add svg{width:26px;height:26px}
.address-add,.address-form button{scroll-margin-block:24px 100px}
.address-privacy{display:flex;gap:14px;align-items:center;padding:18px 14px;border-radius:14px;margin-top:22px;background:var(--green-surface,#eef4e9);color:#38694d}
.address-privacy svg{width:32px;height:32px;flex-shrink:0}
.address-privacy p{margin:0;font-size:.9rem;line-height:1.4}
.address-form{position:relative}
.address-form-symbol{display:none}
.address-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.address-form-row label{min-width:0}
.address-form select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--white,#fff);color:var(--navy);font:inherit;padding:0 12px}
.address-form small[data-postal-status]{display:block;margin-top:-8px;color:var(--navy-soft);line-height:1.4}
.address-form small[data-postal-status][data-tone="success"],.address-location-status[data-tone="success"]{color:#24703d}
.address-form small[data-postal-status][data-tone="warning"],.address-location-status[data-tone="warning"]{color:#9c3e1a}
.address-form .address-primary-choice{display:flex;align-items:center;font-size:.9rem}
.address-primary-choice input{width:20px;min-height:20px;height:20px;accent-color:var(--orange)}
.address-location{display:grid;gap:12px;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--white,#fff)}
.address-location-heading{display:block}
.address-location-heading h2{font-size:1rem;margin:0 0 3px}
.address-location-heading p{font-size:.82rem;color:var(--navy-soft);margin:0}
.address-location-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:8px 12px}
.address-location-action svg{width:20px;height:20px}
.location-map{position:relative;isolation:isolate;height:250px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background-color:#e9ece9;background-image:linear-gradient(45deg,#dde2df 25%,transparent 25%),linear-gradient(-45deg,#dde2df 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dde2df 75%),linear-gradient(-45deg,transparent 75%,#dde2df 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;touch-action:none;cursor:crosshair}
.location-map-tiles{position:absolute;inset:0;z-index:0}
.location-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}
.location-map.tiles-unavailable .location-map-tiles{opacity:.2}
.location-map-marker{position:absolute;z-index:3;width:44px;height:54px;border:0;background:transparent;color:var(--orange);filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));cursor:grab;touch-action:none}
.location-map-marker:active{cursor:grabbing}
.location-map-marker span{display:block;width:26px;height:26px;border:7px solid currentColor;border-radius:50% 50% 50% 0;background:#fff;transform:rotate(-45deg);margin:auto}
.location-map-marker span::after{content:"";display:block;width:6px;height:6px;margin:3px;border-radius:50%;background:currentColor}
.location-map-controls{position:absolute;z-index:4;top:10px;right:10px;display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 2px 6px rgba(12,39,63,.14)}
.location-map-controls button{width:38px;height:38px;border:0;background:#fff;color:var(--navy);font-size:1.35rem;font-weight:800;cursor:pointer}
.location-map-controls button+button{border-top:1px solid var(--line)}
.location-map-attribution{position:absolute;z-index:4;right:4px;bottom:2px;margin:0;padding:2px 4px;border-radius:3px;background:rgba(255,255,255,.86);font-size:.62rem}
.location-map-attribution a{color:#31506a}
.address-location-status{margin:0;color:var(--navy-soft);font-size:.82rem;line-height:1.4}
.address-error{border:1px solid #e3978a;border-radius:12px;padding:14px;background:var(--warm-surface,#fff4ef)}
.address-remove-dialog .confirm-symbol{background:var(--warm-surface,#fff1e6);color:var(--orange);display:grid;place-items:center}
.address-remove-dialog .confirm-symbol svg{width:34px;height:34px}
.address-remove-dialog [data-address-confirm-summary]{text-align:center;margin:16px 0}
.address-remove-dialog [data-address-confirm-summary] p{color:var(--navy-soft);margin:6px 0}
.address-remove-dialog .address-confirm-note{border-top:1px solid var(--line);padding-top:16px}
.address-remove-dialog [data-address-remove-form]{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.address-remove-dialog [data-address-remove-form] .form-error{grid-column:1/-1}
@media(min-width:800px){.address-list{grid-template-columns:repeat(2,minmax(0,1fr))}.address-form{max-width:760px}.address-page .detail-content{max-width:1000px;margin-inline:auto}.location-map{height:320px}}
@media(max-width:560px){.location-map{height:230px}}
@media(max-width:350px){.address-form-row{grid-template-columns:1fr}.address-card-summary{grid-template-columns:42px minmax(0,1fr)}.address-symbol svg{width:36px;height:36px}}
