
.rewards-fab-wrap{
  position:fixed;bottom:22px;right:22px;z-index:500;
}
.rewards-fab-wrap .rewards-fab{
  position:relative;bottom:auto;right:auto;
}
.rewards-fab-badge{
  position:absolute;top:-6px;right:-6px;z-index:501;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));
}

.rewards-fab{
  position:fixed;bottom:22px;right:22px;width:56px;height:56px;border-radius:50%;
  background:var(--gold);border:none;font-size:26px;cursor:pointer;z-index:500;
  box-shadow:0 4px 14px rgba(0,0,0,0.2);display:flex;align-items:center;justify-content:center;
  animation:rewardsFabPulse 2.4s ease-in-out infinite;
  color:var(--ink);
}
.rewards-fab.claimed{animation:none;opacity:0.55;}
@keyframes rewardsFabPulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.08);}
}
@media (prefers-reduced-motion: reduce){
  .rewards-fab{animation:none;}
}

.dr-overlay{
  position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(75,100,84,0.55);backdrop-filter:blur(6px);
}
.dr-overlay.active{display:flex;animation:drOverlayIn .25s ease;}
@keyframes drOverlayIn{from{opacity:0}to{opacity:1}}

.dr-modal{
  width:100%;max-width:480px;height:640px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;
  overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:20px;
  box-shadow:0 30px 90px rgba(0,0,0,.28);animation:drModalIn .3s cubic-bezier(.22,1,.36,1);
}
@keyframes drModalIn{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.dr-topbar{display:flex;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);}
.dr-page-title{flex:1;display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;}
.dr-page-icon{
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;
  background:var(--sand);font-size:17px;
}
.dr-close{
  width:32px;height:32px;border:0;border-radius:9px;background:var(--sand-light);color:var(--muted);
  cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;
}
.dr-close:hover{background:var(--sand);color:var(--ink);}

.dr-content{flex:1;overflow-y:auto;padding:17px;}
.dr-tab{display:none;}
.dr-tab.active{display:block;animation:drTabIn .22s cubic-bezier(.22,1,.36,1);}
@keyframes drTabIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}

.dr-mystery-box{
  position:relative;overflow:hidden;padding:20px;
  background:var(--sand-light);border:1px solid var(--line);border-radius:16px;text-align:center;
  cursor:pointer;user-select:none;transition:transform .15s ease,border-color .15s ease;
}
.dr-mystery-box.opened{cursor:default;}
.dr-mystery-box:hover{transform:translateY(-1px);border-color:var(--sage);}
.dr-mystery-box.opening{animation:drBoxShake .35s ease;}
@keyframes drBoxShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-2deg) scale(1.01)}50%{transform:rotate(2deg) scale(.99)}75%{transform:rotate(-1deg)}}
.dr-mystery-icon{
  width:64px;height:64px;margin:0 auto 11px;display:flex;align-items:center;justify-content:center;
  border-radius:18px;background:var(--sand);font-size:30px;
}
.dr-mystery-title{font-size:15.5px;font-weight:800;}
.dr-mystery-subtitle{margin-top:5px;color:var(--muted);font-size:12px;}
.dr-mystery-box.opened .dr-mystery-subtitle{display:none;}
.dr-mystery-hint{margin-top:13px;color:var(--muted);font-size:12px;font-weight:600;}
.dr-mystery-reward{
  display:none;margin-top:15px;padding:14px;background:var(--white);border:1px solid var(--line);
  border-radius:12px;
}
.dr-mystery-reward.visible{display:block;animation:drRewardIn .2s ease;}
@keyframes drRewardIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.dr-reward-media{
  width:64px;height:64px;margin:0 auto 8px;border-radius:12px;background:var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:34px;line-height:1;
}
.dr-reward-text{font-size:13.5px;font-weight:700;}
.dr-reward-price{margin-top:2px;color:var(--sage-dark);font-weight:800;font-size:13px;}
.dr-mystery-add{margin-top:12px;width:100%;font-size:13px;padding:10px;}

.dr-section-title{margin:22px 0 10px;font-size:14px;font-weight:800;}

