:root{--bg:#f6f5f2;--card:#fff;--ink:#1c1a17;--muted:#75706a;--line:#e7e3dc;--soft:#f1eee9;--accent:#fc5200;--accent-ink:#c43f00;--accent-soft:#fff1e8;--ok:#1e8a4c;--ok-soft:#e4f4ea;--danger:#b3261e;--day-off:#ece7e1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit}button{font:inherit;color:inherit}h1,h2,p{margin:0}.shell{max-width:560px;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.shell.wide{max-width:960px}.center{justify-content:center;align-items:flex-start;gap:12px}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wordmark{letter-spacing:-.04em;font-size:clamp(2.75rem,14vw,4.5rem);font-weight:800;line-height:.95}.wordmark.small{letter-spacing:-.02em;font-size:1.1rem}.topbar{justify-content:space-between;align-items:baseline;gap:12px;font-size:.9rem;display:flex}.landing{justify-content:center}.tagline{font-size:1.25rem;font-weight:600}.lede{color:var(--muted);margin:4px 0 12px;font-size:1.05rem;line-height:1.5}.connect{border-radius:6px;align-self:flex-start;display:inline-block}.connect img{display:block}.notice{background:var(--accent-soft);border:1px solid #f8d3b7;border-radius:12px;padding:12px 14px;font-size:.95rem;line-height:1.45}.progress:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;margin-right:8px;animation:1.6s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.progress:before{animation:none}}.dashboard{flex-direction:column;gap:12px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.card h2{font-size:.95rem;font-weight:700}.card-row{gap:12px;display:grid}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);font-size:.72rem;font-weight:700}.hero-card{background:linear-gradient(135deg,#fff7f1 0%,#ffe5d1 100%);border:1px solid #f8d3b7;border-radius:18px;gap:12px;padding:18px 16px 16px;display:grid}.hero-top{justify-content:space-between;align-items:center;display:flex}.hero-title{letter-spacing:-.03em;font-size:1.6rem;font-weight:800;line-height:1.1}.hero-dates{color:var(--muted);margin-top:-6px;font-size:.9rem}.hero-progress{align-items:center;gap:16px;display:flex}.hero-count{flex-shrink:0;align-items:baseline;gap:6px;display:flex}.hero-count strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:3.6rem;font-weight:800;line-height:1}.hero-count span{color:var(--muted);font-size:1.3rem;font-weight:700}.pips{flex:1;grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;margin:0;padding:0;list-style:none;display:grid}.pips li{background:#fc520024;border-radius:6px;height:12px}.pips li.on{background:var(--accent)}.hero-sentence{font-size:1rem;font-weight:600;line-height:1.4}.week-strip{grid-template-columns:repeat(7,1fr);gap:6px;margin:0;padding:0;list-style:none;display:grid}.week-strip .day{aspect-ratio:1/1.15;font-variant-numeric:tabular-nums;background:#ffffffb3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.week-strip .day.on{background:var(--accent);color:#fff}.week-strip .day.future,.week-strip .day.before{outline-offset:-1px;color:var(--muted);background:0 0;outline:1px dashed #1c1a1733}.week-strip .day.before{opacity:.5}.week-strip .day.today{box-shadow:inset 0 0 0 2px var(--ink)}.day-name{opacity:.75;font-size:.7rem;font-weight:600}.day-num{font-size:1rem;font-weight:700}.hero-tiles{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}.hero-tiles .tile{background:#ffffffbf;border-color:#fc520026}.hero-tiles dd{color:var(--accent-ink)}.hero-actions{display:flex}.tiles{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;min-width:0;padding:12px 14px}.tile dt{color:var(--muted);font-size:.75rem;line-height:1.3}.tile dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;margin:4px 0 0;font-size:1.35rem;font-weight:800}.chip{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:700;display:inline-block}.chip.hit{background:var(--ok-soft);color:var(--ok)}.chip.missed{background:var(--soft);color:var(--muted)}.chip.in_progress{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px #fc52004d}.donut-row{align-items:center;gap:20px;display:flex}.donut{flex-shrink:0;width:120px;height:120px}.donut circle{fill:none;stroke-width:5px}.donut-track{stroke:var(--day-off)}.donut-value{stroke:var(--accent)}.donut-label{text-anchor:middle;fill:var(--ink);font-size:8px;font-weight:800}.donut-legend{gap:8px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.donut-legend li{align-items:center;gap:8px;display:flex}.donut-legend b{font-variant-numeric:tabular-nums;margin-left:4px}.swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.swatch.on{background:var(--accent)}.swatch.off{background:var(--day-off)}.health{flex-direction:column;margin:0;display:flex}.health div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:.9rem;display:flex}.health div:last-child{border-bottom:0}.health dt{color:var(--muted)}.health dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.table-wrap{margin:0 -16px;padding:0 16px;overflow-x:auto}.log{border-collapse:collapse;white-space:nowrap;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.log th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:0 8px 8px 0;font-size:.7rem;font-weight:700}.log td{border-bottom:1px solid var(--line);padding:10px 8px 10px 0}.log th:last-child,.log td:last-child{padding-right:0}.log tr:last-child td{border-bottom:0}.log .num{text-align:right}.log .title{width:100%;max-width:0}.title-text{text-overflow:ellipsis;display:block;overflow:hidden}.strava-link{color:var(--accent);margin-top:2px;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-block}.strava-link:hover,.strava-link:focus-visible{text-decoration:underline}.mini-pips{align-items:center;gap:2px;display:inline-flex}.mini-pips i{background:var(--day-off);border-radius:2px;width:7px;height:7px}.mini-pips i.on{background:var(--accent)}.mini-count{margin-left:5px;font-weight:700}.text-button{cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;min-height:44px;padding:10px 0;text-decoration:underline}.text-button.muted{color:var(--muted)}.share-button,.primary{cursor:pointer;background:var(--ink);color:#fff;border:0;border-radius:999px;min-height:44px;padding:0 20px;font-weight:700}.danger{background:var(--danger);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:44px;padding:10px 16px;font-weight:700}button:disabled{opacity:.5;cursor:default}.segmented{background:var(--soft);border-radius:10px;padding:3px;display:flex}.segmented button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:8px 4px;font-size:.9rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014}.account{flex-direction:column;align-items:flex-start;gap:2px;margin-top:auto;padding-top:24px;display:flex}.confirm{border-top:1px solid var(--line);padding-top:12px;line-height:1.45}.confirm p{margin:0 0 8px}.confirm-actions{align-items:center;gap:20px;display:flex}.footer{color:var(--muted);font-size:.8rem}.powered{display:block}.share-dialog{background:var(--bg);width:min(480px,100vw);max-width:100vw;max-height:100dvh;color:var(--ink);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0}.share-dialog::backdrop{background:#00000080}.share-sheet{padding:16px 20px max(20px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex}.share-header{justify-content:space-between;align-items:center;display:flex}.share-header h2{font-size:1.15rem}.close-button{cursor:pointer;background:0 0;border:0;width:44px;height:44px;margin-right:-10px;font-size:1.8rem;line-height:1}.share-preview{justify-content:center;display:flex}.share-preview img,.share-placeholder{border-radius:12px;height:min(46dvh,420px);display:block;box-shadow:0 2px 12px #00000026}.share-preview.post img,.share-preview.post .share-placeholder{aspect-ratio:4/5}.share-preview.story img,.share-preview.story .share-placeholder{aspect-ratio:9/16}.share-placeholder{background:var(--soft)}.share-note{font-size:.85rem;line-height:1.4}.share-actions{align-items:center;gap:20px;display:flex}.share-actions .primary{flex:1}@media (width>=600px){.share-dialog{border-radius:20px;margin:auto}}@media (width>=760px){.shell{padding-left:24px;padding-right:24px}.tiles{grid-template-columns:repeat(4,1fr)}.card-row{grid-template-columns:1fr 1fr}.hero-card{grid-template-columns:1fr minmax(260px,.8fr);column-gap:28px;padding:24px}.hero-card>*{grid-column:1}.hero-card>.hero-tiles{grid-area:2/2/span 5;align-self:start}.hero-card>.hero-top{grid-column:1/-1}}.challenge{border-color:#f8d3b7;gap:10px}.card .challenge-title{letter-spacing:-.02em;font-size:1.35rem;font-weight:800}.challenge .hero-dates{margin-top:-4px}.challenge-day{align-items:center;gap:14px;display:flex}.challenge-day p{flex-shrink:0}.challenge-day strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:800}.challenge-day span{color:var(--muted);font-weight:700}.day-bar{background:var(--day-off);border-radius:5px;flex:1;height:10px;overflow:hidden}.day-bar span{background:var(--accent);border-radius:5px;min-width:10px;height:100%;display:block}.challenge-tiles{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.challenge-tiles .tile{background:var(--soft);border:0;padding:10px 12px}.challenge-tiles dd{font-size:1.2rem}.challenge-weeks{grid-template-columns:repeat(4,1fr);gap:6px;margin:0;padding:0;list-style:none;display:grid}.challenge-weeks li{background:var(--soft);border-radius:10px;flex-direction:column;gap:1px;min-width:0;padding:8px;display:flex}.challenge-weeks .wk{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem;font-weight:700}.challenge-weeks .wk-count{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800}.challenge-weeks .wk-dates{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.challenge-weeks li.hit{background:var(--ok-soft)}.challenge-weeks li.hit .wk-count{color:var(--ok)}.challenge-weeks li.in_progress{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.challenge-weeks li.in_progress .wk-count{color:var(--accent-ink)}.challenge-weeks li.upcoming{outline:1px dashed var(--line);outline-offset:-1px;background:0 0}.challenge-weeks li.upcoming .wk-count{color:var(--muted)}@media (width>=760px){.challenge-weeks{grid-template-columns:repeat(8,1fr)}}
