.greeting-heading { align-items: center; }
.greeting-heading > div { min-width: 0; }
.coin-pill { flex: none; width: 76px; padding: 8px; display: flex; flex-direction: column; align-items: center; gap: 3px; border: 0; border-radius: 18px; color: var(--text-primary); background: transparent; box-shadow: none; }
.coin-pill svg { width: 24px; height: 24px; }
.coin-pill [data-icon] { width: 34px; height: 34px; border-radius: 50%; background: #ffc943; border: 3px solid #edaa24; color: #8c5700; }
#mainContent:focus { outline: none; }
#screen-today { display: flex; flex-direction: column; }
#screen-today[hidden] { display: none; }
#screen-today > .greeting-heading { order: -10; }
#screen-today > .daily-priorities-heading { order: -9; }
#screen-today > #taskList { order: -8; }
#screen-today > .today-quick-actions { order: -7; }
#screen-today > .today-workout-card { order: -6; }
#screen-today > .meal-today-card { order: -5; }
.today-quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0; }
.today-quick-actions button { min-height: 50px; }
.virtual-product-icon img { width: 100%; height: 100%; object-fit: contain; border-radius: 14px; }
.coin-pill strong { max-width: 100%; font-size: 18px; overflow-wrap: anywhere; }
.coin-pill small { font-size: 8px; color: var(--text-muted); }
.virtual-stake { scroll-margin-top: 110px; }
/* Home groups follow DOM order; native details provide accessible expansion. */
#screen-today > * { order: 0 !important; }
#appShell:focus, #mainContent:focus, .screen:focus, .secondary-view:focus { outline: none !important; }
#screen-today button:focus { outline: none !important; }
#screen-today button:focus-visible { filter: brightness(.92); }
.home-expandable > summary:focus { outline: none; }
.home-expandable > summary:focus-visible { background: var(--primary-soft); border-radius: 20px; }
.activity-celebration { position: fixed; inset: 0; z-index: 220; display: grid; place-items: center; background: rgba(15,12,30,.28); padding: 20px; }
.celebration-card { position: relative; z-index: 1; max-width: 360px; padding: 26px; text-align: center; border-radius: 24px; background: var(--surface); box-shadow: var(--shadow-md); }
.celebration-card h2 { font-size: 22px; }.celebration-card p { color: var(--primary); font-weight: 800; }
.activity-celebration > i { position: absolute; top: -20px; left: var(--x); width: 9px; height: 16px; pointer-events: none; animation: celebration-fall 3s var(--delay) ease-in forwards; }
@keyframes celebration-fall { to { transform: translateY(105dvh) rotate(600deg); opacity: .2; } }
@media(prefers-reduced-motion:reduce){.activity-celebration > i{display:none}}
.virtual-create-stake { padding: 14px; border-radius: 16px; background: var(--surface-soft); }.virtual-create-stake p { font-size: 11px; }
.coin-pill .coin-symbol { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #ffc943; color: #925900; font-size: 21px; font-weight: 900; }
.home-overview { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 12px; align-items: center; margin-bottom: 12px; }
.home-overview > * { min-width: 0; }
.home-overview .score-card { padding: 16px; flex-direction: column; text-align: center; }
.home-mood-button { align-self: center; margin: 4px 0 16px; gap: 8px; }
.home-expandable { min-width: 0; margin-bottom: 16px; border: 0; border-radius: 20px; background: var(--surface-soft); }
.home-expandable > summary { display: flex; align-items: center; justify-content: space-between; padding: 16px; cursor: pointer; list-style: none; font-weight: 800; color: var(--text-primary); }
.home-expandable > summary::-webkit-details-marker { display: none; }
.home-expandable > summary::after { content: '+'; color: var(--primary); font-size: 22px; }
.home-expandable[open] > summary::after { content: '−'; }
.home-expandable-body { padding: 0 12px 12px; min-width: 0; }
.home-expandable-body .daily-priorities-heading h2 { display: none; }
.home-training-grid, .home-rewards-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.home-training-grid > *, .home-rewards-grid > * { min-width: 0; margin: 0; }
.home-training-grid .today-workout-card, .home-training-grid .meal-today-card { padding: 12px; }
.home-training-grid h2 { font-size: 16px; overflow-wrap: anywhere; }
.home-training-grid .meal-card-heading { flex-wrap: wrap; }
.home-training-grid .meal-day-grid { grid-template-columns: 1fr; }
.home-training-grid { grid-template-columns: minmax(0,1fr); }
.home-rewards-grid { margin: 16px 0; align-items: stretch; }
.home-rewards-grid .level-card { padding: 12px; }
.home-rewards-grid .level-card h2 { font-size: 13px; }
.home-rewards-grid .virtual-home-card { display: flex; padding: 12px; }
.home-rewards-grid .virtual-home-card > [data-icon] { display: none; }
.today-quick-actions .app-icon, .home-mood-button .app-icon { width: 18px; height: 18px; flex: none; }
.today-quick-actions button { gap: 7px; white-space: normal; }
@media(max-width:600px){.home-overview{grid-template-columns:1fr}.home-overview .score-card{flex-direction:row;text-align:left;gap:12px}.home-overview .score-ring{width:60px;height:60px;flex:none}.home-training-grid .today-workout-card{display:flex;flex-direction:column;align-items:stretch}.home-training-grid .primary-button{font-size:11px;padding-inline:8px}.home-rewards-grid .level-orb{width:32px;height:32px;flex:none}.home-rewards-grid .level-card{gap:7px}.today-quick-actions button{font-size:11px}}
.greeting-heading h1 { font-size: clamp(30px, 4vw, 42px); }
.wave { display: inline-block; font-size: .75em; transform: rotate(-8deg); }
.day-pill { min-width: 92px; height: 70px; padding: 10px 16px; display: grid; grid-template-columns: auto auto; grid-template-rows: 1fr 1fr; align-items: center; justify-content: center; column-gap: 5px; border: 1px solid var(--border); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow-sm); }
.day-pill span { grid-row: 1; font-size: 11px; color: var(--text-secondary); }
.day-pill strong { grid-row: 1 / 3; font-size: 31px; color: var(--primary); }
.day-pill small { grid-row: 2; align-self: start; color: var(--text-muted); font-size: 10px; }

