/* Taste: neutral editorial composition, restrained depth, one glass surface. */
:root{--evolution-radius:24px;--evolution-shadow:0 8px 32px #0000000c}
.app{padding-top:calc(22px + env(safe-area-inset-top))}.top{margin-bottom:22px}.logo{font-weight:650}.section-head h1{font-size:clamp(34px,5vw,48px);font-weight:650;letter-spacing:-1.8px}.section-head{align-items:center}
:is(.hero,.card,.rank-card,.week-section,.profile-summary,.plan-card,.chart-card){border-radius:var(--evolution-radius)}
.hero{position:relative;overflow:hidden;padding:30px 26px;min-height:310px;border-color:var(--line)}.hero h1{font-weight:650;letter-spacing:-2px;font-size:clamp(38px,7vw,62px);max-width:15ch;line-height:1.02}.hero-copy{max-width:32ch;line-height:1.65}.hero .badge{letter-spacing:1.4px}.hero .actions{margin-top:28px}.hero .primary{min-height:58px;border-radius:16px;font-weight:600}
.week-section{padding:24px}.week-title{letter-spacing:-.5px}.week-day>span{font-size:10px}.week-day>i{font-variant-numeric:tabular-nums}.today-card{border-top:1px solid var(--line);padding-top:18px}.today-card .today-label{font-size:12px}.section{margin-top:28px}.template-name{font-size:24px;font-weight:600;letter-spacing:-.8px}.template-desc{line-height:1.6}.plan-card .template{padding:24px}.template-grid{gap:16px}
.design-tabs{padding:5px;gap:4px;border-radius:16px;background:var(--surface2);border:1px solid var(--line);margin-bottom:24px}.design-tabs button{min-height:44px;border-radius:11px;font-weight:550}.design-tabs button[aria-current]{background:var(--surface);color:var(--text);box-shadow:var(--evolution-shadow)}
#rankHome{padding:22px 24px;margin-top:24px}#rankHome .rank-heading h2{font-size:28px;font-weight:650;letter-spacing:-1px}#rankHome .rank-xp{font-size:18px}#rankHome .rank-medal{width:54px;height:62px}#rankHome .rank-heading{gap:16px}#rankHome .rank-week{border-top:1px solid var(--line);padding-top:14px}.rank-progress{height:6px;background:var(--surface3);box-shadow:none}.rank-progress>span{background:var(--rank-color);box-shadow:none;border-radius:99px}.rank-next{font-size:12px}.rank-medal{filter:none}
#rankDetails{position:relative;padding:30px}#rankDetails .rank-heading{align-items:center;gap:22px}#rankDetails .rank-medal--hero{width:92px;height:108px}#rankDetails h2{font-size:clamp(32px,5vw,44px);letter-spacing:-1.5px;font-weight:650}#rankDetails .rank-xp{font-size:28px;font-weight:600;letter-spacing:-1px}#rankDetails .rank-totals{padding-top:24px;border-top:1px solid var(--line);margin-top:24px}#rankDetails .rank-totals>div{padding:0;background:transparent;border:none;box-shadow:none}.rank-totals strong{font-weight:600}.rank-achievement{border-radius:18px;padding:20px;background:var(--surface);border:1px solid var(--line)}.rank-achievement.unlocked{border-color:var(--line)}.rank-achievement h3{font-size:16px;font-weight:600}.rank-achievement-icon{background:var(--surface2);color:var(--muted);border:1px solid var(--line);border-radius:12px}.rank-achievement.unlocked .rank-achievement-icon{color:var(--accentSoft);background:var(--accentDim);border-color:var(--accentBorder)}
.rank-ladder{gap:0}.rank-ladder li{position:relative;border-radius:0;padding:16px 4px;border:0;border-bottom:1px solid var(--line);color:var(--muted)}.rank-ladder li:last-child{border-bottom:0}.rank-ladder li[aria-current]{background:var(--surface2);border:0;border-left:3px solid var(--rank-color);border-radius:12px;padding-left:12px;color:var(--text)}.rank-ladder li>div strong{font-weight:600}.rank-ladder li>span:last-child{font-size:12px}.rank-ladder .rank-medal{width:40px;height:46px}
#communityRankingCard{padding:24px}.community-heading h2{font-size:30px;letter-spacing:-1px}.community-filters{border-bottom:0}.community-player{padding:20px 8px}.community-player-info strong{font-weight:600}.community-result strong{font-size:23px;font-weight:600;letter-spacing:-.8px}.community-player[data-place="1"] .community-place{font-size:20px}.community-mine{background:var(--surface2)}.community-rank-tag{border:0;padding-left:0;letter-spacing:.3px}
.profile-summary{padding:28px}.profile-summary h2{font-weight:600;letter-spacing:-.8px}.profile-shortcut{border-radius:16px}.settings-group{border-radius:24px}.settings-group h2{font-weight:600}.workout-actions .primary{border-radius:14px}.workout-top{border-radius:22px}.exercise-card{border-radius:22px}.exercise-title{font-weight:600;letter-spacing:-.5px}.set-row input{font-variant-numeric:tabular-nums}.list .row{padding:20px}.row-title{font-weight:600}.primary,.secondary{font-weight:600}.nav-inner{gap:6px}.nav button{border-radius:14px}
/* Native dialog traps focus, Escape dismisses, and the page never moves. */
.milestone-dialog{padding:0;border:0;background:transparent;color:var(--text);width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:auto;overflow:auto;border-radius:28px;overscroll-behavior:contain}.milestone-dialog::backdrop{background:#00000099;backdrop-filter:none;-webkit-backdrop-filter:none}.milestone-sheet{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 80px #00000030;overflow:hidden;text-align:center}.milestone-top{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}.milestone-top .eyebrow{color:var(--muted);font-size:10px;letter-spacing:1.5px}.milestone-top .icon-btn{width:44px;font-size:24px;font-weight:400}.milestone-art{margin:22px auto 18px;width:144px;height:150px;display:grid;place-items:center;color:var(--milestone-color);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--milestone-color) 13%,transparent),transparent 70%)}.milestone-art .rank-medal{width:118px;height:138px}.milestone-art>svg{width:100px;height:100px}.milestone-dialog h2{font-weight:650;font-size:clamp(38px,9vw,54px);line-height:1.05;letter-spacing:-2px;overflow-wrap:anywhere;margin:0 0 12px}.milestone-dialog .note{font-size:13px;line-height:1.65}.milestone-stat{margin:26px 0;display:grid;gap:8px}.milestone-stat strong{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}.milestone-stat small{font-size:13px;font-weight:500;color:var(--muted)}.milestone-stat>span{font-size:13px;color:var(--muted)}.milestone-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:24px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.milestone-comparison>div{display:grid;gap:8px}.milestone-comparison span{font-size:10px;color:var(--muted)}.milestone-comparison strong{font-size:17px;font-weight:600;white-space:nowrap}.milestone-comparison>div:nth-child(2) strong{color:var(--accentSoft)}.milestone-bottom{display:grid;gap:16px;margin-top:24px}.milestone-bottom .primary{width:100%;border-radius:16px}.milestone-bottom .note{font-size:11px}.milestone-records{list-style:none;padding:0;margin:0;text-align:left}.milestone-records li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.milestone-records span{overflow-wrap:anywhere;min-width:0}.milestone-records strong{white-space:nowrap}.milestone-records small{color:var(--accentSoft)}#milestonePreview{padding:10px;background:var(--surface2);border:1px dashed var(--line);border-radius:10px}.milestone-previews{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.milestone-previews .actions{display:grid;gap:10px;grid-template-columns:1fr}.milestone-previews h3{font-weight:600;font-size:16px}
:root[data-glass=on] .milestone-sheet{background:var(--glass-base);border-color:var(--glass-edge);backdrop-filter:blur(24px) saturate(1.08);-webkit-backdrop-filter:blur(24px) saturate(1.08)}
@media(min-width:960px){#page-today>.hero{min-height:380px;padding:40px}#page-today .hero h1{font-size:60px}#page-today>.week-section{padding:32px}#rankHome .rank-heading{position:relative;padding-right:140px}#rankHome #openRanks{position:absolute;right:0;top:10px}#page-ranks.active{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}#page-ranks>.section-head,#page-ranks>.design-tabs,#rankTestTools{grid-column:1/-1}#page-ranks>.section{margin-top:0}#page-ranks>p.note{grid-column:1/-1;margin:0}#rankDetails{grid-column:1;grid-row:auto}.rank-goal-column{grid-column:2}.rank-achievements{grid-template-columns:1fr}}
@media(max-width:380px){.app{padding-left:16px;padding-right:16px}.hero{padding:26px 22px}.hero h1{font-size:36px}.week-section{padding:20px}#rankHome{padding:20px 16px}#rankHome .rank-heading{gap:10px}#rankHome .rank-heading h2{font-size:24px}#rankHome .small-btn{font-size:10px;padding:0 8px}#rankDetails{padding:24px 20px}#rankDetails .rank-heading{gap:16px}#rankDetails .rank-medal--hero{width:68px;height:80px}.community-result strong{font-size:18px}#communityRankingCard{padding:20px}.milestone-sheet{padding:20px}.milestone-comparison strong{font-size:14px}.milestone-art{width:120px;height:126px;margin-top:14px}.milestone-art .rank-medal{width:100px;height:116px}}
@media(prefers-reduced-motion:reduce){.milestone-dialog,.milestone-dialog *{animation:none!important;transition:none!important}}:root[data-motion=off] .milestone-dialog *{animation:none!important;transition:none!important}

.rank-goal-column{min-width:0;margin-top:24px}.rank-goal-column>#rankWeek{margin-top:0}.rank-goal-column>.card+ .card{margin-top:16px}.milestone-art{position:relative}.milestone-halo{position:absolute;inset:2px;border:1px solid var(--milestone-color);border-radius:50%;opacity:0;pointer-events:none}.milestone-spark{position:absolute;font-size:20px;opacity:0;pointer-events:none}.spark-a{top:6px;right:4px}.spark-b{left:0;bottom:12px;font-size:14px}@media(min-width:960px){.rank-goal-column{margin-top:0}#rankTestTools{margin-top:0}}

@media(min-width:960px){#rankDetails{margin-top:0}}
