/* 独立购物车页面：清晰展示采购商品、数量和提交信息。 */
.compact-header { position:relative; }
.cart-nav { justify-self:center; }
.cart-nav a { display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--ink); }
.cart-page { width:min(1320px,calc(100% - 56px)); margin:0 auto; padding:72px 0 100px; overflow:visible; }
.cart-title { padding-bottom:34px; display:flex; justify-content:space-between; align-items:flex-end; gap:40px; border-bottom:1px solid var(--ink); }
.cart-title h1 { margin-bottom:0; font-size:64px; }
.cart-title>p { max-width:480px; margin-bottom:7px; color:var(--muted); line-height:1.7; }
.cart-layout { margin-top:32px; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(360px,.7fr); gap:28px; align-items:start; }
.cart-items-panel,.order-panel { background:rgba(255,253,248,.82); border:1px solid var(--ink); }
.panel-heading { min-height:72px; padding:18px 22px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); }
.panel-heading h2 { margin:0; font-size:27px; }
.panel-heading span { color:var(--muted); font-size:13px; }
.cart-page-items { min-height:220px; }
.cart-line { padding:20px 22px; display:grid; grid-template-columns:94px minmax(0,1fr) auto; gap:18px; align-items:center; border-bottom:1px solid var(--line); }
.cart-line.is-unavailable { background:rgba(150,63,49,.055); }
.cart-line.is-unavailable>img { opacity:.52; filter:grayscale(.45); }
.cart-line>img { width:94px; height:88px; object-fit:cover; }
.cart-line-copy { min-width:0; }
.cart-line-copy small { color:var(--olive); }
.cart-line-copy h3 { margin:6px 0; font-size:20px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cart-line-copy p { margin:0; color:var(--muted); }
.cart-unavailable { margin-top:8px; display:block; color:var(--danger); font-size:13px; font-style:normal; }
.cart-line-side { min-width:160px; display:grid; justify-items:end; gap:12px; }
.cart-line-side strong { font-size:23px; }
.quantity-control { display:flex; align-items:center; border:1px solid var(--ink); }
.quantity-control button { width:36px; height:34px; border:0; background:transparent; }
.quantity-control button:disabled { cursor:not-allowed; opacity:.35; }
.quantity-control span { width:42px; text-align:center; }
.remove-line { border:0; color:var(--danger); background:none; font-size:12px; }
.continue-shopping { margin:22px; min-height:48px; display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid var(--line); }
.cart-empty-page { min-height:300px; display:grid; place-content:center; justify-items:center; text-align:center; color:var(--muted); }
.cart-empty-page i { font-size:48px; color:var(--ink); }
.cart-empty-page h3 { margin:15px 0 6px; color:var(--ink); }
.order-panel { position:sticky; top:24px; }
.order-panel form { padding:22px; display:grid; gap:18px; }
.shipping-order-banner { padding:15px 16px; display:grid; grid-template-columns:30px 1fr; align-items:center; gap:12px; color:#fff; border:1px solid var(--wood-dark); background:linear-gradient(135deg,var(--wood-dark),#8a6240); }
.shipping-order-banner i { font-size:25px; }
.shipping-order-banner strong,.shipping-order-banner small { display:block; }
.shipping-order-banner strong { font-size:18px; }
.shipping-order-banner small { margin-top:5px; color:rgba(255,255,255,.78); line-height:1.5; }
.order-panel label { display:grid; gap:8px; font-size:14px; }
.order-panel input,.order-panel select,.order-panel textarea { width:100%; padding:12px 13px; color:var(--ink); background:var(--surface); border:1px solid var(--line); outline:0; }
.order-panel input:focus,.order-panel select:focus,.order-panel textarea:focus { border-color:var(--ink); }
.order-panel textarea { min-height:86px; resize:vertical; }
.phone-wechat-hint { color:var(--muted); font-size:12px; line-height:1.55; }
.delivery-address-fields { display:grid; gap:18px; padding:18px; border:1px solid rgba(167,120,73,.34); background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(241,229,211,.62)); }
.delivery-address-fields[hidden] { display:none; }
  .region-select-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .region-select-row label,.region-select-row select { min-width:0; }
.order-panel select:disabled,.order-panel input:disabled { cursor:not-allowed; opacity:.55; }
.delivery-details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:15px 0; color:var(--muted); }
.delivery-details summary { color:var(--ink); cursor:pointer; }
.delivery-details ol { padding-left:20px; line-height:1.65; }
.delivery-details p { margin-bottom:0; color:var(--danger); font-size:12px; }
.privacy-consent { margin:22px 0 0; padding:17px 18px; display:flex !important; align-items:flex-start; gap:13px !important; color:var(--muted); border:1px solid var(--line); background:var(--wood-wash); font-size:14px; line-height:1.7; cursor:pointer; }
.privacy-consent:has(input:checked) { color:var(--ink); border-color:var(--wood-dark); background:rgba(238,224,202,.78); }
.privacy-consent input { flex:0 0 auto; width:23px !important; height:23px; margin-top:1px; accent-color:var(--wood-dark); cursor:pointer; }
.privacy-consent a { color:var(--wood-dark); border-bottom:1px solid currentColor; }
.order-summary { display:grid; gap:10px; }
.order-summary p { margin:0; display:flex; justify-content:space-between; color:var(--muted); }
.order-summary div { margin-top:4px; padding-top:16px; display:flex; justify-content:space-between; align-items:flex-end; border-top:1px solid var(--line); }
.order-summary span { display:flex; flex-direction:column; }
.order-summary small { margin-top:4px; color:var(--muted); font-size:11px; }
.order-summary strong { font-size:32px; }
.checkout-button { min-height:52px; display:flex; align-items:center; justify-content:center; gap:10px; color:#fff; background:var(--ink); border:1px solid var(--ink); }
.checkout-button:disabled { cursor:not-allowed; opacity:.45; }
.staff-contact-helper { border:1px solid var(--line); background:rgba(255,253,248,.78); }
.staff-contact-toggle { width:100%; min-height:68px; padding:12px 14px; display:grid; grid-template-columns:36px minmax(0,1fr) 18px; align-items:center; gap:11px; color:var(--ink); border:0; background:transparent; text-align:left; }
.staff-contact-toggle:hover,.staff-contact-toggle:focus-visible { background:var(--wood-wash); outline:0; }
.staff-contact-toggle-icon { width:36px; height:36px; display:grid; place-items:center; color:#fff; border-radius:50%; background:var(--wood-dark); font-size:19px; }
.staff-contact-toggle>span:nth-child(2) { min-width:0; display:grid; gap:3px; }
.staff-contact-toggle b { font-size:15px; }
.staff-contact-toggle small { overflow:hidden; color:var(--muted); font-size:11px; line-height:1.45; text-overflow:ellipsis; }
.staff-contact-caret { color:var(--muted); transition:transform .2s ease; }
.staff-contact-toggle[aria-expanded="true"] .staff-contact-caret { transform:rotate(180deg); }
.staff-contact-panel { border-top:1px solid var(--line); }
.staff-contact-panel[hidden],.staff-regions[hidden],.staff-contact-person em[hidden] { display:none; }
.staff-contact-panel>p { margin:0; padding:12px 14px; color:var(--muted); border-bottom:1px solid var(--line); font-size:11px; line-height:1.55; }
.staff-contact-list { display:grid; }
.staff-contact-loading { min-height:74px; display:grid; place-items:center; padding:14px; color:var(--muted); text-align:center; }
.staff-contact-item { border-bottom:1px solid var(--line); }
.staff-contact-item:last-child { border-bottom:0; }
.staff-contact-item.is-recommended { background:rgba(238,224,202,.62); box-shadow:inset 3px 0 0 var(--wood-dark); }
.staff-contact-person { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.staff-contact-person>button { min-width:0; padding:12px 10px 12px 14px; display:grid; gap:4px; color:var(--ink); border:0; background:transparent; text-align:left; }
.staff-contact-person>button>span { min-width:0; display:flex; align-items:center; gap:7px; }
.staff-contact-person>button b { overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.staff-contact-person>button em { padding:2px 6px; color:#fff; border-radius:999px; background:var(--wood-dark); font-size:10px; font-style:normal; }
.staff-contact-person>button small { color:var(--muted); font-size:10px; }
.staff-contact-person>button[aria-expanded="true"] small i { display:inline-block; transform:rotate(180deg); }
.staff-contact-person>a { min-width:116px; padding:12px 14px 12px 6px; display:grid; justify-items:end; gap:2px; color:var(--wood-dark); }
.staff-contact-person>a b { font-size:14px; white-space:nowrap; }
.staff-contact-person>a small { color:var(--muted); font-size:9px; }
.staff-regions { padding:12px 14px 15px; border-top:1px dashed var(--line); background:rgba(255,255,255,.38); }
.staff-regions small { color:var(--olive); font-size:10px; letter-spacing:.08em; }
.staff-regions p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.hotline-note { margin:0 22px 22px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); text-align:center; }
.hotline-note a { color:var(--ink); border-bottom:1px solid var(--ink); }
.receipt-dialog { width:min(1120px,calc(100% - 32px)); max-height:92vh; padding:0; overflow:hidden; border:1px solid var(--ink); background:var(--surface); box-shadow:0 24px 80px rgba(23,25,20,.24); }
.receipt-dialog::backdrop { background:rgba(23,25,20,.66); }
.receipt-dialog-head { padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.receipt-dialog-head h2 { margin:0 0 6px; font-size:34px; }
.receipt-dialog-head .kicker { margin-bottom:7px; }
.receipt-dialog-head span { color:var(--muted); font-size:13px; }
.receipt-dialog-head button { width:42px; height:42px; border:1px solid var(--ink); background:transparent; }
.receipt-dialog-body { display:grid; grid-template-columns:minmax(0,1fr) 320px; max-height:62vh; background:var(--soft); }
.receipt-preview { max-height:62vh; padding:24px; overflow:auto; background:var(--soft); }
.receipt-preview img { width:min(100%,680px); margin:0 auto; background:var(--paper); box-shadow:0 16px 36px rgba(37,31,23,.14); }
.receipt-notice { position:relative; display:flex; flex-direction:column; justify-content:center; padding:38px 32px; overflow:hidden; border-left:1px solid rgba(128,91,55,.32); background:linear-gradient(155deg,rgba(244,233,216,.96),rgba(224,196,159,.82)); }
.receipt-notice::before { content:""; position:absolute; width:190px; height:190px; top:-82px; right:-72px; border:1px solid rgba(128,91,55,.2); border-radius:50%; box-shadow:0 0 0 24px rgba(128,91,55,.06),0 0 0 48px rgba(128,91,55,.035); }
.receipt-notice-label { position:relative; margin:0 0 20px; color:#795b3a; font-size:12px; letter-spacing:.28em; }
.receipt-notice h3 { position:relative; margin:0; color:var(--ink); font-size:27px; line-height:1.55; font-weight:500; }
.receipt-notice>span { width:46px; height:2px; margin:24px 0; background:#9b7148; }
.receipt-notice>p:last-child { position:relative; margin:0; color:#655c51; font-size:16px; line-height:1.9; }
.receipt-actions { padding:18px 26px; display:flex; justify-content:flex-end; gap:12px; border-top:1px solid var(--line); }
.receipt-actions a,.receipt-actions button { min-height:48px; padding:0 20px; display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid var(--ink); }
.receipt-save { color:#fff; background:var(--ink); }
.receipt-actions button { background:transparent; }
@media (max-width:900px) {
  .cart-layout { grid-template-columns:1fr; }
  .order-panel { position:static; }
  .receipt-dialog-body { grid-template-columns:minmax(0,1fr) 280px; }
  .receipt-notice { padding:30px 24px; }
  .receipt-notice h3 { font-size:23px; }
}
@media (max-width:650px) {
  .cart-nav { display:none; }
  .cart-page { width:calc(100% - 48px); padding:60px 0 86px; }
  .cart-layout { margin-top:38px; gap:34px; }
  .cart-title { align-items:flex-start; flex-direction:column; gap:22px; }
  .cart-title h1 { font-size:46px; }
  .panel-heading { min-height:76px; padding:20px 18px; }
  .cart-line { grid-template-columns:76px 1fr; padding:18px; gap:14px; }
  .cart-line>img { width:76px; height:76px; }
  .cart-line-side { grid-column:1/-1; width:100%; display:flex; align-items:center; justify-content:space-between; }
  .order-panel form { padding:22px 18px 26px; gap:20px; }
  .shipping-order-banner { padding:17px 16px; }
  .delivery-address-fields { padding:16px 12px; }
  .region-select-row { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .region-select-row label { font-size:12px; }
  .region-select-row select { padding:10px 6px; font-size:12px; }
  .staff-contact-helper { margin-top:4px; }
  .staff-contact-toggle { min-height:72px; padding:14px; }
  .staff-contact-person>a { min-width:104px; padding-right:10px; }
  .receipt-dialog-head { padding:18px; }
  .receipt-dialog-head h2 { font-size:28px; }
  .receipt-dialog-body { display:block; max-height:64vh; overflow:auto; }
  .receipt-preview { padding:12px; }
  .receipt-notice { min-height:300px; border-top:1px solid rgba(128,91,55,.32); border-left:0; }
  .receipt-actions { padding:14px 18px; flex-direction:column; }
  .receipt-actions a,.receipt-actions button { width:100%; }
}