.hero-card { overflow: hidden; position: relative; padding: 27px 30px 24px; border-radius: var(--radius-lg); color: #fff; background: linear-gradient(120deg, var(--primary-light) 0%, var(--primary) 55%, var(--primary-dark) 100%); box-shadow: 0 21px 48px rgba(var(--primary-rgb), .22); }
.hero-card::after { content: "90"; position: absolute; right: -10px; top: -52px; color: rgba(255,255,255,.055); font-size: 230px; font-weight: 900; letter-spacing: -.12em; pointer-events: none; }
.hero-topline { position: relative; z-index: 1; display: flex; justify-content: space-between; color: rgba(255,255,255,.72); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.hero-topline strong { color: #fff; letter-spacing: 0; }
.project-track { height: 8px; margin: 13px 0 25px; overflow: hidden; position: relative; z-index: 1; border-radius: 99px; background: rgba(255,255,255,.15); }
.project-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #fff, #bfb3ff); box-shadow: 0 0 12px rgba(255,255,255,.45); transition: width .45s ease; }
.hero-measures { width: min(680px, 72%); position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 40px 1fr; align-items: center; gap: 12px; }
.hero-measures > div:not(.goal-arrow) { display: flex; flex-direction: column; }
.hero-measures span { color: rgba(255,255,255,.72); font-size: 22px; }
.hero-measures strong { margin: 3px 0; color: #fff; font-size: clamp(31px, 5vw, 48px); line-height: 1; letter-spacing: -.05em; }
.hero-measures strong small { font-size: 16px; letter-spacing: 0; }
.hero-measures em { color: rgba(255,255,255,.72); font-size: 11px; font-style: normal; }
.goal-arrow { color: rgba(255,255,255,.5); font-size: 28px; }
.hero-action { width: min(290px, 100%); min-height: 66px; padding: 10px 13px; position: absolute; z-index: 2; right: 25px; bottom: 24px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; text-align: left; border: 1px solid rgba(255,255,255,.23); border-radius: 17px; color: #fff; background: rgba(255,255,255,.11); backdrop-filter: blur(10px); }
.hero-action .icon-circle { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; color: var(--primary); background: #fff; font-size: 21px; }
.hero-action small, .hero-action b { display: block; }
.hero-action small { margin-bottom: 3px; color: rgba(255,255,255,.65); font-size: 8px; letter-spacing: .1em; }
.hero-action b { font-size: 12px; }

.task-card { overflow: hidden; border-radius: 22px; }
.task-item { width: 100%; min-height: 67px; padding: 10px 17px; border: 0; border-bottom: 1px solid var(--border); background: #fff; display: flex; align-items: center; gap: 13px; text-align: left; }
.task-item:last-child { border-bottom: 0; }
.task-check { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border: 1.5px solid var(--border-strong); border-radius: 9px; color: transparent; background: #fff; font-size: 13px; font-weight: 900; }
.task-copy { min-width: 0; flex: 1; }
.task-copy b { display: block; margin-bottom: 2px; font-size: 14px; }
.task-copy small { color: var(--text-muted); font-size: 10px; }
.task-meta { padding: 6px 9px; border-radius: 999px; color: var(--text-secondary); background: #f4f2f8; font-size: 9px; font-weight: 750; }
.task-item.completed { background: #fcfbff; }
.task-item.completed .task-check { color: #fff; border-color: var(--primary); background: var(--primary); }
.task-item.completed .task-copy b { color: var(--text-secondary); text-decoration: line-through; }

.metric-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 14px; }
.today-metrics { margin-top: 14px; }
.metric-card { min-height: 164px; padding: 22px; border-radius: 22px; }
.score-card { display: flex; align-items: center; gap: 22px; }
.score-card h3, .streak-card h3 { margin: 5px 0 4px; font-size: 21px; }
.score-card p, .streak-card p { margin: 0; font-size: 11px; }
.score-ring { --score: 80; width: 105px; aspect-ratio: 1; flex: 0 0 auto; padding: 9px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--primary) calc(var(--score) * 1%), var(--primary-soft) 0); }
.score-ring::before { content: ""; position: absolute; }
.score-ring > div { width: 100%; height: 100%; display: grid; place-content: center; text-align: center; border-radius: 50%; background: #fff; }
.score-ring strong { display: block; font-size: 20px; line-height: 1; }
.score-ring span { color: var(--text-muted); font-size: 10px; }
.streak-card { position: relative; }
.metric-icon { width: 34px; height: 34px; display: grid; place-items: center; position: absolute; right: 17px; top: 17px; border-radius: 11px; font-size: 18px; }
.metric-icon.warm { color: #c67415; background: var(--warning-soft); }
.streak-card h3 strong { font-size: 31px; color: #c67415; }
.mini-week, .week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.mini-week { margin-top: 18px; }
.mini-week span, .week-grid span { text-align: center; font-size: 8px; font-weight: 750; color: var(--text-muted); }
.mini-week i { width: 19px; height: 19px; margin: 4px auto 0; display: grid; place-items: center; border-radius: 7px; color: #fff; background: var(--primary); font-size: 8px; font-style: normal; }
.mini-week .missed i, .mini-week .empty i { color: var(--text-muted); background: #eeecf2; }
.mini-week .current i, .week-grid .current i { outline: 2px solid var(--primary-light); outline-offset: 2px; }
.mini-week i .app-icon { width: 11px; height: 11px; }
.coach-cta { width: 100%; min-height: 72px; margin-top: 14px; padding: 0 24px; display: grid; grid-template-columns: 45px 1fr auto; justify-items: start; text-align: left; }
.coach-cta small { display: block; margin-bottom: 2px; color: rgba(255,255,255,.68); font-size: 8px; letter-spacing: .12em; }
.button-spark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; color: var(--primary); background: #fff; font-size: 21px; }

.stats-grid { margin-bottom: 15px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.stat-card { min-height: 143px; padding: 20px; display: flex; flex-direction: column; justify-content: center; border-radius: 22px; }
.stat-card > span { color: var(--text-muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.stat-card strong { margin: 7px 0 2px; font-size: 32px; letter-spacing: -.05em; }
.stat-card strong small { font-size: 13px; letter-spacing: 0; }
.stat-card em { color: var(--text-secondary); font-size: 10px; font-style: normal; }
.stat-card.featured { color: #fff; border-color: transparent; background: linear-gradient(140deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 16px 38px rgba(89,61,201,.18); }
.stat-card.featured > span, .stat-card.featured em { color: rgba(255,255,255,.74); }
.chart-card { margin-bottom: 15px; }
.chart-wrap { height: 245px; }
#weightChart { width: 100%; height: 100%; }
.chart-legend { margin-top: 10px; padding-top: 14px; display: flex; justify-content: space-between; border-top: 1px solid var(--border); color: var(--text-secondary); font-size: 10px; }
.chart-legend span { display: flex; align-items: center; gap: 7px; }
.legend-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; }
.legend-dot.purple { background: var(--primary); }
.chart-legend strong { color: var(--success); }
.progress-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.waist-flow { padding: 10px 0 20px; display: flex; align-items: center; justify-content: space-around; text-align: center; }
.waist-flow div { display: grid; grid-template-columns: auto auto; align-items: end; column-gap: 4px; }
.waist-flow strong { font-size: 37px; line-height: .9; }
.waist-flow span { text-align: left; color: var(--text-muted); font-size: 9px; line-height: 1.2; }
.waist-flow i { color: var(--border-strong); font-size: 25px; font-style: normal; }
.waist-flow .current strong { color: var(--primary); }
.soft-progress { height: 7px; overflow: hidden; border-radius: 99px; background: var(--primary-soft); }
.soft-progress span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.adherence { color: var(--primary); font-size: 27px; }
.week-grid { margin: 31px 0 24px; }
.week-grid i { width: 29px; height: 29px; margin: 6px auto 0; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--success); font-size: 11px; font-style: normal; }
.week-grid .missed i, .week-grid .empty i { color: var(--text-muted); background: #f0eef3; }
.week-grid i .app-icon { width: 15px; height: 15px; }
.consistency-card > p { margin: 0; font-size: 11px; }
.consistency-card > p b { color: var(--text-primary); }
.photo-section { margin-top: 32px; }
.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.photo-placeholder { min-height: 165px; padding: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--border-strong); border-radius: 21px; background: rgba(255,255,255,.52); }
.photo-placeholder > span { width: 39px; height: 39px; margin-bottom: 10px; display: grid; place-items: center; border-radius: 12px; color: var(--primary); background: var(--primary-soft); font-size: 19px; }
.photo-placeholder strong { font-size: 13px; }
.photo-placeholder small { margin-top: 3px; color: var(--text-muted); font-size: 10px; }
.photo-placeholder.future { opacity: .58; }

.coach-screen { width: min(100%, 820px); margin-inline: auto; }
.coach-header { margin-bottom: 22px; display: flex; align-items: center; gap: 15px; }
.coach-header .coach-new { margin-left: auto; }
.coach-header h1 { margin: 0; font-size: 35px; }
.coach-header .eyebrow { margin-bottom: 4px; }
.coach-avatar { width: 64px; height: 64px; position: relative; display: grid; place-items: center; border-radius: 20px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 12px 28px rgba(var(--primary-rgb),.25); font-size: 26px; }
.coach-avatar i { width: 12px; height: 12px; position: absolute; right: -2px; bottom: 2px; border: 3px solid var(--background); border-radius: 50%; background: var(--success); }
.online { color: var(--success); font-size: 10px; font-weight: 700; }
.online i { width: 6px; height: 6px; display: inline-block; margin-right: 4px; border-radius: 50%; background: currentColor; }
.coach-note { margin-bottom: 15px; padding: 15px 18px; display: flex; align-items: flex-start; gap: 11px; border: 1px solid #ded7ff; border-radius: 18px; background: var(--primary-soft); }
.coach-note > span { color: var(--primary); }
.coach-note p { margin: 0; color: #5f5879; font-size: 12px; }
.coach-note b { color: var(--text-primary); }
.quick-prompts { margin-bottom: 15px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.quick-prompts::-webkit-scrollbar { display: none; }
.quick-prompts button { padding: 10px 14px; flex: 0 0 auto; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--text-secondary); font-size: 11px; font-weight: 700; }
.quick-prompts button:hover { color: var(--primary); border-color: var(--primary-light); }
.chat-card { min-height: 500px; padding: 25px; display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 28px; background: #fff; box-shadow: var(--shadow-sm); }
.chat-date { margin-bottom: 15px; display: flex; align-items: center; gap: 10px; color: var(--text-muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; }
.chat-date::before, .chat-date::after { content: ""; height: 1px; flex: 1; background: var(--border); }
.messages { flex: 1; display: flex; flex-direction: column; gap: 13px; }
.message { max-width: min(78%, 540px); display: flex; align-items: flex-end; gap: 8px; }
.message.user { align-self: flex-end; flex-direction: row-reverse; }
.message-avatar { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; color: var(--primary); background: var(--primary-soft); font-size: 11px; font-weight: 900; }
.message-bubble { padding: 12px 15px; border-radius: 17px 17px 17px 5px; color: var(--text-secondary); background: #f4f2f8; font-size: 13px; line-height: 1.5; }
.message.user .message-bubble { color: #fff; border-radius: 17px 17px 5px 17px; background: var(--primary); }
.message-time { display: block; margin-top: 4px; opacity: .55; font-size: 8px; }
.typing-dots { display: inline-flex; gap: 3px; }
.typing-dots i { width: 5px; height: 5px; border-radius: 50%; background: var(--text-muted); animation: dots 1s infinite alternate; }
.typing-dots i:nth-child(2) { animation-delay: .2s; }.typing-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes dots { to { opacity: .25; transform: translateY(-2px); } }
.chat-form { margin-top: 20px; padding: 6px 6px 6px 15px; display: flex; gap: 8px; border: 1px solid var(--border-strong); border-radius: 17px; background: #fff; }
.chat-form:focus-within { border-color: var(--primary-light); box-shadow: 0 0 0 4px var(--primary-soft); }
.chat-form input { height: 42px; padding: 0; flex: 1; border: 0; box-shadow: none !important; }
.chat-form button { width: 42px; height: 42px; flex: 0 0 auto; border: 0; border-radius: 13px; color: #fff; background: var(--primary); font-size: 20px; }
.chat-disclaimer { margin: 10px 0 -5px; text-align: center; color: var(--text-muted); font-size: 8px; }

.profile-hero { padding: 23px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; border-radius: 24px; }
.profile-avatar { width: 73px; height: 73px; overflow: hidden; display: grid; place-items: center; border-radius: 23px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 12px 28px rgba(92,64,205,.21); font-size: 22px; font-weight: 850; }
.avatar-editor { margin-bottom: 18px; padding: 14px; display: flex; align-items: center; gap: 15px; border: 1px solid var(--border); border-radius: 19px; background: var(--surface-soft); }
.avatar-editor > div:last-child { min-width: 0; display: grid; justify-items: start; gap: 5px; }
.avatar-editor small { color: var(--text-muted); font-size: 10px; }
.avatar-editor .secondary-button { margin-top: 3px; cursor: pointer; }
.profile-hero h2 { margin: 0 0 3px; font-size: 25px; }
.profile-hero p { margin: 0 0 7px; font-size: 12px; }
.profile-hero p i { width: 3px; height: 3px; margin: 0 5px; display: inline-block; vertical-align: middle; border-radius: 50%; background: var(--text-muted); }
.plan-badge { padding: 5px 9px; color: var(--success); background: var(--success-soft); }
.profile-measures { margin: 14px 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.profile-measures article { min-height: 148px; padding: 18px; display: flex; flex-direction: column; justify-content: center; position: relative; border-radius: 21px; }
.profile-measures .measure-icon { width: 30px; height: 30px; display: grid; place-items: center; position: absolute; right: 14px; top: 14px; border-radius: 10px; color: var(--primary); background: var(--primary-soft); }
.profile-measures small { color: var(--text-muted); font-size: 9px; font-weight: 850; letter-spacing: .09em; }
.profile-measures strong { margin: 7px 0 3px; font-size: 25px; }
.profile-measures em { color: var(--success); font-size: 10px; font-style: normal; }
.settings-card { padding-block: 22px 10px; }
.settings-card button { width: 100%; min-height: 69px; padding: 10px 3px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; border: 0; border-top: 1px solid var(--border); text-align: left; background: #fff; }
.settings-card .setting-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; color: var(--primary); background: var(--primary-soft); font-size: 18px; }
.settings-card button > span:nth-child(2) { display: flex; flex-direction: column; gap: 3px; }
.settings-card button b { font-size: 13px; }
.settings-card button small { color: var(--text-muted); font-size: 10px; }
.settings-card button i { color: var(--text-muted); font-size: 22px; font-style: normal; }
.wellness-note { margin-top: 14px; display: flex; align-items: flex-start; gap: 13px; background: var(--surface-soft); }
.wellness-note > span { color: var(--primary); font-size: 22px; }
.wellness-note p { margin: 0; font-size: 11px; }
.wellness-note b { color: var(--text-primary); }
.danger-text { margin: 19px auto 0; display: block; color: var(--danger); font-size: 11px; }

.onboarding { min-height: 100dvh; position: fixed; z-index: 80; inset: 0; overflow: auto; background: radial-gradient(circle at 50% 0, #ede8ff 0, transparent 28rem), var(--background); }
.onboarding-shell { width: min(calc(100% - 28px), 680px); min-height: calc(100dvh - 28px); margin: 14px auto; padding: 20px clamp(20px, 5vw, 48px) 28px; display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 32px; background: rgba(255,255,255,.89); box-shadow: var(--shadow-md); }
.onboarding-top { display: flex; align-items: center; justify-content: space-between; }
.onboarding-top > span { color: var(--text-secondary); font-size: 11px; font-weight: 800; }
.onboarding-progress { width: 100%; height: 5px; margin: 18px 0 31px; overflow: hidden; border-radius: 99px; background: #ece9f2; }
.onboarding-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary-light), var(--primary)); transition: width .35s ease; }
#onboardingForm { flex: 1; display: flex; flex-direction: column; }
.onboarding-step { flex: 1; animation: screen-in .3s ease both; }
.onboarding-step > h1 { margin: 5px 0 13px; font-size: clamp(34px, 7vw, 49px); line-height: 1.02; }
.step-intro { max-width: 510px; margin-bottom: 25px; font-size: 14px; }
.welcome-art { width: 230px; height: 205px; margin: 2px auto 22px; position: relative; display: grid; place-items: center; }
.welcome-mark { width: 128px; height: 128px; display: grid; place-items: center; position: relative; z-index: 2; border: 1px solid rgba(255,255,255,.5); border-radius: 42px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 25px 55px rgba(var(--primary-rgb),.28); transform: rotate(-5deg); }
.welcome-mark span { font-size: 42px; font-weight: 900; letter-spacing: -.08em; transform: rotate(5deg); }
.orbit { position: absolute; border: 1px solid rgba(101,73,223,.13); border-radius: 50%; }
.orbit-one { width: 205px; height: 140px; transform: rotate(18deg); }
.orbit-two { width: 190px; height: 125px; transform: rotate(-25deg); }
.welcome-art > i { position: absolute; color: var(--primary-light); font-style: normal; }
.spark-one { top: 18px; right: 23px; font-size: 25px; }.spark-two { left: 24px; bottom: 30px; font-size: 17px; opacity: .55; }
.info-note { max-width: 510px; padding: 14px 16px; display: flex; gap: 11px; border-radius: 17px; background: var(--primary-soft); }
.info-note span { color: var(--primary); }
.info-note p { margin: 0; color: #655f7d; font-size: 11px; }
.onboarding-actions { margin-top: 25px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.onboarding-actions .primary-button { width: auto; min-width: 150px; }
.demo-button { grid-column: 2; font-size: 11px; }
.goal-visual { min-height: 210px; margin: 24px 0; display: grid; grid-template-columns: 1fr 50px 1fr; align-items: center; text-align: center; border-radius: 25px; background: var(--surface-soft); }
.goal-visual > div { display: flex; flex-direction: column; }
.goal-visual span { color: var(--text-muted); font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.goal-visual strong, .goal-visual output { margin: 5px 0 0; font-size: 47px; font-weight: 850; letter-spacing: -.06em; }
.goal-visual small { color: var(--text-secondary); font-size: 12px; }
.goal-visual > i { color: var(--primary-light); font-size: 31px; font-style: normal; }
.goal-target { color: var(--primary); }
.range-field { display: block; }
.range-field > span { display: block; margin-bottom: 12px; font-size: 12px; font-weight: 750; }
.range-field input { width: 100%; accent-color: var(--primary); }
.range-field > div { margin-top: 8px; display: flex; justify-content: space-between; color: var(--text-muted); }
.range-field strong { color: var(--success); }
.selection-cards { display: grid; gap: 8px; }
.selection-cards.two-col { grid-template-columns: repeat(2, 1fr); }
.selection-cards.three-col { grid-template-columns: repeat(3, 1fr); }
.selection-cards.four-col { grid-template-columns: repeat(4, 1fr); }
.selection-cards button { min-height: 57px; padding: 10px; border: 1px solid var(--border); border-radius: 14px; color: var(--text-secondary); background: #fff; font-size: 11px; font-weight: 750; }
.selection-cards button b, .selection-cards button small { display: block; }
.selection-cards button b { margin-bottom: 3px; color: var(--text-primary); font-size: 12px; }
.selection-cards button small { color: var(--text-muted); font-weight: 500; }
.selection-cards button.selected { border-color: var(--primary-light); color: var(--primary); background: var(--primary-soft); box-shadow: inset 0 0 0 1px var(--primary-light); }
.number-options { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.number-options button { height: 45px; border: 1px solid var(--border); border-radius: 13px; color: var(--text-secondary); background: #fff; font-weight: 800; }
.number-options button.selected { color: #fff; border-color: var(--primary); background: var(--primary); }
.onboarding-step .choice-field { margin-bottom: 20px; }
.meal-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 12px; }
.meal-fields .full { grid-column: 1 / -1; }
.disclaimer-note { padding: 13px 15px; border-radius: 14px; color: var(--text-secondary); background: #f2f0f6; font-size: 10px; line-height: 1.5; }
.success-mark { width: 83px; height: 83px; margin: 16px 0 25px; display: grid; place-items: center; border-radius: 27px; color: #fff; background: linear-gradient(145deg, #50c99a, #26946c); box-shadow: 0 18px 38px rgba(46,160,118,.21); font-size: 35px; }
.plan-summary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.plan-summary > div { padding: 16px; display: flex; flex-direction: column; gap: 5px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface-soft); }
.plan-summary > div.full { grid-column: 1 / -1; }
.plan-summary span { color: var(--text-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.plan-summary strong { font-size: 17px; }

.level-card { margin: 14px 0; padding: 19px 21px; display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: 15px; border: 1px solid var(--border); border-radius: 22px; background: var(--surface); box-shadow: var(--shadow-sm); }
.level-orb { width: 52px; height: 52px; padding: 5px; display: grid; place-items: center; border-radius: 17px; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 8px 18px rgba(91,62,202,.2); }
.level-orb span { width: 100%; height: 100%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 12px; color: #fff; font-size: 20px; font-weight: 900; }
.level-copy h2 { margin: 3px 0 8px; font-size: 17px; }
.level-copy h2 strong { color: var(--primary); }
.level-copy p { margin: 6px 0 0; font-size: 9px; }
.level-copy p b { color: var(--text-primary); }
.level-progress { width: 100%; height: 6px; overflow: hidden; border-radius: 99px; background: var(--primary-soft); }
.level-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary-light), var(--primary)); }
.today-workout-card { margin-bottom: 14px; padding: 21px; display: grid; grid-template-columns: 96px 1fr auto; align-items: center; gap: 19px; border: 1px solid #ded8f6; border-radius: 24px; background: linear-gradient(135deg, #fff, #f7f4ff); box-shadow: var(--shadow-sm); }
.meal-today-card{margin-bottom:18px;padding:20px;border:1px solid #ded8f6;border-radius:24px;background:linear-gradient(135deg,#fff,#f8f6ff);box-shadow:var(--shadow-sm)}
.meal-card-heading{grid-template-columns:44px 1fr auto;align-items:center;gap:12px}.meal-card-heading h2{margin:2px 0;font-size:21px}.meal-card-heading p{margin:0;font-size:10px}.meal-day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.meal-slot{min-height:65px;padding:9px;border:1px solid var(--border);border-radius:14px;background:#fff;text-align:left}.meal-slot strong,.meal-slot small{display:block}.meal-slot strong{font-size:10px}.meal-slot small{margin-top:4px;color:var(--text-muted);font-size:9px}.meal-slot.logged{border-color:#bdb1ef;background:var(--primary-soft)}.meal-today-card>.primary-button{width:100%}
.meal-sheet{max-width:650px}.meal-type-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:15px}.meal-type-tabs button{flex:1;min-width:78px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff;font-size:10px;font-weight:800}.meal-type-tabs button.selected{color:var(--primary);border-color:var(--primary-light);background:var(--primary-soft)}.meal-quick-list{display:flex;gap:7px;overflow:auto;margin-bottom:12px}.meal-quick-list button{white-space:nowrap;padding:8px 10px;border:0;border-radius:999px;color:var(--primary);background:var(--primary-soft);font-size:9px;font-weight:800}.meal-privacy-note{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:9px}.meal-privacy-note svg{width:17px}.history-sheet{max-height:90dvh;overflow:auto}.meal-weekly-summary{padding:14px;border-radius:16px;background:var(--primary-soft);font-size:11px}.meal-history-list{display:grid;gap:9px;margin:14px 0}.meal-history-item{padding:13px;border:1px solid var(--border);border-radius:15px}.meal-history-item header{display:flex;justify-content:space-between;gap:10px}.meal-history-item p{margin:6px 0;font-size:10px}.meal-history-actions{display:flex;gap:7px}.meal-history-actions button{padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:9px;font-weight:800}
.workout-visual { width: 92px; height: 92px; overflow: hidden; position: relative; display: grid; place-items: center; border-radius: 25px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); }
.workout-visual span { position: relative; z-index: 1; font-size: 31px; }
.workout-visual i { width: 72px; height: 72px; position: absolute; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.workout-visual i:nth-child(3) { width: 52px; height: 52px; }.workout-visual i:nth-child(4) { width: 112px; height: 112px; }
.today-workout-copy h2 { margin: 4px 0; font-size: 23px; }
.today-workout-copy p { margin: 0 0 9px; font-size: 11px; }
.today-workout-copy > div { display: flex; gap: 6px; }
.today-workout-copy > div span { padding: 5px 8px; border-radius: 999px; color: var(--text-secondary); background: #eeebf7; font-size: 8px; font-weight: 750; }

.progress-discovery-grid { margin-top: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.feature-link-card { min-height: 105px; padding: 17px; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--border); border-radius: 21px; text-align: left; background: #fff; box-shadow: var(--shadow-sm); }
.feature-link-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; color: var(--primary); background: var(--primary-soft); font-size: 20px; }
.feature-link-card > span:nth-child(2) { display: flex; flex-direction: column; }
.feature-link-card small { color: var(--text-muted); font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.feature-link-card b { margin: 3px 0; font-size: 15px; }
.feature-link-card em { color: var(--text-secondary); font-size: 9px; font-style: normal; }
.feature-link-card > i { color: var(--text-muted); font-size: 21px; font-style: normal; }
.achievement-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.achievement-preview-grid .achievement-card { min-height: 165px; }

.achievement-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; }
.achievement-card { min-height: 180px; padding: 18px; display: grid; grid-template-columns: 46px 1fr; align-items: start; gap: 13px; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: var(--shadow-sm); }
.achievement-card.locked { opacity: .58; box-shadow: none; }
.achievement-icon { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; color: var(--text-muted); background: #f0eef4; font-size: 18px; font-weight: 900; }
.achievement-card.earned .achievement-icon { color: #fff; background: linear-gradient(145deg, #d6a23a, #f0c566); box-shadow: 0 8px 18px rgba(193,139,37,.2); }
.achievement-card.in-progress .achievement-icon { color: var(--primary); background: var(--primary-soft); }
.achievement-card small { color: var(--text-muted); font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.achievement-card.earned small { color: #b07918; }
.achievement-card h3 { margin: 4px 0; font-size: 15px; }
.achievement-card p { min-height: 32px; margin: 0 0 12px; font-size: 9px; }
.achievement-card em { display: block; margin-top: 5px; color: var(--text-muted); font-size: 8px; font-style: normal; }
.achievement-progress { height: 5px; overflow: hidden; border-radius: 99px; background: #eeeaf4; }
.achievement-progress span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.achievement-card.earned .achievement-progress span { background: #d6a23a; }

.journey-timeline { position: relative; }
.journey-timeline::before { content: ''; width: 2px; position: absolute; left: 25px; top: 25px; bottom: 35px; background: linear-gradient(var(--primary), var(--border)); }
.journey-event { min-height: 115px; position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 16px; }
.journey-marker { position: relative; z-index: 1; }
.journey-marker span { width: 52px; height: 52px; display: grid; place-items: center; border: 5px solid var(--background); border-radius: 18px; color: var(--primary); background: var(--primary-soft); font-size: 14px; font-weight: 900; }
.journey-event.achievement .journey-marker span { color: #a76d10; background: var(--warning-soft); }
.journey-event.workout .journey-marker span { color: #fff; background: var(--primary); }
.journey-copy { margin-bottom: 17px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.journey-copy > small { color: var(--primary); font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.journey-copy h3 { margin: 4px 0; font-size: 15px; }
.journey-copy p { margin: 0; font-size: 10px; }
.journey-photo { height: 95px; margin-top: 12px; display: grid; place-content: center; text-align: center; border-radius: 14px; color: var(--primary); background: linear-gradient(135deg, #eeeaff, #f9f8ff); }
.journey-photo span { font-size: 23px; }.journey-photo small { margin-top: 4px; color: var(--text-muted); }

.exercise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; }
.exercise-card { min-height: 105px; padding: 12px; display: grid; grid-template-columns: 78px 1fr auto; align-items: center; gap: 12px; border: 1px solid var(--border); border-radius: 20px; text-align: left; background: #fff; box-shadow: var(--shadow-sm); }
.exercise-thumb { width: 78px; height: 78px; overflow: hidden; position: relative; display: grid; place-items: center; border-radius: 16px; color: var(--primary); background: linear-gradient(145deg, #ebe6ff, #f8f6ff); }
.exercise-thumb i { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid #d8cffc; border-radius: 14px; font-size: 20px; font-style: normal; font-weight: 850; }
.exercise-thumb small { position: absolute; right: 5px; top: 5px; padding: 4px 6px; border-radius: 99px; color: #926314; background: var(--warning-soft); font-size: 6px; font-weight: 850; }
.exercise-thumb.compact { width: 50px; height: 50px; border-radius: 14px; }.exercise-thumb.compact i { width: 31px; height: 31px; font-size: 14px; }
.exercise-copy { min-width: 0; display: flex; flex-direction: column; }
.exercise-copy small { color: var(--primary); font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.exercise-copy b { margin: 4px 0; font-size: 14px; }
.exercise-copy em { overflow: hidden; color: var(--text-muted); font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.exercise-arrow { color: var(--text-muted); font-size: 22px; }
.exercise-sheet { width: min(100%, 690px); }
.exercise-media { min-height: 210px; margin-bottom: 20px; position: relative; display: grid; place-items: center; overflow: hidden; border-radius: 22px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); }
.exercise-media::before, .exercise-media::after { content: ''; width: 230px; height: 230px; position: absolute; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.exercise-media::after { width: 150px; height: 150px; }
.exercise-media span { position: relative; z-index: 1; font-size: 48px; }
.exercise-media img,.exercise-media video{position:relative;z-index:1;width:100%;height:100%;max-height:360px;object-fit:contain;background:#171229}
.exercise-prescription { margin-bottom: 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.exercise-prescription div { padding: 13px 8px; text-align: center; border-radius: 14px; background: var(--surface-soft); }
.exercise-prescription small { display: block; color: var(--text-muted); font-size: 8px; font-weight: 800; }
.exercise-prescription strong { display: block; margin-top: 4px; font-size: 14px; }
.instruction-block { margin-bottom: 18px; }
.instruction-block h3 { margin-bottom: 10px; font-size: 14px; }
.instruction-list { margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.instruction-list li { min-height: 36px; padding: 7px 0 7px 36px; position: relative; color: var(--text-secondary); font-size: 11px; line-height: 1.45; counter-increment: steps; }
.instruction-list li::before { content: counter(steps); width: 25px; height: 25px; position: absolute; left: 0; top: 4px; display: grid; place-items: center; border-radius: 8px; color: var(--primary); background: var(--primary-soft); font-size: 9px; font-weight: 850; }
.mistake-list { margin: 0; padding-left: 18px; color: var(--text-secondary); font-size: 11px; line-height: 1.8; }
.alternative-chips { margin-bottom: 20px; display: flex; flex-wrap: wrap; gap: 7px; }
.alternative-chips button { padding: 8px 11px; border: 1px solid var(--border); border-radius: 999px; color: var(--primary); background: #fff; font-size: 9px; font-weight: 750; }

.workout-hero { margin-bottom: 14px; padding: 27px; position: relative; overflow: hidden; border-radius: 26px; color: #fff; background: linear-gradient(135deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 18px 44px rgba(var(--primary-rgb),.2); }
.workout-hero::after { content: 'A'; position: absolute; right: 24px; top: -50px; color: rgba(255,255,255,.08); font-size: 190px; font-weight: 900; }
.workout-hero .eyebrow { color: rgba(255,255,255,.66); }
.workout-hero h2 { margin: 0 0 5px; font-size: 32px; }
.workout-hero p { max-width: 520px; margin-bottom: 20px; color: rgba(255,255,255,.73); font-size: 11px; }
.workout-meta { display: flex; flex-wrap: wrap; gap: 7px; }
.workout-meta span { padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.12); font-size: 9px; font-weight: 750; }
.workout-list { overflow: hidden; margin-bottom: 14px; border: 1px solid var(--border); border-radius: 22px; background: #fff; box-shadow: var(--shadow-sm); }
.workout-exercise-row { min-height: 85px; padding: 12px 15px; display: grid; grid-template-columns: 30px 50px 1fr 35px; align-items: center; gap: 11px; border-bottom: 1px solid var(--border); }
.workout-exercise-row:last-child { border-bottom: 0; }
.workout-order { color: var(--text-muted); font-size: 9px; font-weight: 850; }
.workout-exercise-row h3 { margin: 2px 0; font-size: 13px; }.workout-exercise-row small { color: var(--primary); font-size: 7px; font-weight: 800; }.workout-exercise-row p { margin: 0; font-size: 9px; }
.workout-exercise-row > button { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: var(--text-muted); }
.workout-start-bar { padding: 13px; position: sticky; bottom: 12px; border: 1px solid var(--border); border-radius: 20px; background: rgba(255,255,255,.92); box-shadow: var(--shadow-md); backdrop-filter: blur(18px); }
.today-workout-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.workout-manage-actions { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.workout-manage-actions button { flex: 1 1 140px; }
.workout-choice-list, .workout-schedule-list { display: grid; gap: 10px; }
.workout-choice-card, .workout-schedule-card { width: 100%; padding: 16px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; border: 1px solid var(--border); border-radius: 18px; text-align: left; color: var(--text); background: #fff; box-shadow: var(--shadow-sm); }
.workout-choice-card:hover, .workout-schedule-card:hover { border-color: var(--primary-light); transform: translateY(-1px); }
.workout-choice-card strong, .workout-schedule-card strong { display: block; margin: 2px 0 4px; font-size: 14px; }
.workout-choice-card small, .workout-choice-card span, .workout-schedule-card small, .workout-schedule-card span { color: var(--text-muted); font-size: 9px; }
.workout-choice-card > span, .workout-schedule-card > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: var(--primary); background: var(--primary-soft); }
.workout-schedule-card.today { border-color: var(--primary-light); background: linear-gradient(135deg, #fff, #f6f3ff); }
.workout-schedule-card.skipped { opacity: .72; }
.workout-schedule-date { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.workout-schedule-date em { padding: 4px 7px; border-radius: 999px; color: var(--primary); background: var(--primary-soft); font-size: 8px; font-style: normal; font-weight: 800; }
.workout-target-list { display: grid; gap: 9px; }
.workout-target-list .workout-choice-card { cursor: pointer; }
.personal-exercise-badge { margin-left: 5px; color: var(--primary); font-size: 7px; font-weight: 850; }

.workout-player { min-height: calc(100dvh - 175px); display: flex; flex-direction: column; }
.player-progress { margin-bottom: 20px; display: flex; gap: 5px; }
.player-progress span { height: 5px; flex: 1; border-radius: 99px; background: #e8e4ee; }.player-progress span.done, .player-progress span.active { background: var(--primary); }.player-progress span.active { opacity: .55; }
.player-card { flex: 1; padding: 26px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 28px; text-align: center; background: #fff; box-shadow: var(--shadow-sm); }
.player-card .exercise-media { width: min(100%, 430px); min-height: 230px; }
.player-card .eyebrow { margin-bottom: 6px; }.player-card h2 { margin-bottom: 5px; font-size: 31px; }.player-card > p { margin-bottom: 22px; font-size: 11px; }
.set-display { margin-bottom: 25px; }
.set-display strong { display: block; color: var(--primary); font-size: 58px; line-height: 1; letter-spacing: -.06em; }.set-display span { color: var(--text-secondary); font-size: 11px; }
.rest-timer { --rest: 100; width: 150px; aspect-ratio: 1; margin-bottom: 23px; padding: 10px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--primary) calc(var(--rest) * 1%), var(--primary-soft) 0); }
.rest-timer div { width: 100%; height: 100%; display: grid; place-content: center; border-radius: 50%; background: #fff; }.rest-timer strong { font-size: 38px; }.rest-timer span { color: var(--text-muted); font-size: 9px; }
.player-actions { width: min(100%, 440px); display: flex; flex-direction: column; gap: 8px; }
.workout-summary { text-align: center; }
.summary-mark { width: 82px; height: 82px; margin: 5px auto 20px; display: grid; place-items: center; border-radius: 27px; color: #fff; background: linear-gradient(145deg, var(--success), #25825f); box-shadow: 0 15px 34px rgba(44,155,113,.2); font-size: 35px; }
.summary-stats { margin: 24px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.summary-stats div { padding: 15px 8px; border-radius: 15px; background: var(--surface-soft); }.summary-stats strong, .summary-stats span { display: block; }.summary-stats strong { font-size: 20px; }.summary-stats span { margin-top: 4px; color: var(--text-muted); font-size: 8px; }

.mission-sheet { width: min(100%, 470px); text-align: center; }
.mission-burst { width: 105px; height: 105px; margin: 5px auto 23px; position: relative; display: grid; place-items: center; }
.mission-burst > span { width: 74px; height: 74px; display: grid; place-items: center; position: relative; z-index: 1; border-radius: 24px; color: #fff; background: linear-gradient(145deg, var(--primary-light), var(--primary-dark)); box-shadow: 0 16px 34px rgba(83,55,194,.24); font-size: 30px; }
.mission-burst i { width: 93px; height: 93px; position: absolute; border: 1px solid #ddd6ff; border-radius: 35px; transform: rotate(15deg); }.mission-burst i:nth-child(2) { transform: rotate(32deg); opacity: .6; }.mission-burst i:nth-child(3) { width: 65px; height: 65px; transform: rotate(-20deg); border-color: rgba(255,255,255,.3); z-index: 2; }
.mission-sheet h2 { margin-bottom: 7px; font-size: 25px; }.mission-xp { display: block; color: var(--primary); font-size: 29px; }
.mission-streak { margin: 22px 0; padding: 14px; display: flex; align-items: center; justify-content: center; gap: 11px; border-radius: 16px; background: var(--warning-soft); }.mission-streak > span { color: #bf731b; font-size: 23px; }.mission-streak div { text-align: left; }.mission-streak small, .mission-streak b { display: block; }.mission-streak small { color: #b57932; font-size: 8px; font-weight: 850; }.mission-streak b { font-size: 14px; }
.mission-actions { display: flex; flex-direction: column; gap: 8px; }.mission-actions .secondary-button { width: 100%; }.mission-actions .secondary-button span { color: var(--success); font-size: 10px; }
.evidence-placeholder { min-height: 190px; display: grid; place-content: center; text-align: center; border: 1px dashed var(--primary-light); border-radius: 20px; color: var(--primary); background: linear-gradient(145deg, #ece8ff, #faf9ff); }.evidence-placeholder span { font-size: 35px; }.evidence-placeholder strong { margin: 8px 0 3px; font-size: 13px; }.evidence-placeholder small { max-width: 260px; color: var(--text-muted); font-size: 9px; }

@keyframes mission-pop { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: scale(1); } }
.celebration-layer:not([hidden]) .mission-burst { animation: mission-pop .35s ease both; }
.auth-view{min-height:100dvh;display:grid;place-items:center;padding:10px;background:radial-gradient(circle at top,#eee9ff 0,transparent 48%),var(--background)}
.auth-card{width:min(100%,480px);background:var(--surface);border:1px solid var(--border);border-radius:32px;padding:clamp(24px,6vw,42px);box-shadow:0 24px 70px rgba(54,36,123,.14)}
.auth-brand{margin-bottom:34px;justify-content:flex-start}.auth-card h1{font-size:clamp(2rem,7vw,3rem);line-height:1.04;margin:8px 0 12px}.auth-intro{color:var(--text-secondary);line-height:1.6;margin:0 0 24px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--primary-soft);padding:5px;border-radius:14px;margin-bottom:22px}.auth-tabs button{border:0;background:transparent;border-radius:10px;padding:11px;color:var(--text-secondary);font-weight:800;cursor:pointer}.auth-tabs button.active{background:var(--surface);color:var(--primary);box-shadow:0 5px 14px rgba(74,51,154,.1)}
.auth-form{display:grid;gap:15px}.auth-form .primary-button{margin-top:4px}.auth-link{justify-self:end;padding:2px;border:0;background:transparent;color:var(--primary);font:inherit;font-size:.88rem;font-weight:750;text-decoration:none;cursor:pointer}.auth-link:hover{text-decoration:underline}.auth-error,.auth-notice{border-radius:12px;padding:11px 13px;margin:16px 0 0;font-size:.9rem}.auth-error{color:#a92626;background:#fff0f0;border:1px solid #ffd1d1}.auth-notice{color:#17643a;background:#edf9f2;border:1px solid #bee7cf}
.auth-loading{min-height:210px;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--text-secondary)}.loading-spinner{width:34px;height:34px;border:3px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
.logout-button{width:100%;margin-top:12px}.app-shell.is-syncing{opacity:.72;pointer-events:none}.offline-indicator{background:#fff6da;color:#705100}
.challenge-screen{max-width:1100px;margin:0 auto}.challenge-tabs{margin:0 0 20px}.challenge-list{display:grid;gap:14px}.challenge-card{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;cursor:pointer;border:1px solid var(--border);transition:.2s transform,.2s box-shadow}.challenge-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.challenge-card-icon,.challenge-detail-hero .challenge-score{color:var(--primary)}.challenge-card-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--primary-soft)}.challenge-card-icon svg{width:25px}.challenge-card-copy h2{font-size:1.05rem;margin:4px 0}.challenge-card-copy p{margin:0 0 10px;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.challenge-card-copy em{display:block;margin-top:7px;font-size:.78rem;color:var(--text-muted);font-style:normal}.challenge-invite{padding:22px}.challenge-invite h2{margin:6px 0}.challenge-sheet{max-height:92vh;overflow:auto}.wizard-progress{height:6px;background:var(--primary-soft);border-radius:99px;overflow:hidden}.wizard-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary-light),var(--primary));transition:.2s}.challenge-step-label{font-size:.78rem;color:var(--text-muted);margin:9px 0 18px}.challenge-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.challenge-template{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:14px;text-align:left;display:grid;gap:6px;color:var(--text-primary)}.challenge-template.selected,.challenge-visibility button.selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.challenge-template svg{width:24px}.challenge-template small{color:var(--text-muted)}.challenge-visibility{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.challenge-visibility button{border:1px solid var(--border);background:var(--surface);padding:14px 8px;border-radius:14px}.challenge-preview-card,.challenge-detail-hero{padding:22px;border-radius:20px;background:linear-gradient(145deg,var(--primary-soft),var(--surface));border:1px solid var(--primary-light)}.challenge-preview-card h2,.challenge-preview-card h3{margin:6px 0}.challenge-preview-card>div{display:flex;gap:8px}.challenge-preview-card>div span{background:var(--surface);border-radius:99px;padding:7px 10px;font-size:.78rem}.challenge-actions{display:flex;gap:10px;margin:14px 0}.challenge-actions>*{flex:1}.challenge-score{display:flex;align-items:end;justify-content:space-between;margin:18px 0 8px}.challenge-score strong{font-size:2rem}.challenge-ranking,.challenge-feed{margin-top:22px}.challenge-ranking>div{display:grid;grid-template-columns:34px 1fr auto;padding:12px 4px;border-bottom:1px solid var(--border)}.challenge-ranking>div>b{color:var(--primary)}.challenge-feed article{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--border)}.challenge-feed article>span{color:var(--primary)}.challenge-feed article button{border:0;background:var(--primary-soft);border-radius:50%;width:34px;height:34px;color:var(--primary)}

.appearance-field{margin:0;padding:0;border:0}.appearance-field legend{margin-bottom:10px;font-size:12px;font-weight:850;color:var(--text-secondary)}.appearance-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.appearance-modes label{cursor:pointer}.appearance-modes input,.appearance-colors input{position:absolute;opacity:0;pointer-events:none}.appearance-modes span{min-height:48px;display:grid;place-items:center;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);font-size:11px;font-weight:800}.appearance-modes input:checked+span{color:var(--primary);border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.appearance-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.appearance-colors label{min-width:0;display:grid;justify-items:center;gap:6px;cursor:pointer}.appearance-colors label>span{width:38px;height:38px;border:4px solid var(--surface);outline:1px solid var(--border);border-radius:50%;background:var(--swatch);transition:.18s transform,.18s outline}.appearance-colors label small{font-size:8px;color:var(--text-muted)}.appearance-colors input:checked+span{outline:3px solid var(--swatch);outline-offset:2px;transform:scale(.9)}

.challenge-feed .challenge-feed-event{position:relative;align-items:start}.challenge-feed-icon{padding-top:5px}.challenge-feed-copy p{margin:2px 0 7px}.reaction-menu-button{font-size:19px;line-height:1}.reaction-picker{position:absolute;z-index:3;right:0;top:45px;display:flex;gap:3px;padding:7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-md);animation:reaction-float .18s ease both}.reaction-picker[hidden]{display:none}.challenge-feed .reaction-picker button{width:36px;height:36px;background:transparent;font-size:20px;transition:.15s transform}.challenge-feed .reaction-picker button:hover{transform:translateY(-5px) scale(1.2)}.reaction-counts{min-height:25px;display:flex;flex-wrap:wrap;gap:5px}.challenge-feed .reaction-count{width:auto;height:25px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);color:var(--text-secondary);font-size:11px}.challenge-feed .reaction-count.active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.reaction-count span{font-size:14px}.reaction-count b{font-size:10px}@keyframes reaction-float{from{opacity:0;transform:translateY(7px) scale(.95)}to{opacity:1;transform:none}}

:root[data-theme="dark"] .task-item,:root[data-theme="dark"] .task-check,:root[data-theme="dark"] .score-ring>div,:root[data-theme="dark"] .quick-prompts button,:root[data-theme="dark"] .chat-card,:root[data-theme="dark"] .chat-form,:root[data-theme="dark"] .settings-card button,:root[data-theme="dark"] .selection-cards button,:root[data-theme="dark"] .number-options button,:root[data-theme="dark"] .meal-slot,:root[data-theme="dark"] .meal-type-tabs button,:root[data-theme="dark"] .meal-history-actions button,:root[data-theme="dark"] .feature-link-card,:root[data-theme="dark"] .achievement-card,:root[data-theme="dark"] .journey-copy,:root[data-theme="dark"] .exercise-card,:root[data-theme="dark"] .alternative-chips button,:root[data-theme="dark"] .workout-list,:root[data-theme="dark"] .workout-exercise-row>button,:root[data-theme="dark"] .workout-choice-card,:root[data-theme="dark"] .workout-schedule-card{background:var(--surface)}
:root[data-theme="dark"] .onboarding-shell,:root[data-theme="dark"] .workout-start-bar{background:rgba(24,21,33,.94)}
:root[data-theme="dark"] .photo-placeholder{background:rgba(255,255,255,.03)}
.challenge-public-hero{background:linear-gradient(135deg,var(--primary-light),var(--primary-dark));box-shadow:0 28px 70px rgba(var(--primary-rgb),.25)}

@media (max-width:520px){.appearance-colors{grid-template-columns:repeat(3,1fr);row-gap:16px}.reaction-picker{right:-2px;max-width:calc(100vw - 56px);overflow-x:auto}.challenge-feed .reaction-picker button{flex:0 0 34px}}

.challenge-main-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0 0}.challenge-main-actions .app-icon{width:18px}.challenge-ranking-preview{margin-top:22px}.challenge-ranking-preview>div:first-child{display:flex;align-items:center;justify-content:space-between}.challenge-ranking-preview>div:first-child h3{margin:0}.challenge-ranking-preview .ranking-row{padding-inline:0}.challenge-auto-note{margin:0;padding:11px;border-radius:13px;background:var(--primary-soft);font-size:10px}
.challenge-progress-guide{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:17px;background:var(--surface-soft)}.challenge-progress-guide h3{margin:0 0 8px;font-size:12px}.challenge-progress-guide article{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:9px;padding:8px 0}.challenge-progress-guide article+article{border-top:1px solid var(--border)}.challenge-progress-guide article>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;color:var(--primary);background:var(--primary-soft)}.challenge-progress-guide svg{width:16px}.challenge-progress-guide strong,.challenge-progress-guide small{display:block}.challenge-progress-guide strong{font-size:11px}.challenge-progress-guide small{margin-top:2px;color:var(--text-muted);font-size:9px;line-height:1.4}.mission-challenge{margin:0 0 14px;padding:11px;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:9px;border:1px solid rgba(var(--primary-rgb),.25);border-radius:14px;color:var(--primary);background:var(--primary-soft);text-align:left}.mission-challenge[hidden]{display:none}.mission-challenge>span{display:grid;place-items:center}.mission-challenge svg{width:20px}.mission-challenge small,.mission-challenge strong{display:block}.mission-challenge small{font-size:8px;letter-spacing:.08em}.mission-challenge strong{margin-top:2px;font-size:10px}

.ranking-sheet{width:min(100%,780px);max-height:94dvh}.ranking-updated{text-align:center;font-size:10px}.ranking-podium{min-height:255px;margin:18px 0 28px;display:flex;align-items:end;justify-content:center;gap:4px}.podium-place{width:min(30%,150px);display:grid;justify-items:center;text-align:center}.podium-place>strong{width:100%;margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.podium-place>div{width:100%;min-height:110px;padding:17px 8px;display:grid;place-content:start center;border-radius:16px 16px 5px 5px;color:#fff;background:linear-gradient(180deg,var(--primary-light),var(--primary-dark));box-shadow:0 16px 26px rgba(var(--primary-rgb),.2)}.podium-place.place-1>div{min-height:155px}.podium-place.place-3>div{min-height:88px;opacity:.82}.podium-place>div span{display:inline-grid;place-items:center;min-width:38px;height:27px;margin:auto;border-radius:99px;background:rgba(0,0,0,.18);font-size:11px;font-weight:900}.podium-place>div b{margin-top:12px;font-size:18px}.podium-place>div small{font-size:8px}.ranking-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border:2px solid var(--surface);border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--primary-light),var(--primary-dark));font-size:10px;font-weight:900;object-fit:cover}.ranking-avatar.large{width:58px;height:58px;border:3px solid var(--primary)}.ranking-list{overflow:hidden;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.ranking-row{min-height:68px;padding:10px 13px;display:grid;grid-template-columns:28px 40px minmax(0,1fr) auto auto;align-items:center;gap:9px;border-bottom:1px solid var(--border)}.ranking-row:last-child{border-bottom:0}.ranking-row.current{background:var(--primary-soft)}.ranking-position{color:var(--primary);font-size:13px;margin-left: 5px;}.ranking-row>div{min-width:0}.ranking-row>div strong,.ranking-row>div small,.ranking-row>span b,.ranking-row>span small{display:block}.ranking-row>div strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.ranking-row>div small,.ranking-row>span small{color:var(--text-muted);font-size:10px;margin-right:5px;}.ranking-row>span{text-align:right}.ranking-row>span b{font-size:13px;margin-right: 5px;}.ranking-encourage{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:11px;color:var(--primary);background:var(--primary-soft)}.ranking-encourage svg{width:17px}

.encouragement-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.encouragement-options button{min-height:108px;padding:14px;display:grid;justify-items:start;gap:4px;border:1px solid var(--border);border-radius:17px;color:var(--text-primary);background:var(--surface-soft);text-align:left}.encouragement-options button:hover{border-color:var(--primary);background:var(--primary-soft)}.encouragement-options button>span{font-size:24px}.encouragement-options b{font-size:12px}.encouragement-options small{color:var(--text-muted);font-size:9px}

.notifications-sheet{width:min(100%,620px)}.notifications-toolbar{margin:-8px 0 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:10px}.notifications-list{display:grid;gap:7px}.notification-item{width:100%;min-height:78px;padding:12px;display:grid;grid-template-columns:42px 1fr 8px;align-items:start;gap:11px;border:1px solid var(--border);border-radius:16px;color:var(--text-primary);background:var(--surface);text-align:left}.notification-item.unread{border-color:rgba(var(--primary-rgb),.35);background:var(--primary-soft)}.notification-kind{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;color:var(--primary);background:var(--surface)}.notification-kind svg{width:19px}.notification-item>span:nth-child(2){min-width:0}.notification-item b,.notification-item small,.notification-item time{display:block}.notification-item b{font-size:11px}.notification-item small{margin:4px 0;color:var(--text-secondary);font-size:9px;line-height:1.45}.notification-item time{color:var(--text-muted);font-size:8px}.notification-item>i{width:7px;height:7px;margin-top:7px;border-radius:50%;background:var(--primary)}.notifications-empty{padding:30px;text-align:center}

@media(max-width:520px){.ranking-sheet{padding-inline:18px}.ranking-podium{min-height:220px}.podium-place>div{min-height:90px}.podium-place.place-1>div{min-height:130px}.podium-place>strong{font-size:9px}.ranking-avatar.large{width:50px;height:50px}.encouragement-options{grid-template-columns:1fr}.challenge-main-actions{grid-template-columns:1fr}.notifications-toolbar{align-items:flex-start}.ranking-row{grid-template-columns:24px 36px minmax(0,1fr) auto auto;padding-inline:8px;gap:7px}.ranking-avatar{width:34px;height:34px}}
@media(max-width:600px){.challenge-template-grid{grid-template-columns:1fr}.challenge-card{grid-template-columns:44px 1fr auto}.challenge-card-icon{width:42px;height:42px}.bottom-nav button span:last-child{font-size:.68rem}}
.challenge-ranking>div:has(button){grid-template-columns:34px 1fr auto 34px}.challenge-ranking button{width:30px;height:30px;border:0;border-radius:50%;background:var(--primary-soft);color:var(--primary)}
.ranking-actions{display:flex;align-items:center;gap:5px}.ranking-actions button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:11px}.ranking-remove{color:var(--danger);background:#fff0f3}.ranking-remove svg{width:17px}.challenge-danger-button{color:var(--danger);border-color:#f0c8d2;background:#fff8fa}.challenge-danger-button:hover{background:#fff0f3}
.challenge-management{margin-top:22px}.challenge-management h3{margin-bottom:9px}.challenge-management article{min-height:58px;padding:10px 4px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.challenge-management strong,.challenge-management small{display:block}.challenge-management strong{font-size:13px}.challenge-management small{margin-top:3px;color:var(--text-muted);font-size:11px}.challenge-management button{min-height:34px;padding:0 11px;border:1px solid #f0c8d2;border-radius:11px;color:var(--danger);background:#fff8fa;font-size:10px;font-weight:800}

/* Relatorio integrado de alimentacao e humor. */
.wellness-report-card{margin-top:16px;padding:22px}.wellness-report-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.wellness-report-heading h2{margin:3px 0;font-size:22px}.wellness-report-heading p{margin:0;color:var(--text-muted);font-size:11px}.wellness-views{width:max-content;max-width:100%;display:flex;gap:5px;margin:18px 0;padding:4px;border-radius:13px;background:var(--surface-soft)}.wellness-views button{padding:9px 14px;border:0;border-radius:10px;color:var(--text-muted);background:transparent;font-size:10px;font-weight:800}.wellness-views button.active{color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm)}.wellness-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wellness-panels.single{grid-template-columns:1fr}.wellness-panel{min-width:0;padding:17px;border:1px solid var(--border);border-radius:18px;background:var(--surface-soft)}.wellness-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wellness-panel header small,.wellness-panel header strong,.wellness-panel header span{display:block}.wellness-panel header small{color:var(--primary);font-size:8px;font-weight:900;letter-spacing:.08em}.wellness-panel header strong{margin:3px 0;font-size:24px}.wellness-panel header span{color:var(--text-muted);font-size:9px}.wellness-trend{padding:6px 9px;border-radius:999px;font-size:9px;font-style:normal;font-weight:900}.wellness-trend.success{color:#157a58;background:#dff8ee}.wellness-trend.warning{color:#9a5a00;background:#fff0d8}.wellness-trend.neutral{color:var(--primary);background:var(--primary-soft)}.wellness-bars{height:72px;margin:16px 0 12px;display:flex;align-items:flex-end;gap:3px;border-bottom:1px solid var(--border)}.wellness-bars>span{height:100%;min-width:3px;flex:1;display:flex;align-items:flex-end}.wellness-bars i{width:100%;height:var(--bar);min-height:4px;border-radius:5px 5px 1px 1px;background:linear-gradient(180deg,var(--primary-light),var(--primary))}.wellness-panel.mood .wellness-bars i{background:linear-gradient(180deg,#ffb45f,#e36f55)}.wellness-panel>p{min-height:30px;margin:0 0 10px;color:var(--text-secondary);font-size:10px;line-height:1.5}.wellness-panel ul{margin:0;padding-left:17px;color:var(--text-primary);font-size:9px;line-height:1.55}.wellness-empty{margin:18px 0;color:var(--text-muted);font-size:10px}.wellness-relation{margin-top:12px;padding:13px;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;border-radius:15px;background:var(--primary-soft)}.wellness-relation>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;color:var(--primary);background:var(--surface)}.wellness-relation svg{width:18px}.wellness-relation p{margin:0;color:var(--text-secondary);font-size:10px;line-height:1.45}.wellness-relation strong{display:block;color:var(--text-primary);font-size:11px}.wellness-disclaimer{display:block;margin-top:11px;color:var(--text-muted);font-size:8px;line-height:1.5}.meal-quick-label{display:block;margin-bottom:7px;color:var(--text-muted);font-size:8px;font-weight:900;letter-spacing:.08em}
:root[data-theme="dark"] .wellness-views button.active,:root[data-theme="dark"] .wellness-relation>span{background:var(--surface)}
@media(max-width:700px){.wellness-report-heading{display:grid}.wellness-periods{width:100%}.wellness-periods button{flex:1}.wellness-panels{grid-template-columns:1fr}.wellness-report-card{padding:16px}.wellness-views{width:100%}.wellness-views button{min-width:0;flex:1;padding-inline:8px}}

/* Virtual economy: symbolic rewards only. */
.virtual-home-card{display:flex;align-items:center;gap:14px;width:100%;margin:18px 0;padding:20px;border:1px solid var(--border);border-radius:22px;background:var(--surface);text-align:left;box-shadow:var(--shadow-sm)}
.virtual-home-card>span:nth-child(2){flex:1;min-width:0}.virtual-home-card b,.virtual-home-card small{display:block}.virtual-home-card small{margin-top:5px;color:var(--text-secondary)}.virtual-home-card svg{width:24px;height:24px;color:var(--primary)}
.virtual-economy{display:grid;gap:24px;max-width:1050px;margin:auto;min-width:0}.virtual-economy section{min-width:0}.virtual-disclaimer{display:flex;gap:14px;padding:18px;border-radius:18px;background:var(--warning-soft);border:1px solid var(--border)}.virtual-disclaimer svg{width:24px;height:24px;flex:none}.virtual-disclaimer p{margin:0;font-size:.85rem;color:var(--text-primary)}
.virtual-wallet{padding:28px;border-radius:26px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}.virtual-wallet>strong{display:block;font-size:clamp(2.5rem,8vw,4rem);margin:12px 0}.virtual-wallet p{color:#fff}.virtual-wallet small{line-height:1.5;display:block}
.virtual-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}.virtual-products>article{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;border:1px solid var(--border);border-radius:22px;background:var(--surface);min-width:0}.virtual-products h3,.virtual-products p{margin:0}.virtual-products p{flex:1}.virtual-products .soft-progress{width:100%}.virtual-products small{color:var(--text-secondary)}.virtual-products button{width:100%;height:auto;white-space:normal}.virtual-products button:disabled{opacity:.45;cursor:not-allowed}.virtual-product-icon{padding:18px;border-radius:18px;background:var(--primary-soft);color:var(--primary)}.virtual-product-icon svg{width:30px;height:30px}
.virtual-list{display:grid;gap:8px}.virtual-list>article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);min-width:0}.virtual-list>article>div{min-width:0}.virtual-list strong,.virtual-list small{display:block;overflow-wrap:anywhere}.virtual-list small{margin-top:5px;color:var(--text-secondary);font-size:.75rem}.virtual-list b{flex:none;white-space:nowrap;font-size:.85rem}.virtual-list svg{width:25px;height:25px;flex:none}.virtual-loss{color:var(--danger)}.virtual-gain{color:var(--success)}
.virtual-stake{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:22px}.virtual-stake form{display:grid;gap:16px;margin:20px 0}.virtual-stake label{display:grid;gap:8px;min-width:0}.virtual-stake select,.virtual-stake input[type=number]{width:100%;min-width:0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:var(--text-primary)}.virtual-stake .virtual-consent{display:flex;align-items:flex-start;font-size:.85rem;line-height:1.5}.virtual-consent input{flex:none;margin-top:4px}.virtual-stake button{white-space:normal}
@media(max-width:380px){.virtual-list>article{padding:12px;gap:8px}.virtual-stake{padding:16px}.virtual-list b{font-size:.75rem}}

/* Landing pública de convite para desafios. */
.challenge-public-page{min-height:100dvh;background:radial-gradient(circle at 15% 0,#eee9ff 0,transparent 34%),var(--background);color:var(--text-primary)}
.challenge-public-header{width:min(1180px,calc(100% - 32px));min-height:76px;margin:16px auto 0;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.9);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-sm);backdrop-filter:blur(16px)}
.challenge-public-header .brand{text-decoration:none}.challenge-public-main{width:min(1120px,calc(100% - 32px));margin:34px auto 72px}.challenge-public-loading,.challenge-public-error{min-height:60vh;display:grid;place-items:center;align-content:center;gap:14px;text-align:center}.challenge-public-error{max-width:520px;margin:auto}.challenge-public-error h1,.challenge-public-error p{margin:0}.challenge-public-icon{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.challenge-public-icon svg{width:30px}
.challenge-public-hero{position:relative;overflow:hidden;padding:clamp(28px,7vw,70px);border-radius:34px;background:linear-gradient(135deg,#7658ed,#452ab5);color:#fff;box-shadow:0 28px 70px rgba(69,42,181,.25)}.challenge-public-hero:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(255,255,255,.16);border-radius:50%;right:-90px;top:-120px}.challenge-public-invite-label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:42px;border-radius:99px;background:rgba(255,255,255,.14);font-size:.82rem;font-weight:700}.challenge-public-invite-label svg{width:18px}.challenge-public-cover{position:absolute;right:clamp(32px,9vw,110px);top:50%;transform:translateY(-50%);width:150px;height:150px;border-radius:42px;display:grid;place-items:center;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);z-index:1}.challenge-public-cover svg{width:74px;height:74px}.challenge-public-hero .eyebrow{color:#ded5ff}.challenge-public-hero h1{max-width:680px;margin:8px 0 14px;font-size:clamp(2.2rem,7vw,4.7rem);line-height:1.02}.challenge-public-hero>p:not(.eyebrow){max-width:620px;margin:0;color:#ece7ff;font-size:1.05rem;line-height:1.65}.challenge-public-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.challenge-public-stats div{min-width:120px;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.12)}.challenge-public-stats strong,.challenge-public-stats span{display:block}.challenge-public-stats strong{font-size:1.35rem}.challenge-public-stats span{color:#ded5ff;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}
.challenge-public-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:start;gap:24px;margin-top:24px}.challenge-public-details{display:grid;gap:18px}.challenge-public-details>.card,.challenge-public-auth{padding:clamp(22px,4vw,30px)}.challenge-public-details h2,.challenge-public-auth h2{margin:6px 0 18px}.challenge-public-list{display:grid;gap:10px}.challenge-public-list>div{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:12px;border-radius:15px;background:var(--surface-secondary)}.challenge-public-list>div>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--primary-soft);color:var(--primary)}.challenge-public-list svg{width:21px}.challenge-public-list p,.challenge-public-list strong,.challenge-public-list small{display:block;margin:0}.challenge-public-list small{margin-top:3px;color:var(--text-muted)}.challenge-public-conversion{position:sticky;top:18px;display:grid;gap:16px}.challenge-public-auth-copy{margin:-10px 0 20px;color:var(--text-muted);line-height:1.5}.challenge-public-auth .text-button{display:block;margin:14px auto 0}.challenge-public-auth .primary-button{width:100%}
.challenge-install-card{padding:20px;display:grid;grid-template-columns:54px 1fr;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-sm)}.challenge-install-icon{width:54px;height:54px;border-radius:16px;overflow:hidden}.challenge-install-icon img{width:100%;height:100%;object-fit:cover}.challenge-install-card p{margin:4px 0 0;color:var(--text-muted);font-size:.82rem;line-height:1.45}.challenge-install-card button,.challenge-install-card>a,.challenge-install-help{grid-column:1/-1}.challenge-install-card .text-button{text-align:center;text-decoration:none}.challenge-install-help{text-align:center}
@media(max-width:800px){.challenge-public-layout{grid-template-columns:1fr}.challenge-public-conversion{position:static;grid-row:1}.challenge-public-cover{width:92px;height:92px;right:20px;top:24px;transform:none;border-radius:28px}.challenge-public-cover svg{width:46px;height:46px}.challenge-public-hero h1{max-width:78%}.challenge-public-invite-label{margin-bottom:56px}}
@media(max-width:520px){.challenge-public-header,.challenge-public-main{width:min(100% - 20px,1120px)}.challenge-public-header{margin-top:10px;min-height:66px}.challenge-public-header .brand{font-size:1.05rem}.challenge-public-header .secondary-button{padding:10px 12px}.challenge-public-main{margin-top:16px}.challenge-public-hero{padding:24px;border-radius:26px}.challenge-public-hero h1{max-width:100%;font-size:2.25rem}.challenge-public-cover{position:static;width:62px;height:62px;margin:0 0 18px;border-radius:20px}.challenge-public-cover svg{width:32px;height:32px}.challenge-public-invite-label{margin-bottom:18px}.challenge-public-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.challenge-public-stats div{min-width:0;padding:10px}.challenge-public-stats strong{font-size:1rem}.challenge-public-stats span{font-size:.62rem}.challenge-public-layout{margin-top:12px;gap:12px}.challenge-public-details{gap:12px}}
