:root{
  --bg:#fff7dc;
  --card:#ffffff;
  --text:#39280a;
  --soft:#7b5a14;
  --yellow:#ffd84d;
  --orange:#ff9f1c;
  --pink:#ff7aa8;
  --green:#71d98b;
  --shadow:0 20px 60px rgba(121,73,0,.18);
}
*{box-sizing:border-box}
body{
  margin:0;
  min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 20% 10%, #fff 0 0.4rem, transparent .45rem),
    radial-gradient(circle at 85% 20%, #fff 0 0.35rem, transparent .4rem),
    linear-gradient(160deg,#fff3b8,#ffe4a4 48%,#ffd5df);
}
.app{width:min(980px,94vw);margin:0 auto;padding:24px 0 32px}
.hero{
  position:relative;
  overflow:hidden;
  min-height:260px;
  display:grid;
  place-items:center;
  text-align:center;
  border-radius:36px;
  background:linear-gradient(145deg,#ffcf35,#ffad2e);
  box-shadow:var(--shadow);
  border:6px solid rgba(255,255,255,.75);
}
.admin-entry{
  position:absolute;right:18px;top:16px;
  width:46px;height:46px;border:0;border-radius:50%;
  background:rgba(255,255,255,.75);font-size:22px;cursor:pointer;
}
.eyebrow{margin:8px 0 0;font-weight:900;letter-spacing:.18em;color:#815409;font-size:16px}
.eyebrow.dark{color:#8b5b00;margin:0 0 4px;text-align:left}
.big-star-wrap{position:relative;width:170px;height:150px;margin:0 auto;display:grid;place-items:center}
.big-star{position:absolute;font-size:164px;line-height:1;color:#fff35f;text-shadow:0 10px 0 rgba(164,96,0,.18),0 20px 35px rgba(103,57,0,.24)}
.total{position:relative;z-index:2;font-size:74px;font-weight:1000;color:#6b4100;text-shadow:0 2px 0 rgba(255,255,255,.7)}
.hero-text{font-size:22px;font-weight:900;margin:0 20px 16px;color:#5b3700}
.sparkle{position:absolute;color:white;font-size:42px;opacity:.8;animation:float 3s ease-in-out infinite}
.s1{left:8%;top:20%}.s2{right:12%;top:34%;animation-delay:.4s}.s3{left:18%;bottom:15%;animation-delay:.8s}
@keyframes float{50%{transform:translateY(-12px) rotate(10deg)}}
.calendar-card,.reward-card{
  margin-top:20px;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);
  border-radius:30px;padding:18px;box-shadow:var(--shadow);border:4px solid rgba(255,255,255,.85)
}
.month-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
h1{font-size:clamp(24px,5vw,38px);margin:0;font-weight:1000;color:#3a2700}.nav-btn,.primary,.soft,.danger{
  border:0;border-radius:999px;padding:12px 16px;font-weight:900;cursor:pointer;font-size:15px
}
.nav-btn{background:#fff3bf;color:#6f4300}.primary{background:#ffb12e;color:#422500}.soft{background:#fff0b6;color:#6b4500}.danger{background:#ff7d7d;color:white}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekdays span{text-align:center;font-weight:900;color:#8b681d;padding:8px 0}.day{
  min-height:86px;border-radius:20px;background:#fff9e8;border:2px solid #ffe5a6;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between
}.day.empty{background:transparent;border:0}.date-num{align-self:flex-start;font-weight:900;color:#815f14}.star-box{
  width:42px;height:42px;border-radius:14px;border:2px dashed #e2bb56;background:white;display:grid;place-items:center;font-size:25px
}.has-star .star-box{border:0;background:#fff05a;box-shadow:0 7px 0 rgba(166,105,0,.18);animation:pop .25s ease}.has-star .date-num{color:#3d2700}@keyframes pop{from{transform:scale(.6)}to{transform:scale(1)}}
.reward-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#ffffff,#fff1be)}
.reward-card h2{margin:0;font-size:clamp(26px,6vw,46px);font-weight:1000}.reward-icon{width:116px;height:116px;border-radius:34px;background:white;display:grid;place-items:center;font-size:68px;box-shadow:inset 0 -8px 0 rgba(0,0,0,.06)}
.modal{position:fixed;inset:0;background:rgba(48,30,0,.45);display:grid;place-items:center;padding:18px;z-index:10}.hidden{display:none!important}.modal-box{position:relative;width:min(520px,94vw);background:white;border-radius:28px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.close{position:absolute;right:15px;top:12px;border:0;background:#fff0c2;border-radius:50%;width:38px;height:38px;font-size:28px;cursor:pointer}.modal h2{margin:0 0 8px;font-size:30px}.muted{color:#846a38;line-height:1.5}.error{color:#e03333;font-weight:800}input{width:100%;padding:14px 16px;border:2px solid #ffe0a0;border-radius:16px;font-size:17px;outline:none}input:focus{border-color:#ffb12e}.admin-total{font-size:22px;background:#fff6d8;border-radius:18px;padding:14px;margin:10px 0 14px}.admin-row{margin:14px 0}.admin-row label{display:block;font-weight:900;margin-bottom:7px}.admin-row small{display:block;color:#8d7040;margin-top:6px}.buttons{display:flex;gap:10px;flex-wrap:wrap}.buttons button{flex:1;min-width:130px}
@media(max-width:620px){.app{padding-top:12px}.hero{min-height:230px;border-radius:28px}.calendar-card{padding:12px;border-radius:24px}.month-bar{display:grid;grid-template-columns:1fr 1fr}.month-bar h1{grid-column:1/3;grid-row:1;text-align:center;margin-bottom:8px}.day{min-height:68px;border-radius:15px;padding:5px}.star-box{width:32px;height:32px;border-radius:10px;font-size:20px}.weekdays,.calendar-grid{gap:5px}.reward-icon{width:88px;height:88px;font-size:52px}}
