/* SiteZilla Delivery Hub checkout UI — v0.12.2 */
#sitezilla-delivery-hub-checkout,
[data-szdh-checkout-root] { margin: 0 0 18px; }
.szdh-checkout-card { --szdh-red:#e53935; --szdh-ink:#18202b; --szdh-muted:#6d7886; --szdh-line:#e7ebf0; --szdh-soft:#f7f9fb; background:#fff; border:1px solid var(--szdh-line); border-radius:16px; box-shadow:0 8px 26px rgba(26,40,58,.07); padding:18px; color:var(--szdh-ink); font-family:inherit; }
.szdh-checkout-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.szdh-brand-row { display:flex; align-items:center; gap:12px; min-width:0; }
.szdh-brand-mark { width:42px; height:42px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 42px; background:linear-gradient(145deg,#ef4444,#d71920); color:#fff; font-size:13px; font-weight:800; letter-spacing:-.02em; box-shadow:0 6px 16px rgba(229,57,53,.24); }
.szdh-title { font-size:17px; font-weight:750; line-height:1.25; }
.szdh-subtitle { margin-top:3px; color:var(--szdh-muted); font-size:13px; line-height:1.35; }
.szdh-country-chip { border:1px solid var(--szdh-line); background:var(--szdh-soft); border-radius:999px; padding:6px 9px; color:#4d5968; font-weight:700; font-size:12px; }
.szdh-service-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; }
.szdh-service { appearance:none; border:1px solid var(--szdh-line); background:#fff; border-radius:13px; padding:13px; text-align:left; display:flex; align-items:flex-start; gap:11px; cursor:pointer; position:relative; transition:border-color .18s,box-shadow .18s,transform .18s,background .18s; color:inherit; min-height:82px; }
.szdh-service:hover { border-color:#c9d1da; box-shadow:0 7px 18px rgba(26,40,58,.08); transform:translateY(-1px); }
.szdh-service.is-active { border-color:rgba(229,57,53,.55); background:linear-gradient(180deg,#fff,#fff8f8); box-shadow:0 0 0 3px rgba(229,57,53,.08); }
.szdh-service-icon { width:34px; height:34px; border-radius:10px; background:var(--szdh-soft); display:flex; align-items:center; justify-content:center; flex:0 0 34px; color:#53606f; }
.szdh-service.is-active .szdh-service-icon { background:#ffebeb; color:var(--szdh-red); }
.szdh-service-icon svg,.szdh-location-pin svg,.szdh-address-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.szdh-service-copy { display:flex; flex-direction:column; min-width:0; gap:2px; padding-right:12px; }
.szdh-service-copy strong { font-size:14px; line-height:1.3; font-weight:750; }
.szdh-service-copy small { color:var(--szdh-muted); font-size:11.5px; line-height:1.35; }
.szdh-service-count { color:#7b8795; font-size:10.5px; margin-top:3px; font-weight:650; }
.szdh-service-check { opacity:0; position:absolute; right:9px; top:9px; width:18px; height:18px; border-radius:50%; background:var(--szdh-red); color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; }
.szdh-service.is-active .szdh-service-check { opacity:1; }
.szdh-service-stage { border-top:1px solid var(--szdh-line); margin-top:16px; padding-top:16px; }
.szdh-pickup-title { font-size:13px; font-weight:750; margin-bottom:9px; }
.szdh-search-wrap { height:44px; border:1px solid #dce2e8; border-radius:11px; display:flex; align-items:center; gap:9px; padding:0 12px; background:#fff; transition:border-color .18s,box-shadow .18s; }
.szdh-search-wrap:focus-within { border-color:#b8c2cd; box-shadow:0 0 0 3px rgba(25,42,62,.06); }
.szdh-search-wrap svg { width:18px; height:18px; fill:none; stroke:#7b8795; stroke-width:1.8; }
.szdh-search-wrap input { border:0 !important; box-shadow:none !important; outline:0 !important; width:100%; height:40px; padding:0 !important; margin:0 !important; background:transparent !important; color:var(--szdh-ink); font-size:14px; }
.szdh-location-results { max-height:320px; overflow:auto; margin-top:9px; display:flex; flex-direction:column; gap:7px; padding-right:2px; }
.szdh-location { appearance:none; width:100%; border:1px solid var(--szdh-line); background:#fff; border-radius:11px; padding:11px 12px; display:flex; align-items:center; gap:10px; text-align:left; color:inherit; cursor:pointer; transition:background .16s,border-color .16s,transform .16s; }
.szdh-location:hover { background:#fbfcfd; border-color:#cbd3dc; transform:translateX(1px); }
.szdh-location-pin { color:#697584; width:28px; height:28px; border-radius:8px; background:var(--szdh-soft); display:flex; align-items:center; justify-content:center; flex:0 0 28px; }
.szdh-location-pin svg { width:16px; height:16px; }
.szdh-location-copy { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.szdh-location-copy strong { font-size:13px; font-weight:700; line-height:1.35; }
.szdh-location-copy small { color:var(--szdh-muted); font-size:11.5px; line-height:1.35; }
.szdh-location-arrow { color:#98a2ae; font-size:22px; line-height:1; }
.szdh-search-hint,.szdh-state-row { color:var(--szdh-muted); background:var(--szdh-soft); border-radius:10px; padding:13px; font-size:12.5px; display:flex; align-items:center; gap:8px; }
.szdh-spinner { width:16px; height:16px; border:2px solid #d8dee5; border-top-color:var(--szdh-red,#e53935); border-radius:50%; display:inline-block; animation:szdhSpin .7s linear infinite; flex:0 0 16px; }
@keyframes szdhSpin { to { transform:rotate(360deg); } }
.szdh-address-card { display:flex; align-items:center; gap:12px; background:var(--szdh-soft); border-radius:12px; padding:13px; }
.szdh-address-icon { width:38px; height:38px; border-radius:10px; background:#fff; border:1px solid var(--szdh-line); display:flex; align-items:center; justify-content:center; color:var(--szdh-red); flex:0 0 38px; }
.szdh-address-copy { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.szdh-address-copy strong { font-size:13px; font-weight:750; }
.szdh-address-copy span,.szdh-address-copy small { color:var(--szdh-muted); font-size:11.5px; line-height:1.4; }
.szdh-primary { appearance:none; border:0; border-radius:10px; background:var(--szdh-red); color:#fff; padding:10px 13px; font-size:12.5px; font-weight:750; cursor:pointer; white-space:nowrap; box-shadow:0 5px 13px rgba(229,57,53,.18); }
.szdh-primary:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.szdh-selected-card { display:flex; align-items:center; gap:11px; border-radius:12px; background:#f7fbf8; border:1px solid #dcece0; padding:12px 13px; }
.szdh-selected-check { width:28px; height:28px; border-radius:50%; background:#30a46c; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; flex:0 0 28px; }
.szdh-selected-copy { display:flex; flex-direction:column; gap:1px; flex:1; min-width:0; }
.szdh-selected-kicker { color:#248557; font-weight:750; font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.szdh-selected-copy strong { font-size:13px; line-height:1.35; }
.szdh-selected-copy small { color:var(--szdh-muted); font-size:11px; line-height:1.35; }
.szdh-selected-price { display:flex; flex-direction:column; align-items:flex-end; white-space:nowrap; }
.szdh-selected-price small { color:var(--szdh-muted); font-size:10px; }
.szdh-selected-price strong { font-size:14px; }
.szdh-link { appearance:none; border:0; background:transparent; padding:5px; color:#1676c3; font-size:12px; font-weight:700; cursor:pointer; }
.szdh-alert { background:#fff3f3; border:1px solid #ffd2d2; color:#a52d2d; border-radius:10px; padding:10px 12px; margin-bottom:10px; font-size:12px; }
.szdh-error,.szdh-unavailable,.szdh-loading { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12.5px; color:var(--szdh-muted,#6d7886); }
.szdh-shipping-radio { position:absolute !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }
@media (max-width:767px) {
  .szdh-checkout-card { border-radius:13px; padding:14px; }
  .szdh-checkout-head { align-items:flex-start; }
  .szdh-service-grid { grid-template-columns:1fr 1fr; gap:8px; }
  .szdh-service { min-height:76px; padding:11px; }
  .szdh-service-copy small { display:none; }
  .szdh-address-card,.szdh-selected-card { align-items:flex-start; flex-wrap:wrap; }
  .szdh-primary { width:100%; }
  .szdh-selected-price { margin-left:39px; align-items:flex-start; }
}
@media (max-width:430px) {
  .szdh-service-grid { grid-template-columns:1fr; }
  .szdh-country-chip { display:none; }
}
/* v0.12.2 smart destination confirmation */
.szdh-destination { display:flex; align-items:center; gap:11px; margin:0 0 15px; padding:11px 12px; border:1px solid #e3e8ee; background:linear-gradient(180deg,#fbfcfd,#f7f9fb); border-radius:12px; }
.szdh-destination.is-confirmed { background:#f7fbf8; border-color:#dcece0; }
.szdh-destination-icon { width:32px; height:32px; flex:0 0 32px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid #e1e7ed; color:#e53935; font-weight:800; }
.szdh-destination.is-confirmed .szdh-destination-icon { color:#248557; border-color:#d4e8da; }
.szdh-destination-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.szdh-destination-main > small { color:#778391; font-size:11px; }
.szdh-destination-main > strong { color:#202934; font-size:13.5px; line-height:1.35; }
.szdh-destination-actions { display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.szdh-destination-edit { align-items:flex-start; }
.szdh-destination-fields { display:grid; grid-template-columns:minmax(150px,.7fr) minmax(220px,1.3fr); gap:8px; margin-top:7px; }
.szdh-destination-fields select,.szdh-destination-fields input { width:100%; min-height:40px; border:1px solid #dce2e8; border-radius:9px; background:#fff; padding:8px 10px; box-shadow:none; outline:0; font-size:13px; }
.szdh-destination-fields select:focus,.szdh-destination-fields input:focus { border-color:#b8c2cd; box-shadow:0 0 0 3px rgba(25,42,62,.06); }
.szdh-destination-city-wrap { position:relative; }
.szdh-destination-results { position:absolute; left:0; right:0; top:44px; z-index:30; background:#fff; border:1px solid #dde3e9; border-radius:10px; box-shadow:0 12px 28px rgba(26,40,58,.14); overflow:hidden; max-height:240px; overflow-y:auto; }
.szdh-destination-results:empty { display:none; }
.szdh-destination-result { width:100%; appearance:none; border:0; border-bottom:1px solid #eef1f4; background:#fff; padding:9px 11px; display:flex; flex-direction:column; gap:1px; text-align:left; cursor:pointer; color:#202934; }
.szdh-destination-result:last-child { border-bottom:0; }
.szdh-destination-result:hover { background:#f7f9fb; }
.szdh-destination-result strong { font-size:12.5px; }
.szdh-destination-result small,.szdh-destination-empty { color:#778391; font-size:11px; }
.szdh-destination-empty { padding:10px 11px; }
@media (max-width:767px) {
  .szdh-destination { align-items:flex-start; flex-wrap:wrap; }
  .szdh-destination-main { min-width:calc(100% - 45px); }
  .szdh-destination-actions { width:100%; margin-left:43px; justify-content:flex-start; }
  .szdh-destination-fields { grid-template-columns:1fr; }
  .szdh-destination-edit .szdh-primary { width:100%; margin-left:43px; }
}

/* v0.12.2 Ukrposhta courier address classifier */
.szdh-address-builder { background:linear-gradient(180deg,#fbfcfd,#f7f9fb); border:1px solid var(--szdh-line); border-radius:13px; padding:13px; }
.szdh-address-builder-head { display:flex; align-items:center; gap:11px; margin-bottom:12px; }
.szdh-address-builder-head > div:last-child { display:flex; flex-direction:column; gap:2px; min-width:0; }
.szdh-address-builder-head strong { font-size:13.5px; font-weight:750; }
.szdh-address-builder-head small { font-size:11.5px; color:var(--szdh-muted); }
.szdh-address-grid { display:grid; grid-template-columns:1fr 1fr 120px; gap:9px; align-items:start; }
.szdh-field { position:relative; display:flex; flex-direction:column; gap:5px; margin:0; font-weight:400; }
.szdh-field-wide { grid-column:1 / -1; }
.szdh-field > span { font-size:11px; color:#667281; font-weight:700; }
.szdh-field input { width:100%; height:42px; border:1px solid #dce2e8 !important; border-radius:10px !important; background:#fff !important; padding:0 11px !important; margin:0 !important; outline:0 !important; box-shadow:none !important; font-size:13px; color:var(--szdh-ink); }
.szdh-field input:focus { border-color:#b8c2cd !important; box-shadow:0 0 0 3px rgba(25,42,62,.06) !important; }
.szdh-address-results { position:absolute; left:0; right:0; top:67px; z-index:35; background:#fff; border:1px solid #dde3e9; border-radius:10px; box-shadow:0 12px 28px rgba(26,40,58,.14); overflow:hidden; max-height:230px; overflow-y:auto; }
.szdh-address-results:empty { display:none; }
.szdh-address-result { appearance:none; width:100%; border:0; border-bottom:1px solid #eef1f4; background:#fff; color:#202934; padding:9px 11px; text-align:left; cursor:pointer; }
.szdh-address-result:last-child { border-bottom:0; }
.szdh-address-result:hover { background:#f7f9fb; }
.szdh-address-result strong { font-size:12.5px; }
.szdh-address-result-state { padding:10px; display:flex; align-items:center; justify-content:center; }
.szdh-courier-status { margin-top:10px; border-radius:9px; padding:9px 11px; font-size:11.5px; display:flex; align-items:center; gap:7px; }
.szdh-courier-status.is-ok { color:#24764f; background:#eef9f2; border:1px solid #d2ebdb; }
.szdh-courier-status.is-error { color:#9c3434; background:#fff4f4; border:1px solid #f4d6d6; }
.szdh-courier-status.is-loading { color:#687482; background:#f4f6f8; border:1px solid #e3e8ed; }
.szdh-address-submit { margin-top:11px; }
@media (max-width:767px) {
  .szdh-address-grid { grid-template-columns:1fr 1fr; }
  .szdh-field-wide { grid-column:1 / -1; }
  .szdh-address-grid .szdh-field:last-child { grid-column:1 / -1; }
  .szdh-address-submit { width:100%; }
}
@media (max-width:430px) {
  .szdh-address-grid { grid-template-columns:1fr; }
  .szdh-field-wide,.szdh-address-grid .szdh-field:last-child { grid-column:auto; }
}
