/* 商城沿用极修匠紫色品牌，范围限定在产品中心及其专用导航。 */
.product-site [hidden] { display:none!important; }
.product-site { --shop-purple:#6b2585; --shop-pink:#ee428b; --shop-line:#e7e1eb; --shop-muted:#746c7d; }
.catalog-header { position:relative; z-index:30; }
.catalog-header-inner nav { display:flex; align-items:center; gap:24px; }
.shop-user-nav { display:flex; gap:14px; align-items:center; font-size:14px; white-space:nowrap; }
.shop-nav { position:relative; }
.shop-nav summary { cursor:pointer; list-style:none; display:flex; gap:10px; align-items:center; font-weight:650; }
.shop-nav summary::-webkit-details-marker { display:none; }
.shop-nav .nav-dropdown { position:absolute; z-index:50; left:0; top:calc(100% + 16px); background:#fff; border:1px solid var(--shop-line,#e7e1eb); border-radius:14px; box-shadow:0 18px 45px #2116321f; padding:12px; min-width:300px; grid-template-columns:1fr 1fr; gap:2px; }
.shop-nav[open] .nav-dropdown { display:grid; }
.shop-nav .nav-dropdown a { padding:11px 13px; border-radius:8px; font-size:14px; white-space:nowrap; }
.shop-nav .nav-dropdown a:hover { background:#f6f0f8; color:#6b2585; }
.shop-policy-links { display:flex; justify-content:center; flex-wrap:wrap; gap:14px 24px; padding:30px 24px; border-top:1px solid var(--shop-line); font-size:13px; color:#746c7d; }
.shop-page { max-width:1320px; margin:auto; padding:54px 32px 80px; }
.shop-page-heading { margin-bottom:32px; }
.shop-page-heading h1 { font-size:clamp(30px,4vw,48px); margin:8px 0; letter-spacing:-.04em; }
.shop-page-heading>p:last-child { color:var(--shop-muted); }
.shop-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:32px; align-items:start; }
.shop-sidebar { position:sticky; top:22px; display:grid; gap:4px; }
.shop-sidebar a { padding:12px 15px; border-radius:8px; font-size:14px; color:#665970; }
.shop-sidebar a[aria-current],.shop-sidebar a:hover { background:#eee5f2; color:var(--shop-purple); font-weight:650; }
.shop-workspace { min-width:0; }
.shop-panel,.shop-form { background:#fff; border:1px solid var(--shop-line); border-radius:16px; padding:28px; margin-bottom:22px; }
.shop-panel h2,.shop-form h2 { font-size:22px; margin:0 0 18px; }
.shop-panel h3 { font-size:18px; }
.shop-form { display:grid; gap:18px; }
.shop-form label,.shop-search label { display:grid; gap:8px; font-size:14px; font-weight:600; }
.shop-form input,.shop-form select,.shop-form textarea,.shop-search input,.shop-search select { border:1px solid #d8d0df; border-radius:8px; background:#fff; color:#292032; min-width:0; width:100%; padding:12px 14px; font:inherit; box-sizing:border-box; }
.shop-form textarea { resize:vertical; line-height:1.7; }
.shop-form input:focus,.shop-form textarea:focus,.shop-form select:focus { outline:2px solid #8e4aa655; border-color:var(--shop-purple); }
.shop-primary,.shop-secondary,.shop-product-buy button,.shop-actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; padding:12px 18px; border:1px solid var(--shop-purple); border-radius:8px; background:var(--shop-purple); color:white; font:inherit; font-size:14px; font-weight:600; text-decoration:none; }
.shop-secondary,.shop-actions button { background:white; color:var(--shop-purple); border-color:#d9c9e2; }
.shop-primary:hover { background:#501769; }
.shop-primary:disabled,.shop-actions button:disabled { opacity:.55; cursor:wait; }
.shop-muted { color:var(--shop-muted); font-size:13px; line-height:1.8; margin:0; }
.shop-note { padding:17px 20px; background:#f4edf7; border-left:3px solid #9461aa; line-height:1.8; font-size:14px; margin-bottom:22px; border-radius:4px; }
.shop-note:empty { display:none; }
#shop-message { position:sticky; top:12px; z-index:15; background:#eaf6ee; border:1px solid #a7d4b4; padding:15px 20px; margin-bottom:18px; border-radius:10px; color:#225c34; }
#shop-message.error { background:#fff0f0; border-color:#e7b2b2; color:#a62a36; }
.shop-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:100; padding:16px 24px; border-radius:12px; background:#2e173b; color:white; box-shadow:0 8px 35px #0003; max-width:90vw; width:max-content; }
.shop-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.shop-columns>* { min-width:0; }
.shop-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.shop-stack { display:grid; gap:18px; }
.shop-stack .shop-panel { margin:0; }
.shop-auth { display:grid; grid-template-columns:1fr 1fr; border-radius:20px; overflow:hidden; border:1px solid var(--shop-line); background:white; }
.shop-auth .shop-form { border:0; margin:0; padding:44px 34px; border-radius:0; }
.shop-auth-copy { padding:48px 34px; background:#251432; color:white; display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.shop-auth-copy>span { color:#cdb2db; font-size:12px; letter-spacing:.1em; }
.shop-auth-copy h2 { font-size:32px; line-height:1.5; margin:0; }
.shop-auth-copy p { color:#d1c4da; font-size:14px; line-height:1.8; }
.shop-auth-copy a { color:#f3b7d6; }
.shop-registration { max-width:630px; margin:0 auto; }
.shop-registration .shop-primary { background:var(--shop-pink); border-color:var(--shop-pink); padding:15px; }
.shop-form .shop-check { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; font-weight:400; line-height:1.8; }
.shop-check input { width:17px; height:17px; margin-right:4px; accent-color:var(--shop-purple); }
.shop-check a,.shop-panel a,.shop-muted a { color:var(--shop-purple); }
.shop-panel a.shop-primary { color:white; }
.captcha-row { display:grid; grid-template-columns:1fr 180px; gap:14px; align-items:end; }
.captcha-row button { border:0; padding:0; background:#f5f0f7; cursor:pointer; border-radius:8px; overflow:hidden; }
.captcha-row img { display:block; max-width:100%; }
.shop-product-buy { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; margin:16px 0; }
.shop-product-buy strong { color:#702489; font-size:24px; }
.shop-product-buy button { padding:8px 10px; font-size:12px; }
.shop-detail-buy { padding:22px 0; border-top:1px solid var(--shop-line); border-bottom:1px solid var(--shop-line); margin:22px 0; display:flex; flex-wrap:wrap; gap:15px; align-items:center; }
.shop-detail-buy>p { flex-basis:100%; margin:0; }
.shop-detail-buy strong { font-size:36px; color:var(--shop-purple); margin-left:16px; }
.shop-detail-buy input { width:68px; padding:10px; margin-left:10px; border:1px solid var(--shop-line); border-radius:8px; }
.shop-cart-row { display:grid; grid-template-columns:76px minmax(0,1fr) auto; gap:18px; align-items:center; }
.shop-cart-row img { width:76px; height:76px; object-fit:contain; background:#f8f5fa; border-radius:10px; }
.shop-cart-row h2 { font-size:17px; margin:0 0 10px; }
.shop-cart-row input { width:64px; padding:8px; border:1px solid #d8d0df; border-radius:6px; }
.shop-cart-row .shop-actions { flex-wrap:wrap; justify-content:end; max-width:170px; }
.shop-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:15px; }
.shop-actions button,.shop-actions a { font-size:13px; padding:9px 12px; }
.shop-cart-total { margin-top:22px; display:flex; justify-content:space-between; align-items:center; }
.shop-cart-total strong,.shop-total { font-size:28px; color:var(--shop-purple); }
.shop-cart-total span { display:block; color:var(--shop-muted); font-size:13px; margin-top:8px; }
.shop-balance { background:#281733; color:white; }
.shop-balance>strong { display:block; font-size:46px; margin:14px 0; }
.shop-balance p { color:#d2c6da; line-height:1.8; }
.shop-balance a { color:#f1c0db; }
.shop-tag { display:inline-block; background:#eee5f4; color:#6b2585; padding:5px 9px; border-radius:5px; font-size:12px; margin-bottom:14px; }
.shop-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:24px 0; }
.shop-heading h2 { margin:0; }
.shop-search { display:flex; flex-wrap:wrap; gap:14px; align-items:end; margin-bottom:26px; }
.shop-search label:first-child { flex:1; min-width:150px; }
.shop-pre { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.9; }
.shop-meta { display:flex; flex-wrap:wrap; gap:8px 22px; color:var(--shop-muted); font-size:13px; line-height:1.8; }
.shop-row { padding:16px 0; border-bottom:1px solid var(--shop-line); overflow-wrap:anywhere; }
.shop-row:last-child { border-bottom:0; }
.shop-row p { margin:6px 0; }
.shop-order-id { font-size:12px; color:var(--shop-muted); word-break:break-all; }
.shop-policy { line-height:1.95; }
.shop-policy h2:not(:first-child) { margin-top:32px; }
.shop-policy p { color:#5e5467; }
.shop-account-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
.shop-account-links a { padding:20px; margin:0 0 20px; font-size:14px; }
.shop-empty { text-align:center; padding:42px 24px; color:#746c7d; background:#fff; border:1px dashed #d8ccdf; border-radius:14px; line-height:1.9; }
.shop-modal { border:0; padding:30px; border-radius:18px; width:min(520px,calc(100vw - 32px)); color:#2b1c34; }
.shop-modal::backdrop { background:#21163288; }
.shop-modal textarea { width:100%; min-height:120px; padding:12px; border:1px solid #cab9d4; border-radius:8px; box-sizing:border-box; font:inherit; }
.shop-modal form { display:grid; gap:16px; }
.shop-modal h2 { margin:0; font-size:23px; }
@media(max-width:1050px) { .shop-page { padding:35px 22px 60px; }.shop-layout { grid-template-columns:150px minmax(0,1fr); gap:20px; }.shop-auth { grid-template-columns:1fr; }.shop-auth-copy { padding:28px; }.shop-auth-copy h2 { font-size:27px; }.shop-columns { grid-template-columns:1fr; }.shop-panel,.shop-form { padding:22px; } }
@media(max-width:760px) { .catalog-header-inner { flex-wrap:wrap; gap:16px; padding:16px 20px; }.catalog-header-inner nav { order:3; width:100%; justify-content:space-between; gap:10px; font-size:13px; }.shop-user-nav { margin-left:auto; }.shop-page { padding:25px 16px 50px; }.shop-layout { grid-template-columns:1fr; gap:20px; }.shop-sidebar { display:flex; overflow-x:auto; position:static; padding-bottom:8px; }.shop-sidebar a { white-space:nowrap; padding:10px 13px; }.shop-page-heading { margin-bottom:20px; }.shop-grid { grid-template-columns:1fr; }.shop-account-links { grid-template-columns:1fr 1fr; gap:12px; }.shop-account-links a { margin:0 0 10px; }.shop-panel,.shop-form { padding:20px; }.shop-cart-row { grid-template-columns:60px minmax(0,1fr); gap:12px; }.shop-cart-row img { width:60px; height:60px; }.shop-cart-row>.shop-actions { grid-column:1/-1; justify-content:start; max-width:none; }.shop-cart-total { align-items:flex-start; gap:14px; flex-direction:column; }.shop-heading { align-items:flex-start; flex-direction:column; }.shop-auth .shop-form { padding:26px 20px; }.captcha-row { grid-template-columns:minmax(0,1fr) 140px; gap:8px; }.captcha-row img { height:auto; }.shop-nav .nav-dropdown { left:-70px; min-width:290px; }.shop-policy-links { font-size:12px; gap:12px 16px; } }
@media(prefers-reduced-motion:reduce) { .product-site * { scroll-behavior:auto!important; } }
