/* ══ 收货地址 ═══════════════════════════════════════════
 * **深链页 address.html 与包裹页里的补资料弹窗共用这一份。**
 * ══════════════════════════════════════════════════════════════════ */
/* ── 账户区左侧常驻导航（P13–P19 共用，PC 特有）────────────────────────
   ⚠️ 这段 CSS 与页尾脚本里的 ACCT_* / acctNav* 在全部账户页里**逐字重复**。
      跨页复用本该落在 app.js / style.css，本轮改造无权改这两个文件，
      所以各页各留一份，结构与类名保证完全一致，等待统一抽取。 */

.degrade{background:var(--panel);border:1px dashed var(--line-d);border-radius:var(--r-md);
  padding:11px 13px;font-size:11.5px;color:var(--ink3);line-height:1.8}
/* ── A3 地址卡（2026-08-13 按账号组设计稿重排）───────────────────────
   行分区：主信息 flex ｜ 默认说明 260 ｜ 操作 150。
   ⚠️ **删除是文字链不是按钮，而且不放最右下角的强调位** —— 这是稿子的硬要求。
      原来「设为默认 / 修改 / 删除」三颗都是同款 ghost 按钮并排，
      不可逆的那颗和另外两颗长得一模一样，还占着视线最后落点。 */
.ad{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:15px 17px;
  margin-bottom:12px;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.ad.def{border-color:var(--deer);background:var(--cream)}
.ad .main{flex:1;min-width:220px}
.ad .l1{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ad .l1 b{font-size:13.5px;color:var(--ink)}
.ad .l1 .ph{font-size:12.5px;color:var(--ink3)}
/* 详细地址最多两行，超出省略；完整内容在编辑弹窗里看得到（稿子的极端态要求）。 */
.ad .l2{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ad .why{flex:0 0 260px;font-size:11.5px;color:var(--sub);line-height:1.7;padding-top:2px}
.ad .l3{flex:0 0 150px;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.ad .l3 .ybtn{padding:6px 14px;font-size:12.5px}
.ad .l3 .del{background:none;border:0;padding:0;font:inherit;font-size:12px;color:var(--sub);
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ad .l3 .del:hover{color:var(--bad)}
@media (max-width:900px){.ad .why{flex:1 1 100%}.ad .l3{flex:1 1 100%;justify-content:flex-start}}


/* 底部新增卡：虚线，与列表分开 —— 稿子把「新增」放在列表末尾而不是标题右侧，
   读起来是「这是列表的下一项」而不是一个悬在页顶的动作。 */
.adnew{width:100%;background:none;border:1px dashed var(--line-d);border-radius:var(--r-xl);
  padding:16px;font:inherit;font-size:13px;color:var(--deer-d);cursor:pointer;text-align:center}
.adnew:hover:not(:disabled){border-color:var(--deer);background:var(--cream)}
.adnew:disabled{cursor:not-allowed;color:var(--sub);background:var(--panel)}
.adnew span{display:block;font-size:11.5px;color:var(--sub);margin-top:4px}
/* ⚠️ 描述句删掉后这一行只剩「＋ 新增地址」一个子元素，space-between 会把它
   甩到最左；显式 flex-end 让它保持在原来的右侧位置。 */

.addr-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}
.addr-head .ybtn{padding:9px 18px;font-size:13px;border-radius:var(--r-pill)}

/* ── 编辑表单 ──────────────────────────────────────────────────────
   ⚠️ 与 checkout.html 的 .addrform 是同一套结构与类名的**第二份拷贝**。
      跨页复用本该落在 style.css，本轮无权改，所以两份保持逐字一致等待抽取
      —— 与本文件顶部 .acct-* 的处置口径相同。 */
.addrform{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:15px 17px}
.addrform>.t{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:12px}
.addrform .inline{display:flex;gap:10px}
.addrform .inline .field{flex:1;min-width:0}
.addrform .field{margin-bottom:12px}
.addrform .field label{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px}
.addrform .field input,.addrform .field select{width:100%;font:inherit;font-size:14px;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:6px;padding:9px 12px;outline:0}
.addrform .field input:focus,.addrform .field select:focus{border-color:var(--deer)}
.addrform .field select{cursor:pointer;min-height:39px}
.addrform .field select:disabled{background:var(--panel);color:var(--ink3);cursor:not-allowed}
/* 详细地址占两份、邮编一份（PC）。 */
.addrform .inline .f2{flex:2}
.addrform .inline .f1{flex:1}
/* 手机上这一行必须拆开：375px 下详细地址只剩 215px（它是整张表里最长的输入），
   而「邮编（合箱/国际面单必填）」这个标签放不下会折成两行，把右边整格顶下去。
   ⚠️ 只拆这一行 —— 收货人/手机号、省/市/区 两两并排在 375 上仍然读得清。 */
@media (max-width:560px){
  .addrform .inline .f2,.addrform .inline .f1{flex:1 1 100%}
  .addrform .inline:has(.f2){flex-wrap:wrap}
}
.addrform .hint{font-size:11.5px;color:var(--sub);line-height:1.7;margin:-4px 0 12px}
.addrform .acts{display:flex;gap:10px;margin-top:6px}
.backhint{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;
  font-size:12.5px;color:var(--ink2);line-height:1.65;margin:-4px 0 14px}
.backhint a{float:right;color:var(--deer);font-weight:700}

/* 弹窗形态：ylSheet 本身就是卡片，内层不再套边框。 */
.acct-sheet .addr-head{padding-top:0}
.acct-sheet .addr-head h1{display:none}
/* 缺邮编的提示（address.js 的 .why 行内）。⚠️ 用警示色但不做成红色错误：
   国内收件这个地址是好的，只有出国际面单时才需要邮编。 */
.ad .why .nozip{color:var(--warn)}

/* ── 收货地址弹窗：宽一档、高度自适应（2026-08-19 产品要求）─────────────
   ⚠️ 只覆盖宽度。高度**不设** min-height，也不动 `.ysheet-box` 基础规则里的
      max-height —— 那是上限不是下限：内容短就短，内容长到超过一屏才滚。
   ⚠️ 760 不是 860：这张表最宽的一行是「省 / 市 / 区县」三个 select，760 够它们
      并排且不挤；再宽的话「详细地址 + 邮编」那一行会显得空。
   ⚠️ 窄屏不覆盖：`style.css` 的 620px 媒体查询把弹窗改成贴底全宽，
      这里再写死宽度会把那一套盖掉。 */
@media (min-width:621px){
  .ysheet-addr .ysheet-box{width:min(760px,100%)}
}
