/* ===== 顺丰式下单页 ===== */
.sf-form{padding-bottom:120px}
.sf-tabs{display:flex;gap:10px;margin:0 0 16px}
.sf-tab{border:1px solid #e6eaee;background:#fff;border-radius:10px;padding:10px 22px;font-size:14px;color:#5b6673;cursor:pointer}
.sf-tab.on{border-color:#d5293a;color:#d5293a;font-weight:700;background:#fdf2f4}
.sf-tab.off{opacity:.45;cursor:not-allowed}

.sf-card{background:#fff;border:1px solid #eef1f5;border-radius:14px;padding:18px 20px;margin-bottom:14px}
.sf-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sf-card-head b{display:flex;align-items:center;gap:8px;font-size:15px;color:#20242b}
.sf-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.sf-dot.red{background:#d5293a}
.sf-dot.green{background:#2f9e5f}
.sf-link{border:0;background:none;color:#d5293a;font-size:13px;cursor:pointer;padding:2px 4px}

.sf-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.sf-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.sf-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#8b949f}
.sf-field.wide{grid-column:1/-1;margin-bottom:12px}
.sf-field input,.sf-field select,.sf-field textarea{border:1px solid #e6eaee;border-radius:9px;padding:10px 12px;font-size:14px;color:#20242b;background:#fbfcfd;outline:none}
.sf-field input:focus,.sf-field select:focus,.sf-field textarea:focus{border-color:#e2929b;background:#fff;box-shadow:0 0 0 3px rgba(213,41,58,.07)}
.sf-field textarea{min-height:64px;resize:vertical}
.sf-locate{flex-direction:row;align-items:center;gap:10px;justify-content:flex-start;padding-top:22px}
.sf-mini{border:1px solid #f0c5c8;color:#d5293a;background:#fff;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer}
.sf-coord{font-size:12px;color:#a3abb5}
.sf-card-foot{display:flex;justify-content:flex-end;gap:14px;padding-top:4px}

.sf-swap-wrap{display:flex;justify-content:center;margin:-4px 0 10px}
.sf-swap{border:1px solid #e6eaee;background:#fff;border-radius:20px;padding:7px 18px;font-size:13px;color:#5b6673;cursor:pointer;box-shadow:0 2px 6px rgba(20,28,40,.05)}
.sf-swap:hover{border-color:#f0c5c8;color:#d5293a}

.sf-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.sf-chip{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:74px;padding:10px 12px;border:1px solid #e6eaee;border-radius:12px;background:#fbfcfd;font-size:12px;color:#5b6673;cursor:pointer}
.sf-chip span{font-size:20px;line-height:1}
.sf-chip.on{border-color:#d5293a;background:#fdf2f4;color:#d5293a;font-weight:700}

.sf-check{display:flex;align-items:center;gap:8px;font-size:13px;color:#5b6673;align-self:end;height:40px}

.sf-dock{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;background:#fff;border-top:1px solid #eef1f5;padding:14px 20px;margin-top:18px;border-radius:14px}
.sf-fee{flex:1;display:flex;flex-direction:column}
.sf-fee small{font-size:11px;color:#8b949f}
.sf-fee b{font-size:22px;color:#d5293a;letter-spacing:-.5px}
.sf-btn{border:1px solid #e6eaee;background:#fff;border-radius:10px;padding:11px 22px;font-size:14px;color:#3d4651;cursor:pointer}
.sf-btn.primary{background:#d5293a;border-color:#d5293a;color:#fff;font-weight:700}
.sf-btn.primary:hover{background:#bd2130}

.sf-mask{position:fixed;inset:0;background:rgba(20,28,40,.45);display:none;align-items:center;justify-content:center;z-index:60}
.sf-modal{background:#fff;border-radius:16px;width:min(520px,92vw);max-height:70vh;display:flex;flex-direction:column;overflow:hidden}
.sf-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eef1f5}
.sf-modal-body{padding:8px 12px 16px;overflow:auto}
.sf-ab-item{display:flex;flex-direction:column;gap:4px;padding:12px 10px;border-bottom:1px solid #f4f6f8;cursor:pointer}
.sf-ab-item:hover{background:#fbfcfd}
.sf-ab-item b{font-size:14px;color:#20242b}
.sf-ab-item span{font-size:12px;color:#8b949f}
.sf-tag{font-style:normal;font-size:10px;background:#fdecee;color:#c92334;border-radius:4px;padding:1px 6px;margin-left:6px}
.sf-empty{color:#a3abb5;font-size:13px;text-align:center;padding:26px 0}

@media(max-width:720px){
  .sf-row2,.sf-row3{grid-template-columns:1fr}
  .sf-dock{flex-wrap:wrap}
}

/* ===== 地址簿管理页 ===== */
.ab-head{display:flex;align-items:center;justify-content:space-between;padding:4px 0 12px}
.ab-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #f4f6f8}
.ab-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.ab-main b{font-size:14px;color:#20242b}
.ab-phone{color:#8b949f;font-weight:400;font-size:13px}
.ab-main span{font-size:12px;color:#8b949f}
.ab-actions{display:flex;gap:6px;flex:none}
.sf-mini.danger{color:#c92334;border-color:#f3c7cc}
/* ===== 骨架屏 ===== */
.sk-line{height:16px;border-radius:8px;margin:14px 0;background:linear-gradient(90deg,#f2f4f7 25%,#e9edf2 37%,#f2f4f7 63%);background-size:400% 100%;animation:sk 1.3s ease infinite}
.sk-60{width:60%}.sk-90{width:90%}.sk-75{width:75%}.sk-40{width:40%}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}