:root{--background: oklch(.165 .006 280);--foreground: oklch(.94 .004 280);--card: oklch(.235 .007 280);--card-foreground: oklch(.94 .004 280);--popover: oklch(.235 .007 280);--popover-foreground: oklch(.94 .004 280);--primary: oklch(.96 .003 280);--primary-foreground: oklch(.18 .008 280);--secondary: oklch(.265 .006 280);--secondary-foreground: oklch(.94 .004 280);--muted: oklch(.245 .006 280);--muted-foreground: oklch(.68 .01 280);--accent: oklch(.66 .18 250);--accent-foreground: oklch(.99 .002 250);--ring: oklch(.66 .18 250);--destructive: oklch(.64 .2 22);--destructive-foreground: oklch(.99 .004 22);--success: oklch(.72 .13 175);--success-foreground: oklch(.18 .03 175);--warning: oklch(.8 .13 78);--warning-foreground: oklch(.22 .04 78);--border: oklch(.3 .008 280);--input: oklch(.3 .008 280);--color-effort-easy: oklch(.72 .12 195);--color-effort-moderate: oklch(.8 .13 75);--color-effort-hard: oklch(.68 .19 28);--color-phase-base: oklch(.72 .12 195);--color-phase-build: oklch(.8 .13 75);--color-phase-peak: oklch(.68 .19 28);--color-phase-taper: oklch(.68 .14 300);--color-phase-race: oklch(.66 .18 250);--workout-easy: oklch(.72 .12 195);--workout-long: oklch(.68 .14 300);--workout-hard: oklch(.68 .19 28);--workout-neutral: oklch(.68 .01 280);--chart-1: oklch(.66 .18 250);--chart-2: oklch(.72 .12 195);--chart-3: oklch(.72 .13 175);--chart-4: oklch(.8 .13 75);--chart-5: oklch(.68 .19 28);--recovery: oklch(.7 .1 200);--recovery-muted: oklch(.7 .06 200);--radius: .75rem;--btn-height-md: 3rem;--dock-inset-x: .75rem;--dock-inset-bottom: max(.65rem, env(safe-area-inset-bottom, 0px));--dock-height: 3.75rem}.numeric,.hero-metric,.metric-card strong,.plan-card-dist,.recent-stat,.progress-ring strong{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.app-shell,.app-frame{background:var(--background)}@media(max-width:47.99rem){.app-frame{width:min(100%,30rem);padding:1rem 1rem calc(var(--dock-height) + var(--dock-inset-bottom) + 1.25rem)}}.screen-stack{gap:.875rem}.hero-card,.soft-card,.metric-card,.run-card,.plan-card,.profile-card,.setting-row,.week-overview,.today-card,.app-modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff0d}.primary-button,.secondary-button{min-height:var(--btn-height-md);border-radius:calc(var(--radius) - .125rem);font-weight:560;letter-spacing:-.01em;transition:transform .12s ease,background .12s ease,opacity .12s ease,border-color .12s ease}.primary-button{width:100%;background:var(--primary);color:var(--primary-foreground);border:0;box-shadow:none}.primary-button:active{transform:scale(.98);opacity:.92}.primary-button:disabled{opacity:.5;transform:none}.secondary-button{background:transparent;color:var(--foreground);border:1px solid var(--border);padding:0 1rem}.secondary-button:active{transform:scale(.98);background:var(--muted)}.secondary-button.full{width:100%}.primary-button.effort{background:color-mix(in oklch,var(--effort-color, var(--primary)) 88%,black);color:#f8f8fa}.primary-button.danger{background:color-mix(in oklch,var(--destructive) 85%,black);color:var(--destructive-foreground)}.chip{min-height:2.5rem;border-radius:999px;padding:0 .9rem;background:var(--muted);border:1px solid transparent;color:var(--muted-foreground);font-weight:540}.chip.active{background:var(--primary);color:var(--primary-foreground);border-color:transparent}.chip:hover:not(.active){background:color-mix(in oklch,var(--muted) 80%,var(--foreground));color:var(--foreground)}.mini-action{min-height:2rem;padding:0 .85rem;border-radius:999px;background:color-mix(in oklch,var(--accent) 14%,var(--card));color:color-mix(in oklch,var(--accent) 40%,var(--foreground));font-size:.75rem;font-weight:560}.mini-action.ghost{background:transparent;color:var(--muted-foreground)}.bottom-nav{background:color-mix(in oklch,var(--card) 88%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--border);box-shadow:none}@media(max-width:47.99rem){.bottom-nav{position:fixed;width:calc(min(100%,30rem) - (var(--dock-inset-x) * 2));left:50%;right:auto;transform:translate(-50%);bottom:var(--dock-inset-bottom);border-radius:1.15rem;border-bottom:1px solid var(--border);padding:.35rem .4rem;gap:.2rem;grid-template-columns:repeat(4,1fr)}.bottom-nav button{min-height:48px;border-radius:.85rem;color:var(--muted-foreground);font-size:.7rem;font-weight:540;letter-spacing:-.01em;gap:.12rem}.bottom-nav button.active{background:var(--primary);color:var(--primary-foreground);box-shadow:none}}@media(min-width:48rem){.bottom-nav.app-nav{position:fixed;left:calc(50% - min(50vw,36rem) + 1.5rem);right:auto;bottom:3rem;transform:none;width:5rem;grid-template-columns:1fr;border-radius:var(--radius);border-bottom:1px solid var(--border);padding:.55rem}.bottom-nav button{min-height:52px;border-radius:calc(var(--radius) - .15rem);color:var(--muted-foreground);font-size:.68rem;font-weight:540}.bottom-nav button.active{background:var(--primary);color:var(--primary-foreground);box-shadow:none}}.icon-tile.recovery{background:color-mix(in oklch,var(--recovery) 18%,var(--card));color:color-mix(in oklch,var(--recovery) 55%,var(--foreground))}.soft-card.recovery-prompt{background:color-mix(in oklch,var(--recovery) 6%,var(--card));border-color:color-mix(in oklch,var(--recovery) 22%,var(--border));box-shadow:inset 0 1px #ffffff08}.soft-card.recovery-prompt .primary-button{background:color-mix(in oklch,var(--recovery) 22%,var(--primary));color:var(--primary-foreground)}.icon-tile{border-radius:calc(var(--radius) - .15rem);background:color-mix(in oklch,var(--accent) 12%,var(--card));color:color-mix(in oklch,var(--accent) 50%,var(--foreground))}.icon-tile.yuzu{background:color-mix(in oklch,var(--color-effort-moderate) 18%,var(--card));color:color-mix(in oklch,var(--color-effort-moderate) 50%,var(--foreground))}.icon-tile.neutral{background:var(--muted);color:var(--muted-foreground)}.workout-badge{background:color-mix(in oklch,var(--badge-accent, var(--accent)) 18%,var(--card));color:color-mix(in oklch,var(--badge-accent, var(--accent)) 38%,var(--foreground));border:1px solid color-mix(in oklch,var(--badge-accent, var(--accent)) 28%,var(--border));font-weight:560;letter-spacing:.03em}.progress-ring{width:6.25rem;height:6.25rem}.progress-ring circle{stroke-width:8}.progress-ring .track{stroke:color-mix(in oklch,var(--border) 80%,transparent)}.progress-ring .value{stroke:var(--accent)}.progress-ring strong{font-size:1.2rem;font-weight:560}.progress-ring span{font-size:.7rem;font-weight:520;color:var(--muted-foreground)}.mini-chart{height:4.75rem}.mini-chart .grid{stroke:color-mix(in oklch,var(--border) 70%,transparent);stroke-width:1}.mini-chart .line{stroke:var(--accent);stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;fill:none}.mini-chart circle{fill:var(--accent)}.chart-caption{font-size:.78rem;color:var(--muted-foreground);font-weight:500}.zone-bars span{background:color-mix(in oklch,var(--accent) 75%,var(--card));border-radius:.45rem .45rem .35rem .35rem;min-height:1.4rem}.week-bar-track{height:3rem;border-radius:.5rem;background:color-mix(in oklch,var(--border) 35%,transparent)}.week-bar-fill{width:64%;border-radius:999px 999px .35rem .35rem;background:color-mix(in oklch,var(--primary) 55%,var(--border))}.week-bar.done .week-bar-fill{background:var(--color-effort-easy)}.week-bar.today .week-bar-track{outline:2px solid color-mix(in oklch,var(--accent) 65%,transparent);outline-offset:1px}.week-bar.today .week-bar-fill{background:var(--accent)}.week-bar.missed .week-bar-fill{background:color-mix(in oklch,var(--color-effort-hard) 45%,var(--border))}.week-bar.planned .week-bar-fill{background:color-mix(in oklch,var(--primary) 35%,var(--border))}.week-bar.rest .week-bar-fill{height:.35rem;width:.35rem;border-radius:999px;background:var(--border)}.app-input{background:color-mix(in oklch,var(--background) 70%,var(--muted));border:1px solid var(--border);border-radius:calc(var(--radius) - .1rem);color:var(--foreground);font-weight:520}.app-input:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklch,var(--ring) 22%,transparent)}.plan-week-header{min-height:44px;padding:.35rem 0;color:var(--muted-foreground);font-weight:560;letter-spacing:.03em}.plan-week-header:hover{color:var(--foreground)}.plan-week-header .week-chevron{opacity:.7}.hero-metric{font-size:2.25rem;font-weight:560;letter-spacing:-.03em;line-height:1.05}.metric-card{min-height:5.75rem;padding:.8rem}.metric-card strong{font-size:1.55rem;font-weight:560;letter-spacing:-.025em}.metric-card span,.section-label{font-weight:540;letter-spacing:.04em}.today-card{border-left-width:4px;border-radius:calc(var(--radius) + .1rem);padding:1.05rem 1.05rem 1.1rem;gap:.95rem;transition:background .14s ease,border-color .14s ease}.today-card.is-planned{border-left-color:var(--effort-color, var(--accent))}.today-card.is-completed{background:color-mix(in oklch,var(--color-effort-easy) 8%,var(--card));border-left-color:var(--color-effort-easy)}.today-card.is-rest,.today-card.is-skipped{border-left-color:var(--border)}.today-card .hero-topline{margin-bottom:.1rem}.today-card .today-date{font-size:.8rem;font-weight:520;letter-spacing:.01em;color:var(--muted-foreground)}.today-card .section-label{font-size:.72rem;opacity:.9}.today-card .hero-metric{margin-top:.15rem;font-size:2.35rem}.today-card .today-summary-line{margin-top:.35rem;font-size:.88rem;line-height:1.45;color:var(--muted-foreground)}.today-card .done-check{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:999px;background:color-mix(in oklch,var(--color-effort-easy) 85%,black);color:#f8f8fa;vertical-align:-.15rem;margin-left:.25rem}.today-card .primary-button.effort{margin-top:.15rem;min-height:3.1rem;font-weight:580}.next-up-line{border-style:solid;border-color:color-mix(in oklch,var(--border) 80%,transparent);background:color-mix(in oklch,var(--muted) 55%,transparent);border-radius:calc(var(--radius) - .15rem);font-weight:520;font-size:.86rem}.next-up-line strong{font-weight:600;color:var(--foreground)}.status-banner{border-radius:calc(var(--radius) - .1rem);font-weight:540}.status-banner .banner-action{background:var(--primary);color:var(--primary-foreground);border:0;border-radius:.5rem;font-weight:560}.empty-state{padding:1.75rem 1rem;gap:.65rem}.empty-state h3{font-weight:560}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media(min-width:48rem){.screen-stack{max-width:34rem;margin-inline:0}}@media(min-width:64rem){.screen-stack{max-width:36rem;grid-template-columns:none}.screen-stack>*,.hero-card,.metric-grid.two,.soft-card.row-card,.recent-run{grid-column:auto}}.first-visit-intro{background:var(--background);color:var(--foreground);padding-bottom:env(safe-area-inset-bottom,0px)}.first-visit-intro .intro-visual{border:1px solid var(--border);border-radius:calc(var(--radius) + .35rem);background:radial-gradient(circle at 50% 18%,color-mix(in oklch,var(--accent) 16%,transparent),transparent 58%),var(--card);box-shadow:inset 0 1px #ffffff0a;transition:background .28s ease,border-color .28s ease}.first-visit-intro .intro-icon{background:color-mix(in oklch,var(--accent) 22%,var(--card));color:color-mix(in oklch,var(--accent) 55%,var(--foreground));box-shadow:none;transform:none;border-radius:calc(var(--radius) - .05rem);transition:background .22s ease,color .22s ease}.first-visit-intro .intro-eyebrow{color:var(--muted-foreground);letter-spacing:.06em;font-weight:560;font-size:.72rem}.first-visit-intro .intro-slide h1{font-weight:600;letter-spacing:-.03em;font-size:clamp(1.65rem,6vw,2.15rem);line-height:1.12}.first-visit-intro .intro-copy{color:var(--muted-foreground);font-weight:500;font-size:.98rem}.first-visit-intro .intro-goal-chips span,.first-visit-intro .intro-swap span,.first-visit-intro .intro-swap strong{background:var(--card);border:1px solid var(--border);color:var(--foreground);font-weight:560;transition:transform .16s ease,background .16s ease,border-color .16s ease}.first-visit-intro .intro-goal-chips span:nth-child(2),.first-visit-intro .intro-swap strong{color:var(--primary-foreground);background:var(--primary);border-color:transparent}.first-visit-intro .intro-week span{background:var(--muted);color:var(--muted-foreground);transition:transform .16s ease,background .16s ease,color .16s ease}.first-visit-intro .intro-week .is-run{background:var(--primary);color:var(--primary-foreground);transform:translateY(-.2rem)}.first-visit-intro .intro-ready{color:var(--foreground);font-weight:560}.first-visit-intro .intro-ready span{background:var(--accent);color:var(--accent-foreground)}.first-visit-intro .intro-dots button{transition:width .18s ease,background .18s ease}.first-visit-intro .intro-dots button.is-active{background:var(--primary);width:1.35rem}.first-visit-intro .intro-next{background:var(--primary);color:var(--primary-foreground);font-weight:580;box-shadow:none;border-radius:calc(var(--radius) - .1rem);min-height:3rem;transition:transform .12s ease,opacity .12s ease}.first-visit-intro .intro-next:active{transform:scale(.98);opacity:.92}.first-visit-intro .intro-sign-in,.first-visit-intro .intro-skip,.first-visit-intro .intro-back{color:var(--muted-foreground);font-weight:540;min-height:44px;transition:color .14s ease}.first-visit-intro .intro-sign-in:hover,.first-visit-intro .intro-skip:hover,.first-visit-intro .intro-back:hover{color:var(--foreground)}.first-visit-intro .intro-footer{padding-bottom:max(.5rem,env(safe-area-inset-bottom,0px))}.min-h-screen.bg-background.flex.flex-col.items-center.justify-center,.min-h-screen.bg-background.flex.flex-col.px-6.py-12{background:var(--background);color:var(--foreground)}.min-h-screen.bg-background.flex.flex-col.items-center.justify-center h1,.min-h-screen.bg-background.flex.flex-col.px-6.py-12 h2{font-weight:600;letter-spacing:-.025em}.min-h-screen.bg-background.flex.flex-col.items-center.justify-center button.bg-primary,.min-h-screen.bg-background.flex.flex-col.px-6.py-12 button.bg-primary{background:var(--primary);color:var(--primary-foreground);font-weight:580;border-radius:calc(var(--radius) - .1rem);min-height:3.1rem;box-shadow:none;transition:transform .12s ease,opacity .12s ease}.min-h-screen.bg-background.flex.flex-col.items-center.justify-center button.bg-primary:active,.min-h-screen.bg-background.flex.flex-col.px-6.py-12 button.bg-primary:active{transform:scale(.98);opacity:.92}.min-h-screen.bg-background.flex.flex-col.px-6.py-12 input{background:color-mix(in oklch,var(--background) 70%,var(--muted));border:1px solid var(--border)!important;border-radius:calc(var(--radius) - .1rem);color:var(--foreground);font-weight:520;transition:border-color .14s ease,box-shadow .14s ease}.min-h-screen.bg-background.flex.flex-col.px-6.py-12 input:focus{border-color:var(--ring)!important;box-shadow:0 0 0 3px color-mix(in oklch,var(--ring) 22%,transparent);outline:none}.min-h-screen.bg-background.flex.flex-col.px-6.py-12 button.text-emerald-300{color:color-mix(in oklch,var(--accent) 55%,white)}.min-h-screen.bg-background.flex.flex-col.px-6.py-12 .bg-emerald-500\/10{background:color-mix(in oklch,var(--accent) 12%,var(--card));border-color:color-mix(in oklch,var(--accent) 28%,var(--border));color:color-mix(in oklch,var(--accent) 50%,white);border-radius:var(--radius)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased{background:var(--background);color:var(--foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased>.sticky.top-0{background:color-mix(in oklch,var(--card) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding-top:max(2.1rem,calc(env(safe-area-inset-top,0px) + .65rem));padding-bottom:.85rem;padding-inline:1.15rem}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .h-1\.5.bg-slate-800,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .h-1\.5{height:.35rem;background:var(--muted);border-radius:999px;overflow:hidden}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .h-1\.5>div,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .h-full.bg-primary{background:var(--primary);transition:width .48s cubic-bezier(.22,1,.36,1)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased h2{font-weight:600;letter-spacing:-.025em;line-height:1.15}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-2{border-width:1px;border-radius:var(--radius);background:var(--card);border-color:var(--border);box-shadow:inset 0 1px #ffffff08;color:var(--foreground);transition:transform .12s ease,background .14s ease,border-color .14s ease}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-2:active{transform:scale(.985)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-primary,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.bg-primary\/5,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.text-primary.border-primary{border-color:color-mix(in oklch,var(--primary) 70%,var(--border));background:color-mix(in oklch,var(--primary) 10%,var(--card));color:var(--foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-primary .font-bold,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.bg-primary\/5 .font-bold,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-primary .text-primary{color:var(--foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.bg-primary.text-primary-foreground{background:var(--primary);color:var(--primary-foreground);border-color:transparent;box-shadow:none}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button .border-primary.bg-primary{border-color:var(--primary);background:var(--primary)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button .border-primary.bg-primary>div{background:var(--primary-foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.w-full.py-4.bg-primary{min-height:3.1rem;border-radius:calc(var(--radius) - .1rem);border-width:0;font-weight:580;letter-spacing:-.01em;box-shadow:none;background:var(--primary);color:var(--primary-foreground);transition:transform .12s ease,opacity .12s ease}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.w-full.py-4.bg-primary:active{transform:scale(.98);opacity:.92}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.w-full.py-4.bg-primary:disabled{opacity:.45;transform:none}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased input{background:color-mix(in oklch,var(--background) 70%,var(--muted));border:1px solid var(--border)!important;border-radius:calc(var(--radius) - .1rem);color:var(--foreground);font-weight:520;transition:border-color .14s ease,box-shadow .14s ease}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased input:focus{border-color:var(--ring)!important;box-shadow:0 0 0 3px color-mix(in oklch,var(--ring) 22%,transparent);outline:none}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .flex.bg-slate-800.p-1{background:var(--muted);border-radius:var(--radius);border:1px solid var(--border);padding:.25rem}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .flex.bg-slate-800.p-1 button{border-radius:calc(var(--radius) - .2rem);transition:background .14s ease,color .14s ease}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .flex.bg-slate-800.p-1 button.bg-slate-900{background:var(--primary);color:var(--primary-foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .border-primary\/30.bg-primary\/10{background:color-mix(in oklch,var(--accent) 10%,var(--card));border-color:color-mix(in oklch,var(--accent) 28%,var(--border));border-radius:var(--radius);color:var(--foreground)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .border-primary\/30.bg-primary\/10 .text-primary,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .border-primary\/30.bg-primary\/10 .font-bold.text-primary{color:color-mix(in oklch,var(--accent) 45%,white)}.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .bg-slate-900.rounded-xl{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff0a}@media(prefers-reduced-motion:reduce){.first-visit-intro .intro-visual,.first-visit-intro .intro-icon,.first-visit-intro .intro-goal-chips span,.first-visit-intro .intro-week span,.first-visit-intro .intro-dots button,.first-visit-intro .intro-next,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.border-2,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased button.w-full.py-4.bg-primary,.min-h-screen.bg-background.flex.flex-col.font-sans.antialiased .h-1\.5>div{transition:none!important}.first-visit-intro .intro-week .is-run{transform:none}}
