/* Streak container */
.ws-container {
  background: linear-gradient(135deg, rgba(251,146,60,.06), rgba(239,68,68,.04));
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 14px;
}
.ws-header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}
.ws-streak-num {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
}
.ws-streak-label {
  font-size: 12px;
  color: var(--muted);
}

/* 7-slot fire progress */
.ws-progress {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-bottom: 10px;
}
.ws-fire-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .3s ease;
}
.ws-fire-active {
  animation: wsFirePop .4s ease var(--fire-delay, 0s) both;
}
.ws-fire-icon {
  width: 28px;
  height: 28px;
  color: #ef4444;
  filter: drop-shadow(0 0 4px rgba(239,68,68,.4));
}
.ws-fire-icon.ws-fire-outline {
  color: var(--muted, #888);
  filter: none;
}
.ws-fire-active .ws-fire-icon {
  animation: wsFireFlicker 0.8s ease-in-out infinite alternate;
}
@keyframes wsFirePop {
  0% { transform: scale(0.5); opacity: 0; }
  60% { transform: scale(1.15); }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes wsFireFlicker {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-2px) scale(1.05); }
}

/* Fire progress bar */
.ws-bar-wrap { margin-bottom: 8px; }
.ws-bar {
  height: 8px;
  background: var(--bg2, #eee);
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}
.ws-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #fb923c, #ef4444);
  border-radius: 4px;
  transition: width .6s ease;
  position: relative;
  overflow: hidden;
}
.ws-bar-fire {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.3) 40%,
    rgba(255,255,255,.5) 50%,
    rgba(255,255,255,.3) 60%,
    transparent 100%);
  animation: wsBarShimmer 1.5s ease-in-out infinite;
}
@keyframes wsBarShimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(200%); }
}
.ws-bar-label {
  font-size: 11px;
  color: var(--muted);
  text-align: center;
  margin-top: 3px;
}

/* Day messages */
.ws-day-msg {
  font-size: 12px;
  color: #d97706;
  text-align: center;
  padding: 4px 0;
  font-weight: 500;
}

/* Milestone rewards */
.ws-milestone {
  text-align: center;
  padding: 10px;
  border-radius: 10px;
  margin-top: 8px;
}
.ws-milestone-week {
  background: linear-gradient(135deg, rgba(251,191,36,.1), rgba(245,158,11,.15));
}
.ws-milestone-21 {
  background: linear-gradient(135deg, rgba(16,185,129,.1), rgba(5,150,105,.15));
}
.ws-mile-emoji { font-size: 28px; margin-bottom: 4px; }
.ws-mile-text {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
}

/* Broken streak */
.ws-broken {
  text-align: center;
  padding: 12px;
}
.ws-broken-emoji { font-size: 32px; margin-bottom: 6px; }
.ws-broken-text {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}

/* Record */
.ws-record {
  font-size: 11px;
  color: var(--muted);
  text-align: center;
  margin-top: 6px;
}

/* Streak reward popup */
.ws-reward {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.7);
  z-index: 10000;
  background: #fff;
  border-radius: 20px;
  padding: 24px 32px;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
  opacity: 0;
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
  pointer-events: auto;
}
.ws-reward-show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.ws-reward-hide {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.7);
}
.ws-reward-big {
  padding: 32px 40px;
}
.ws-reward-emoji { font-size: 48px; margin-bottom: 8px; }
.ws-reward-big .ws-reward-emoji { font-size: 64px; }
.ws-reward-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}
.ws-reward-desc {
  font-size: 13px;
  color: var(--muted);
  white-space: pre-line;
  line-height: 1.5;
}


