:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:3.5;color:#000;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0;width:100%;min-height:100%;overflow-x:hidden;text-rendering:optimizeLegibility}#root{width:100%;min-height:100%}button{border:none;border-radius:8px;background-color:#000;color:#fff;font-family:inherit;font-size:1em;font-weight:500;cursor:pointer;transition:background .2s,border-color .25s}button:hover{border-color:#646cff;background-color:#100d42}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100vh;height:100dvh;overflow:hidden;text-align:center}.main.public-entry{justify-content:flex-start;height:auto;min-height:100vh;min-height:100dvh;padding:0;overflow:visible}.title{margin:0;font-size:4.5rem;line-height:0}.subtitle{margin:0;font-size:1.55em}.section-navigation{display:flex;justify-content:center;gap:2em;box-sizing:border-box;width:100%;max-width:100%;padding:0 1rem}.section-trigger{position:relative;z-index:1;flex:0 0 auto;box-sizing:border-box;width:7rem;min-width:7rem;min-height:3rem;overflow:hidden;border:solid black;border-radius:8px;background-color:#fff;box-shadow:0 1em .5em #ccc;color:#000;font-weight:700;text-align:center}.section-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;box-sizing:border-box;width:100%;max-width:100vw;height:100%;min-width:0;overflow-x:hidden;overflow-y:auto;background-color:#fff;text-align:center}.section-panel-content{position:relative;box-sizing:border-box;width:min(100%,1200px);min-height:100%;margin:0 auto;padding:4rem clamp(1rem,4vw,3rem) 2rem}.training-stale{color:#7c4a03}.training-read-only{min-inline-size:0;margin:0;padding:0;border:0}.section-panel *,.section-panel *:before,.section-panel *:after{box-sizing:border-box}.section-heading{margin-top:0;margin-bottom:1em;color:#000;line-height:1em}.close{position:absolute;top:1rem;right:1rem;z-index:3;width:2.75rem;height:2.75rem;padding:0;border:none;border-radius:4px;background-color:#0056b3;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}@media (max-width: 768px){.section-navigation{flex-direction:column;align-items:center;width:100%}.section-trigger{font-size:1em;line-height:1.2em}.section-panel-content{padding:4rem .75rem 1.5rem}.title{margin-bottom:1rem;font-size:3.5rem}.subtitle{margin-top:1rem;margin-bottom:2rem;font-size:1.1rem;line-height:1.5em}}.login-btn{box-sizing:border-box;min-width:8rem;min-height:2.75rem;padding:.65rem 1.25rem;border:2px solid #111827;border-radius:.5rem;background-color:#111827;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,color .3s ease}.login-btn:hover,.logout-btn:hover{background-color:#1d4ed8;color:#fff}.session-controls{position:absolute;top:20px;right:20px;display:flex;align-items:center;gap:.75rem;line-height:1.2}.session-user{margin:0;font-size:.9rem}.logout-btn{box-sizing:border-box;width:auto;padding:10px 20px;border:solid;border-radius:5px;background-color:#fff;box-shadow:0 1em .5em #ccc;color:#000;font-size:1rem;font-weight:600}.auth-message{max-width:32rem;margin:1.5rem 1rem 0;color:#454545;line-height:1.5}.auth-error{color:#9f1d1d}.startup-error{display:grid;justify-items:center;gap:1rem;max-width:32rem;margin:1.5rem 1rem 0;color:#9f1d1d;line-height:1.5}.startup-error p{margin:0}.startup-error button{min-height:2.75rem;padding:.65rem 1.25rem}.login-wrapper{display:inline-block}.login-popup{position:fixed;top:50%;left:50%;z-index:1000;box-sizing:border-box;width:min(calc(100vw - 2rem),28rem);max-height:calc(100dvh - 2rem);padding:1.5rem;overflow-y:auto;border:2px solid #111827;border-radius:1rem;background:#fff;box-shadow:0 1.5rem 4rem #0f172a40;color:#111827;line-height:1.5;text-align:left;transform:translate(-50%,-50%)}.login-popup form{display:grid;gap:.75rem}.login-popup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.login-popup h2{margin:0;font-size:1.4rem;line-height:1.2}.login-close{flex:0 0 auto;width:2.75rem;height:2.75rem;padding:0;background:#fff;color:#111827;font-size:1.5rem;line-height:1}.login-help{margin:0;color:#374151}.login-popup label{font-weight:650}.login-popup input{box-sizing:border-box;width:100%;min-height:2.75rem;padding:.6rem .7rem;border:1px solid #4b5563;border-radius:.4rem;font:inherit}.login-submit{min-height:2.75rem;margin-top:.25rem}.login-submit:disabled,.login-secondary:disabled,.login-close:disabled,.login-popup input:disabled{cursor:wait;opacity:.65}.login-secondary{justify-self:start;min-height:2.75rem;padding:.4rem 0;background:transparent;color:#1d4ed8;font-weight:650;text-decoration:underline;text-underline-offset:.2em}.login-secondary:hover{background:transparent;color:#1e3a8a}.login-popup .error{margin:0;color:#9f1d1d;font-weight:600}.login-success{margin:0;padding:.85rem;border-radius:.5rem;background:#ecfdf5;color:#065f46;font-weight:600}.public-access{box-sizing:border-box;width:min(100%,68rem);margin:1.5rem auto 0;padding:clamp(1.25rem,3vw,2rem);border:1px solid #cbd5e1;border-radius:1rem;background:#f8fafc;color:#111827;line-height:1.55;text-align:left}.public-access-status{display:inline-block;margin:0 0 .6rem;padding:.2rem .65rem;border-radius:999px;background:#fef3c7;color:#78350f;font-size:.85rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.public-access h2,.public-access h3{color:#111827}.public-access h2{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.15}.public-access h3{margin:0 0 .5rem;font-size:1.05rem;line-height:1.3}.public-access-summary{max-width:54rem;margin:.8rem 0 1rem}.trust-navigation{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.25rem;padding:.75rem 0;border-top:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1}.trust-navigation a,.public-access a{color:#1d4ed8;font-weight:650;text-underline-offset:.2em}.trust-navigation a{display:inline-flex;align-items:center;min-width:2.75rem;min-height:2.75rem}.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.trust-grid>section{min-width:0;padding:1rem;border:1px solid #dbe3ee;border-radius:.75rem;background:#fff}.trust-grid p{margin:0}.public-access :target{scroll-margin-top:1rem}.public-access a:focus-visible,.login-popup input:focus-visible,.login-popup button:focus-visible{outline:3px solid #2563eb;outline-offset:3px}@media (max-width: 768px){.session-controls{right:16px;left:16px;justify-content:flex-end}.session-user{max-width:min(55vw,18rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trust-grid{grid-template-columns:1fr}.login-btn{width:100%}}.landing-page{--landing-canvas: #f8fafc;--landing-surface: #ffffff;--landing-ink: #0f172a;--landing-muted: #475569;--landing-accent: #1d4ed8;--landing-border: #cbd5e1;--landing-content-width: 100rem;--landing-card-radius: 1rem;--landing-card-shadow: 0 1.5rem 4rem rgba(15, 23, 42, .1);--landing-space-page: clamp(1rem, 2.25vw, 2rem);--landing-space-section: clamp(2rem, 6vw, 4.5rem);box-sizing:border-box;width:100%;min-height:100vh;min-height:100dvh;background:radial-gradient(circle at top,rgba(29,78,216,.08),transparent 34rem),var(--landing-canvas);color:var(--landing-ink);line-height:1.5;text-align:left}.landing-page *,.landing-page *:before,.landing-page *:after{box-sizing:border-box}.landing-page__frame{width:min(100%,var(--landing-content-width));margin:0 auto;padding:clamp(1rem,3vw,2rem) var(--landing-space-page) var(--landing-space-section)}.landing-skip-link{position:fixed;top:.75rem;left:.75rem;z-index:1100;display:inline-flex;align-items:center;min-height:2.75rem;padding:.65rem 1rem;border:2px solid var(--landing-ink);border-radius:.5rem;background:var(--landing-surface);color:var(--landing-ink);font-weight:700;transform:translateY(calc(-100% - 1rem))}.landing-skip-link:focus{outline:3px solid var(--landing-accent);outline-offset:3px;transform:translateY(0)}#landing-main-content:focus{outline:none}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-bottom:clamp(.85rem,2vw,1.25rem);border-bottom:1px solid var(--landing-border)}.landing-header__wordmark{margin:0;color:var(--landing-ink);font-size:clamp(1.9rem,4vw,2.5rem);font-weight:700;line-height:1;letter-spacing:-.045em}.landing-header__navigation{display:flex;align-items:center;gap:.75rem}.landing-header__navigation>a{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.6rem .75rem;border-radius:.5rem;color:var(--landing-ink);font-weight:650;text-decoration-thickness:.1em;text-underline-offset:.25em}.landing-header__navigation>a:hover{background:#1d4ed814;color:var(--landing-accent)}.landing-header__navigation>a:focus-visible,.landing-header__navigation .login-btn:focus-visible{outline:3px solid var(--landing-accent);outline-offset:3px}.landing-header__navigation .login-btn{width:auto}.landing-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(20rem,.92fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);padding:clamp(3rem,8vw,6rem) 0 clamp(2.5rem,6vw,4.5rem)}.landing-hero__copy{display:grid;gap:1.5rem;min-width:0}.landing-hero h1{max-width:14ch;margin:0;color:var(--landing-ink);font-size:clamp(3rem,5.5vw,4.25rem);font-weight:600;line-height:1.02;letter-spacing:-.045em}.landing-hero__summary{max-width:36rem;margin:0;color:var(--landing-muted);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.5}.landing-hero__actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.landing-hero__ios-status{display:grid;grid-template-columns:auto minmax(0,1fr);flex:1 1 auto;align-items:center;gap:.75rem;min-width:0;padding:.85rem 1rem;border:1px solid var(--landing-border);border-radius:.75rem;background:#ffffffb8}.landing-hero__platform{flex:0 0 auto;padding:.25rem .55rem;border-radius:999px;background:#1d4ed81a;color:var(--landing-accent);font-size:.8rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.landing-hero__ios-status p{min-width:0;margin:0;color:var(--landing-muted);font-size:.9rem;line-height:1.45}.landing-hero__ios-status strong{color:var(--landing-ink)}.landing-hero__ios-status a{display:inline-flex;align-items:center;grid-column:2;justify-self:start;flex:0 0 auto;min-width:2.75rem;min-height:2.75rem;color:var(--landing-accent);font-size:.9rem;font-weight:650;text-underline-offset:.2em;white-space:nowrap}.landing-hero__ios-status a:focus-visible,.landing-hero__actions .login-btn:focus-visible{outline:3px solid var(--landing-accent);outline-offset:3px}.landing-hero__actions .login-wrapper{flex:0 0 auto}.landing-hero__actions .login-btn{min-width:10rem}.landing-preview{display:grid;gap:1.25rem;min-width:0;padding:clamp(1.25rem,3vw,1.75rem);border:1px solid var(--landing-border);border-radius:var(--landing-card-radius);background:#ffffffe6;box-shadow:var(--landing-card-shadow)}.landing-preview__header{display:grid;gap:.5rem}.landing-preview__label-row,.landing-preview__run-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.landing-preview__label,.landing-preview__product-areas>p,.landing-preview__run-heading p{margin:0;color:var(--landing-muted);font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.landing-preview__sample-badge{flex:0 0 auto;padding:.2rem .5rem;border-radius:999px;background:#e2e8f0;color:var(--landing-ink);font-size:.72rem;font-weight:700}.landing-preview__header h2{margin:0;color:var(--landing-ink);font-size:clamp(1.55rem,3vw,2rem);line-height:1.1;letter-spacing:-.035em}.landing-preview__header>p,.landing-preview__data-note{margin:0;color:var(--landing-muted);font-size:.85rem;line-height:1.5}.landing-preview__product-areas{display:grid;gap:.45rem}.landing-preview__product-areas ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:0;padding:.3rem;border-radius:.7rem;background:#e2e8f0;list-style:none}.landing-preview__product-areas li{padding:.45rem .35rem;border-radius:.45rem;color:var(--landing-muted);font-size:.8rem;font-weight:700;text-align:center}.landing-preview__product-areas .landing-preview__product-area--current{background:var(--landing-surface);color:var(--landing-accent);box-shadow:0 1px 3px #0f172a1f}.landing-preview__run-card{display:grid;gap:1rem;padding:1rem;border:1px solid var(--landing-border);border-radius:.85rem;background:var(--landing-surface)}.landing-preview__run-heading h3{margin:.2rem 0 0;color:var(--landing-ink);font-size:1rem}.landing-preview__distance{display:grid;flex:0 0 auto;text-align:right}.landing-preview__distance strong{color:var(--landing-ink);font-size:1.2rem;line-height:1.1}.landing-preview__distance span{color:var(--landing-muted);font-size:.7rem}.landing-preview__details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;margin:0}.landing-preview__details div{min-width:0}.landing-preview__details dt{color:var(--landing-muted);font-size:.73rem}.landing-preview__details dd{margin:.15rem 0 0;color:var(--landing-ink);font-size:.9rem;font-weight:700;overflow-wrap:anywhere}.landing-preview__data-note{padding-top:1rem;border-top:1px solid var(--landing-border)}.landing-how-it-works{display:grid;gap:clamp(1.5rem,3vw,2.25rem);padding:var(--landing-space-section) 0}.landing-how-it-works__intro{display:grid;gap:.6rem;max-width:48rem}.landing-how-it-works__eyebrow{margin:0;color:var(--landing-accent);font-size:.85rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.landing-how-it-works__intro h2{margin:0;color:var(--landing-ink);font-size:clamp(2rem,5vw,3.5rem);line-height:1;letter-spacing:-.045em}.landing-how-it-works__intro>p:last-child{margin:0;color:var(--landing-muted);font-size:clamp(1rem,2vw,1.15rem)}.landing-how-it-works__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.landing-how-it-works__card{display:flex;flex-direction:column;gap:.85rem;min-width:0;padding:clamp(1.25rem,2.5vw,1.65rem);border:1px solid var(--landing-border);border-radius:var(--landing-card-radius);background:var(--landing-surface);box-shadow:0 .8rem 2.5rem #0f172a12}.landing-how-it-works__card-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.landing-how-it-works__card-heading>span{color:var(--landing-accent);font-size:.85rem;font-weight:800;letter-spacing:.08em}.landing-how-it-works__status{margin:0;padding:.25rem .55rem;border-radius:999px;background:#e2e8f0;color:var(--landing-ink);font-size:.72rem;font-weight:750;text-align:center}.landing-how-it-works__card h3{margin:.15rem 0 0;color:var(--landing-ink);font-size:1.35rem;line-height:1.2;letter-spacing:-.025em}.landing-how-it-works__card>p:not(.landing-how-it-works__status){margin:0;color:var(--landing-muted);line-height:1.6}.landing-how-it-works__card strong{color:var(--landing-ink)}.landing-how-it-works__boundary{padding-top:.85rem;border-top:1px solid var(--landing-border)}.landing-platforms{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:clamp(1.5rem,4vw,3.5rem);margin-bottom:var(--landing-space-section);padding:clamp(1.5rem,4vw,3rem);border-radius:var(--landing-card-radius);background:var(--landing-ink);box-shadow:var(--landing-card-shadow);color:var(--landing-surface)}.landing-platforms__intro{display:grid;align-content:start;gap:.75rem}.landing-platforms__eyebrow,.landing-platforms__label{margin:0;color:#93c5fd;font-size:.78rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.landing-platforms__intro h2{margin:0;color:var(--landing-surface);font-size:clamp(2rem,4.5vw,3.25rem);line-height:1;letter-spacing:-.045em}.landing-platforms__intro>p:last-child,.landing-platforms__card>p:not(.landing-platforms__label){margin:0;color:#cbd5e1;line-height:1.55}.landing-platforms__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.landing-platforms__card{display:flex;flex-direction:column;gap:.8rem;min-width:0;padding:1.25rem;border:1px solid rgba(203,213,225,.35);border-radius:.85rem;background:#ffffff0f}.landing-platforms__card h3{margin:0;color:var(--landing-surface);font-size:1.5rem;letter-spacing:-.025em}.landing-platforms__card strong{color:var(--landing-surface)}.landing-platforms__status{padding-top:.8rem;border-top:1px solid rgba(203,213,225,.35);font-size:.88rem}.landing-platforms__card>a,.landing-platforms__card .login-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:2.75rem;margin-top:auto;padding:.65rem 1rem;border:2px solid var(--landing-surface);border-radius:.5rem;background:var(--landing-surface);color:var(--landing-ink);font-size:.95rem;font-weight:700;text-align:center;text-decoration:none}.landing-platforms__card .login-wrapper{display:block;width:100%;margin-top:auto}.landing-platforms__card>a:hover,.landing-platforms__card .login-btn:hover{border-color:#bfdbfe;background:#bfdbfe;color:var(--landing-ink)}.landing-platforms__card>a:focus-visible,.landing-platforms__card .login-btn:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.landing-page .public-access{width:100%;margin:0;border-color:var(--landing-border);border-radius:var(--landing-card-radius);background:var(--landing-surface);box-shadow:var(--landing-card-shadow)}.landing-page .public-access a{color:var(--landing-accent)}@media (max-width: 640px){.landing-page__frame{padding-top:1rem;padding-bottom:2rem}.landing-header{align-items:stretch;flex-direction:column;gap:1rem}.landing-header__wordmark{text-align:center}.landing-header__navigation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.landing-header__navigation .login-wrapper,.landing-header__navigation .login-btn{width:100%}.landing-hero{grid-template-columns:minmax(0,1fr);padding-top:3.25rem}.landing-hero__actions,.landing-hero__ios-status{align-items:stretch;flex-direction:column}.landing-hero__ios-status{grid-template-columns:minmax(0,1fr)}.landing-hero__ios-status a{grid-column:1;align-self:flex-start;white-space:normal}.landing-hero__actions .login-wrapper,.landing-hero__actions .login-btn{width:100%}.landing-how-it-works__cards,.landing-platforms,.landing-platforms__cards{grid-template-columns:minmax(0,1fr)}}@media (min-width: 641px) and (max-width: 980px){.landing-hero{grid-template-columns:minmax(0,1fr);max-width:54rem}.landing-how-it-works__cards,.landing-platforms{grid-template-columns:minmax(0,1fr)}}.account-settings-btn{box-sizing:border-box;min-height:2.75rem;padding:.6rem .9rem;border:2px solid #334155;background:#fff;color:#111827;font-weight:650}.account-settings-btn:hover{background:#e2e8f0;color:#111827}.account-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;box-sizing:border-box;padding:1rem;overflow-y:auto;background:#0f172aad;color:#111827;line-height:1.5;text-align:left}.account-settings-dialog{box-sizing:border-box;width:min(100%,40rem);max-height:calc(100dvh - 2rem);padding:clamp(1.25rem,4vw,2rem);overflow-y:auto;border:2px solid #334155;border-radius:1rem;background:#fff;box-shadow:0 1.5rem 4rem #0f172a4d}.account-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.account-settings-eyebrow{margin:0 0 .25rem;color:#475569;font-size:.82rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.account-settings-dialog h2,.account-deletion-receipt h1{margin:0;line-height:1.2}.account-settings-dialog h2:focus,.account-deletion-error:focus{outline:3px solid #2563eb;outline-offset:.25rem}.account-settings-close{flex:0 0 auto;width:2.75rem;height:2.75rem;padding:0;background:transparent;color:#111827;font-size:1.75rem;line-height:1}.account-settings-close:hover{background:#e2e8f0;color:#111827}.account-deletion-facts{padding-left:1.4rem}.account-settings-dialog form{display:grid;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #cbd5e1}.account-settings-dialog label{font-weight:700}.account-settings-dialog input{box-sizing:border-box;width:100%;min-height:2.75rem;padding:.65rem .75rem;border:1px solid #475569;border-radius:.45rem;font:inherit}.account-deletion-submit,.account-deletion-resolve,.account-deletion-done{min-height:3rem;padding:.7rem 1rem;font-weight:750}.account-deletion-submit{background:#991b1b}.account-deletion-submit:hover{background:#7f1d1d}.account-deletion-submit:disabled,.account-deletion-resolve:disabled,.account-settings-close:disabled,.account-settings-dialog input:disabled{cursor:wait;opacity:.6}.account-deletion-status{margin:0;color:#334155}.account-deletion-error,.account-deletion-signout-error{margin:0;color:#991b1b;font-weight:650}.account-deletion-receipt{box-sizing:border-box;width:min(calc(100% - 2rem),42rem);margin:auto;padding:clamp(1.5rem,5vw,2.5rem);border:2px solid #0f766e;border-radius:1rem;background:#f0fdfa;color:#111827;line-height:1.55;text-align:left}.account-deletion-request-id{display:grid;gap:.6rem;padding:1rem;border-radius:.6rem;background:#fff}.account-deletion-request-id span{font-weight:700}.account-deletion-request-id code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.account-deletion-request-id button{justify-self:start;min-height:2.75rem;padding:.6rem .85rem}.account-deletion-signout-error{display:grid;gap:.75rem}.account-deletion-signout-error p{margin:0}.account-deletion-signout-error button{justify-self:start;min-height:2.75rem;padding:.6rem .85rem}@media (max-width: 768px){.session-controls{right:.75rem;left:.75rem;justify-content:center;flex-wrap:wrap}.session-user{flex-basis:100%;text-align:center}.account-settings-dialog{max-height:calc(100dvh - 1rem)}}.plan-container{padding:16px;font-family:sans-serif}.plan-header{margin-bottom:20px;text-align:center}.plan-header h2{margin:0;font-size:24px}.plan-header p{margin:5px 0 0;color:#555}.week-selector{margin-left:10px;padding:5px;border:1px solid #ccc;border-radius:5px;background:#fff;font-size:18px;cursor:pointer}.plan-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1vw}.plan-day{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px;border:1px solid #ccc;border-radius:4px;text-align:center;font:inherit;cursor:pointer;transition:box-shadow .3s}.plan-day.completed{box-shadow:inset 0 0 0 3px #278b57}.plan-day.skipped{opacity:.55}.plan-day:hover{box-shadow:0 0 5px #0003}.plan-day-number{margin-bottom:5px;color:#747373;font-weight:700}.plan-day-abbr{color:#000;font-size:2vw}.long-run{background-color:#fde2e2}.easy-run{background-color:#e2f7e2}.tempo-run{background-color:#fff5cc}.recovery-run{background-color:#e0f0ff}.rest-day{background-color:#f0f0f0}.plan-modal-overlay{position:fixed;top:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:#00000080}.plan-modal-content{width:300px;padding:20px;border-radius:6px;background-color:#fff;box-shadow:0 4px 8px #0003;text-align:center}.plan-modal-content h3{margin-top:0}.plan-modal-content p{margin:0}.plan-modal-content button{box-sizing:border-box;width:100%;margin-top:15px;padding:8px 12px;border:none;border-radius:4px;background-color:#007bff;color:#fff;cursor:pointer}.plan-modal-content button:hover{background-color:#0056b3}.next-workout-summary{width:min(100%,42rem);box-sizing:border-box;margin:1.25rem auto;padding:1.25rem;border:1px solid rgba(0,0,0,.14);border-radius:.9rem;background:#ffffffeb;color:#16202a;line-height:1.5;text-align:left}.next-workout-summary h2,.next-workout-summary p{margin:0}.next-workout-summary h2{margin-top:.2rem;font-size:clamp(1.25rem,3vw,1.65rem)}.next-workout-summary h2+p,.next-workout-target,.next-workout-summary.empty p:not(.next-workout-label){margin-top:.55rem}.next-workout-label{color:#315866;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.next-workout-target{font-weight:700}.next-workout-summary button{min-height:2.75rem;margin-top:1rem;padding:.6rem 1rem}.plan-approval-state{box-sizing:border-box;width:min(100%,44rem);margin:0 auto;padding:clamp(1.25rem,4vw,2rem);border:1px solid #d7dde4;border-radius:.75rem;background:#f8fafc;color:#17202a;line-height:1.5;text-align:left}.plan-approval-state.approved{border-color:#28754d;background:#f2fbf6;text-align:center}.plan-approval-state h2,.plan-approval-state h3{line-height:1.25}.plan-approval-state h2:focus,.plan-approval-outcome:focus{outline:3px solid #2e6fbb;outline-offset:.25rem}.plan-approval-eyebrow{margin:0;color:#475569;font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.plan-approval-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.5rem 0}.plan-approval-summary div{padding:.75rem;border:1px solid #d7dde4;border-radius:.5rem;background:#fff}.plan-approval-summary dt{font-size:.85rem;font-weight:700}.plan-approval-summary dd{margin:.2rem 0 0}.plan-approval-pending,.plan-approval-outcome{margin:1rem 0 0;padding:.85rem 1rem;border-radius:.5rem}.plan-approval-pending{background:#eef4fb}.plan-approval-outcome{border:1px solid #9a6a00;background:#fffaf0}.plan-approval-outcome h3,.plan-approval-outcome p{margin:0}.plan-approval-outcome p{margin-top:.35rem}.plan-approval-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.plan-approval-actions button{min-height:2.75rem;padding:.65rem 1rem}.plan-approval-actions .secondary{border:1px solid #17202a;background:#fff;color:#17202a}@media (max-width: 600px){.plan-approval-summary{grid-template-columns:1fr}.plan-approval-actions{flex-direction:column}.plan-approval-actions button{width:100%}}.plan-result-state{box-sizing:border-box;width:min(100%,36rem);margin:0 auto;padding:clamp(1.25rem,4vw,2rem);border:1px solid #d7dde4;border-radius:.75rem;background:#f8fafc;color:#17202a;line-height:1.5;text-align:center}.plan-result-state.unsupported{border-color:#7b5800;background:#fffaf0}.plan-result-state.invalid-input{border-color:#8b2635;background:#fff7f8}.plan-result-state h2{margin:.5rem 0;line-height:1.25}.plan-result-state-label{margin:0;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.plan-result-state button{min-height:2.75rem;margin-top:.75rem;padding:.65rem 1rem}@media (max-width: 600px){.plan-result-state button{width:100%}}.proposed-plan{width:min(100%,54rem);margin:0 auto;color:#17202a;line-height:1.5;text-align:left}.proposed-plan-header{text-align:center}.proposed-plan-header h2,.proposed-plan h3,.proposed-plan h4{line-height:1.25}.proposed-plan-status{display:inline-block;margin:0 0 .75rem;padding:.35rem .75rem;border:1px solid #7b5800;border-radius:999px;background:#fff4cc;color:#573e00;font-weight:700}.proposed-plan-dates,.proposed-plan-provenance dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.5rem 0}.proposed-plan-dates div,.proposed-plan-provenance dl div{padding:.75rem;border:1px solid #d7dde4;border-radius:.5rem;background:#f8fafc}.proposed-plan dt{font-size:.85rem;font-weight:700}.proposed-plan dd{margin:.2rem 0 0;overflow-wrap:anywhere}.proposed-plan-phase-list,.proposed-plan-workouts{padding:0;list-style:none}.proposed-plan-phase-list{display:flex;flex-wrap:wrap;gap:.75rem}.proposed-plan-phase-list li{padding:.55rem .75rem;border-radius:.5rem;background:#eef4fb}.proposed-plan-week-list{display:grid;gap:1rem}.proposed-plan-week{padding:1rem;border:1px solid #d7dde4;border-radius:.75rem}.proposed-plan-week h4,.proposed-plan-week p{margin-top:0}.proposed-plan-workouts{display:grid;gap:.6rem;margin-bottom:0}.proposed-plan-workouts li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding-top:.6rem;border-top:1px solid #e6eaf0}.proposed-plan-provenance{margin-top:1.5rem}.proposed-plan-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.proposed-plan-actions button{min-height:2.75rem;padding:.65rem 1rem}.proposed-plan-actions .secondary{border:1px solid #17202a;background:#fff;color:#17202a}@media (max-width: 600px){.proposed-plan-dates,.proposed-plan-provenance dl{grid-template-columns:1fr}.proposed-plan-actions{flex-direction:column-reverse}.proposed-plan-actions button{width:100%}}.tracker{display:flex;align-items:flex-start;justify-content:center;box-sizing:border-box;gap:2rem;width:min(100%,900px);max-width:900px;margin:auto;padding:2rem}.entry,.shoe-tracking{box-sizing:border-box;flex:1;min-width:0;padding:1.5rem;border-radius:8px;background:#f9f9f9;box-shadow:0 4px 10px #0000001a;color:#000}.space-y-3{display:flex;flex-direction:column;align-items:center}.tracker input,.tracker select,.tracker textarea,.tracker button{box-sizing:border-box;width:100%}.tracker textarea{min-height:5rem;resize:vertical}.tracker form,.tracker li{display:flex;flex-direction:column;gap:.5rem}.tracker ul{margin:0;padding:0}.training-error{color:#8a1c1c}.training-empty-state,.training-status,.training-field-hint{color:#555}.training-field-hint,.run-notes{margin:0}.tracker li{list-style-type:none}.shoe-entry-form label{display:grid;gap:.35rem;font-weight:700}.shoe-mileage-total{font-weight:700}.shoe-mileage-breakdown{color:#555;font-size:.92rem}.shoe-mileage-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.shoe-status{padding:.15rem .45rem;border-radius:999px;font-size:.78rem;font-weight:700}.shoe-status--active{background:#dcfce7;color:#166534}.shoe-status--retired{background:#e2e8f0;color:#334155}.shoe-retire-button{margin-top:.25rem}.confirmation-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;box-sizing:border-box;padding:1rem;background:#0f172aad}.confirmation-dialog{box-sizing:border-box;width:min(100%,30rem);padding:clamp(1.25rem,4vw,2rem);border:2px solid #334155;border-radius:1rem;background:#fff;box-shadow:0 1.5rem 4rem #0f172a4d;color:#111827;line-height:1.5;text-align:left}.confirmation-eyebrow{margin:0 0 .25rem;color:#475569;font-size:.82rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.confirmation-dialog h2{margin:0;line-height:1.2}.confirmation-summary{margin:1rem 0;font-weight:750}.confirmation-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}.confirmation-dialog .confirmation-cancel,.confirmation-dialog .confirmation-confirm{min-height:3rem;padding:.7rem 1rem;font-weight:750}.confirmation-dialog .confirmation-cancel{border:2px solid #334155;background:#fff;color:#111827}.confirmation-dialog .confirmation-confirm--danger{border:2px solid #991b1b;background:#991b1b;color:#fff}.confirmation-dialog .confirmation-confirm--caution{border:2px solid #92400e;background:#92400e;color:#fff}.confirmation-dialog .confirmation-cancel:hover{background:#e2e8f0;color:#111827}.confirmation-dialog .confirmation-confirm--danger:hover{background:#7f1d1d;color:#fff}.confirmation-dialog .confirmation-confirm--caution:hover{background:#78350f;color:#fff}@media (max-width: 420px){.confirmation-actions{grid-template-columns:1fr}}@media (max-width: 768px){.tracker{flex-direction:column;align-items:center;gap:1rem;width:100%;padding:0}.entry,.shoe-tracking{width:100%}}.analyze-container{position:relative;width:100%;min-width:0;padding:20px;border-radius:8px;color:#000;text-align:center}.analyze-cards{display:flex;flex-direction:column;flex-wrap:wrap;align-items:center;justify-content:space-around;gap:20px}.analyze-card{width:30%;min-width:10em;min-height:5em;border:1px solid #ccc;border-radius:8px;background-color:#f9f9f9;box-shadow:0 4px 10px #0000001a}.analyze-card h2{margin:0;color:#007bff;font-size:1.2rem}.analyze-card p{margin:0;font-size:1.5rem}.weekly-trend{width:100%;max-width:56rem;margin:2rem auto 0;padding:1rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff;text-align:left}.weekly-trend h2,.weekly-trend-context{margin:0}.weekly-trend h2{color:#005fcc;font-size:1.25rem}.weekly-trend-context{margin-top:.35rem;color:#34495e}.weekly-trend-chart{width:100%;min-width:0;height:18rem;margin-top:.75rem;overflow:hidden}.weekly-trend-data{margin-top:.75rem}.weekly-trend-data summary{color:#005fcc;cursor:pointer;font-weight:600}.weekly-trend-data table{width:100%;margin-top:.75rem;border-collapse:collapse}.weekly-trend-data caption{padding-bottom:.5rem;font-weight:600;text-align:left}.weekly-trend-data th,.weekly-trend-data td{padding:.5rem;border-bottom:1px solid #d9e2ec;text-align:left}@media (max-width: 768px){.analyze-container{width:100%;margin:0 auto}.weekly-trend{padding:.75rem}.weekly-trend-chart{height:16rem}.weekly-trend-data{overflow-x:auto}}.onboarding-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;box-sizing:border-box;overflow-y:auto;background:#f4f7fb;color:#111827;line-height:1.5;text-align:left}.onboarding-card{box-sizing:border-box;width:min(100%,70rem);min-height:100%;margin:0 auto;padding:clamp(1rem,4vw,3rem)}.onboarding-header{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}.onboarding-header>div{max-width:48rem}.onboarding-eyebrow{margin:0 0 .35rem;color:#1d4ed8;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.onboarding-header h1{margin:0;font-size:clamp(2rem,6vw,3.6rem);line-height:1.05}.onboarding-header p:not(.onboarding-eyebrow){max-width:44rem;margin:.8rem 0 0;color:#374151}.onboarding-close{flex:0 0 auto;min-height:2.75rem;padding:.65rem 1rem;border:1px solid #94a3b8;background:#fff;color:#111827}.onboarding-error-summary{margin-bottom:1rem;padding:.85rem 1rem;border:1px solid #b91c1c;border-radius:.65rem;background:#fef2f2;color:#7f1d1d;font-weight:650}.onboarding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.onboarding-question{min-width:0;margin:0;padding:1.15rem;border:1px solid #cbd5e1;border-radius:.85rem;background:#fff}.onboarding-question-wide{grid-column:1 / -1}.onboarding-question>label:first-child,.onboarding-question legend{padding:0;color:#111827;font-size:1.05rem;font-weight:750;line-height:1.3}.onboarding-question label span,.onboarding-question legend span{color:#475569;font-size:.9rem;font-weight:500}.onboarding-question>p:not(.onboarding-field-error,.onboarding-character-count){margin:.35rem 0 .8rem;color:#475569;font-size:.92rem}.onboarding-question input[type=text],.onboarding-question input[type=date],.onboarding-question input[type=number],.onboarding-question select,.onboarding-question textarea{box-sizing:border-box;width:100%;min-height:2.75rem;padding:.6rem .7rem;border:1px solid #64748b;border-radius:.45rem;background:#fff;color:#111827;font:inherit;line-height:1.3}.onboarding-question textarea{min-height:6rem;resize:vertical}.onboarding-question input[aria-invalid=true],.onboarding-question select[aria-invalid=true],.onboarding-question textarea[aria-invalid=true]{border-color:#b91c1c}.onboarding-question input:focus-visible,.onboarding-question select:focus-visible,.onboarding-question textarea:focus-visible,.onboarding-close:focus-visible,.onboarding-actions button:focus-visible{outline:3px solid #2563eb;outline-offset:2px}.onboarding-choice-row,.onboarding-option-grid,.onboarding-day-grid{display:flex;flex-wrap:wrap;gap:.65rem}.onboarding-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-choice-row label,.onboarding-option-grid label,.onboarding-day-grid label,.onboarding-confirmation{display:flex;align-items:center;gap:.55rem;min-height:2.75rem;padding:.45rem .7rem;border:1px solid #cbd5e1;border-radius:.55rem;background:#f8fafc;color:#1f2937;cursor:pointer}.onboarding-choice-row input,.onboarding-option-grid input,.onboarding-day-grid input,.onboarding-confirmation input{flex:0 0 auto;width:1.15rem;height:1.15rem;margin:0}.onboarding-inline-field{display:grid;gap:.35rem;max-width:20rem;margin-top:1rem;color:#1f2937;font-weight:650}.onboarding-date-row,.onboarding-three-column-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.onboarding-three-column-row{grid-template-columns:repeat(3,minmax(0,1fr))}.onboarding-date-row label,.onboarding-three-column-row label{display:grid;gap:.35rem;color:#1f2937;font-weight:650}.onboarding-field-error{margin:.55rem 0 0;color:#9f1d1d;font-size:.9rem;font-weight:650}.onboarding-character-count{margin:.25rem 0 0;color:#64748b;font-size:.8rem;text-align:right}.onboarding-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;padding:1rem;border:1px solid #cbd5e1;border-radius:.85rem;background:#fff}.onboarding-actions p{margin:0;color:#475569;font-size:.9rem}.onboarding-actions>div{display:flex;flex:0 0 auto;gap:.65rem}.onboarding-actions button{min-height:2.75rem;padding:.65rem 1rem}.onboarding-secondary-action{border:1px solid #64748b;background:#fff;color:#111827}.onboarding-actions button:disabled,.onboarding-close:disabled{cursor:wait;opacity:.65}.runner-profile-entry{display:grid;justify-items:center;gap:.35rem;margin:0 1rem 1.5rem;line-height:1.4}.runner-profile-entry p{margin:0;color:#475569;font-size:.9rem}.runner-profile-entry button{min-height:2.75rem;padding:.6rem 1rem;border:1px solid #64748b;background:#fff;color:#111827}.training-home-status{display:grid;justify-items:center;gap:.75rem;margin:0 1rem 1.5rem;line-height:1.5}.training-home-status p{margin:0}.training-home-status.training-error{color:#9f1d1d}@media (max-width: 768px){.onboarding-card{padding:1rem}.onboarding-header,.onboarding-actions{align-items:stretch;flex-direction:column}.onboarding-close{align-self:flex-start}.onboarding-grid,.onboarding-option-grid,.onboarding-date-row,.onboarding-three-column-row{grid-template-columns:1fr}.onboarding-question-wide{grid-column:auto}.onboarding-actions>div{display:grid;width:100%}}
