:root{--bg:#ffffff;--paper:#ffffff;--ink:#202020;--muted:#77736b;--line:#ece8f2;--accent:#1f6b52;--accent-2:#b96d48;--danger:#b8453d;--soft:#f5f2fb;--radius:14px;--shadow:0 10px 28px rgba(32,32,32,0.08)}*{box-sizing:border-box}html{scroll-behavior:smooth;touch-action:manipulation}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:0;overflow-x:hidden}.home-page,.tool-page{position:relative;background:radial-gradient(circle at -42px 88%,rgba(31,107,82,.08) 0 148px,transparent 149px),radial-gradient(circle at calc(100% + 58px) 6%,rgba(185,109,72,.07) 0 154px,transparent 155px),radial-gradient(circle at 92% 62%,rgba(32,32,32,.035) 0 74px,transparent 75px),#fff;background-attachment:fixed}*{scrollbar-width:none}*::-webkit-scrollbar{width:0;height:0;display:none}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.btn,.pill,summary,th,td,.nav a{white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb}.shell{width:min(1120px,calc(100% - 28px));margin:0 auto}.topbar{position:sticky;top:0;z-index:20;background:rgba(247,246,242,0.94);border-bottom:1px solid var(--line)}.home-page .topbar{display:none}.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}.brand-mark{display:none;place-items:center;width:34px;height:34px;border:2px solid var(--ink);border-radius:8px;background:var(--paper);overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:cover}.nav{display:flex;align-items:center;gap:8px}.nav a,.pill{display:inline-flex;align-items:center;justify-content:center;min-width:max-content;padding:10px 12px;border:1px solid transparent;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer}.nav a:hover,.pill:hover,.pill.active{color:var(--ink);border-color:var(--line);background:var(--paper)}.hero{padding:34px 0 18px}.product-home{padding-top:10px;width:min(720px,calc(100% - 36px))}.home-title{display:grid;justify-items:center;gap:6px;padding:14px 0 12px;text-align:center}.home-title h1{font-size:30px;margin:0}.home-title p{margin:0;color:var(--muted)}.home-shortcuts{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding-top:8px}.quick-float,.quick-float-link{position:fixed;right:16px;bottom:18px;z-index:45;display:inline-flex;align-items:center;justify-content:center;gap:8px}.quick-float-btn{min-width:74px;border-radius:999px;min-height:44px;padding:0 14px;border:1px solid rgba(32,32,32,.08);background:var(--ink);color:#fff;box-shadow:0 12px 30px rgba(32,32,32,.18);transform:translateY(0);transition:transform .2s ease,box-shadow .2s ease}.quick-float-btn svg{width:18px;height:18px;fill:currentColor}.quick-float-btn:hover,.quick-float-btn:active{transform:translateY(-3px);box-shadow:0 16px 34px rgba(32,32,32,.22)}.home-float-stack{position:fixed;right:16px;bottom:18px;z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}.home-float-stack .quick-float-btn{display:inline-flex;align-items:center;justify-content:center;pointer-events:auto}.home-more-menu{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:45;display:grid;justify-items:end;gap:10px}.home-more-panel{display:grid;justify-items:end;gap:9px;opacity:0;transform:translateY(14px) scale(.98);pointer-events:none;transition:opacity .2s ease,transform .2s ease}.home-more-menu.open .home-more-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.home-more-panel .quick-float-btn{display:inline-flex;align-items:center;justify-content:center;min-width:auto;width:max-content;box-shadow:0 10px 24px rgba(32,32,32,.16)}.more-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:auto;width:max-content}.more-menu-toggle svg{transition:transform .2s ease}.home-more-menu.open .more-menu-toggle svg{transform:rotate(90deg)}.notice-float{position:fixed;right:14px;bottom:86px;z-index:35;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;min-width:52px;height:52px;cursor:pointer;box-shadow:0 10px 24px rgba(32,32,32,.12);display:grid;place-items:center;padding:0}.notice-float svg{width:24px;height:24px;fill:currentColor}.tool-shell{position:relative;z-index:1;width:min(620px,calc(100% - 40px));margin:0 auto;padding:42px 0 34px}.home-entry-page .tool-shell{width:min(500px,calc(100% - 42px));min-height:100vh;min-height:100dvh;display:grid;align-content:center;padding:48px 0 92px}.entry-carousel{width:100%;height:clamp(132px,38vw,210px);overflow:hidden;border:0;background:transparent;margin:0 auto 14px;border-radius:20px;display:flex;align-items:center;justify-content:center;opacity:1;transform:translateY(0)}.entry-carousel-track{display:flex;gap:10px;align-items:center;justify-content:center;width:100%;margin-inline:auto;opacity:0;transform:translateY(26px)}.entry-carousel-track.marquee{justify-content:flex-start;width:max-content;min-width:100%;padding-left:max(0px,calc((100% - min(82vw,420px)) / 2));animation:entryMarquee 18s linear infinite}.entry-carousel.is-ready .entry-carousel-track{opacity:1;transform:translateY(0);transition:opacity .34s ease,transform .34s ease}.entry-carousel-track img{width:auto;max-width:min(82vw,420px);max-height:100%;height:auto;object-fit:contain;border-radius:20px;display:block;background:rgba(255,255,255,.72)}.entry-carousel-track:has(img:only-child){width:100%;animation:none}.entry-carousel-track:has(img:only-child) img{max-width:100%}@keyframes entryMarquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 5px))}}.tool-hero{display:grid;justify-items:center;gap:6px;padding:18px 0 20px;text-align:center}.tool-icon{display:grid;place-items:center;border-radius:14px;background:var(--ink);color:#fff}.tool-icon svg{width:22px;height:22px;fill:currentColor}.tool-hero h1{margin:0;font-size:28px}.tool-hero p,.tool-item small{margin:0;color:var(--muted)}.tool-list{display:grid;gap:14px;padding:4px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}.home-entry-page .tool-list{width:min(430px,calc(100% - 22px));margin-inline:auto}.tool-item{display:flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;border-radius:15px;background:var(--ink);border:1px solid var(--ink);color:#fff;text-align:center;animation:toolUp .34s ease both;animation-delay:calc(var(--tool-index,0) * 42ms)}.tool-item:nth-child(1){--tool-index:1}.tool-item:nth-child(2){--tool-index:2}.tool-item:nth-child(3){--tool-index:3}.tool-item:nth-child(4){--tool-index:4}.tool-item:nth-child(5){--tool-index:5}.tool-item:nth-child(n+6){--tool-index:6}@keyframes toolUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.tool-item.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.tool-item.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.tool-item.custom-tool-item{background:var(--ink);color:#fff;border-color:var(--ink)}.tool-item.dark small{color:rgba(255,255,255,.72)}.tool-icon{width:42px;height:42px;background:var(--ink);color:#fff}.tool-item.dark .tool-icon{background:rgba(255,255,255,.12);color:#fff}.tool-item strong,.tool-item small{display:block;min-width:0}.tool-item strong{width:100%;text-align:center}.tool-item:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(32,32,32,.12)}.home-announcement{width:min(430px,calc(100% - 22px));margin:14px auto 0;padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.92);color:var(--ink);line-height:1.75;white-space:pre-wrap;box-shadow:0 10px 24px rgba(32,32,32,.08);animation:toolUp .34s ease both}.download-page{background:radial-gradient(circle at 12% 4%,rgba(255,141,188,.16) 0 148px,transparent 149px),radial-gradient(circle at 90% 16%,rgba(119,191,255,.14) 0 130px,transparent 131px),radial-gradient(circle at 50% 92%,rgba(255,209,94,.16) 0 170px,transparent 171px),#fff}.download-shell{width:min(520px,calc(100% - 34px));margin:0 auto;min-height:100vh;min-height:100dvh;padding:18px 0 28px;display:grid;align-content:center;gap:14px}.download-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.download-back,.download-share-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px}.download-back{color:var(--ink);font-weight:800}.download-back svg,.download-share-btn svg{width:18px;height:18px;fill:currentColor}.download-share-btn{min-width:auto;width:max-content;padding-inline:14px}.download-hero{display:grid;justify-items:center;gap:8px;padding:22px 18px;border:1px solid rgba(32,32,32,.06);border-radius:26px;background:rgba(255,255,255,.86);box-shadow:0 18px 40px rgba(255,133,180,.14);text-align:center}.download-logo{width:86px;height:86px;border-radius:22px;object-fit:cover;box-shadow:0 14px 26px rgba(32,32,32,.12)}.download-hero h1{margin:4px 0 0;font-size:28px}.download-hero p,.download-action small,.download-note p{margin:0;color:var(--muted)}.download-card,.download-note{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 12px 30px rgba(32,32,32,.08)}.download-card{display:grid;gap:10px;padding:14px}.download-card-title{padding:0 4px 2px;font-weight:900}.download-action{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;min-height:74px;padding:12px;border-radius:18px;background:#f8fbff;border:1px solid rgba(32,32,32,.06)}.download-action.ios{background:#fff8fc}.download-action strong,.download-action small{display:block}.download-action strong{margin-bottom:4px;font-size:16px}.download-action-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:16px;background:var(--ink);color:#fff}.download-action-icon svg{width:24px;height:24px;fill:currentColor}.download-note{padding:14px 16px;line-height:1.7}.download-note strong{display:block;margin-bottom:4px}.poster-card{width:min(520px,calc(100% - 24px))}.poster-body{display:grid;justify-items:center}.poster-canvas{width:min(100%,420px);height:auto;border-radius:20px;box-shadow:0 16px 42px rgba(32,32,32,.16);background:#fff}.tool-back{display:block;width:max-content;margin:18px auto 0;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:22px;align-items:stretch}.hero-copy{display:flex;flex-direction:column;justify-content:center;min-height:260px}.eyebrow{color:var(--accent-2);font-weight:700;margin-bottom:12px}h1{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.12;letter-spacing:0;overflow-wrap:anywhere}.admin-main h1{font-size:clamp(24px,3vw,36px)}.lead{max-width:620px;margin:16px 0 0;color:var(--muted);line-height:1.8;font-size:16px}.hero-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.carousel{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);background:var(--soft);border:1px solid var(--line)}.carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}.carousel img.active{opacity:1}.quick-redeem{display:grid;gap:12px}.segment{display:inline-flex;gap:8px;margin-bottom:16px}.quick-redeem h2{margin:0;font-size:21px}.field{display:grid;gap:7px}.field span{color:var(--muted);font-size:13px}.muted-text{color:var(--muted);font-size:13px;line-height:1.7}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:var(--radius);min-height:44px;padding:0 12px;outline:none}.textarea{min-height:88px;padding:12px;resize:vertical}.tall-textarea{min-height:170px}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(32,32,32,0.08)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:max-content;min-height:42px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-1px);background:#000}.btn.secondary{background:var(--paper);color:var(--ink);border-color:var(--line)}.admin-actions>.btn.secondary,.admin-actions .action-menu-body .btn.secondary{background:#1768d1;border-color:#1768d1;color:#fff}.admin-actions>.btn:not(.secondary):not(.warn),.input-action>.btn.secondary,.input-action button.btn.secondary{background:#0f8f5f;border-color:#0f8f5f;color:#fff}.action-menu>summary.btn.secondary{background:#111827;border-color:#111827;color:#fff}.admin-actions>.pill{border-color:#111827;background:#111827;color:#fff}.admin-actions>.check-row{border:0;background:transparent;color:var(--ink);padding-inline:0}.admin-actions>.pill.active{background:#0f8f5f;border-color:#0f8f5f}.btn.warn{background:var(--accent-2);border-color:var(--accent-2)}.btn.logout-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.logout-danger:hover{background:#9f332d;border-color:#9f332d}.home-pill{gap:6px}.home-pill svg,.auth-home-link svg,.utility-back svg{width:18px;height:18px;fill:currentColor;flex:0 0 auto}.input-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.input-action button{order:-1}.inline-upload{width:max-content;margin-top:8px}.check-row{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin-right:18px;color:var(--ink);cursor:pointer}.table-check{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.toolbar{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0 14px}.search-action{grid-template-columns:minmax(0,1fr) auto;gap:0}.search-action .input{border-radius:12px 0 0 12px;min-height:52px}.search-action .btn{order:initial;min-height:52px;border-radius:0 12px 12px 0;padding-inline:20px}.combo-search{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;min-width:min(360px,100%)}.combo-search .input{width:100%;border-radius:12px 0 0 12px}.combo-search .select{width:48px;min-width:48px;padding-inline:0;border-left:0;border-radius:0 12px 12px 0;color:transparent;cursor:pointer;background:linear-gradient(45deg,transparent 50%,var(--ink) 50%) calc(50% - 4px) 50% / 7px 7px no-repeat,linear-gradient(135deg,var(--ink) 50%,transparent 50%) calc(50% + 4px) 50% / 7px 7px no-repeat,#fff}.combo-search .select option{color:var(--ink)}.product-combo{position:relative;display:block;width:100%;color:var(--ink);font-size:14px}.product-combo .input{padding-right:36px;background:linear-gradient(45deg,transparent 50%,var(--ink) 50%) calc(100% - 22px) 50% / 7px 7px no-repeat,linear-gradient(135deg,var(--ink) 50%,transparent 50%) calc(100% - 14px) 50% / 7px 7px no-repeat,#fff}.product-combo-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:80;display:block;max-height:min(320px,52vh);overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(32,32,32,0.12);padding:6px}.product-combo-option,.product-combo-empty{display:block;width:100%;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:14px;line-height:1.45;text-align:left;white-space:normal;padding:10px 12px}.product-combo-option{cursor:pointer}.product-combo-option:hover,.product-combo-option.active{background:#f4f7f6}.product-combo-empty{color:var(--muted)}.inline-search{display:inline-flex;align-items:center;gap:8px;flex:1 1 260px;min-width:min(100%,220px);max-width:100%}.inline-search.wide-search{flex-basis:340px}.inline-search .input,.inline-search .combo-search{flex:1 1 auto;width:auto;min-width:0}.inline-search .btn{flex:0 0 auto;min-width:70px}.inline-toggle-field .inline-toggle-control{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.inline-toggle-field .select{flex:1 1 auto;min-width:0}.mini-check{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fff;white-space:nowrap;font-size:13px;font-weight:700}.field small{color:var(--danger);font-size:12px;margin-left:6px;font-weight:700}.bulk-product-modal{width:min(560px,calc(100% - 18px))}.bulk-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bulk-edit-grid .field>span{display:inline-flex;align-items:center;gap:6px}.image-mini-btn{min-height:28px;padding-inline:10px}.category-row,.sort-row{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;align-items:center;border:none;box-shadow:none;scrollbar-width:none}.category-row::-webkit-scrollbar,.sort-row::-webkit-scrollbar{display:none}.category-row{padding:0;background:transparent;border-radius:0}.category-row + .category-row,.toolbar + .category-row{margin-top:12px}.utility-page .topbar{display:none}.utility-page .hero{padding-top:28px}.utility-page .narrow-page{width:min(720px,calc(100% - 40px))}.utility-page .result-box{animation:softUp .26s ease both}.utility-page .segment{display:flex;justify-content:center;margin-bottom:14px}.utility-page .hero-panel{margin-inline:auto}.utility-page{background:radial-gradient(circle at 0 12%,rgba(31,107,82,.07) 0 128px,transparent 129px),radial-gradient(circle at 100% 72%,rgba(185,109,72,.055) 0 118px,transparent 119px),#fff}.category-row .pill,.sort-row .pill,.nav a,.nav .pill{flex:0 0 auto}.sort-row{padding:4px;justify-content:center;gap:3px;border-radius:999px;background:#f4f4f4;margin-bottom:2px}.category-row .pill,.sort-row .pill{min-height:34px;padding:0 13px;border-radius:999px;border-color:rgba(32,32,32,.08);background:rgba(255,255,255,.78);color:var(--muted);font-size:13px;box-shadow:none;transition:background .18s ease,color .18s ease,border-color .18s ease}.sort-row .pill{flex:1 1 0;border-color:transparent;background:transparent}.sort-row .pill svg{width:15px;height:15px;fill:currentColor}.category-row .pill.active,.sort-row .pill.active{background:var(--ink);border-color:var(--ink);color:#fff}.products-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;padding-bottom:24px}@media (min-width:980px){.product-home .products-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.product-card{min-width:0;overflow:hidden;border:1px solid rgba(32,32,32,.055);border-radius:16px;background:var(--paper);cursor:pointer;box-shadow:0 7px 18px rgba(32,32,32,0.065);content-visibility:auto;contain-intrinsic-size:260px;transform:translateY(0) scale(1);opacity:1;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;will-change:transform,opacity}.product-card.product-enter{transform:translate3d(0,42px,0);opacity:0;transition:transform .5s cubic-bezier(.16,.92,.24,1),opacity .36s ease,box-shadow .24s ease,border-color .24s ease;transition-delay:var(--card-delay,0ms)}.product-card.product-enter.product-visible{transform:translate3d(0,0,0);opacity:1}.product-card:hover{transform:translateY(0) scale(1);border-color:rgba(32,32,32,.12);box-shadow:0 10px 24px rgba(32,32,32,.095)}.product-card.product-enter.product-visible:hover{transform:translate3d(0,0,0)}.product-card:active{transform:translateY(-2px) scale(.985)}.product-card.product-enter.product-visible:active{transform:translateY(-2px) scale(.985)}.product-media{position:relative;aspect-ratio:1 / 1;background:#f8f6fc;overflow:hidden}.product-id{position:absolute;right:8px;bottom:8px;display:inline-flex;min-height:24px;align-items:center;padding:0 8px;border-radius:999px;background:rgba(255,253,250,.94);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}.product-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.product-card:hover img{transform:scale(1.045)}.badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:rgba(255,253,250,.94);border-radius:999px;min-height:26px;padding:0 9px;color:var(--muted);font-size:12px}.stock-badge{position:absolute;left:8px;top:8px}.soldout-mask{position:absolute;inset:0;display:grid;place-items:center;background:rgba(32,32,32,.54);color:#fff;font-weight:800;font-size:18px}.product-body{display:grid;gap:6px;padding:10px;position:relative}.product-title{min-height:32px;margin:0;font-size:15px;line-height:1.25;font-weight:800;overflow-wrap:anywhere}.product-title.centered{min-height:30px;text-align:center;display:grid;place-items:center}.compact-product{gap:10px;padding-bottom:12px}.card-bottom-line{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:12px;text-align:center;min-height:42px}.heat{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0;border-radius:0;background:transparent;color:var(--ink);white-space:nowrap}.heat svg{width:16px;height:16px;fill:var(--ink)}.product-loading{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:var(--muted);font-size:13px}.product-empty{grid-column:1 / -1;display:grid;place-items:center;min-height:120px;color:var(--muted);font-size:13px}.product-load-tip{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:4100;transform:translateX(-50%);display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 14px;border-radius:999px;background:rgba(32,32,32,.92);color:#fff;font-size:13px;font-weight:700;pointer-events:none;box-shadow:0 12px 30px rgba(0,0,0,.16);animation:loadTipFade .2s ease both}.product-load-tip i{width:34px;height:2px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.22);position:relative}.product-load-tip i::after{content:"";position:absolute;inset:0 auto 0 0;width:45%;border-radius:inherit;background:#fff;animation:loadingLine 1.1s cubic-bezier(.45,0,.2,1) infinite}.product-load-tip.is-end i{display:none}.product-load-tip.is-end{bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%)}.more-loading{min-height:68px;pointer-events:none}.product-loading::before{content:"";display:block;width:8px;height:8px;border-radius:999px;background:var(--ink);opacity:.34;animation:softPulse 1.1s ease-in-out infinite}.product-loading i{position:relative;width:54px;height:2px;overflow:hidden;border-radius:999px;background:rgba(32,32,32,.08)}.product-loading i::after{content:"";position:absolute;inset:0 auto 0 0;width:45%;border-radius:inherit;background:var(--ink);animation:loadingLine 1.25s cubic-bezier(.45,0,.2,1) infinite}@keyframes softPulse{0%,100%{transform:scale(.72);opacity:.25}50%{transform:scale(1);opacity:.52}}@keyframes loadingLine{from{transform:translateX(-105%)}to{transform:translateX(230%)}}@keyframes loadTipFade{from{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.meta-line{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.price{color:var(--accent);font-weight:900;font-size:18px}.load-more-wrap{display:grid;place-items:center;padding:0 0 70px}.modal{position:fixed;inset:0;z-index:4000;display:none;align-items:flex-start;justify-content:center;padding:6vh 18px 18px;background:rgba(32,32,32,.48)}.modal.open{display:flex}#previewModal{align-items:flex-start;padding-top:7vh}#zoomModal,#imagePreviewModal{align-items:center;padding:18px;background:rgba(24,24,24,.72)}#zoomModal{z-index:7200;overscroll-behavior:none;touch-action:none}html.zoom-modal-open,body.zoom-modal-open{overflow:hidden;overscroll-behavior:none;touch-action:none}.sheet-modal{align-items:flex-end;padding:12vh 0 0;background:rgba(32,32,32,.38)}.modal-card{width:min(760px,100%);max-height:min(86vh,820px);max-height:min(86dvh,820px);overflow:hidden;display:flex;flex-direction:column;background:var(--paper);border-radius:24px;border:1px solid var(--line);box-shadow:0 22px 70px rgba(0,0,0,.24);overscroll-behavior:contain}#previewModal.open .product-preview-card{animation:softUp .38s cubic-bezier(.16,1,.3,1) both}@keyframes softUp{from{opacity:0;transform:translateY(82px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.sheet-modal .modal-card{width:100%;max-height:min(78vh,680px);border-radius:22px 22px 0 0;border-inline:none;border-bottom:none;animation:sheetUp .24s ease-out both}@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.modal-head,.modal-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.search-modal .modal-head{border-bottom:0;padding-bottom:0}.search-modal .modal-body{padding-top:10px}.modal-foot{border-top:1px solid var(--line);border-bottom:none;position:sticky;bottom:0;z-index:2;background:var(--paper)}.modal-body{min-height:0;padding:16px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.product-preview-card{width:min(400px,calc(100% - 72px));border-radius:28px;max-height:min(86vh,720px);max-height:min(86dvh,720px)}.product-preview-card .modal-body{flex:0 1 auto;padding-bottom:12px}.product-preview-card .modal-foot{position:static;flex:0 0 auto;padding-top:10px}.preview-single{display:grid;gap:7px}.preview-label{margin:0;text-align:center;font-size:18px}.preview-image-box{position:relative;width:min(420px,100%);aspect-ratio:1 / 1;margin:0 auto;border-radius:var(--radius);overflow:hidden}.preview-single h2{margin:2px 0 0;text-align:left;font-size:20px;overflow-wrap:anywhere}.modal-meta,.modal-desc{margin:0;color:var(--muted);line-height:1.5;text-align:left}.modal-price{color:var(--accent);font-weight:900;font-size:22px;text-align:right;white-space:nowrap}.preview-info-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.modal-desc.long-desc{max-height:4.5em;overflow:hidden;cursor:pointer}.modal-desc.long-desc.expanded{max-height:none}.back-btn svg{width:17px;height:17px;fill:currentColor}.preview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(40px,auto);gap:8px;min-height:0;align-items:stretch}.preview-actions .btn{min-height:40px}.preview-actions.no-buy [data-close]{grid-column:1 / -1}.simple-notice-modal{width:min(420px,calc(100% - 48px))}#announcementModal{align-items:flex-start;padding-top:16vh}.simple-notice-modal .notice-content{color:var(--ink);line-height:1.8;white-space:pre-wrap;text-align:left}.notice-actions{display:grid;grid-template-columns:1fr;padding-top:10px}.zoom-btn{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.88);color:var(--ink);cursor:pointer}.zoom-btn svg,.icon-text-btn svg{width:18px;height:18px;fill:currentColor;flex:0 0 auto}.icon-text-btn{gap:6px}.zoom-card{width:min(720px,calc(100% - 28px));max-height:min(88vh,760px);max-height:min(88dvh,760px);background:transparent;border:none;box-shadow:none;border-radius:0}.zoom-card .modal-body{display:grid;place-items:center;gap:12px;padding:14px;overflow:visible}.image-preview-card{width:min(720px,calc(100% - 28px));max-height:min(88vh,760px);max-height:min(88dvh,760px);background:transparent;border:0;box-shadow:none;border-radius:0}.image-preview-card .modal-body{display:grid;justify-items:center;gap:12px;padding:14px}.image-preview-img{display:block;width:auto;height:auto;max-width:100%;max-height:min(70vh,620px);max-height:min(70dvh,620px);object-fit:contain;border-radius:18px;background:transparent;box-shadow:0 18px 48px rgba(0,0,0,.18)}.zoom-track{display:flex;align-items:center;justify-content:center;width:100%;height:min(76vh,660px);height:min(76dvh,660px);margin:0 auto;overflow:hidden;padding:0;border-radius:18px;background:transparent;border:0;box-shadow:none;cursor:zoom-in;touch-action:none;user-select:none;contain:layout paint;-webkit-user-select:none;-webkit-touch-callout:none;isolation:isolate}.zoom-close-btn{min-width:112px;min-height:42px;padding-inline:24px;border-radius:14px;background:#111;color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.22)}.zoom-image{display:block;flex:0 0 auto;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;background:transparent;box-shadow:0 18px 48px rgba(0,0,0,.2);transform-origin:center center;transition:none;touch-action:none;user-select:none;-webkit-user-drag:none;-webkit-user-select:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translate3d(0,0,0) scale(1);will-change:transform;contain:paint}.zoom-track.is-zoomed{cursor:grab}.zoom-track .zoom-image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.zoom-track .zoom-image.is-wide{width:auto;height:auto}.zoom-track .zoom-image.is-tall{width:auto;height:auto}.zoom-track .zoom-image.is-square{width:auto;height:auto}.pay-sheet-head{display:grid;justify-items:center;gap:6px;padding:4px 0 2px;text-align:center}.pay-sheet-head h2{margin:0;font-size:22px}.pay-sheet-head p{margin:0;color:var(--muted);font-size:13px}.pay-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:2px 0 4px}.pay-steps span{display:grid;place-items:center;min-height:32px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:12px}.pay-choice-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pay-choice{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) 20px;align-items:center;gap:8px;min-height:54px;padding:0 10px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:left}.pay-choice svg{width:26px;height:26px;fill:currentColor;stroke:currentColor}.pay-choice.alipay{color:#1677ff}.pay-choice.wxpay{color:#16a34a}.pay-choice span{color:var(--ink);font-weight:700}.pay-choice i{width:18px;height:18px;border-radius:50%;border:2px solid currentColor}.pay-choice.active{border-color:currentColor}.pay-choice.alipay.active{background:#eef6ff}.pay-choice.wxpay.active{background:#eefbf3}.pay-choice.active i::after{content:"";display:block;width:8px;height:8px;margin:3px;border-radius:50%;background:currentColor}.action-row,.outside-actions,.admin-actions,.login-links,.admin-topline{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.outside-actions{margin-top:12px}.outside-actions.single{justify-content:center}.admin-topline{justify-content:flex-end;margin-bottom:10px}.admin-actions>[id^="refresh"]{order:90;margin-left:auto}.login-links{justify-content:space-between;color:var(--muted)}.link-button{border:none;background:transparent;color:var(--accent);cursor:pointer;padding:0}.mini-tool{margin-left:8px;font-size:12px;font-weight:700}.danger-text{color:var(--danger)}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.status-badge.green{color:#147342;background:#e8f7ee}.status-badge.blue{color:#2565b6;background:#eaf3ff}.status-badge.red{color:#b83a32;background:#fff0ee}.status-badge.gray{color:#5d6470;background:#f1f2f4}.status-action{border:0;padding:0;background:transparent;cursor:pointer}.icon-pill{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink)}.nav-close-btn{background:#2563eb;border-color:#2563eb;color:#fff}.auth-page #loginView{min-height:100vh;display:grid;align-content:center;gap:18px;padding-block:28px}.auth-page{background:radial-gradient(circle at 12% 8%,rgba(31,107,82,.075) 0 138px,transparent 139px),radial-gradient(circle at 92% 86%,rgba(185,109,72,.06) 0 150px,transparent 151px),#fff}.auth-home-link,.utility-back{display:inline-flex;align-items:center;gap:7px;width:max-content;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-weight:800;box-shadow:0 8px 20px rgba(32,32,32,.055)}.auth-title,.utility-head{display:grid;gap:8px}.auth-title h1,.utility-head h1{margin:0;font-size:26px}.auth-title p,.utility-head p{margin:0;color:var(--muted);line-height:1.6}.auth-page #loginView .hero-panel,.utility-page .hero-panel{border-radius:22px;border-color:rgba(32,32,32,.08);box-shadow:0 12px 34px rgba(32,32,32,.07)}.utility-head{margin-bottom:14px;padding:4px 0 2px}.utility-page .segment{justify-content:flex-start;gap:8px;padding:0;border-radius:999px;background:transparent}.utility-page .segment .pill{border-color:transparent;background:transparent}.utility-page .segment .pill.active{background:var(--ink);border-color:var(--ink);color:#fff}.icon-pill svg,.notice-nav-btn svg{width:20px;height:20px;flex:0 0 auto}.notice-nav-btn{gap:8px}.narrow-page{max-width:720px}.notice-modal{width:min(520px,100%)}.result-wrap{margin-top:14px}.delivery-pre,.detail-pre{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;margin:8px 0 0;padding:10px;border-radius:var(--radius);background:var(--soft);color:var(--ink);font-family:inherit}.compact-select{width:min(260px,100%)}.child-row td{background:#fbf8f1}.preview-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.preview-img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.thumb-row{display:flex;gap:8px;margin-top:8px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}.thumb-row::-webkit-scrollbar{display:none}.thumb-row img{flex:0 0 64px;width:64px;height:64px;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;scroll-snap-align:start}.result-box,.notice{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:12px;line-height:1.7;overflow-wrap:anywhere}.utility-page .result-box,.utility-page .quick-redeem{border-radius:24px}.detail-list{display:grid;gap:8px}.detail-row{display:grid;grid-template-columns:128px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow-x:visible;white-space:normal;font-size:13px;text-align:left}.detail-row>span:first-child{color:var(--muted)}.detail-row strong{font-weight:700;overflow-wrap:anywhere;text-align:left;justify-self:start}.detail-row>:not(span){justify-self:start;text-align:left}.detail-row .status-badge{width:auto;min-width:0}.delivery-section-list{display:grid;gap:8px;min-width:0}.delivery-section{min-width:0}.delivery-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.delivery-section-head b{font-size:13px}.review-switch{align-items:flex-start;gap:8px}.review-switch span{display:block;flex:1 1 100%;margin-left:24px;color:var(--muted);font-size:12px;line-height:1.5}.category-toggle{gap:4px}.detail-copy{cursor:pointer;color:var(--accent);text-decoration:underline}.code-copy{border:0;background:transparent;color:#0f766e;cursor:pointer;font-weight:800;text-decoration:underline;text-underline-offset:3px}.withdrawal-action{border-color:#16a34a;background:#dcfce7;color:#166534}.withdrawal-action.pending{border-color:#2563eb;background:#dbeafe;color:#1d4ed8}.sidebar{background:#f8fafc}.side-nav .btn.secondary,.side-nav summary.btn.secondary{border-color:#d7dde6;background:#fff;color:#111827}.side-nav .btn.secondary:hover,.side-nav summary.btn.secondary:hover{border-color:#111827;background:#f1f5f9}.notice{background:#f3efe8;color:var(--muted)}.order-query-item{padding:12px 0;border-bottom:1px solid var(--line)}.query-section-title{display:block;margin:0 0 8px;color:var(--ink);font-size:15px;font-weight:800}.order-query-item:last-child{border-bottom:none}.empty-cell{text-align:center;color:var(--muted);padding:22px}.delivery-redeem-fields{display:grid;gap:10px}.detail-field-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.detail-field-copy{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);min-height:30px;padding:0 9px;cursor:pointer;white-space:nowrap}.full{grid-column:1 / -1}.hidden{display:none !important}.toast{position:fixed !important;left:50%;top:max(12px,env(safe-area-inset-top));z-index:9999;transform:translateX(-50%);max-width:min(420px,calc(100% - 28px));background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:11px 15px;box-shadow:0 14px 42px rgba(17,24,39,.18);font-size:14px;font-weight:700;line-height:1.45;text-align:center;pointer-events:none;animation:toastDrop .22s ease both}.toast[data-type="success"]{background:var(--accent)}.toast[data-type="error"]{background:var(--danger)}@keyframes toastDrop{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}@media (max-width:760px){.home-page,.tool-page{background-attachment:scroll}.modal{z-index:4000;padding:14px 12px calc(96px + env(safe-area-inset-bottom));align-items:flex-start}.modal-card{max-height:calc(100vh - 122px);max-height:calc(100dvh - 122px)}.sheet-modal{align-items:flex-end;padding:12vh 0 0}.sheet-modal .modal-card{max-height:min(78vh,680px);max-height:min(78dvh,680px)}.modal-body{min-height:0;overscroll-behavior:contain;touch-action:pan-y}#zoomModal,#imagePreviewModal{align-items:center;padding:16px}#zoomModal .modal-card,#imagePreviewModal .modal-card{max-height:none}.zoom-track{width:100%;height:min(74vh,660px);height:min(74dvh,660px);border-radius:18px}.zoom-image{border-radius:16px}.bulk-edit-grid{grid-template-columns:1fr}.inline-toggle-field .inline-toggle-control{gap:6px}#detailModal .modal-card,#withdrawalModal .modal-card,#codeSearchModal .modal-card{width:min(560px,calc(100% - 8px))}#detailModal .outside-actions,#withdrawalModal .action-row{position:sticky;bottom:-16px;z-index:3;flex-wrap:wrap;overflow:visible;margin:12px -2px -16px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,#fff 72%,rgba(255,255,255,.88))}.topbar-inner{flex-wrap:wrap;padding:8px 0}.nav{width:100%;overflow-x:auto}.topbar .nav{display:none}.sort-row,.category-row{justify-content:flex-start}.hero-grid,.toolbar,.preview-layout,.admin-layout,.form-grid{grid-template-columns:1fr}.hero{padding-top:22px}.hero-copy{min-height:auto}.products-grid{gap:10px}.product-body{padding:8px}.product-title{font-size:13px;min-height:24px}.card-bottom-line{text-align:center;gap:5px;font-size:11px}.product-preview-card{width:min(360px,calc(100% - 64px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px)}.product-preview-card .modal-body{padding:14px;flex:0 1 auto}.product-preview-card .modal-foot{padding:10px 14px 14px;position:static;bottom:auto;margin-top:0}.preview-image-box{width:min(310px,100%)}.preview-img{object-fit:cover}.thumb-row img{flex-basis:46px;width:46px;height:46px}.preview-single h2{font-size:18px}.modal-meta,.modal-desc{font-size:13px}.modal-price{font-size:19px}.preview-info-line{grid-template-columns:minmax(0,1fr) auto;font-size:12px}.action-row,.outside-actions,.table-pager{flex-wrap:nowrap;align-items:center;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.action-row .btn,.outside-actions .btn{flex:0 0 auto;width:auto}}.utility-head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.tutorial-shell{align-content:start;padding-top:28px}.tutorial-hero{padding-block:20px}.tutorial-note p{white-space:pre-wrap}.tutorial-actions{gap:10px}.tutorial-action{display:grid;justify-items:center;gap:4px;min-height:58px;padding:12px 16px;border-radius:18px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-align:center}.tutorial-action small{color:rgba(255,255,255,.72)}.update-popup-modal{z-index:8200;align-items:flex-start;padding-top:14vh}.update-popup-card{width:min(420px,calc(100% - 44px));border-radius:24px}.update-popup-content{white-space:pre-wrap;line-height:1.8;color:var(--ink)}.update-popup-card .modal-foot{justify-content:center}.utility-head-actions{justify-content:space-between;width:100%}.utility-head-actions .tutorial-link{margin-left:auto;background:var(--ink);border-color:var(--ink);color:#fff}.tutorial-action strong,.tutorial-action small{display:block;width:100%;text-align:center}/* tutorial-layout-202607120530 */.utility-head-actions{display:grid;grid-template-columns:auto auto;align-items:center;gap:8px;justify-content:space-between;width:100%}.utility-head-actions .tutorial-link{justify-self:end;margin-left:0;background:var(--ink);border-color:var(--ink);color:#fff}.tutorial-shell{align-content:center;padding-top:18px;padding-bottom:12vh}.tutorial-actions{gap:10px}.tutorial-action-wrap{display:grid;gap:7px}.tutorial-action{display:grid;align-items:center;justify-items:center;min-height:50px;padding:12px 16px;text-align:center}.tutorial-action strong{display:block;width:100%;text-align:center}.tutorial-action-note{padding:0 6px 4px;color:var(--muted);font-size:13px;line-height:1.6;text-align:center}

/* update-popup-centered-20260712 */
.update-popup-modal.update-popup-centered{z-index:8200;align-items:center;padding:18px}
.update-popup-centered .update-popup-shell{display:grid;justify-items:center;gap:14px;width:min(420px,calc(100% - 44px))}
.update-popup-centered .update-popup-card{width:100%;border-radius:26px}
.update-popup-centered .update-popup-content{white-space:pre-wrap;line-height:1.8;color:var(--ink);text-align:center}
.update-popup-centered .update-popup-close{min-width:128px;border-radius:999px}
.update-popup-centered .update-popup-close:disabled{opacity:.72;cursor:not-allowed;transform:none}
/* fixed-home-background-pattern-20260715 */
html{background:#fff}.home-page,.tool-page{background:transparent!important;background-attachment:scroll!important;isolation:isolate}.fixed-bg-pattern{position:fixed;left:0;top:0;width:100vw;height:100vh;height:100dvh;z-index:-1;pointer-events:none;background:radial-gradient(circle at -42px 88%,rgba(31,107,82,.08) 0 148px,transparent 149px),radial-gradient(circle at calc(100% + 58px) 6%,rgba(185,109,72,.07) 0 154px,transparent 155px),radial-gradient(circle at 92% 62%,rgba(32,32,32,.035) 0 74px,transparent 75px);transform:translate3d(0,0,0);backface-visibility:hidden;contain:paint}
/* product-aos-like-reveal-20260716 */
.product-card.product-enter{transform:translate3d(0,100px,0);opacity:0;filter:none;transition:opacity .6s cubic-bezier(.25,.46,.45,.94),transform .6s cubic-bezier(.25,.46,.45,.94),box-shadow .24s ease,border-color .24s ease;transition-delay:var(--card-delay,0ms)}.product-card.product-enter.product-visible{transform:translate3d(0,0,0);opacity:1;filter:none}
.product-card{will-change:auto!important}.product-media img{opacity:1;transition:transform .35s ease}.product-media img.is-loaded{opacity:1}
.home-author-footer{display:grid;place-items:center;margin-top:22px;padding:4px 0 calc(76px + env(safe-area-inset-bottom));color:var(--muted);font-size:13px}.home-author-footer a{display:inline-flex;gap:2px;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.76);border:1px solid rgba(32,32,32,.06)}.home-author-footer strong{color:var(--ink)}.thanks-shell{align-content:start;padding-top:28px}.thanks-hero{padding-block:24px}.thanks-list{display:grid;gap:10px;margin-top:18px}.thanks-item{display:grid;place-items:center;min-height:48px;padding:12px 16px;border-radius:16px;background:var(--ink);color:#fff;text-align:center;animation:toolUp .34s ease both;animation-delay:calc(var(--thanks-index,0) * 38ms)}.thanks-item strong{font-size:15px;line-height:1.5;word-break:break-word}

body.subsite-theme-enabled .btn:not(.secondary):not(.warn),
body.subsite-theme-enabled .quick-float-btn,
body.subsite-theme-enabled .tool-item,
body.subsite-theme-enabled .tutorial-action,
body.subsite-theme-enabled .thanks-item,
body.subsite-theme-enabled.utility-page .segment .pill.active,
body.subsite-theme-enabled.utility-page .utility-head-actions .tutorial-link,
body.subsite-theme-enabled .category-row .pill.active,
body.subsite-theme-enabled .sort-row .pill.active {
  background: var(--subsite-button-color, var(--ink)) !important;
  border-color: var(--subsite-button-color, var(--ink)) !important;
  color: var(--subsite-text-color, #fff) !important;
}

body.subsite-theme-enabled #redeemThisProduct {
  background: var(--subsite-button-color, var(--ink)) !important;
  border-color: var(--subsite-button-color, var(--ink)) !important;
  color: var(--subsite-text-color, #fff) !important;
}

body.subsite-theme-enabled .tool-icon,
body.subsite-theme-enabled .tutorial-action small {
  color: var(--subsite-text-color, #fff) !important;
}

body.subsite-theme-enabled .tool-item small,
body.subsite-theme-enabled .tutorial-action-note {
  color: color-mix(in srgb, var(--subsite-text-color, #fff) 72%, transparent);
}

/* incentive-page-20260722 */
.incentive-page{--incentive-green:#22b873;--incentive-deep:#12372a;--incentive-pink:#ff77b8;--incentive-yellow:#ffe16b;background:#23bd77!important;color:#10261e}
.incentive-page .fixed-bg-pattern{background:linear-gradient(135deg,rgba(255,255,255,.12) 0 1px,transparent 1px 22px),#27bd78}
.incentive-shell{width:min(1080px,calc(100% - 28px));margin:0 auto;padding:18px 0 36px}
.incentive-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.incentive-badge{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;background:#10261e;color:#fff;font-size:13px;font-weight:900;box-shadow:0 12px 24px rgba(16,38,30,.18)}
.incentive-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);gap:22px;align-items:center;padding:22px;border-radius:26px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.7);box-shadow:0 22px 58px rgba(10,64,41,.18)}
.incentive-copy{display:grid;align-content:center;gap:14px;padding:8px 6px}
.incentive-kicker{width:max-content;max-width:100%;padding:7px 12px;border-radius:999px;background:#e8fff4;color:#0c7d4a;font-size:13px;font-weight:900}
.incentive-copy h1{font-size:clamp(32px,5vw,58px);line-height:1.06;color:#07150f}
.incentive-copy p{margin:0;max-width:620px;color:#466156;font-size:16px;line-height:1.85}
.incentive-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.incentive-poster{position:relative;display:grid;margin:0;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 18px 44px rgba(9,77,49,.18)}
.incentive-poster::before{content:"参考样式";position:absolute;left:14px;top:14px;z-index:1;display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#12372a;font-size:12px;font-weight:900}
.incentive-poster img{display:block;width:100%;aspect-ratio:1 / 1.08;object-fit:cover;object-position:center center}
.incentive-note-caption{display:grid;gap:9px;padding:15px 16px 17px;background:#fff;color:#202020;border-top:1px solid rgba(32,32,32,.06)}
.incentive-note-caption strong{font-size:20px;line-height:1.32;font-weight:900}
.incentive-note-caption p{margin:0;color:#3f3f46;font-size:15px;line-height:1.62;font-weight:800}
.incentive-note-caption span{color:#174f8f;white-space:nowrap}
.incentive-rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.incentive-rule-card{position:relative;min-height:112px;padding:16px;border-radius:22px;background:#fff;color:#10261e;border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 32px rgba(10,64,41,.14);overflow:hidden}
.incentive-rule-card::after{content:"";position:absolute;right:-18px;bottom:-20px;width:76px;height:76px;border-radius:24px;background:#e8fff4;transform:rotate(12deg)}
.incentive-rule-card strong,.incentive-rule-card span{position:relative;z-index:1;display:block}
.incentive-rule-card strong{font-size:26px;line-height:1.1}
.incentive-rule-card span{margin-top:12px;color:#61766d;font-size:14px;font-weight:800}
.incentive-rule-card.hot{background:#10261e;color:#fff}
.incentive-rule-card.hot span{color:#bcf9dc}
.incentive-rule-card.hot::after{background:rgba(255,119,184,.32)}
.incentive-rule-card.cap{background:#fff8df}
.incentive-rule-card.cap::after{background:#ffe16b}
.incentive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.incentive-panel{display:grid;gap:10px;padding:18px;border-radius:22px;background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 34px rgba(10,64,41,.12)}
.incentive-panel.accent{background:#fff1f8}
.incentive-panel.note{background:#fff9e6}
.incentive-panel.statement{grid-column:1/-1;background:#f4fffa;border-color:rgba(39,189,120,.32)}
.incentive-panel.statement .incentive-panel-head span{background:#27bd78}
.incentive-panel.statement p{font-weight:800;color:#23483a}
.incentive-panel-head{display:flex;align-items:center;gap:10px}
.incentive-panel-head span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:12px;background:#10261e;color:#fff;font-weight:900}
.incentive-panel-head h2{margin:0;font-size:20px}
.incentive-panel p{margin:0;color:#4e675d;line-height:1.8}
.incentive-tags{display:flex;flex-wrap:wrap;gap:8px}
.incentive-tags button{min-height:38px;padding:0 12px;border:1px solid rgba(255,119,184,.38);border-radius:999px;background:#fff;color:#d43780;font-weight:900;cursor:pointer}
.incentive-official{font-size:20px!important;font-weight:900;color:#10261e!important}
.incentive-advantages{margin-top:16px;padding:20px;border-radius:26px;background:#10261e;color:#fff;box-shadow:0 18px 46px rgba(16,38,30,.24)}
.incentive-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.incentive-section-title span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:#27bd78;color:#fff;font-weight:900}
.incentive-section-title h2{margin:0;font-size:24px;color:#fff}
.incentive-advantage-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.incentive-advantage-list div{display:grid;gap:7px;min-height:116px;padding:14px;border-radius:18px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.13)}
.incentive-advantage-list b{font-size:15px;line-height:1.4}
.incentive-advantage-list small{color:rgba(255,255,255,.72);line-height:1.55}
.incentive-entry{background:#27bd78!important;border-color:#27bd78!important;color:#fff!important}
.incentive-float{position:fixed;left:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:46;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 14px 0 10px;border:1px solid rgba(32,32,32,.08);border-radius:999px;background:#10261e;color:#fff;box-shadow:0 14px 34px rgba(16,38,30,.24);cursor:pointer;transform:translate3d(0,0,0);transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}
.incentive-float:hover{transform:translate3d(0,-3px,0);box-shadow:0 18px 38px rgba(16,38,30,.28)}
.incentive-float svg{width:22px;height:22px;fill:currentColor;flex:0 0 auto}
.incentive-float span{font-size:14px;font-weight:900;line-height:1}
body.subsite-theme-enabled .incentive-float{background:var(--subsite-button-color,#10261e);border-color:var(--subsite-button-color,#10261e);color:var(--subsite-text-color,#fff)}
.preview-top-rocket{position:fixed;left:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:46;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(32,32,32,.08);border-radius:999px;background:#111827;color:#fff;box-shadow:0 14px 34px rgba(17,24,39,.24);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,26px,0) scale(.94);transition:opacity .2s ease,visibility .2s ease,transform .24s cubic-bezier(.2,.86,.24,1)}
.preview-top-rocket.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0) scale(1)}
.preview-top-rocket svg{width:25px;height:25px;fill:currentColor}
.preview-top-rocket:active{transform:translate3d(0,-4px,0) scale(.96)}
body.subsite-theme-enabled .preview-top-rocket{background:var(--subsite-button-color,#111827);border-color:var(--subsite-button-color,#111827);color:var(--subsite-text-color,#fff)}
@media (max-width:820px){.incentive-shell{width:min(560px,calc(100% - 22px));padding-top:12px}.incentive-topbar{align-items:flex-start}.incentive-hero{grid-template-columns:1fr;padding:16px;border-radius:24px}.incentive-poster{order:-1;border-radius:22px}.incentive-copy{padding:0}.incentive-hero-actions .btn{flex:1 1 140px}.incentive-rules{grid-template-columns:repeat(2,minmax(0,1fr))}.incentive-grid{grid-template-columns:1fr}.incentive-advantage-list{grid-template-columns:1fr}.incentive-section-title{display:grid}.incentive-section-title h2{font-size:22px}.preview-top-rocket{left:12px;bottom:calc(14px + env(safe-area-inset-bottom));width:48px;height:48px}}
@media (max-width:420px){.incentive-rules{grid-template-columns:1fr}.incentive-copy h1{font-size:32px}.incentive-rule-card{min-height:92px}.incentive-poster img{aspect-ratio:3 / 4}}
@media (max-width:820px){.incentive-float{left:12px;bottom:calc(18px + env(safe-area-inset-bottom));min-height:46px;padding-right:12px}}

/* preview-scroll-flicker-fix-20260722 */
.product-card{content-visibility:visible!important;contain-intrinsic-size:auto!important;will-change:auto!important}
.product-card.product-visible,.product-card.product-enter.product-visible{opacity:1!important}
.product-media img.is-loaded{opacity:1!important}
body.home-page .product-media img:not(.is-loaded){opacity:0!important}
body.home-page .product-media img.is-loaded{opacity:1!important}
 .review-resubmit-box{display:grid;gap:10px;padding:12px 14px 14px;margin:0 0 14px;border:1px solid rgba(31,107,82,.18);border-radius:18px;background:#f8fcfa;box-shadow:0 10px 24px rgba(32,32,32,.06)}.review-resubmit-head{display:grid;gap:4px}.review-resubmit-head strong{font-size:16px}.review-resubmit-head span,.review-resubmit-reason,.review-resubmit-empty,.review-resubmit-done{color:var(--muted);line-height:1.6}.review-resubmit-reason{padding:10px 12px;border-radius:14px;background:#fff6f4;color:#8f4a3b}.review-resubmit-form{display:grid;gap:10px}.review-resubmit-fields{display:grid;gap:10px}.review-resubmit-submit{width:max-content;justify-self:start;padding-inline:16px}.review-resubmit-done{padding:10px 12px;border-radius:14px;background:#eef7ef;color:#1f6b52;font-weight:700}

/* mobile storefront density */
@media (max-width:760px){
  .product-home{width:min(720px,calc(100% - 30px));padding-top:8px}.home-title{gap:5px;padding:11px 0 9px}.home-title h1{font-size:26px}.home-title p{font-size:13px}
  .toolbar{gap:9px;margin:11px 0}.search-action .input,.search-action .btn{min-height:44px}.search-action .input{font-size:14px}.search-action .btn{padding-inline:16px;font-size:13px}
  .category-row{gap:6px}.category-row+.category-row,.toolbar+.category-row{margin-top:9px}.category-row .pill,.sort-row .pill{min-height:30px;padding-inline:11px;font-size:11px}.sort-row{padding:3px}.sort-row .pill svg{width:13px;height:13px}
  .products-grid{gap:8px;margin-top:14px;padding-bottom:18px}.product-card{border-radius:13px}.product-id{right:6px;bottom:6px;min-height:21px;padding-inline:7px;font-size:10px}.product-body{gap:4px;padding:7px}.product-title{min-height:22px;font-size:12px;line-height:1.25}.card-bottom-line{gap:3px;min-height:34px;font-size:10px}
  .quick-float-btn{min-height:38px;padding-inline:11px;font-size:12px}.quick-float-btn svg{width:16px;height:16px}.home-more-panel{gap:7px}.home-more-menu{right:12px}
  .home-entry-page .tool-shell{width:min(430px,calc(100% - 34px));padding:38px 0 78px}.entry-carousel{height:clamp(112px,33vw,178px);margin-bottom:11px}.tool-hero{gap:5px;padding:15px 0 16px}.tool-hero h1{font-size:24px}.tool-hero p{font-size:13px}.tool-list{gap:11px}.home-entry-page .tool-list{width:min(366px,calc(100% - 18px))}.tool-item{min-height:44px;padding-inline:15px;border-radius:13px;font-size:13px}.home-announcement{width:min(366px,calc(100% - 18px));margin-top:11px;padding:11px 13px;border-radius:13px;font-size:12px}
  .tool-shell{width:min(527px,calc(100% - 34px));padding:35px 0 29px}.tool-item strong{font-size:13px}.tutorial-action{min-height:44px;padding:10px 14px;border-radius:15px}.tutorial-action-note{font-size:11px}
  .download-shell{width:min(442px,calc(100% - 28px));gap:11px;padding:15px 0 24px}.download-hero{gap:7px;padding:18px 15px;border-radius:22px}.download-logo{width:73px;height:73px;border-radius:19px}.download-hero h1{font-size:24px}.download-card{gap:8px;padding:12px}.download-action{grid-template-columns:38px minmax(0,1fr);min-height:63px;padding:10px;border-radius:15px}.download-action-icon{width:38px;height:38px;border-radius:13px}.download-action strong{font-size:14px}.download-action small{font-size:11px}
  .input,.select{min-height:40px}.textarea{min-height:76px}.btn{min-height:38px;padding-inline:12px;font-size:13px}.quick-redeem{gap:10px}.quick-redeem h2{font-size:18px}.field{gap:6px}.field span{font-size:11px}
  .modal-card{border-radius:18px}.modal-head{padding:13px 14px}.modal-body{padding:14px}.modal-foot{padding:10px 14px 14px}
}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif}

/* shared public mobile storefront frame */
:root{--front-device-width:430px;--front-frame-outside:#f5f6f7}
html.front-frame-root{background:var(--front-frame-outside)}
body.front-frame-page{background:var(--front-frame-outside);min-width:0}
body.front-frame-page>.front-app-frame{position:relative;width:100%;max-width:none;min-height:100vh;min-height:100svh;margin:0;overflow-x:clip;background:var(--front-frame-outside);color:var(--ink);isolation:isolate}
.front-app-content{position:relative;z-index:1;min-height:100vh;min-height:100svh;width:100%;isolation:isolate}
.front-app-content>.front-page-layer{position:relative;z-index:1;width:min(var(--front-device-width),100%);min-height:100vh;min-height:100svh;margin-inline:auto}
.front-app-frame>.front-app-content>.fixed-bg-pattern{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:0;pointer-events:none}
body.front-frame-page .front-app-frame>.front-app-content>.front-page-layer>main{max-width:100%}
@media (min-width:700px){
  body.front-frame-page>.front-app-frame{width:100%;max-width:none;box-shadow:none}
  .front-app-frame .home-more-menu,.front-app-frame .quick-float,.front-app-frame .quick-float-link,.front-app-frame .incentive-float,.front-app-frame .notice-float{right:calc(50% - (var(--front-device-width) / 2) + 16px)}
  .front-app-frame .preview-top-rocket{left:calc(50% - (var(--front-device-width) / 2) + 12px);right:auto}
}

/* front-frame-mobile-layout: keep the same phone composition inside the desktop preview */
.front-app-frame,
.front-app-frame .front-app-content{min-width:0;max-width:100%;overflow-x:clip}
.front-app-frame .shell,
.front-app-frame .tool-shell,
.front-app-frame .download-shell,
.front-app-frame .narrow-page,
.front-app-frame .product-home,
.front-app-frame .buyer-shell,
.front-app-frame .user-page-shell,
.front-app-frame .product-detail-shell,
.front-app-frame .public-shop-shell,
.front-app-frame .incentive-shell{max-width:100%;width:calc(100% - 28px)}
.front-app-frame .hero-grid,
.front-app-frame .preview-layout,
.front-app-frame .form-grid,
.front-app-frame .buyer-profile-section,
.front-app-frame .buyer-content-grid,
.front-app-frame .incentive-hero,
.front-app-frame .incentive-grid{grid-template-columns:1fr}
.front-app-frame .incentive-rules{grid-template-columns:repeat(2,minmax(0,1fr))}
.front-app-frame .incentive-advantage-list{grid-template-columns:1fr}
.front-app-frame .products-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.front-app-frame .toolbar{grid-template-columns:1fr;gap:9px}
.front-app-frame .sort-row,
.front-app-frame .category-row{justify-content:flex-start}
.front-app-frame .buyer-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.front-app-frame .public-bottom-nav{width:min(326px,calc(100% - 40px));padding:5px;border-radius:21px}
.front-app-frame .public-bottom-nav a{min-height:50px;border-radius:16px;font-size:10px}
.front-app-frame .public-bottom-nav svg{width:19px;height:19px}
.front-app-frame.buyer-page,
.front-app-frame.user-subpage{background:var(--user-bg,#f6f6f7)!important;color:#202124}
.front-app-frame .fixed-bg-pattern{position:absolute;inset:0;min-height:100%;background-attachment:scroll}
.front-app-frame .modal-card{max-width:calc(100% - 20px)}
@media (max-width:420px){
  .front-app-frame .incentive-rules{grid-template-columns:1fr}
}

/* storefront-frame-finish: restrained phone shell with closed edges */
body.front-frame-page{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding:18px 0;
}
body.front-frame-page>.front-app-frame{
  min-height:calc(100vh - 36px);
  min-height:calc(100svh - 36px);
  border-radius:28px;
  overflow:clip;
  box-shadow:0 0 0 1px rgba(21,31,45,.08),0 16px 46px rgba(31,44,61,.13);
}
body.front-frame-page>.front-app-frame>.front-app-content{
  border-radius:inherit;
  overflow:clip;
}
@media (max-width:699px){
  body.front-frame-page{padding:0}
  body.front-frame-page>.front-app-frame{
    min-height:100vh;
    min-height:100svh;
    border-radius:20px;
    box-shadow:none;
  }
}

/* bottom-overlay-frame-fix-20260808 */
/* 固定导航属于视口层，不应被手机框架的纵向裁切截断。 */
body.front-frame-page>.front-app-frame,
body.front-frame-page>.front-app-frame>.front-app-content{
  overflow-x:clip;
  overflow-y:visible;
}
body.front-frame-page>.front-app-frame .public-bottom-nav,
body.front-frame-page>.front-app-frame .product-bottom-bar,
body.front-frame-page>.front-app-frame .home-more-menu,
body.front-frame-page>.front-app-frame .incentive-float,
body.front-frame-page>.front-app-frame .preview-top-rocket,
body.front-frame-page>.front-app-frame .notice-float{
  position:fixed;
  z-index:1200;
}
@media (max-width:699px){
  body.front-frame-page>.front-app-frame,
  body.front-frame-page>.front-app-frame>.front-app-content{
    overflow:visible;
  }
}
@media (min-width:700px){
  .front-app-frame .public-bottom-nav,
  .front-app-frame .product-bottom-bar,
  .front-app-frame .home-more-menu,
  .front-app-frame .quick-float,
  .front-app-frame .quick-float-link,
  .front-app-frame .incentive-float,
  .front-app-frame .preview-top-rocket,
  .front-app-frame .notice-float{
    bottom:calc(18px + env(safe-area-inset-bottom));
  }
}

/* bottom-capsule-final-20260808 */
/* 固定胶囊不能被手机框架裁掉；三类底部操作统一几何尺寸。 */
body.front-frame-page>.front-app-frame,
body.front-frame-page>.front-app-frame>.front-app-content{
  overflow:visible;
}
body.front-frame-page>.front-app-frame .public-bottom-nav,
body.front-frame-page>.front-app-frame .product-bottom-bar{
  position:fixed;
  left:50%;
  bottom:max(12px,calc(8px + env(safe-area-inset-bottom)));
  z-index:1200;
  box-sizing:border-box;
  width:min(calc(var(--front-device-width,100vw) - 20px),calc(100% - 20px));
  height:56px;
  min-height:56px;
  padding:5px;
  border-radius:999px;
  transform:translateX(-50%);
}
body.front-frame-page>.front-app-frame .public-bottom-nav{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:3px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 34px rgba(32,32,32,.16);
}
body.front-frame-page>.front-app-frame .public-bottom-nav a{
  display:grid;
  min-width:0;
  min-height:46px;
  height:46px;
  align-content:center;
  justify-items:center;
  gap:3px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  white-space:nowrap;
}
body.front-frame-page>.front-app-frame .public-bottom-nav svg{
  width:18px;
  height:18px;
}
body.front-frame-page>.front-app-frame .product-bottom-bar{
  display:grid;
  gap:3px;
}
body.front-frame-page>.front-app-frame .product-bottom-bar button{
  min-width:0;
  min-height:46px!important;
  height:46px;
  border-radius:999px;
  font-size:12px;
}
@media (max-width:699px){
  body.front-frame-page>.front-app-frame .public-bottom-nav,
  body.front-frame-page>.front-app-frame .product-bottom-bar{
    width:calc(100% - 20px);
    bottom:max(12px,calc(8px + env(safe-area-inset-bottom)));
  }
}

/* product-payment-assets-20260810 */
.pay-choice .payment-channel-icon,.buyer-pay-choice .payment-channel-icon{display:block;width:26px;height:26px;flex:0 0 auto;object-fit:contain}
/* Compact frontend notifications. */
.toast{display:flex!important;align-items:center;gap:9px;top:max(14px,env(safe-area-inset-top))!important;padding:10px 14px!important;border:1px solid rgba(30,35,41,.1)!important;border-radius:12px!important;background:rgba(255,255,255,.97)!important;color:#30343a!important;box-shadow:0 12px 32px rgba(24,29,35,.14)!important;font-size:13px!important;text-align:left!important;backdrop-filter:blur(14px)}
.toast::before{display:block;width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#8b929a;content:""}
.toast[data-type="success"]{color:#226b4b!important}.toast[data-type="success"]::before{background:#2eaa70}
.toast[data-type="error"]{color:#a33c48!important}.toast[data-type="error"]::before{background:#e05263}

/* b2-like public notifications: compact white card, centered above the content. */
.toast{top:max(76px,calc(env(safe-area-inset-top) + 92px))!important;display:flex!important;align-items:center;justify-content:flex-start;gap:9px;width:max-content;min-width:min(220px,calc(100vw - 32px));max-width:min(390px,calc(100vw - 32px));min-height:44px;padding:10px 14px!important;border:1px solid rgba(31,35,41,.1)!important;border-radius:10px!important;background:#fff!important;color:#30343a!important;box-shadow:0 8px 22px rgba(31,35,41,.14),0 2px 5px rgba(31,35,41,.06)!important;font-size:13px!important;font-weight:650!important;text-align:left!important;pointer-events:auto!important;backdrop-filter:blur(12px)}
.toast::before{display:none!important}
.toast-icon{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;color:#64707a}
.toast-icon svg{display:block;width:20px;height:20px;fill:currentColor}
.toast-text{min-width:0;overflow-wrap:anywhere}
.toast[data-type="success"]{color:#1b7a50!important;background:#f8fffb!important}
.toast[data-type="success"] .toast-icon{color:#24a46e}
.toast[data-type="error"]{color:#a43c4a!important;background:#fff9fa!important}
.toast[data-type="error"] .toast-icon{color:#e05263}
@keyframes b2ToastIn{from{opacity:0;transform:translate(-50%,-10px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.toast{animation:b2ToastIn .22s cubic-bezier(.2,.8,.2,1) both!important}

/* Lightweight public particles inspired by the referenced night effect. */
.front-particle-canvas{position:fixed!important;left:50%;top:0;width:min(var(--front-device-width,100vw),100vw);height:100vh;height:100dvh;z-index:0!important;display:block;transform:translateX(-50%);pointer-events:none;opacity:.58}
@media (max-width:699px){.front-particle-canvas{left:0;width:100vw;transform:none}}

/* Random theme entry: approximately 10% from the top and 4% from the right. */
.random-theme-float{position:fixed;top:10vh;right:4%;z-index:52;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid rgba(31,35,41,.1);border-radius:999px;background:rgba(255,255,255,.94);color:#303840;box-shadow:0 8px 20px rgba(31,35,41,.12);font-size:12px;font-weight:750;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}
.random-theme-float:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(31,35,41,.16)}
.random-theme-float:active{transform:translateY(0)}
.random-theme-float svg{width:17px;height:17px;fill:currentColor}
.random-theme-float[disabled]{opacity:.62;cursor:wait}
@media (min-width:700px){.front-app-frame .random-theme-float{right:calc(50% - (var(--front-device-width) / 2) + 10px)}}
@media (prefers-reduced-motion:reduce){.random-theme-float{transition:none}.toast{animation:none!important}}

/* Merchant redeem site: keep product and order prices private, but leave the cart usable. */
body.merchant-redeem-context:not(.merchant-redeem-cart-context) #modalPrice,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) #productPrice,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .product-offer-panel,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .public-shop-product-price,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .guess-product-price,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-order-price,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-order-paid-summary,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-order-detail-paid,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-order-sheet-product-price,
body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-after-sale-payment-row {
  display: none !important;
}

body.merchant-redeem-context:not(.merchant-redeem-cart-context) .user-product-meta > strong {
  display: none !important;
}

/* Match the supplied B2/Qmsg visual instead of the generic toast card. */
.toast {
  box-sizing: border-box !important;
  position: fixed !important;
  top: 136px !important;
  left: 0 !important;
  z-index: 9999999 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 8px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #000 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  text-align: center !important;
  pointer-events: none !important;
  backdrop-filter: none !important;
  animation: qmsgMoveIn .3s ease both !important;
}
.toast-content {
  position: relative;
  display: inline-flex;
  align-items: center;
  max-width: 80%;
  min-width: 80px;
  padding: 10px 16px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
  color: #333;
  text-align: left;
  line-height: 1.35;
  pointer-events: auto;
}
.toast-icon {
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  margin-right: 8px;
  flex: 0 0 16px;
  color: #1890ff;
}
.toast-icon svg { display: block; width: 16px; height: 16px; fill: currentColor; }
.toast-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toast[data-type="success"] .toast-icon { color: #52c41a; }
.toast[data-type="error"] .toast-icon { color: #ff4d4f; }
.toast[data-type="warning"] .toast-icon { color: #faad14; }
@keyframes qmsgMoveIn {
  from { opacity: 0; transform: translateY(-100%); }
  to { opacity: 1; transform: translateY(0); }
}

/* Match the supplied 1320 edge-mounted vertical random entry. */
.random-theme-float {
  position: fixed !important;
  top: 10% !important;
  left: 0 !important;
  right: auto !important;
  z-index: 9998 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 42px;
  min-height: 112px;
  padding: 12px 7px !important;
  border: 1px solid #ddd !important;
  border-left: 0 !important;
  border-radius: 0 12px 12px 0 !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: 1px 2px 6px rgba(0, 0, 0, .14) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 1px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  cursor: pointer;
  transform: none !important;
  transition: width .25s ease, box-shadow .25s ease !important;
}
.random-theme-float:hover { width: 46px; box-shadow: 1px 3px 10px rgba(0, 0, 0, .18) !important; }
.random-theme-float:active { width: 42px; }
.random-theme-float[disabled] { opacity: .65; cursor: wait; }
@media (prefers-reduced-motion: reduce) {
  .random-theme-float, .toast { transition: none !important; animation: none !important; }
}

/* The reference particle effect is emitted from the caret, not painted as a background. */
.front-particle-canvas {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 2147483000 !important;
  pointer-events: none !important;
  opacity: 1 !important;
  display: block !important;
  visibility: visible !important;
  will-change: transform;
}

/* Compact right-edge placement from the supplied screenshot. */
.random-theme-float {
  top: 34% !important;
  right: 0 !important;
  left: auto !important;
  width: 32px !important;
  min-height: 88px !important;
  padding: 8px 4px !important;
  border: 1px solid #ddd !important;
  border-right: 0 !important;
  border-left: 1px solid #ddd !important;
  border-radius: 8px 0 0 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  box-shadow: -1px 2px 6px rgba(0, 0, 0, .12) !important;
}
.random-theme-float:hover,
.random-theme-float:active {
  width: 34px !important;
  box-shadow: -1px 3px 9px rgba(0, 0, 0, .16) !important;
}

/* Keep only the small Qmsg card; the full-width notification layer stays transparent. */
body.front-frame-page .toast,
body.front-frame-page .toast:hover {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
body.front-frame-page .toast::before { display: none !important; }
body.front-frame-page .toast-content {
  background: #fff !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .15) !important;
}

/* Keep the edge action close to its vertical label. */
.random-theme-float {
  min-height: 0 !important;
  height: auto !important;
  padding: 4px 3px !important;
}
.random-theme-float span {
  display: block;
  line-height: 1.2 !important;
}
.random-theme-float::before {
  content: "";
  position: absolute;
  top: -4px;
  left: -4px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ff3b45;
  box-shadow: 0 0 0 0 rgba(255, 59, 69, .5);
  pointer-events: none;
  animation: randomThemeBreath 1.8s ease-out infinite;
}
@keyframes randomThemeBreath {
  0% { box-shadow: 0 0 0 0 rgba(255, 59, 69, .52); }
  70% { box-shadow: 0 0 0 7px rgba(255, 59, 69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 59, 69, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .random-theme-float::before { animation: none; }
}
.random-theme-float {
  padding-left: 2px !important;
}

/* Particle effects are disabled for the storefront. */
.front-particle-canvas {
  display: none !important;
}

/* 前台首屏直接使用最终背景，避免共享脚本加载前出现旧背景或窄框。 */
html,
body:is(.home-page, .tool-page, .utility-page, .user-subpage, .buyer-page, .product-detail-page, .public-shop-page),
body.front-frame-page > .front-app-frame,
body.front-frame-page > .front-app-frame > .front-app-content {
  background: #f5f6f7 !important;
  background-image: none !important;
}

body.front-frame-page {
  display: block;
  padding: 0 !important;
}

body.front-frame-page > .front-app-frame {
  min-height: 100vh;
  min-height: 100svh;
  border-radius: 0;
  box-shadow: none;
}

body:is(.home-page, .tool-page, .utility-page, .user-subpage, .buyer-page, .product-detail-page, .public-shop-page) > .fixed-bg-pattern,
body.front-frame-page > .front-app-frame .fixed-bg-pattern {
  display: none !important;
  background: none !important;
  background-image: none !important;
}
