/* ── 商店 App: 情侣礼物商店 ── */
.store-shell,.store-screen{position:absolute;inset:0;min-height:0;background:var(--bg);color:var(--ink)}
/* The shell leaves room for the tab bar and the screens fill the shell. (Both used to reserve the tab bar's height, which left an empty 58px band above the tabs.) */
.store-shell{bottom:calc(58px + var(--sab))}
/* category / detail / checkout hide the tabs, so the shell takes the whole view there */
.store-shell:has(#store-category.active,#store-detail.active,#store-checkout.active){bottom:0}
.store-screen{display:none;flex-direction:column;overflow:hidden}
.store-screen.active{display:flex}
[id^="store-"][id$="-body"]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.store-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 16px calc(22px + var(--sab));overscroll-behavior:contain}

.store-tabs{position:absolute;left:0;right:0;bottom:0;height:calc(58px + var(--sab));padding-bottom:var(--sab);display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:.5px solid var(--border)}
.store-tabs[hidden]{display:none}
.store-tabs button{border:none;background:none;color:var(--ink2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:inherit;font-size:10.5px;position:relative;transition:color .16s ease,transform .16s ease}
.store-tabs button.active{color:var(--accent-text)}
.store-tabs button.active::after{content:'';position:absolute;top:0;left:28%;right:28%;height:2px;border-radius:0 0 2px 2px;background:var(--pri-deep)}
.store-tabs svg{width:20px;height:20px;stroke-width:1.5}
.store-cart-badge{position:absolute;top:2px;right:calc(50% - 20px);min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--coral);color:var(--on-coral,#fff);font-size:9.5px;font-weight:700;line-height:15px;text-align:center}

.store-search{height:40px;border:none;background:var(--bg);box-shadow:var(--shadow-in);border-radius:14px;display:flex;align-items:center;gap:8px;padding:0 12px;margin-bottom:10px}
.store-search svg{width:16px;height:16px;color:var(--mist)}
.store-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;color:var(--ink);font-family:inherit;font-size:13.5px}

.store-companion-row{display:flex;gap:9px;margin-bottom:8px}
.store-companion-btn{flex:1;border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-family:inherit;font-size:12.5px;font-weight:700;padding:8px 10px;border-radius:14px;transition:box-shadow .16s ease,color .16s ease,transform .16s ease,background-color .16s ease}
.store-companion-btn.active{background:var(--pri-pale);box-shadow:var(--shadow),inset 0 0 0 1.5px var(--pri-deep);color:var(--accent-text)}
.store-companion-note{font-size:11.5px;color:var(--ink2);margin:-2px 2px 10px;line-height:1.35}

.store-banner{display:flex;align-items:center;gap:12px;padding:13px 17px;border-radius:17px;background:linear-gradient(135deg,var(--pri-pale),color-mix(in srgb,var(--period-ovulation) 30%,var(--bg)));box-shadow:var(--shadow);color:var(--ink);margin-bottom:13px}
.store-banner svg{width:21px;height:21px;flex-shrink:0;color:var(--ink2)}
.store-banner b{display:block;font-size:14px;line-height:1.2;color:var(--ink)}
.store-banner span{display:block;margin-top:4px;font-size:12px;line-height:1.35;color:var(--ink)}

.store-section-title{display:flex;align-items:baseline;justify-content:space-between;font-size:13.5px;font-weight:800;color:var(--ink);margin:13px 0 8px}
.store-link-btn{border:none;background:none;color:var(--accent-text);font-family:inherit;font-size:12px;font-weight:600}

.store-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:7px}
.store-cat-chip{border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-family:inherit;font-size:12.5px;font-weight:700;padding:10px 6px;border-radius:12px;text-align:center;transition:transform .16s ease,box-shadow .16s ease,color .16s ease}
.store-cat-chip.more{color:var(--accent-text)}

.store-cat-tabs{flex-shrink:0;display:flex;gap:6px;overflow-x:auto;padding:8px 16px}
.store-cat-tabs button{flex-shrink:0;border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-family:inherit;font-size:12px;padding:7px 13px;border-radius:999px;white-space:nowrap}
.store-cat-tabs button.active{background:var(--pri-pale);box-shadow:var(--shadow),inset 0 0 0 1.5px var(--pri-deep);color:var(--accent-text);font-weight:600}