.dr-daily-product{
  padding:16px;background:var(--sand-light);border:1px solid var(--line);border-radius:16px;
}
.dr-daily-product-header{display:flex;align-items:center;gap:10px;margin-bottom:15px;}
.dr-daily-product-icon{
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;
  background:var(--sand);font-size:16px;
}
.dr-daily-product-title{font-size:13px;font-weight:800;}
.dr-daily-product-subtitle{margin-top:2px;color:var(--muted);font-size:11.5px;}

.dr-product{display:flex;align-items:center;gap:14px;}
.dr-product-image{
  width:84px;height:84px;flex-shrink:0;border-radius:14px;background:var(--sand);overflow:hidden;
  display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--muted);
}
.dr-product-image img{width:100%;height:100%;object-fit:cover;}
.dr-product-info{min-width:0;}
.dr-product-name{margin:0 0 8px;font-size:15px;line-height:1.35;font-weight:700;}
.dr-price{display:flex;align-items:center;gap:8px;}
.dr-old-price{color:var(--muted);font-size:12.5px;text-decoration:line-through;}
.dr-arrow{color:var(--muted);}
.dr-free-price{color:var(--sage-dark);font-size:16px;font-weight:800;}

.dr-claim{
  position:relative;width:100%;height:44px;margin-top:14px;overflow:hidden;border:0;
  border-radius:12px;background:var(--sage);color:white;font-family:inherit;font-size:13px;
  font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease;
}
.dr-claim:hover{opacity:.9;}
.dr-claim:active{transform:scale(.97);}
.dr-claim.claimed{background:var(--sand);color:var(--sage-dark);cursor:default;}
.dr-claim.claimed:hover{opacity:1;}
.dr-claim-content{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:7px;}
.dr-free-hint{margin-top:8px;text-align:center;color:var(--muted);font-size:11.5px;font-weight:600;}

.dr-quests{display:flex;flex-direction:column;gap:8px;}
.dr-quest{padding:12px;background:var(--sand-light);border:1px solid var(--line);border-radius:12px;}
.dr-quest-top{display:flex;align-items:center;gap:9px;}
.dr-quest-icon{
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;
  background:var(--sand);font-size:13px;
}
.dr-quest-name{flex:1;font-size:12.5px;font-weight:650;}
.dr-quest-count{color:var(--muted);font-size:11.5px;font-weight:700;}
.dr-progress-track{height:5px;margin-top:9px;overflow:hidden;border-radius:999px;background:var(--sand);}
.dr-progress{height:100%;border-radius:999px;background:var(--sage);transition:width .3s ease;}
.dr-quest.completed .dr-quest-icon{color:var(--sage-dark);background:rgba(124,152,133,.18);}
.dr-quest.completed .dr-quest-count{color:var(--sage-dark);}

.dr-total{
  display:flex;align-items:center;gap:14px;padding:16px;background:var(--sand-light);
  border:1px solid var(--line);border-radius:16px;
}
.dr-total-icon{
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;
  background:var(--sand);font-size:19px;
}
.dr-total-number{font-size:25px;font-weight:800;}
.dr-total-label{color:var(--muted);font-size:11.5px;}
.dr-categories{display:flex;flex-direction:column;gap:8px;}
.dr-category{
  padding:11px;background:var(--sand-light);border:1px solid var(--line);border-radius:12px;
}
.dr-category-top{display:flex;align-items:center;justify-content:space-between;}
.dr-category-left{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:650;}
.dr-category-icon{
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;
  background:var(--sand);font-size:12px;
}
.dr-category-count{color:var(--sage-dark);font-size:13px;font-weight:800;}
.dr-category .dr-progress-track{margin-top:9px;}
.dr-category.empty{opacity:.5;}

.dr-badges-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;}
.dr-badge{padding:15px 10px;text-align:center;background:var(--sand-light);border:1px solid var(--line);border-radius:14px;}
.dr-badge.locked{opacity:.4;}
.dr-badge-icon{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;margin:0 auto 9px;
  border-radius:13px;background:var(--sand);font-size:19px;
}
.dr-badge-name{font-size:11.5px;font-weight:750;}
.dr-badge-description{margin-top:4px;color:var(--muted);font-size:10.5px;}

