/* ApiShip universal delivery component — provider-agnostic (no CDEK-specific names) */
.asd-modal { display:none; position:fixed; inset:0; z-index:9998; }
.asd-modal.asd-open { display:block; }
.asd-overlay { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.asd-dialog {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(1100px, 96vw); height:min(720px, 92vh);
  background:#fff; border-radius:14px; display:flex; flex-direction:column; overflow:hidden;
}
.asd-head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid #e9edf2; }
.asd-head h4 { margin:0; font-size:18px; font-weight:600; }
.asd-close { border:none; background:none; font-size:26px; line-height:1; cursor:pointer; color:#64748b; }
.asd-body { display:flex; flex:1; min-height:0; }
.asd-left { width:38%; min-width:300px; border-right:1px solid #e9edf2; display:flex; flex-direction:column; }
.asd-right { flex:1; min-width:0; display:flex; flex-direction:column; background:#F8F9FB; }
.asd-filters { padding:10px 14px; border-bottom:1px solid #e9edf2; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.asd-filters select { padding:7px 10px; border:1px solid #dbe2ea; border-radius:8px; font-size:13px; }
.asd-list { flex:1; overflow-y:auto; padding:10px 14px; }
.asd-item {
  border:1px solid #e9edf2; border-radius:10px; padding:11px 13px; margin-bottom:8px; cursor:pointer;
  background:#fff; transition:border-color .15s;
}
.asd-item.asd-selected { border-color:#1E3A5F; box-shadow:0 0 0 1px #1E3A5F inset; }
.asd-item-name { font-weight:600; font-size:14px; color:#1c2733; }
.asd-item-addr { font-size:12.5px; color:#5b6b7b; margin:3px 0 5px; }
.asd-item-meta { display:flex; gap:12px; font-size:12.5px; color:#334155; flex-wrap:wrap; }
.asd-item-price { font-weight:700; color:#1E3A5F; }
.asd-provider-badge { display:inline-block; background:#eef2f7; border-radius:6px; padding:2px 8px; font-size:12px; color:#334155; margin-bottom:5px; }
.asd-detail { padding:16px 18px; font-size:14px; }
.asd-detail h5 { margin:0 0 10px; font-size:15px; }
.asd-detail-row { margin-bottom:6px; color:#334155; }
.asd-foot { display:flex; justify-content:flex-end; gap:10px; padding:12px 18px; border-top:1px solid #e9edf2; }
.asd-confirm {
  background:#1E3A5F; color:#fff; border:none; border-radius:8px; padding:12px 26px;
  font-size:15px; cursor:pointer; min-height:44px;
}
.asd-confirm:disabled { background:#9aa7b5; cursor:not-allowed; }
.asd-more { width:100%; border:1px solid #dbe2ea; background:#fff; border-radius:8px; padding:9px; cursor:pointer; color:#334155; }
.asd-error { padding:14px; color:#8a4b4b; font-size:13.5px; }
.asd-empty { padding:14px; color:#64748b; font-size:13.5px; }
/* REQ: курьерский режим — правая панель компактная, плейсхолдер по центру, без пустого списка ПВЗ */
.asd-courier-mode .asd-right { align-items:center; justify-content:center; }
.asd-courier-mode #asd-detail { max-width:340px; }
.asd-courier-card { display:flex; align-items:center; gap:12px; }
.asd-logo {
  width:38px; height:38px; border-radius:8px; background:#1E3A5F; color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0;
}
/* Реальный логотип службы (PNG) вместо цветного кружка с буквой */
.asd-logo.asd-logo-img {
  background:#fff; border:1px solid #e9edf2; padding:4px;
}
.asd-logo.asd-logo-img img {
  max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
}
/* Карта ПВЗ (все службы разом) — правая панель, над списком точек */
.asd-map {
  height:260px; margin:0 14px 10px; border-radius:10px; overflow:hidden;
  background:#eef1f4; flex-shrink:0;
}
.asd-map-balloon { font-size:13px; line-height:1.4; }
.asd-map-balloon b { display:block; margin-bottom:2px; }
@media (max-width: 767px) {
  .asd-map { height:180px; margin:0 14px 8px; }
}
/* Mobile: fullscreen sheet, options on top, point picker below, big targets */
@media (max-width: 767px) {
  .asd-dialog { width:100vw; height:100dvh; border-radius:0; }
  .asd-body { flex-direction:column; }
  .asd-left { width:100%; border-right:none; max-height:42%; }
  .asd-right { display:flex; flex:1; min-height:0; }
  .asd-item { padding:14px; min-height:64px; }
  .asd-confirm { flex:1; }
  .asd-foot { position:sticky; bottom:0; background:#fff; }
}