.store-category-scroll{padding-top:8px}
.store-category-intro{margin-bottom:9px}
.store-category-intro p{font-size:12.5px;line-height:1.45;color:var(--ink2)}
.store-category-intro span{display:inline-block;margin-top:5px;font-size:11.5px;color:var(--ink);background:var(--pri-pale);border-radius:999px;padding:4px 9px}
.store-list-toolbar{display:flex;align-items:center;gap:12px;margin:2px 0 12px;padding:0 1px;color:var(--ink2)}
.store-list-toolbar button{border:none;background:none;color:inherit;font-family:inherit;font-size:12px;font-weight:600;padding:4px 0;line-height:1.2;transition:color .16s ease,transform .16s ease}
.store-list-toolbar button.active{color:var(--ink)}
.store-list-toolbar button:last-child{margin-left:auto}
.store-filter-toggle{width:36px;height:36px;border-radius:12px!important;background:var(--surface)!important;box-shadow:var(--shadow)!important;display:flex;align-items:center;justify-content:center;padding:0!important}
.store-filter-toggle svg{width:16px;height:16px;stroke-width:1.8}
.store-filter-toggle.active{background:var(--pri-pale)!important;box-shadow:var(--shadow-in)!important;color:var(--ink)}
.store-list-end{padding:15px 0 2px;text-align:center;font-size:11.5px;color:var(--ink2)}
.store-category-empty{padding-top:52px}
.store-filter-panel{margin:-2px 0 13px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--bg) 94%,var(--ink) 6%);box-shadow:0 12px 26px rgba(76,96,112,.13);padding:14px}
.store-filter-panel-title{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--ink);margin:0 2px 12px}
.store-filter-title{font-size:12.5px;font-weight:800;color:var(--ink2);margin:0 2px 9px}
.store-filter-options{display:flex;gap:8px;flex-wrap:wrap}
.store-filter-option{border:none;border-radius:999px;background:var(--bg);box-shadow:var(--shadow);color:var(--ink2);font-family:inherit;font-size:12.5px;font-weight:700;padding:8px 13px;transition:color .16s ease,box-shadow .16s ease,transform .16s ease,background-color .16s ease}
.store-filter-option.active{background:var(--pri-pale);box-shadow:var(--shadow-in),inset 0 0 0 1.5px var(--pri-deep);color:var(--ink)}
.store-filter-panel-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:12px;border-top:.5px solid var(--border)}
.store-filter-panel-actions .s-btn{min-height:40px;border-radius:999px}

