/* P2-R: Home "Today" card, in-play challenge chip, streak/league reward dialog, weekly league line. */
.today-card{width:min(100%,380px);text-align:left;margin:0 0 10px;padding:10px 12px 8px;border-radius:var(--radius);background:linear-gradient(160deg,#25213dcc,#17152ecc);border:1px solid #f4dc7833;box-shadow:0 8px 24px #08132150;backdrop-filter:blur(6px)}
.today-card header{display:flex;align-items:baseline;gap:8px;margin:0 0 6px}
.today-card header strong{font:600 17px/1.2 Fredoka,sans-serif;color:var(--yellow)}
.today-streak{font:600 13px/1.2 Fredoka,sans-serif;color:var(--coral);white-space:nowrap}
.today-card header small{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}
.today-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.today-item{display:grid;grid-template-columns:22px 1fr auto auto;grid-template-rows:auto 4px;column-gap:7px;align-items:center;font-size:13px}
.today-icon{grid-row:1/3;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#faf1d712;font-size:12px}
.today-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.today-item b{font:600 13px/1 Fredoka,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums}
.today-item small{font-size:11px;color:var(--yellow);min-width:44px;text-align:right}
.today-meter{grid-column:2/5;height:4px;border-radius:2px;background:#bac8dc26;overflow:hidden}
.today-meter i{display:block;height:100%;border-radius:2px;background:var(--mint);transition:width .4s var(--ease)}
.today-item[data-tier="1"] .today-meter i{background:#b9adf4}.today-item[data-tier="2"] .today-meter i{background:var(--yellow)}
.today-item.done .today-icon{background:var(--mint);color:#17152e;font-weight:700}
.today-item.done .today-text{color:var(--muted);text-decoration:line-through;text-decoration-color:#9edfd080}
.today-item.done b{color:var(--mint)}
.challenge-chip{position:absolute;left:50%;top:max(176px,calc(env(safe-area-inset-top) + 164px));transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:#17152ee6;border:1px solid #9edfd066;color:var(--ink);font:600 13px/1.2 Fredoka,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #08132160}
.challenge-chip.pop{animation:challenge-pop .35s var(--ease)}
@keyframes challenge-pop{0%{transform:translateX(-50%) scale(.8);opacity:0}60%{transform:translateX(-50%) scale(1.06);opacity:1}100%{transform:translateX(-50%) scale(1)}}
.reward-dialog{width:min(380px,calc(100% - 32px));padding:24px 22px 20px;border:1px solid #f4dc7855;border-radius:22px;background:radial-gradient(circle at 50% 0,#3a2f5a,#1c1934 70%);color:var(--ink);text-align:center;box-shadow:0 24px 80px #050917cc}
.reward-dialog::backdrop{background:#050917b0;backdrop-filter:blur(3px)}
.reward-dialog[open]{animation:reward-in .45s var(--ease)}
@keyframes reward-in{from{transform:translateY(24px) scale(.94);opacity:0}}
.reward-kicker{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.reward-dialog h2{margin:4px 0 14px;font:600 34px/1.05 Fredoka,sans-serif;color:var(--yellow)}
.reward-days{list-style:none;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 0 14px;padding:0}
.reward-days li{display:grid;gap:3px;justify-items:center}
.reward-days span{display:grid;place-items:center;width:100%;aspect-ratio:1;max-width:42px;border-radius:12px;background:#faf1d712;border:1px solid #faf1d71f;font:600 12px/1 Fredoka,sans-serif;color:var(--muted)}
.reward-days small{font-size:10px;color:var(--muted)}
.reward-days .past span{background:#9edfd033;border-color:#9edfd066;color:var(--mint)}
.reward-days .now span{background:var(--yellow);border-color:var(--yellow);color:#17152e;transform:scale(1.12);box-shadow:0 0 18px #f4dc7880}
.reward-lines p{margin:6px 0;font:600 16px/1.3 Fredoka,sans-serif}
.reward-dialog form{margin:16px 0 0}
.ranking-switch.period{margin-bottom:8px}
.ranking-league{margin:0 0 12px;font-size:12px;color:var(--yellow)}
@media(max-height:720px){.today-card{padding:8px 10px 6px}.today-list{gap:3px}.today-item{font-size:12px}}
@media(max-height:520px) and (min-width:761px){.today-card{display:none}}
