:root{--bg: #0a0a0a;--surface: #141414;--border: #222222;--text: #f0f0f0;--muted: #666666;--accent: #e8ff47;--swim: #38bdf8;--bike: #fb923c;--run: #a78bfa;--radius: 12px;--radius-sm: 6px;--font: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--ease-out-instrument: cubic-bezier(.16, 1, .3, 1);--dur-micro: .12s;--dur-move: .2s;--dur-reveal: .32s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100%;display:flex;flex-direction:column}h1{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1.1}h2{font-size:1.25rem;font-weight:600;letter-spacing:-.02em}h3{font-size:1rem;font-weight:600}p{color:var(--muted);font-size:.9375rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:var(--radius);font-size:.9375rem;font-weight:600;cursor:pointer;border:none;transition:opacity var(--dur-micro) var(--ease-out-instrument),transform var(--dur-micro) var(--ease-out-instrument);text-decoration:none}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#0a0a0a}.btn-primary:hover{opacity:.9}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--muted)}.btn-full{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:inset 0 1px #ffffff0a}.page{flex:1;display:flex;flex-direction:column;padding:24px 20px;max-width:480px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.sport-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;padding:2px 6px;border-radius:99px;text-transform:uppercase;letter-spacing:.05em}.sport-swim{background:color-mix(in srgb,var(--swim) 15%,transparent);color:var(--swim)}.sport-bike{background:color-mix(in srgb,var(--bike) 15%,transparent);color:var(--bike)}.sport-run{background:color-mix(in srgb,var(--run) 15%,transparent);color:var(--run)}.sport-other{background:color-mix(in srgb,var(--muted) 15%,transparent);color:var(--muted)}.stat{font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}.stat span{color:var(--text);font-weight:500}.divider{height:1px;background:var(--border);margin:16px 0}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shimmer{background:linear-gradient(90deg,#1a1a1a 25%,#222,#1a1a1a 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.activity-card{display:flex;width:100%;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color var(--dur-micro) var(--ease-out-instrument),transform var(--dur-micro) var(--ease-out-instrument);padding:0;min-height:64px;box-shadow:inset 0 1px #ffffff0a}.activity-card:hover{border-color:var(--muted)}.activity-card:active{transform:scale(.98)}@keyframes cardEntrance{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card-entrance{animation:cardEntrance var(--dur-reveal) var(--ease-out-instrument) both}@keyframes sectionEntrance{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-entrance{animation:sectionEntrance var(--dur-move) var(--ease-out-instrument) both}@keyframes paneEntrance{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pane-active{animation:paneEntrance var(--dur-move) var(--ease-out-instrument) both}.pressable{transition:transform var(--dur-micro) var(--ease-out-instrument),opacity var(--dur-micro) var(--ease-out-instrument)}.pressable:active{transform:scale(.98)}@keyframes dotPulse{0%{transform:scale(1)}50%{transform:scale(1.35)}to{transform:scale(1)}}.unread-dot-pulse{animation:dotPulse .6s var(--ease-out-instrument) forwards}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-family:var(--font-mono);font-size:.75rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0}.stat-cell{background:transparent;border:none;border-radius:0;padding:10px 8px;cursor:pointer;text-align:left;transition:transform var(--dur-micro) var(--ease-out-instrument),opacity var(--dur-micro)}.stat-cell:active{transform:scale(.96);opacity:.85}.section-label{font-family:var(--font-mono);font-size:.6875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.chart-tap-target{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:border-color var(--dur-micro) var(--ease-out-instrument),transform var(--dur-micro) var(--ease-out-instrument)}.chart-tap-target:hover{border-color:var(--muted)}.chart-tap-target:active{transform:scale(.98)}.page{animation:fadeIn var(--dur-move) var(--ease-out-instrument)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes coachPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.7}}