.store-product-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px}
.store-card{min-width:0;background:var(--bg);box-shadow:0 8px 22px rgba(71,91,112,.10),var(--shadow);border-radius:15px;overflow:hidden;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.store-card-img{position:relative;aspect-ratio:1;background:var(--surface-alt)}
.store-card-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.store-card-fav{position:absolute;top:7px;right:7px;width:27px;height:27px;border:none;border-radius:50%;background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--ink2);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:transform .16s ease,color .16s ease}
.store-card-fav svg{width:13px;height:13px}
.store-card-fav.active{color:var(--mark-coral)}
.store-card-fav.active svg{fill:currentColor}
.store-fav-btn{color:var(--ink2)}
.store-fav-btn.active{color:var(--mark-coral)}
.store-fav-btn.active svg{fill:currentColor}
.store-card-body{padding:9px 10px 10px;min-width:0}
.store-card-body b{display:block;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-card-body p{margin-top:3px;font-size:11px;color:var(--ink2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.store-card-bottom{margin-top:6px;display:flex;align-items:center;justify-content:space-between}
.store-price{font-size:13.5px;font-weight:700;color:var(--accent-text)}
.store-card-cart{border:none;background:var(--pri-pale);color:var(--mark-pri-deep);width:27px;height:27px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .16s ease}
.store-card-cart svg{width:13px;height:13px}
.store-tabs button:active,.store-companion-btn:active,.store-cat-chip:active,.store-card-fav:active,.store-card-cart:active,.store-link-btn:active,.store-list-toolbar button:active,.store-filter-option:active{transform:scale(.98)}
.store-card:active{transform:scale(.995)}

.store-wishlist-row{display:flex;gap:8px;overflow-x:auto;margin-bottom:6px}
.store-wish-chip{flex-shrink:0;width:104px;background:var(--bg);box-shadow:var(--shadow);border-radius:13px;padding:7px;text-align:center}
.store-wish-chip img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}
.store-wish-chip span{display:block;margin-top:5px;font-size:11.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-wish-chip small{display:block;margin-top:2px;font-size:10px;color:var(--ink2)}
.store-empty-inline{padding:16px;border-radius:14px;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-size:12.5px;text-align:center}

/* Detail */
.store-detail-gallery{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin-bottom:12px;border-radius:16px}
.store-detail-gallery img{width:100%;flex-shrink:0;scroll-snap-align:start;aspect-ratio:1;object-fit:cover;border-radius:16px;background:var(--surface-alt)}
.store-detail-price{font-size:22px;font-weight:700;color:var(--accent-text)}
.store-detail-main h2{margin-top:4px;font-size:17px;font-weight:600}
.store-detail-desc{margin-top:8px;font-size:13px;line-height:1.6;color:var(--ink2)}
.store-field-title{margin-top:14px;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--ink2)}
.store-spec-row{display:flex;flex-wrap:wrap;gap:8px}
.store-spec-chip{border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-family:inherit;font-size:12.5px;padding:8px 14px;border-radius:999px}
.store-spec-chip.active{background:var(--pri-pale);box-shadow:var(--shadow),inset 0 0 0 1.5px var(--pri-deep);color:var(--accent-text);font-weight:600}
.store-qty-row{display:flex;align-items:center;gap:14px}
.store-qty-row.small{gap:8px}
.store-qty-row button{width:28px;height:28px;border:none;border-radius:9px;background:var(--surface-alt);color:var(--ink2);font-size:15px}
.store-qty-row.small button{width:22px;height:22px;font-size:13px}
.store-tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.store-tag-row span{font-size:11px;color:var(--ink2);background:var(--surface-alt);border-radius:999px;padding:4px 9px}
.store-ghost-btn{margin-top:14px;width:100%;border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--accent-text);font-family:inherit;font-size:13px;font-weight:600;padding:11px;border-radius:14px}
.store-ghost-btn.wide{margin-top:0;flex:1}
.store-detail-actions{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px 16px calc(10px + var(--sab));background:var(--bg);border-top:.5px solid var(--border)}
.store-icon-action{flex-shrink:0;width:44px;height:44px;border:none;border-radius:14px;background:var(--surface-alt);color:var(--ink2);display:flex;align-items:center;justify-content:center}
.store-icon-action svg{width:19px;height:19px}
.store-primary-btn{border:none;background:var(--pri);color:var(--on-pri,#fff);font-family:inherit;font-size:13.5px;font-weight:700;padding:12px;border-radius:14px}
.store-primary-btn.wide{flex:1}

/* Cart */
.store-cart-list{display:flex;flex-direction:column;gap:10px}
.store-cart-row{display:flex;gap:10px;background:var(--bg);box-shadow:var(--shadow);border-radius:14px;padding:10px}
.store-cart-row img{width:64px;height:64px;border-radius:11px;object-fit:cover;background:var(--surface-alt);flex-shrink:0}
.store-cart-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.store-cart-main b{font-size:13.5px;font-weight:600;color:var(--ink)}
.store-cart-spec{font-size:11px;color:var(--ink2)}
.store-cart-recipient{align-self:flex-start;border:none;background:none;color:var(--accent-text);font-family:inherit;font-size:11.5px;display:flex;align-items:center;gap:2px;padding:0}
.store-cart-recipient svg{width:12px;height:12px}
.store-cart-row-bottom{margin-top:2px;display:flex;align-items:center;justify-content:space-between}
.store-cart-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.store-cart-actions button{border:none;background:none;color:var(--mist);width:24px;height:24px}
.store-cart-actions button svg{width:15px;height:15px}
.store-cart-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px calc(12px + var(--sab));background:var(--bg);border-top:.5px solid var(--border)}
.store-cart-total{font-size:13px;color:var(--ink2)}
.store-cart-total b{font-size:17px;color:var(--accent-text)}
.store-empty{padding:60px 30px;text-align:center}
.store-empty-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--bg);box-shadow:var(--shadow-in);color:var(--pri-deep);display:flex;align-items:center;justify-content:center}
.store-empty-icon svg{width:24px;height:24px}
.store-empty h3{font-size:15px;color:var(--ink)}
.store-empty p{margin-top:4px;font-size:12.5px;color:var(--ink2)}
.store-empty .store-primary-btn{margin-top:14px;display:inline-block;padding:10px 20px}

