.pp-rewards-summary { --rb-ink:var(--fc-ink,var(--pp-ink,#edf5fa));--rb-muted:var(--fc-muted,var(--pp-muted,#a5b7c3));--rb-line:var(--fc-line,var(--pp-line,rgba(144,198,211,.22)));color:var(--rb-ink);font-family:"Geist",sans-serif;padding:12px 0; }
.pp-rs-title { display:flex;justify-content:space-between;gap:10px;font-size:12px;line-height:1.4; }
.pp-rs-title strong { font-weight:600; }
.pp-rs-title > span { color:var(--rb-muted);font-size:11px; }
.pp-rs-track { position:relative;height:5px;margin-top:12px;border-radius:4px;background:var(--rb-line);overflow:hidden; }
.pp-rs-track > span { display:block;height:100%;background:#36aabd;border-radius:4px;transition:width .25s ease; }
.pp-rs-ticks { position:relative;height:19px;margin:4px 0 0;font-size:9px;color:var(--rb-muted); }
.pp-rs-ticks > span { position:absolute;transform:translateX(-50%); }
.pp-rs-ticks > span:last-child { transform:translateX(-100%); }
.pp-rs-ticks .is-earned { color:var(--rb-ink);font-weight:650; }
.pp-rewards-summary p { margin:4px 0;font-size:12px;line-height:1.4;color:var(--rb-muted); }
.pp-rewards-open { display:inline-flex;align-items:center;min-height:36px;padding:4px 0;border:0;background:transparent;color:var(--rb-ink);text-decoration:underline;text-underline-offset:3px;font:600 12px "Geist",sans-serif;cursor:pointer; }
#pp-floating-cart .pp-rewards-summary { flex:none;padding:8px 24px 6px;border-top:1px solid var(--fc-line); }
#pp-order-toast .pp-rewards-summary { --rb-ink:var(--of-text);--rb-muted:var(--of-muted);--rb-line:var(--of-line);border-top:1px solid var(--of-line);padding-bottom:6px; }
body.pp-benefits-open { overflow:hidden; }
#pp-rewards-dialog { --rp-bg:#0b1925;--rp-ink:#edf5fa;--rp-muted:#adc0cb;--rp-line:rgba(144,198,211,.22);position:fixed;margin:auto;width:520px;max-width:94vw;max-height:88vh;max-height:88dvh;padding:0;border:1px solid var(--rp-line);border-radius:18px;background:var(--rp-bg);color:var(--rp-ink);box-shadow:0 20px 60px rgba(0,0,0,.3);font-family:"Geist",sans-serif; }
body.pp-light #pp-rewards-dialog { --rp-bg:#f8fdfe;--rp-ink:#142c37;--rp-muted:#536b78;--rp-line:#d0e2e8; }
#pp-rewards-dialog[open] { display:flex;flex-direction:column; }
#pp-rewards-dialog::backdrop { background:rgba(2,10,18,.6); }
#pp-rewards-dialog > header { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--rp-line);flex:none; }
#pp-rewards-dialog h2 { margin:0;font-size:20px;color:var(--rp-ink); }
.pp-rewards-close { width:44px;height:44px;border:1px solid var(--rp-line);border-radius:10px;background:transparent;color:var(--rp-ink);font-size:24px;cursor:pointer; }
.pp-rewards-body { overflow:auto;overscroll-behavior:contain;min-height:0;padding:0 20px; }
.pp-rp-intro,.pp-rp-note { font-size:12px;color:var(--rp-muted);line-height:1.5;margin:16px 0; }
.pp-rp-tier { border-top:1px solid var(--rp-line);padding:16px 0; }
.pp-rp-tier h3 { display:flex;justify-content:space-between;gap:12px;font-size:14px;margin:0 0 10px;color:var(--rp-ink); }
.pp-rp-tier h3 small { color:var(--rp-muted);font-size:12px; }
.pp-rp-tier p,.pp-rp-tier label { font-size:12px;color:var(--rp-muted);line-height:1.5; }
.pp-rp-tier label { display:block;margin:0 0 6px; }
.pp-rp-tier select { display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:12px 8px;background:var(--rp-bg);border:1px solid var(--rp-line);border-radius:8px;color:var(--rp-ink);font-size:14px; }
.pp-reward-save { width:100%;margin-top:10px;min-height:44px;border:1px solid #36aabd;border-radius:8px;background:transparent;color:var(--rp-ink);font-size:13px;cursor:pointer; }
.pp-reward-save:disabled { opacity:.5;cursor:wait; }
.pp-rewards-status { flex:none;margin:0;padding:10px 20px;font-size:12px;color:var(--rp-muted); }
.pp-rewards-status:empty { display:none; }
#pp-rewards-dialog :focus-visible,.pp-rewards-open:focus-visible { outline:2px solid #36aabd;outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { .pp-rs-track > span { transition:none; } }
#pp-floating-cart li .pp-reward-line { grid-column:1 / span 2; }
#pp-rewards-dialog.pp-rewards-pointer .pp-rewards-close:focus { outline:none;box-shadow:none; }
/* Dots sit on the scale; lab symbols and labels sit below it. */
.pp-rs-track { margin:18px 18px 0 0;overflow:visible;height:5px; }
.pp-rs-track > span { transition:none; }
.pp-rs-ticks { height:78px;margin:0 18px 0 0; }
.pp-rs-ticks > .pp-rs-milestone,.pp-rs-ticks > .pp-rs-milestone:last-child { display:flex;flex-direction:column;align-items:center;width:48px;transform:translateX(-50%);color:var(--rb-muted);gap:3px;padding-top:13px; }
.pp-rs-milestone::before { content:"";position:absolute;top:-7px;left:calc(50% - 5px);width:10px;height:10px;box-sizing:border-box;border:2px solid var(--rb-muted);border-radius:50%;background:var(--of-bg,var(--fc-bg,var(--pp-panel,#0b1925))); }
.pp-rs-milestone::after { content:"";position:absolute;top:-12px;left:calc(50% - 10px);width:20px;height:20px;border:1px solid #3ebccc;border-radius:50%;opacity:0;pointer-events:none;box-sizing:border-box; }
.pp-rs-icon { display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--rb-muted); }
.pp-rs-milestone strong { font-size:10px;line-height:1.3;font-weight:600; }
.pp-rs-milestone small { font-size:9px;line-height:1.2;font-weight:400; }
.pp-rs-milestone.is-earned .pp-rs-icon { color:#8eeaf0; }
body.pp-light .pp-rs-milestone.is-earned .pp-rs-icon { color:#126e7c; }
.pp-rs-milestone.is-earned::before { background:#36aabd;border-color:#36aabd; }
.pp-rs-milestone.is-crossing::after { animation:pp-lab-signal .9s ease-out; }
.pp-rs-milestone.is-crossing::before { animation:pp-lab-charge .9s ease-out; }
@keyframes pp-lab-signal { 0%{transform:scale(.5);opacity:0} 15%{opacity:1} 100%{transform:scale(2);opacity:0} }
@keyframes pp-lab-charge { 0%,100%{box-shadow:0 0 0 rgba(54,184,199,0)} 28%{box-shadow:0 0 18px 5px rgba(54,184,199,.65)} }
@media(prefers-reduced-motion:reduce) { .pp-rs-milestone.is-crossing::before,.pp-rs-milestone.is-crossing::after { animation:none; } }

/* A quiet, separate progress strip below the cart, never above checkout. */
#pp-floating-cart { background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible;max-height:90dvh;gap:8px; }
#pp-floating-cart .pp-fc-shell { display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--fc-line);border-radius:20px;background:var(--fc-bg);box-shadow:0 16px 48px rgba(0,0,0,.24); }
#pp-floating-cart .pp-fc-continue { display:none; }
#pp-floating-cart .pp-fc-heading h2 { flex:1; }
#pp-floating-cart .pp-fc-rewards-access { margin-right:8px;min-height:44px;padding:0 8px;color:var(--fc-muted);font-size:12px;text-decoration:none; }
#pp-floating-cart .pp-fc-reward-dock { flex:none;min-height:0;background:var(--fc-bg);border:1px solid var(--fc-line);border-radius:12px; }
#pp-floating-cart .pp-fc-reward-dock:empty { display:none; }
#pp-floating-cart .pp-fc-reward-dock .pp-rewards-summary { padding:10px 16px 5px;border:0; }
#pp-floating-cart .pp-fc-reward-dock .pp-rewards-summary > p,
#pp-floating-cart .pp-fc-reward-dock .pp-rewards-open,
#pp-order-toast .pp-rewards-open { display:none; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-title strong { font-size:12px;font-weight:500; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-track { height:4px;margin-top:14px;margin-right:22px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-ticks { height:60px;margin-right:22px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-milestone { padding-top:9px;gap:2px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-icon { width:22px;height:22px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-icon svg { width:19px;height:19px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-milestone::before { width:8px;height:8px;left:calc(50% - 4px);top:-6px; }
:is(#pp-order-toast,#pp-floating-cart .pp-fc-reward-dock) .pp-rs-milestone::after { top:-12px; }
@keyframes pp-lab-signal { 0%{transform:scale(.4);opacity:0} 22%{opacity:.7} 100%{transform:scale(1.55);opacity:0} }
@keyframes pp-lab-charge { 0%,100%{box-shadow:0 0 0 rgba(54,184,199,0)} 35%{box-shadow:0 0 10px 2px rgba(54,184,199,.45)} }

/* Distinct earned-reward signal: expanding scan ring, charged node, icon lift. */
.pp-rs-milestone.is-crossing::after { border-width:2px;animation:pp-reward-ring 1.4s cubic-bezier(.16,1,.3,1); }
.pp-rs-milestone.is-crossing::before { animation:pp-reward-node 1.4s ease-out; }
.pp-rs-milestone.is-crossing .pp-rs-icon { animation:pp-reward-lift 1.4s cubic-bezier(.22,1,.36,1); }
.pp-rs-milestone.is-crossing strong { animation:pp-reward-label 1.4s ease-out; }
@keyframes pp-reward-ring { 0%{transform:scale(.35);opacity:0} 12%{opacity:1} 65%{opacity:.55} 100%{transform:scale(2.7);opacity:0} }
@keyframes pp-reward-node { 0%,100%{transform:scale(1);box-shadow:0 0 0 transparent} 20%{transform:scale(1.9);box-shadow:0 0 18px 6px rgba(54,184,199,.7)} 55%{transform:scale(1.25);box-shadow:0 0 12px 3px rgba(54,184,199,.4)} }
@keyframes pp-reward-lift { 0%,100%{transform:translateY(0) scale(1);filter:none} 24%,45%{transform:translateY(-3px) scale(1.35);filter:drop-shadow(0 0 6px rgba(54,184,199,.8))} }
@keyframes pp-reward-label { 0%,100%{text-shadow:none} 20%,55%{color:#239bad;text-shadow:0 0 9px rgba(54,184,199,.55)} }
@media(prefers-reduced-motion:reduce) {
 .pp-rs-milestone.is-crossing::before,.pp-rs-milestone.is-crossing::after,
 .pp-rs-milestone.is-crossing .pp-rs-icon,.pp-rs-milestone.is-crossing strong { animation:none; }
}

/* Composite the fill rather than relayout the track on every animation frame. */
.pp-rs-track > span { transform-origin:left center;will-change:transform; }
.pp-rs-milestone.is-crossing::after,
.pp-rs-milestone.is-crossing::before,
.pp-rs-milestone.is-crossing .pp-rs-icon,
.pp-rs-milestone.is-crossing strong { animation-duration:1.1s; }

/* Match the homepage toast anchor; cart height never moves the reward strip. */
#pp-floating-cart { inset:16px 0 calc(152px + env(safe-area-inset-bottom));max-height:calc(100dvh - 184px - env(safe-area-inset-bottom));gap:0; }
#pp-floating-cart .pp-fc-reward-dock { position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);width:480px;max-width:calc(100vw - 24px);box-sizing:border-box; }
