.streak-shell{
  --streak-green:#0b4a38;
  --streak-gold:#b78320;
  min-height:100dvh;
  background:linear-gradient(180deg,#f8ead8 0%,#f3dfc8 100%);
  color:#2f2b27;
  padding-bottom:max(88px,calc(env(safe-area-inset-bottom) + 76px));
}
.streak-page{
  width:min(100%,520px);
  margin:0 auto;
  padding:18px 18px 28px;
  box-sizing:border-box;
}
.streak-header{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.streak-back{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.88);
  border-radius:50%;
  background:rgba(255,252,247,.68);
  color:var(--streak-green);
  box-shadow:0 8px 20px rgba(92,63,36,.07),inset 0 1px 0 rgba(255,255,255,.95);
}
.streak-back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.streak-header span,.streak-section-head>div>span,.streak-kicker{
  color:var(--streak-gold);
  font-size:8px;
  font-weight:900;
  letter-spacing:1.45px;
}
.streak-header h1{
  margin:3px 0 0;
  color:var(--streak-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:31px;
  line-height:.96;
  letter-spacing:-.5px;
}
.streak-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  justify-items:center;
  text-align:center;
  padding:24px 22px 26px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:30px;
  background:
    radial-gradient(circle at 50% 8%,rgba(207,150,34,.17),transparent 34%),
    rgba(255,249,241,.66);
  box-shadow:0 14px 30px rgba(92,63,36,.09),inset 0 1px 0 rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.streak-flame{
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  margin-bottom:9px;
  border-radius:50%;
  background:linear-gradient(180deg,rgba(203,145,28,.18),rgba(203,145,28,.06));
  box-shadow:inset 0 0 0 1px rgba(183,131,32,.13),0 12px 30px rgba(183,131,32,.08);
  color:var(--streak-gold);
}
.streak-flame svg{width:43px;height:43px;fill:currentColor}
.streak-kicker{margin-top:1px}
.streak-count{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:8px;
  margin-top:4px;
  color:var(--streak-green);
}
.streak-count strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:68px;
  line-height:.95;
  letter-spacing:-2px;
}
.streak-count span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  font-weight:700;
}
.streak-hero h2{
  margin:10px 0 5px;
  color:var(--streak-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:23px;
}
.streak-hero p{
  max-width:360px;
  margin:0;
  color:#746d63;
  font-size:11px;
  line-height:1.45;
}
.streak-card{
  margin-top:12px;
  padding:16px;
  border:1px solid rgba(255,255,255,.84);
  border-radius:25px;
  background:rgba(255,249,241,.58);
  box-shadow:0 10px 24px rgba(92,63,36,.07),inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.streak-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.streak-section-head h2{
  margin:2px 0 0;
  color:var(--streak-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:23px;
  line-height:1;
}
.streak-section-head>strong{
  color:var(--streak-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
}
.streak-section-head>strong small{
  color:#766f65;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:8px;
  font-weight:600;
}
.streak-days{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
  margin-top:14px;
}
.streak-day{
  display:grid;
  justify-items:center;
  gap:5px;
  min-width:0;
  color:#80796f;
}
.streak-day>span{
  font-size:7px;
  font-weight:800;
  text-transform:uppercase;
}
.streak-day>div{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(11,74,56,.055);
  color:var(--streak-green);
}
.streak-day>div i{width:5px;height:5px;border-radius:50%;background:rgba(11,74,56,.18)}
.streak-day svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.streak-day small{font-size:7px}
.streak-day.is-active>div{background:rgba(183,131,32,.16);color:var(--streak-gold)}
.streak-day.is-today>div{box-shadow:0 0 0 2px rgba(183,131,32,.18)}
.streak-goal-line{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin:13px 0 7px;
  color:#716a60;
  font-size:9px;
}
.streak-goal-line b{color:var(--streak-green)}
.streak-progress{
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(11,74,56,.08);
}
.streak-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#0d7a58,#0b4a38);
}
.streak-primary{
  width:100%;
  min-height:48px;
  margin-top:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:17px;
  background:#087a55;
  color:white;
  font-family:Georgia,"Times New Roman",serif;
  font-size:17px;
  font-weight:700;
  box-shadow:0 10px 22px rgba(8,122,85,.16);
}
.streak-primary svg{width:17px;height:17px}
.streak-milestones{display:grid;gap:9px;margin-top:13px}
.streak-milestone{
  position:relative;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  align-items:center;
  gap:10px;
  overflow:hidden;
  padding:10px;
  border-radius:15px;
  background:rgba(11,74,56,.045);
}
.streak-milestone-icon{
  width:36px;height:36px;display:grid;place-items:center;border-radius:50%;
  background:rgba(11,74,56,.07);color:#8b857c;
}
.streak-milestone-icon svg{width:19px;height:19px;fill:currentColor}
.streak-milestone>div:nth-child(2){display:grid;gap:2px}
.streak-milestone strong{color:var(--streak-green);font-size:11px}
.streak-milestone span{color:#746d63;font-size:8px}
.streak-milestone-progress{
  position:absolute;left:50px;right:10px;bottom:7px;height:2px;border-radius:999px;background:rgba(11,74,56,.08);
}
.streak-milestone-progress i{display:block;height:100%;border-radius:inherit;background:var(--streak-gold)}
.streak-milestone.is-unlocked{background:rgba(183,131,32,.08)}
.streak-milestone.is-unlocked .streak-milestone-icon{background:rgba(183,131,32,.16);color:var(--streak-gold)}
.streak-level p{margin:8px 0 0;color:#746d63;font-size:9px}
.streak-level .streak-progress{margin-top:12px}
.streak-tip{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin:12px 2px 0;
  padding:11px 12px;
  color:#6f685f;
}
.streak-tip>div{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:rgba(183,131,32,.1);color:var(--streak-gold)}
.streak-tip svg{width:16px;height:16px;fill:currentColor}
.streak-tip p{margin:0;font-size:8.5px;line-height:1.5}
.streak-tip strong{color:var(--streak-green)}
.streak-footer{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  bottom:max(10px,env(safe-area-inset-bottom)) !important;
  transform:translateX(-50%) !important;
  width:min(calc(100% - 28px),492px) !important;
  z-index:20 !important;
}
.streak-loading{
  min-height:100dvh;
  display:grid;
  place-items:center;
}
.streak-loading span{
  width:34px;height:34px;border:3px solid rgba(11,74,56,.12);border-top-color:var(--streak-green);
  border-radius:50%;animation:streakSpin .8s linear infinite;
}
@keyframes streakSpin{to{transform:rotate(360deg)}}
.streak-error{
  width:min(calc(100% - 36px),440px);
  margin:80px auto;
  padding:24px;
  text-align:center;
  border-radius:24px;
  background:rgba(255,249,241,.7);
}
.streak-error button{margin-top:14px;border:0;border-radius:14px;background:var(--streak-green);color:white;padding:12px 18px;font-weight:800}
@media(max-width:380px){
  .streak-page{padding-left:14px;padding-right:14px}
  .streak-count strong{font-size:58px}
  .streak-day>div{width:29px;height:29px}
  .streak-card{padding:14px}
}