/* Checkout */
.store-checkout-item{display:flex;align-items:center;gap:10px;background:var(--bg);box-shadow:var(--shadow-in);border-radius:13px;padding:9px;margin-bottom:8px}
.store-checkout-item img{width:44px;height:44px;border-radius:9px;object-fit:cover;background:var(--surface-alt)}
.store-checkout-item div{flex:1;min-width:0}
.store-checkout-item b{display:block;font-size:13px;color:var(--ink)}
.store-checkout-item span{font-size:11px;color:var(--ink2)}
.store-address-card{background:var(--bg);box-shadow:var(--shadow-in);border-radius:13px;padding:12px;font-size:12.5px;line-height:1.6;color:var(--ink2)}
.store-mock-note{margin-top:14px;font-size:11.5px;color:var(--ink2);text-align:center}

/* Me */
.store-wallet-card{width:100%;border:none;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;background:var(--bg);box-shadow:var(--shadow);border-radius:15px;padding:14px 16px;margin-bottom:12px}
.store-wallet-card span{font-size:12.5px;color:var(--ink2)}
.store-wallet-card b{font-size:19px;color:var(--accent-text)}
.store-me-tabs-wrap{position:relative;width:100%;max-width:100%;overflow:hidden}
.store-me-tabs-wrap::before,.store-me-tabs-wrap::after{content:'';position:absolute;top:0;bottom:10px;width:30px;z-index:2;pointer-events:none;opacity:0;transition:opacity .16s ease;background:var(--bg)}
.store-me-tabs-wrap::before{left:0;-webkit-mask-image:linear-gradient(90deg,#000,transparent);mask-image:linear-gradient(90deg,#000,transparent)}
.store-me-tabs-wrap::after{right:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}
.store-me-tabs-wrap.has-left::before,.store-me-tabs-wrap.has-right::after{opacity:1}
.store-me-tabs{width:100%;max-width:100%;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:0 24px 10px 0;scroll-padding-inline:16px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.store-me-tabs button{flex:0 0 auto;border:none;background:var(--bg);box-shadow:var(--shadow-in);color:var(--ink2);font-family:inherit;font-size:12px;padding:7px 12px;border-radius:999px;white-space:nowrap}
.store-me-tabs button.active{background:var(--pri-pale);box-shadow:var(--shadow),inset 0 0 0 1.5px var(--pri-deep);color:var(--accent-text);font-weight:600}
@media (prefers-reduced-motion:reduce){.store-me-tabs-wrap::before,.store-me-tabs-wrap::after{transition:none}}
.store-order-card{background:var(--bg);box-shadow:var(--shadow);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.store-order-top{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink2);margin-bottom:6px}
.store-order-top b{color:var(--ink)}
.store-order-status{font-size:11px;font-weight:600;color:var(--accent-text);background:var(--pri-pale);padding:3px 9px;border-radius:999px}
.store-order-item{font-size:12.5px;color:var(--ink2);padding:4px 0}
.store-order-bottom{margin-top:6px;display:flex;justify-content:space-between;align-items:center;font-size:13px}
.store-order-bottom button,.store-order-item button{border:none;background:var(--surface-alt);color:var(--ink2);font-family:inherit;font-size:11.5px;padding:6px 10px;border-radius:10px}

@media (max-width:390px){
  .store-product-grid{gap:8px}
  .store-cat-grid{grid-template-columns:repeat(2,1fr)}
}

@media (prefers-reduced-motion:reduce){
  .store-tabs button,.store-companion-btn,.store-cat-chip,.store-card,.store-card-fav,.store-card-cart,.store-list-toolbar button,.store-filter-option{transition:none}
  .store-tabs button:active,.store-companion-btn:active,.store-cat-chip:active,.store-card-fav:active,.store-card-cart:active,.store-link-btn:active,.store-list-toolbar button:active,.store-filter-option:active,.store-card:active{transform:none}
}

/* ===== hand-written, keep LAST: store redesign v1 ===== */

/* ═══ 商店 redesign v1 (hand-written, keep LAST) ═══
   礼物精品店：珍珠白底、墨灰字、雾蓝丝带色点缀（取自商品图本身的色调）；颜色固定，不跟主题色。 */
:is(#v-store,#st-pick-bg,#store-recipient-bg){--sp-bg:#f7f6f4;--sp-card:#fff;--sp-ink:#2d3140;--sp-ink2:#7c8090;--sp-ac:#8a96c4;--sp-ac-deep:#5d6a9e;--sp-ac-soft:#e9ecf7;--sp-rib:#b9c3e6;--sp-line:rgba(45,49,64,.08);--sp-shadow:0 4px 14px rgba(45,49,64,.06);--sp-btn:#2d3140;--sp-btn-ink:#fff}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(#v-store,#st-pick-bg,#store-recipient-bg){--sp-bg:#1b1c21;--sp-card:#25262d;--sp-ink:#ecedf3;--sp-ink2:#9a9db0;--sp-ac:#a9b3e0;--sp-ac-deep:#c3cbf0;--sp-ac-soft:rgba(169,179,224,.14);--sp-rib:#6d78a8;--sp-line:rgba(255,255,255,.07);--sp-shadow:0 4px 14px rgba(0,0,0,.3);--sp-btn:#e6e8f2;--sp-btn-ink:#1b1c21}}
:root[data-theme="dark"] :is(#v-store,#st-pick-bg,#store-recipient-bg){--sp-bg:#1b1c21;--sp-card:#25262d;--sp-ink:#ecedf3;--sp-ink2:#9a9db0;--sp-ac:#a9b3e0;--sp-ac-deep:#c3cbf0;--sp-ac-soft:rgba(169,179,224,.14);--sp-rib:#6d78a8;--sp-line:rgba(255,255,255,.07);--sp-shadow:0 4px 14px rgba(0,0,0,.3);--sp-btn:#e6e8f2;--sp-btn-ink:#1b1c21}
#v-store,#v-store .store-shell,#v-store .store-screen{background:var(--sp-bg);color:var(--sp-ink)}
#v-store .app-title,#v-store .app-back{color:var(--sp-ink)}
#v-store .store-scroll{padding-left:18px;padding-right:18px}

/* tab bar */
#v-store .store-tabs{background:color-mix(in srgb,var(--sp-card) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:none;box-shadow:0 -4px 18px rgba(45,49,64,.06)}
#v-store .store-tabs button{color:var(--sp-ink2)}
#v-store .store-tabs button.active{color:var(--sp-ac-deep);font-weight:700}
#v-store .store-tabs button.active::after{background:var(--sp-ac)}
#v-store .store-cart-badge{background:var(--sp-ac-deep);color:var(--sp-card)}

/* 首页 */
.st-shop-top .st-gap{flex:1}
.st-brand{margin:2px 4px 0}
.st-brand small{font-size:10.5px;letter-spacing:.35em;color:var(--sp-ink2)}
.st-brand h1{margin:2px 0 0;font-family:var(--font-display);font-size:27px;font-weight:600;line-height:1.25;color:var(--sp-ink)}
#v-store .st-search{margin:14px 0 0;height:42px;border-radius:999px;background:var(--sp-card);box-shadow:var(--sp-shadow);padding:0 14px}
#v-store .st-search input{color:var(--sp-ink)}
#v-store .st-search input:focus{box-shadow:none!important;border:none!important}
#v-store .st-search:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--sp-ac) 50%,transparent),var(--sp-shadow)}
.st-who{display:flex;align-items:center;gap:10px;margin:14px 0 0}
.st-who-label{flex:none;font-size:12.5px;color:var(--sp-ink2)}
.st-who-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:3px 2px;min-width:0}
.st-who-chips::-webkit-scrollbar{display:none}
.st-who-chip{flex:none;display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;background:var(--sp-card);color:var(--sp-ink);font-family:inherit;font-size:13px;padding:6px 13px;box-shadow:var(--sp-shadow);cursor:pointer}
.st-who-chip:has(.st-av){padding-left:5px}
.st-who-chip.on{font-weight:700;box-shadow:inset 0 0 0 1.5px var(--sp-ac),0 2px 8px color-mix(in srgb,var(--sp-ac) 30%,transparent)}
.st-av{width:24px;height:24px;border-radius:50%;overflow:hidden;flex:none;display:inline-grid;place-items:center;background:var(--ca,var(--sp-ac-deep));color:#fff;font-size:11px;font-weight:700}
.st-av img{width:100%;height:100%;object-fit:cover}
.st-av .character-avatar-fallback,.st-av .avatar-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#fff}
.st-av svg{width:58%;height:58%}
.st-hero{position:relative;display:block;width:100%;height:208px;margin:16px 0 0;border:none;padding:0;border-radius:24px;overflow:hidden;background:var(--sp-card);box-shadow:0 8px 24px color-mix(in srgb,var(--sp-ac-deep) 16%,transparent);text-align:left;cursor:pointer;font-family:inherit;color:var(--sp-ink)}
.st-hero img{position:absolute;right:0;top:0;width:60%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent,#000 38%);mask-image:linear-gradient(90deg,transparent,#000 38%)}
.st-hero-text{position:absolute;left:18px;top:20px;width:52%;display:flex;flex-direction:column;gap:6px}
.st-hero-text small{font-size:10.5px;letter-spacing:.25em;color:var(--sp-ac-deep)}
.st-hero-text b{font-family:var(--font-display);font-size:20px;font-weight:600;line-height:1.3}
.st-hero-text i{font-style:normal;font-size:12px;line-height:1.55;color:var(--sp-ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.st-hero-ribbon{position:absolute;left:0;width:44%;bottom:22px;height:2px;background:var(--sp-rib)}
.st-cats{display:flex;gap:18px;margin:20px 2px 0;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.st-cats::-webkit-scrollbar{display:none}
.st-cat{flex:none;border:none;background:none;padding:2px 0 6px;font-family:inherit;font-size:14px;color:var(--sp-ink2);cursor:pointer}
.st-cat:hover{color:var(--sp-ink)}
#v-store .st-sec{margin:22px 2px 10px;font-family:var(--font-display);font-size:15.5px;font-weight:600;color:var(--sp-ink)}
#v-store .store-link-btn{color:var(--sp-ac-deep)}
.st-thumbs{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px}
.st-thumbs::-webkit-scrollbar{display:none}
.st-thumb{flex:none;width:72px;height:72px;border:none;padding:0;border-radius:16px;overflow:hidden;box-shadow:var(--sp-shadow);cursor:pointer}
.st-thumb img{width:100%;height:100%;object-fit:cover}
.st-bottom-space{height:24px}

/* product cards: price tag hanging on the photo */
#v-store .store-product-grid{gap:12px}
#v-store .store-card{background:var(--sp-card);border-radius:20px;box-shadow:var(--sp-shadow);border:none;overflow:hidden}
#v-store .store-card-img{background:var(--sp-ac-soft)}
#v-store .store-card-body{padding:10px 12px 12px}
#v-store .store-card-body b{font-size:14px;color:var(--sp-ink)}
#v-store .store-card-body p{color:var(--sp-ink2)}
#v-store .store-card-fav{background:rgba(255,255,255,.88);color:var(--sp-ink2)}
#v-store .store-card-fav.active{color:#d9748a}
#v-store .store-card-cart{background:var(--sp-ac-soft);color:var(--sp-ac-deep)}
.st-tag{position:absolute;right:10px;bottom:10px;background:var(--sp-card);color:var(--sp-ac-deep);border-radius:6px 12px 12px 6px;padding:4px 10px 4px 15px;font-size:13px;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.st-tag::before{content:"";position:absolute;left:5px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--sp-rib)}
.st-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.st-wants{position:absolute;left:8px;top:8px;display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.92);color:#2d3140;border-radius:999px;padding:3px 9px 3px 3px;font-size:10.5px;font-weight:600}
.st-wants .st-av{width:18px;height:18px;font-size:9px}

/* 详情 */
#v-store .st-detail{padding:0}
.st-detail-photo{position:relative}
#v-store .st-detail-photo .store-detail-gallery{margin:0;border-radius:0;gap:0}
#v-store .st-detail-photo .store-detail-gallery img{aspect-ratio:1/1.02;border-radius:0}
#v-store .st-round{position:absolute;left:16px;top:calc(var(--sat,0px) + 12px);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);color:#2d3140;display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.12)}
#v-store .st-round-r{left:auto;right:16px}
#v-store .st-round.store-fav-btn.active{color:#d9748a}
.st-detail-sheet{position:relative;margin-top:-26px;background:var(--sp-bg);border-radius:26px 26px 0 0;padding:22px 20px 0}
#v-store .st-detail-sheet h2{margin:0;font-family:var(--font-display);font-size:23px;font-weight:600;color:var(--sp-ink)}
.st-price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
#v-store .st-price-row .store-detail-desc{margin:0;flex:1}
.st-tag.st-tag-lg{position:static;flex:none;font-size:18px;padding:6px 14px 6px 20px}
#v-store .store-field-title{color:var(--sp-ink2)}
#v-store .store-spec-chip{background:var(--sp-card);box-shadow:var(--sp-shadow);color:var(--sp-ink2);border-radius:999px}
#v-store .store-spec-chip.active{background:var(--sp-card);box-shadow:inset 0 0 0 1.5px var(--sp-ac);color:var(--sp-ink);font-weight:700}
#v-store .store-qty-row button{background:var(--sp-card);color:var(--sp-ink);box-shadow:var(--sp-shadow);border-radius:50%}
.st-note{position:relative;margin-top:16px;background:var(--sp-card);border-radius:16px;padding:12px 14px 12px 18px;font-size:13px;line-height:1.65;color:var(--sp-ink);box-shadow:var(--sp-shadow)}
.st-note::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--sp-rib)}
.st-note small{display:block;font-size:11px;letter-spacing:.15em;color:var(--sp-ac-deep);margin-bottom:2px}
#v-store .store-tag-row span{background:var(--sp-ac-soft);color:var(--sp-ac-deep)}
.st-wishers{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--sp-ink2)}
.st-wishers-avs{display:flex}
.st-wishers-avs .st-av{border:2px solid var(--sp-bg);margin-left:-6px}
.st-wishers-avs .st-av:first-child{margin-left:0}
#v-store .st-actions{background:var(--sp-bg);border:none;padding:10px 16px calc(14px + var(--sab,0px));gap:8px}
#v-store .st-actions .store-icon-action{width:50px;height:50px;border-radius:50%;background:var(--sp-card);color:var(--sp-ink);box-shadow:var(--sp-shadow)}
#v-store .st-actions .store-ghost-btn{height:50px;border-radius:999px;background:var(--sp-card);color:var(--sp-ac-deep);box-shadow:var(--sp-shadow);font-weight:700}
#v-store .st-actions .store-primary-btn,#v-store .store-primary-btn{background:var(--sp-btn);color:var(--sp-btn-ink);border-radius:999px;font-weight:700}
#v-store .st-actions .store-primary-btn{height:50px;flex:1.3}
#v-store .store-primary-btn:disabled{opacity:.4}

/* 购物车 / 结算 / 分类 */
#v-store .store-cart-row,#v-store .store-checkout-item,#v-store .store-address-card,#v-store .store-order-card{background:var(--sp-card);box-shadow:var(--sp-shadow);border:none;border-radius:18px;color:var(--sp-ink)}
#v-store .store-cart-recipient{color:var(--sp-ac-deep)}
#v-store .store-price,#v-store .store-cart-total b,#v-store .store-detail-price{color:var(--sp-ac-deep)}
#v-store .store-cart-footer{background:color-mix(in srgb,var(--sp-card) 94%,transparent);border:none;box-shadow:0 -4px 16px rgba(45,49,64,.06)}
#v-store .store-empty-inline{background:var(--sp-card);box-shadow:var(--sp-shadow);color:var(--sp-ink2);border-radius:16px}
#v-store .store-empty-icon{background:var(--sp-card);color:var(--sp-ac-deep)}
#v-store .store-list-toolbar button.active{color:var(--sp-ink)}
#v-store .store-filter-toggle{background:var(--sp-card)!important;color:var(--sp-ink)}
#v-store .couple-field textarea{background:var(--sp-card);border-color:var(--sp-line);color:var(--sp-ink)}
#v-store .store-wish-chip{background:var(--sp-card);box-shadow:var(--sp-shadow);border-radius:16px}
#v-store .store-order-status{background:var(--sp-ac-soft);color:var(--sp-ac-deep)}

/* 礼物 */
.st-wallet-chip{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;background:var(--sp-card);color:var(--sp-ink);font-family:inherit;font-size:13px;padding:7px 12px;box-shadow:var(--sp-shadow);cursor:pointer}
.st-wallet-chip svg{width:15px;height:15px;stroke-width:1.8}
.st-lede{margin:4px 2px 14px;font-size:13px;line-height:1.6;color:var(--sp-ink2)}
.st-seg{display:flex;background:var(--sp-card);border-radius:999px;padding:4px;box-shadow:var(--sp-shadow);margin:6px 0 14px}
.st-seg button{flex:1;border:none;background:none;border-radius:999px;padding:9px 0;font-family:inherit;font-size:13.5px;color:var(--sp-ink2);cursor:pointer}
.st-seg button[aria-selected="true"]{background:var(--sp-btn);color:var(--sp-btn-ink);font-weight:700}
.st-gift{position:relative;display:flex;gap:12px;background:var(--sp-card);border-radius:20px;padding:12px;margin-bottom:12px;box-shadow:var(--sp-shadow)}
.st-gift.is-received{box-shadow:0 8px 22px color-mix(in srgb,var(--sp-ac-deep) 16%,transparent);border:1px solid var(--sp-ac-soft)}
.st-gift>img{width:76px;height:76px;border-radius:14px;object-fit:cover;flex:none;background:var(--sp-ac-soft)}
.st-gift-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.st-gift-main b{font-size:14.5px}
.st-gift-main small{font-size:11.5px;color:var(--sp-ink2)}
.st-gift-who{display:inline-flex;align-items:center;gap:5px;margin-top:4px;font-size:11.5px;color:var(--sp-ac-deep);background:var(--sp-ac-soft);border-radius:999px;padding:2px 9px 2px 2px}
.st-gift-who .st-av{width:18px;height:18px;font-size:9px}
.st-gift-echo{margin-top:6px;font-size:13px;line-height:1.55;color:var(--sp-ink)}
.st-gift-save{margin-top:4px;padding:0}
.st-gift-ribbon{position:absolute;right:14px;top:0;width:18px;height:28px;background:var(--sp-rib);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%)}

/* 选人：居中弹窗（购物车里的「购买对象」也居中） */
:is(#st-pick-bg,#store-recipient-bg).sheet-ov{align-items:center;padding:20px}
:is(#st-pick-bg,#store-recipient-bg) .sheet{max-width:360px;width:100%;border-radius:24px;animation:none;background:var(--sp-bg);color:var(--sp-ink);padding:20px 18px 18px}
#store-recipient-bg .sheet-bar{display:none}
.st-dialog-head{display:flex;align-items:center;justify-content:space-between}
.st-dialog-head h2{margin:0;font-size:18px}
.st-dialog-x{border:none;background:none;color:var(--sp-ink2);display:grid;place-items:center;cursor:pointer}
.st-dialog-x svg{width:20px;height:20px}
.st-dialog-sub{margin:6px 0 12px;font-size:12.5px;color:var(--sp-ink2);line-height:1.5}
.st-pick-search{display:flex;align-items:center;gap:8px;height:40px;border-radius:999px;background:var(--sp-card);padding:0 12px;margin-bottom:10px;box-shadow:var(--sp-shadow)}
.st-pick-search svg{width:16px;height:16px;color:var(--sp-ink2)}
.st-pick-search input{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--sp-ink);font-family:inherit;font-size:14px}
.st-pick-search input:focus{box-shadow:none!important;border:none!important}
.st-pick-list{max-height:46dvh;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:8px}
.st-pick-row{display:flex;align-items:center;gap:12px;border:none;border-radius:16px;background:var(--sp-card);color:var(--sp-ink);font-family:inherit;text-align:left;padding:9px 12px 9px 9px;cursor:pointer;box-shadow:var(--sp-shadow)}
.st-pick-row .st-av{width:38px;height:38px;font-size:14px}
.st-pick-name{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:14.5px;font-weight:600}
.st-pick-name em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--sp-ac-deep);background:var(--sp-ac-soft);border-radius:999px;padding:2px 7px}
.st-pick-name em.muted{color:var(--sp-ink2);background:var(--sp-line)}
.st-pick-row i{width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--sp-line);display:grid;place-items:center;color:transparent;flex:none}
.st-pick-row i svg{width:14px;height:14px;stroke-width:2.6}
.st-pick-row[aria-checked="true"]{box-shadow:inset 0 0 0 1.5px var(--sp-ac),var(--sp-shadow)}
.st-pick-row[aria-checked="true"] i{background:var(--sp-ac-deep);color:#fff;box-shadow:none}
.st-pick-empty{text-align:center;color:var(--sp-ink2);font-size:13px;padding:16px 0}
.st-pick-done{width:100%;height:46px;margin-top:14px;border:none;border-radius:999px;background:var(--sp-btn);color:var(--sp-btn-ink);font-family:inherit;font-size:15px;font-weight:700}
.st-pick-done:disabled{opacity:.4}
#store-recipient-bg .desk-menu-row{border-radius:14px;background:var(--sp-card);margin-bottom:8px;color:var(--sp-ink)}
#v-store .store-top{background:transparent;border:none;box-shadow:none}
.st-hero-text{width:44%}
.st-hero img{width:56%}
.st-tag.st-tag-lg{position:relative}
:is(#st-pick-bg) .st-dialog-x{border:0;background:none;box-shadow:none;padding:4px}
#v-store .store-cart-footer .store-primary-btn{height:46px;padding:0 28px}
