.case-shelves{display:flex;gap:8px;margin:0 0 24px;border-bottom:2px solid var(--line);padding-bottom:10px}
.case-shelves button{flex:1;min-width:0;font-size:14px}
.case-shelves [aria-selected=true]{border-color:var(--daily-outline,var(--accent));box-shadow:inset 0 -3px var(--daily-outline,var(--accent))}
#badge-earned-section{margin:12px 0 16px}
.badge-earned-heading{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.badge-earned-heading h2{font-size:16px;margin:0}.badge-earned-heading>span{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}
#badge-earned-toggle{flex:none;font-size:11px;min-height:44px;padding:8px 0 8px 4px;white-space:nowrap}
.badge-earned-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.badge-earned-grid:empty{display:none}
.badge-earned-grid .achievement.achievement-earned{flex-direction:row;justify-content:flex-start;text-align:left;gap:8px;padding:10px;border-width:1px;box-shadow:none;min-height:76px}
.badge-earned-grid:not(.is-expanded){grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.badge-earned-grid:not(.is-expanded) .achievement.achievement-earned{justify-content:center;min-height:56px;padding:8px}
.badge-earned-grid:not(.is-expanded) .badge-copy{display:none}
.badge-earned-grid .achievement[hidden]{display:none}
.achievement-earned .badge-icon{width:32px;height:32px}
.achievement-earned .badge-name{font-size:12px;line-height:1.5}.badge-earned-tier{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:var(--muted)}
.achievement.achievement-progress,.achievement.achievement-progress.earned{box-shadow:none;border-color:var(--line);background:transparent}
.achievement-progress .badge-art{width:32px;flex-basis:32px}.achievement-progress .badge-icon{width:32px;height:32px}
#badge-earned-empty{max-width:560px;font-size:13px;margin-top:0}
#badge-count{font-size:12px;white-space:nowrap}
.badge-heading{margin-bottom:24px}.badge-heading h2{margin-bottom:8px}.badge-heading p{font-size:14px;color:var(--muted)}
.badge-group+.badge-group{margin-top:28px}.badge-group h3{margin-bottom:8px}.badge-group>p{font-size:13px;color:var(--muted);margin-bottom:14px}
.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.achievement{display:flex;align-items:center;gap:14px;min-width:0;text-align:left;padding:16px;border:1px solid var(--line);background:var(--surface)}
.achievement.earned{border-color:var(--daily-outline,var(--accent));box-shadow:inset 3px 0 var(--daily-outline,var(--accent))}
.badge-art{width:48px;flex:0 0 48px;display:grid;justify-items:center;gap:8px}
.badge-icon{display:block;width:48px;height:48px;background:currentColor;mask:var(--badge-icon) center/contain no-repeat;-webkit-mask:var(--badge-icon) center/contain no-repeat;color:var(--ink);image-rendering:pixelated;flex:none}
.earned .badge-icon,.badge-unlock .badge-icon{color:var(--daily-outline,var(--accent))}.locked .badge-icon{opacity:.4}
.badge-stars{display:inline-flex;align-items:center;gap:2px;color:var(--ink)}
.badge-tier-star{display:inline-block;flex:0 0 12px;width:12px;height:12px;background:currentColor;mask:url("assets/badges/star.svg") center/contain no-repeat;-webkit-mask:url("assets/badges/star.svg") center/contain no-repeat;image-rendering:pixelated}
.badge-stars.is-unearned{opacity:.4}
.badge-copy{min-width:0;display:block;flex:1}.badge-name{display:block;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.badge-progress{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin-top:6px}
.badge-meter{display:block;appearance:none;-webkit-appearance:none;width:100%;height:6px;margin-top:12px;border:0;background:var(--line);color:var(--daily-outline,var(--accent))}
.badge-meter::-webkit-progress-bar{background:var(--line)}.badge-meter::-webkit-progress-value{background:var(--daily-outline,var(--accent))}.badge-meter::-moz-progress-bar{background:var(--daily-outline,var(--accent))}
#badge-save-note{font-size:12px;color:var(--muted);margin-top:24px}
#badge-detail-body>.badge-icon{width:72px;height:72px;margin:0 auto 24px;color:var(--daily-outline,var(--accent))}
#badge-detail-body .badge-detail-progress{border-left:3px solid var(--daily-outline,var(--accent));padding-left:12px}
.badge-milestones{list-style:none;margin:20px 0;padding:0}.badge-milestones li{padding:12px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.6}.badge-milestones b,.badge-milestones span{display:block}.badge-milestones span{font-size:12px;color:var(--muted)}
.badge-milestones .earned b:before{content:'';display:inline-block;width:12px;height:12px;margin-right:6px;background:var(--daily-outline,var(--accent));mask:url("assets/badges/star.svg") center/contain no-repeat;-webkit-mask:url("assets/badges/star.svg") center/contain no-repeat;image-rendering:pixelated}.badge-leagues{padding-left:22px;font-size:14px;line-height:1.8}
.badge-earned-notice{padding:16px;border:2px solid var(--daily-outline,var(--accent));margin-block:16px;background:var(--surface);text-align:left}.badge-unlock{display:flex;align-items:center;gap:12px;font-size:14px;line-height:1.6}.badge-unlock>span:last-child{min-width:0;overflow-wrap:anywhere}.badge-unlock+.badge-unlock{margin-top:12px}.badge-unlock .badge-icon{width:32px;height:32px}
.badge-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.badge-grid{grid-template-columns:1fr}.badge-earned-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement{padding:14px}.case-shelves button{padding-inline:8px}.badge-earned-grid .achievement.achievement-earned{padding:8px}.badge-earned-heading h2{font-size:16px}}
@media(prefers-reduced-motion:no-preference){.badge-unlock .badge-icon{animation:badge-pop .55s steps(4,end) both}@keyframes badge-pop{0%{transform:scale(.6)}60%{transform:scale(1.2)}100%{transform:scale(1)}}}

.achievement-progress::after,.badge-earned-grid.is-expanded .achievement-earned::after{content:"+";flex:none;font:16px var(--pixel);color:var(--muted)}
.achievement:hover,.achievement:focus-visible{border-color:var(--daily-outline,var(--accent))}

.achievement-earned{position:relative}.badge-repeat-count{position:absolute;right:3px;bottom:2px;font-size:10px;background:var(--surface);padding:1px 2px;color:var(--ink)}

/* One optional, subordinate progress row after the round's primary actions. */
.round-badge-progress{display:flex;align-items:center;gap:10px;width:100%;margin-top:16px;padding:10px;text-align:left;background:var(--surface);border:1px solid var(--line)}
.round-badge-progress>.badge-icon{width:24px;height:24px;color:var(--daily-outline,var(--accent))}
.round-badge-progress .badge-name{font-size:12px;line-height:1.5}
.round-badge-progress .badge-progress{font-size:10px;line-height:1.5;margin-top:3px}
.round-badge-progress .badge-meter{height:4px;margin-top:6px}
.round-badge-progress:hover{border-color:var(--daily-outline,var(--accent))}