.dr-wrapped-subtitle{margin:-5px 0 16px;color:var(--muted);font-size:12px;}
.dr-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;}
.dr-stat{padding:15px;background:var(--sand-light);border:1px solid var(--line);border-radius:14px;}
.dr-stat-icon{font-size:15px;}
.dr-stat-number{margin-top:8px;font-size:21px;font-weight:800;}
.dr-stat-label{margin-top:3px;color:var(--muted);font-size:11px;}
.dr-wrapped-locked{
  grid-column:1 / -1;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:10px;padding:28px 20px;background:var(--sand-light);border:1px solid var(--line);border-radius:14px;
}
.dr-wrapped-locked p{margin:0;color:var(--muted);font-size:13px;max-width:260px;}
.dr-download-wrapped,.dr-share-wrapped{
  width:100%;padding:13px;margin-top:9px;border-radius:11px;font-family:inherit;font-size:13px;
  font-weight:700;cursor:pointer;
}
.dr-download-wrapped{border:0;background:var(--sage);color:white;}
.dr-download-wrapped:hover{opacity:.9;}
.dr-share-wrapped{border:1px solid var(--line);background:var(--white);color:var(--ink);}
.dr-share-wrapped:hover{background:var(--sand);}

.dr-footer{
  position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:9px 11px 11px;
  background:var(--sand-light);border-top:1px solid var(--line);isolation:isolate;
}
.dr-nav-pill{
  position:absolute;z-index:0;top:9px;left:11px;width:0;height:46px;border-radius:14px;
  background:var(--sage);box-shadow:0 5px 20px rgba(124,152,133,.35);pointer-events:none;
  transition:left .18s linear,width .18s linear;
}
.dr-nav{
  position:relative;z-index:2;min-height:46px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:4px;border:0;border-radius:11px;background:transparent;color:var(--muted);
  font-family:inherit;font-size:9.5px;font-weight:700;cursor:pointer;
}
.dr-nav span.dr-nav-icon{font-size:16px;}
.dr-nav.active{color:white;}
.dr-nav-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transform:translateZ(0);}
.dr-nav-content.liquid-active{animation:drNavLiquid .18s cubic-bezier(.22,1,.36,1);}
@keyframes drNavLiquid{
  0%{transform:scaleX(1) scaleY(1);}
  20%{transform:scaleX(.72) scaleY(1.03);}
  45%{transform:scaleX(1.25) scaleY(.97);}
  68%{transform:scaleX(.91) scaleY(1.02);}
  85%{transform:scaleX(1.06) scaleY(.99);}
  100%{transform:scaleX(1) scaleY(1);}
}

#drWrapperExport{
  position:fixed;left:-99999px;top:0;width:1080px;padding:70px;background:var(--sand-light);
  color:var(--ink);font-family:inherit;
}
.dr-export-title{text-align:center;font-size:56px;font-weight:800;}
.dr-export-subtitle{margin-top:15px;text-align:center;color:var(--muted);font-size:22px;}
.dr-export-year{margin-top:10px;text-align:center;color:var(--sage-dark);font-size:28px;font-weight:800;}
.dr-export-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:55px;}
.dr-export-stat{padding:34px;background:var(--white);border:1px solid var(--line);border-radius:22px;}
.dr-export-stat-number{font-size:48px;font-weight:800;color:var(--sage-dark);}
.dr-export-stat-label{margin-top:8px;color:var(--muted);font-size:18px;}
.dr-export-footer{margin-top:50px;text-align:center;color:var(--muted);font-size:18px;}

@media (prefers-color-scheme: dark){
  .dr-page-icon,.dr-close,.dr-mystery-icon,.dr-daily-product-icon,.dr-quest-icon,
  .dr-total-icon,.dr-category-icon,.dr-badge-icon,.dr-reward-media,.dr-product-image{
    background:#232323;
  }
}

@media (max-width:520px){
  .dr-overlay{padding:10px;align-items:flex-end;}
  .dr-modal{max-height:calc(100vh - 20px);border-radius:20px 20px 0 0;}
  .dr-content{padding:14px;}
  .dr-product-image{width:74px;height:74px;font-size:26px;}
}
