@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-vietnamese-500-normal-FzY9NZwK.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-500-normal-CAK5R6Iy.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-ext-500-normal-DIhLz7G7.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-500-normal-B0ZDNVGf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-DEDBoLFO.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CV-uA8Lw.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-italic-3fJ3SmOv.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-italic-B-Yabllp.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-italic-D-qjh7ci.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-italic-OoEIrRJc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--page-wide:960px;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;--step--1:.875rem;--step-0:1rem;--step-1:1.25rem;--step-2:1.563rem;--step-3:1.953rem;--step-4:2.441rem;--gutter:clamp(16px, 4vw, 32px);--radius:10px;--radius-sm:6px;--rail:232px;--rail-bg:#0b0c1a;--rail-text:#c9cbe4;--bg:#0e0f1e;--bg-raised:#15172b;--bg-card:#15172b;--bg-modal:#15172b;--bg-input:#15172b;--sunken:#1c1f38;--border:#272a48;--border-hi:#363a5e;--accent:#a5b4fc;--accent-d:#4f46e5;--accent-l:#c7d2fe;--glow:#a5b4fc33;--text:#e7e8f4;--ink-soft:#c9cbe4;--muted:#9a9fbb;--dim:#9195b2;--surface-2:#ffffff0a;--inset:#0000002e;--inset-soft:#00000014;--hl:#f08a4b;--hl-wash:#4a2413;--hl-ink:#ffe6d6;--moss-wash:#163a2b;--brick-wash:#3f1d1d;--sky-wash:#20234a;--tone-good:#5fbf92;--tone-warn:#f0b44b;--tone-bad:#f08080;--tone-cool:#7fb8e6;--success:#5fbf92;--danger:#f08080;--warning:#f0b44b}:root[data-theme=light]{--rail-bg:#1d1f3a;--bg:#f7f7fb;--bg-raised:#fff;--bg-card:#fff;--bg-modal:#fff;--bg-input:#fff;--sunken:#eeeff6;--border:#e0e2ee;--border-hi:#c7cadb;--accent:#4f46e5;--accent-d:#1d1f3a;--accent-l:#4338ca;--glow:#4f46e526;--text:#1d1f3a;--ink-soft:#33365a;--muted:#5d6178;--dim:#5d6178;--surface-2:#1d1f3a09;--inset:#1d1f3a0b;--inset-soft:#1d1f3a05;--hl:#f08a4b;--hl-wash:#ffdcc7;--hl-ink:#5a2400;--moss-wash:#dcefe5;--brick-wash:#f8e1df;--sky-wash:#e6e7fb;--tone-good:#2f7d5b;--tone-warn:#8a5a00;--tone-bad:#b4403b;--tone-cool:#2e6aa3;--success:#2f7d5b;--danger:#b4403b;--warning:#8a5a00}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;font-size:1rem;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700;line-height:1.15}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1);font-weight:500}button,input,select,textarea{font-family:inherit}a{color:var(--accent);text-underline-offset:2px;text-decoration:none}a:hover{color:var(--text);text-decoration:underline}mark,.hl{color:var(--hl-ink);background:linear-gradient(100deg, transparent .15em, var(--hl-wash) .2em, var(--hl-wash) calc(100% - .2em), transparent calc(100% - .12em));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 70%;background-repeat:no-repeat;background-size:100% 70%;border-radius:2px;padding:0 .12em}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--bg-raised)}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--dim)}.auth-wrap{grid-template-columns:minmax(0,1fr) minmax(0,520px);min-height:100vh;display:grid}.auth-side{background:var(--rail-bg);color:#e7e8f4;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,5rem);display:flex}.auth-side .rail-brand{padding:0 0 2rem;font-size:1.95rem}.auth-quote{font-family:var(--font-display);max-width:18ch;margin:0;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.2}.auth-quote mark{color:#2a1000;background-image:linear-gradient(100deg, transparent .1em, var(--hl) .15em, var(--hl) calc(100% - .15em), transparent)}.auth-side-lead{color:#b4b7d4;max-width:40ch;margin-top:1.5rem;line-height:1.55}.auth-main{flex-direction:column;min-width:0;display:flex}@media (width<=860px){.auth-wrap{grid-template-columns:1fr}.auth-side{padding:1.25rem 1rem}.auth-side .auth-quote,.auth-side .auth-side-lead{display:none}.auth-side .rail-brand{padding:0;font-size:1.4rem}}.auth-wrapper{flex:1;justify-content:center;align-items:center;min-height:70vh;padding:clamp(2rem,5vw,4rem) clamp(1.25rem,5vw,3.5rem);display:flex}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:440px;padding:32px}.auth-main .auth-wrapper{min-height:0}.auth-main .auth-card{background:0 0;border:0;max-width:420px;padding:0}.auth-card h1{color:var(--text);margin-bottom:8px;font-size:1.95rem}.auth-card .subtitle{color:var(--muted);margin-bottom:28px;font-size:.95rem}.form-group{margin-bottom:18px}.form-group label{color:var(--text);margin-bottom:5px;font-size:.875rem;font-weight:700;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border-hi);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text);outline:none;padding:9px 12px;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.form-group select option{background:var(--bg-card);color:var(--text)}.form-group input[type=radio],.form-group input[type=checkbox]{width:auto;padding:0}.form-group .radio-option{margin-bottom:0;display:flex}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}.form-group textarea{resize:vertical;min-height:80px}.field-error{color:var(--danger);margin-top:4px;font-size:.8rem}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;width:100%;padding:9px 16px;font-size:.95rem;line-height:1.3;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover:not(:disabled){background:var(--ink-soft);border-color:var(--ink-soft);color:var(--bg);text-decoration:none}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-hl{background:var(--hl);color:#2a1000;border-color:var(--hl);font-weight:700}.btn-hl:hover:not(:disabled){filter:brightness(1.05);color:#2a1000;text-decoration:none}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border-hi)}.btn-secondary:hover:not(:disabled){color:var(--text);border-color:var(--ink-soft);text-decoration:none}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover:not(:disabled){background:var(--brick-wash)}.alert{border-radius:var(--radius-sm);color:var(--text);margin-bottom:18px;padding:11px 14px;font-size:.95rem}.alert-error{background:var(--brick-wash);border:1px solid var(--danger)}.alert-success{background:var(--moss-wash);border:1px solid var(--success)}.alert-info{background:var(--sky-wash);border:1px solid var(--accent)}.alert-warning{background:var(--hl-wash);border:1px solid var(--hl)}.site-notice{text-align:center;overflow-wrap:anywhere;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;padding:10px 16px;font-size:.9rem;display:flex}.site-notice-info{background:var(--sky-wash);color:var(--text);border-bottom:1px solid var(--accent)}.site-notice-warning{background:var(--hl-wash);color:var(--text);border-bottom:1px solid var(--hl)}.site-notice-dismiss{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;min-height:24px;padding:2px 10px;font-size:.8rem}.auth-main>.auth-wrapper{flex:1;min-height:0}.rest-days-chosen{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.rest-warning .day-picker{margin:8px 0}.btn-link{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;align-items:center;min-height:24px;padding:0;font-family:inherit;text-decoration:underline;display:inline-flex}.btn-link:hover{color:var(--accent-l)}.btn-link:disabled{opacity:.5;cursor:default}.rest-warning .btn-link{color:inherit;margin-top:4px;font-size:.85rem}.divider{text-align:center;color:var(--dim);margin:20px 0;font-size:.875rem}.google-button{justify-content:center;min-height:44px;display:flex}.auth-legal{text-align:center;color:var(--dim);margin:16px 0 0;font-size:.8125rem;line-height:1.5}.shell{grid-template-columns:var(--rail) minmax(0, 1fr);min-height:100vh;display:grid}.shell-main{flex-direction:column;min-width:0;display:flex}.rail{background:var(--rail-bg);height:100vh;color:var(--rail-text);border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{font-family:var(--font-display);letter-spacing:-.02em;color:#fff;align-items:center;gap:2px;padding:0 8px 18px;font-size:1.55rem;font-weight:700;text-decoration:none;display:inline-flex}.rail-brand:hover{color:#fff;text-decoration:none}.rail-brand .brand-n-mark{width:.95em;height:1.05em}.rail-nav{min-height:38px;color:var(--rail-text);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 12px;font-size:1rem;text-decoration:none;display:flex}.rail-nav svg{opacity:.8;flex:none}.rail-nav:hover{color:#fff;background:#ffffff12;text-decoration:none}.rail-nav.active{color:#fff;box-shadow:inset 3px 0 0 var(--hl);background:#f08a4b29;font-weight:600}.rail-nav.active svg{opacity:1;color:var(--hl)}.rail-section{letter-spacing:.08em;text-transform:uppercase;color:#8c90b3;margin:14px 12px 4px;font-size:.72rem;font-weight:700}.rail-tools{align-items:center;gap:8px;padding:14px 8px 4px;display:flex}.rail-foot{color:#9ea2c4;border-top:1px solid #ffffff14;margin-top:auto;padding:14px 12px 0;font-size:.875rem}.rail-signout{cursor:pointer;min-height:24px;color:var(--rail-text);font:inherit;text-underline-offset:2px;background:0 0;border:0;margin-top:4px;padding:0;text-decoration:underline}.rail-signout:hover{color:#fff}.rail .bell-btn,.rail .theme-toggle{color:var(--rail-text);border-color:#ffffff2e}.rail .bell-btn:hover,.rail .theme-toggle:hover{color:#fff;border-color:#fff6}.rail .bell-badge{box-shadow:0 0 0 2px var(--rail-bg)}.rail .bell-panel{top:16px;left:calc(var(--rail) + 10px);position:fixed;right:auto}.mobile-bar{display:none}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr)}.rail{display:none}.rail.open{z-index:60;width:min(300px,82vw);height:auto;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:0 0 0 100vmax #05060f73}.mobile-bar{background:var(--rail-bg);color:#fff;z-index:50;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.mobile-bar .rail-brand{padding:0;font-size:1.3rem}.mobile-bar-actions{align-items:center;gap:8px;display:flex}.mobile-bar .bell-btn{color:var(--rail-text);border-color:#ffffff2e}.mobile-bar .bell-badge{box-shadow:0 0 0 2px var(--rail-bg)}.mobile-bar .bell-panel{width:auto;position:fixed;top:60px;left:12px;right:12px}.mobile-menu-btn{border-radius:var(--radius-sm);cursor:pointer;color:#fff;min-height:34px;font:inherit;background:0 0;border:1px solid #ffffff40;padding:6px 12px;font-weight:700}}.public-shell{flex-direction:column;min-height:100vh;display:flex}.public-nav{width:100%;max-width:1120px;padding:20px var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;display:flex}.public-shell .app-shell-main{width:100%;max-width:1120px;margin:0 auto}.public-nav .rail-brand{color:var(--text);padding:0}.public-nav .rail-brand:hover{color:var(--text)}.public-nav-links{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.public-nav-link{border-radius:var(--radius-sm);color:var(--text);padding:7px 12px;text-decoration:none}.public-nav-link:hover{background:var(--sunken);color:var(--text);text-decoration:none}.public-nav-link[aria-current=page]{background:var(--sunken);font-weight:600}.public-nav .btn{width:auto}.theme-toggle{border:1px solid var(--border-hi);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s;display:flex}.theme-toggle:hover{color:var(--text);border-color:var(--ink-soft)}:root[data-theme=light] .cal-modal,:root[data-theme=light] .cal-modal-overlay .cal-modal{box-shadow:0 20px 60px #1c20332e}.landing{max-width:1120px;padding:clamp(24px, 6vw, 64px) var(--gutter) 32px;margin:0 auto}.landing-hero{max-width:760px}.landing-kicker{color:var(--muted);margin-bottom:14px;font-size:.95rem;font-weight:700}.landing-title{letter-spacing:-.02em;max-width:16ch;color:var(--text);margin-bottom:22px;font-size:clamp(2.4rem,6.5vw,3.6rem);line-height:1.05}.landing-title mark{padding:0;animation:1.1s ease-out .2s both swipe}.landing-tagline{color:var(--muted);max-width:52ch;margin-bottom:32px;font-size:1.2rem;line-height:1.6}.landing-actions{flex-wrap:wrap;gap:12px;display:flex}.landing-cta{width:auto;padding:12px 26px;font-size:1rem}.hero-week{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);max-width:560px;margin:clamp(36px,6vw,56px) 0 0;padding:20px 22px;transform:rotate(-.6deg)}.hero-week-head{font-family:var(--font-display);margin-bottom:10px;font-size:1.15rem;font-weight:700}.hero-week-list{margin:0;padding:0;list-style:none}.hero-week-list li{border-top:1px solid var(--border);grid-template-columns:3rem minmax(0,1fr);gap:10px;padding:9px 0;line-height:1.5;display:grid}.hero-week-list li:first-child{border-top:0}.hero-week-list small{color:var(--muted);font-size:.85rem;display:block}.hero-week-list s{color:var(--muted)}.hero-week mark{animation:1.1s ease-out both swipe;animation-delay:calc(var(--i,0) * .35s + .6s)}.hero-day{color:var(--muted);font-weight:700}.hero-done{color:var(--tone-good);margin-left:4px;font-size:.85rem;font-weight:700}@keyframes swipe{0%{background-size:0% 70%}to{background-size:100% 70%}}.page-container{max-width:640px;padding:0 var(--gutter);margin:40px 0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.card h2{font-size:var(--step-1);margin-bottom:20px}.profile-field{flex-direction:column;margin-bottom:20px;display:flex}.profile-field .label{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:4px;font-size:.78rem;font-weight:600}.profile-field .value{color:var(--text);font-size:1rem}.row{gap:16px;display:flex}.row .form-group{flex:1;min-width:0}.btn-sm{width:auto;padding:7px 14px;font-size:.875rem}.spinner{border:2px solid #ffffff47;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.otp-hint{color:var(--muted);margin-top:8px;font-size:.85rem}.cal-page{max-width:1400px;padding:0 var(--gutter) 48px;margin:32px 0}.cal-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.cal-nav{gap:6px;display:flex}.cal-nav-btn{font-size:1.1rem;line-height:1}.cal-title{text-align:center;flex:1;margin:0;font-size:1.25rem;font-weight:700}.cal-view-toggle{border:1px solid var(--border);background:var(--bg-raised);border-radius:9px;display:flex;overflow:hidden}.cal-view-btn{color:var(--muted);border:none;border-right:1px solid var(--border);cursor:pointer;background:0 0;padding:7px 14px;font-size:.85rem;font-weight:600;transition:all .12s}.cal-view-btn:last-child{border-right:none}.cal-view-btn{white-space:nowrap}.cal-view-btn.active{background:var(--accent-d);color:#fff}.cal-view-btn:hover:not(.active){color:var(--text);background:#ffffff0f}.cal-event{background:var(--accent-d);color:#fff;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex-direction:column;justify-content:center;gap:1px;min-height:24px;margin-bottom:2px;padding:2px 6px;font-size:.73rem;line-height:1.5;display:flex;overflow:hidden}.cal-event:hover{filter:brightness(1.18)}.cal-event-row{align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.cal-event-text{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.cal-profile{pointer-events:none;background:var(--inset);border-radius:2px;display:block}.cal-profile--timed{margin-top:auto}.cal-hours-collapsed{flex-direction:column;align-items:center;gap:6px;padding:18px 16px 22px;display:flex}.cal-hours-show{width:auto;padding:6px 14px;font-size:.85rem}.cal-hours-note{color:var(--dim);text-align:center;font-size:.8rem}.cal-quicklog{width:24px;height:24px;color:inherit;cursor:pointer;background:#ffffff29;border:1px solid #ffffff8c;border-radius:50%;flex:none;place-items:center;padding:0;font-size:.78rem;line-height:1;transition:background .12s;display:grid}.cal-quicklog:hover{background:#fff6}:is(.cal-event,.activity-badge).act-rest-day{color:var(--dim);border:1px dashed var(--border);background:0 0;font-style:italic}:is(.cal-event,.activity-badge).act-rest-day:hover{filter:none;background:var(--surface-2,#7f7f7f14)}:is(.cal-event,.activity-badge).act-away{background:var(--surface-2,#7f7f7f14);color:var(--dim);border:1px dashed var(--border);font-style:italic}:is(.cal-event,.activity-badge).act-away:before{content:"✈️ ";font-style:normal}:is(.cal-event,.activity-badge).act-away:hover{filter:none}:is(.cal-event,.activity-badge).act-race-day{background:var(--hl);color:#2a1000;border:none;font-weight:700}:is(.cal-event,.activity-badge).act-race-day:before{content:"🏁 "}.race-result-section{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:9px;margin-bottom:12px;padding:12px}.race-result-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-l);margin-bottom:8px;font-size:.72rem;font-weight:700;display:block}.race-legs{flex-wrap:wrap;gap:8px;display:flex}.race-leg{flex-direction:column;flex:90px;display:flex}.race-leg--t{flex:0 64px}.race-leg label{color:var(--muted);margin-bottom:2px;font-size:.72rem}.race-total-hint{color:var(--accent-l);margin:8px 0 0;font-size:.85rem;font-weight:600}.race-result-value{color:var(--muted);font-size:.85rem}.race-prefill{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 12px;display:flex}.race-prefill-vals{color:var(--accent-l);flex-wrap:wrap;gap:10px;margin-top:4px;font-size:.85rem;display:flex}.today-page{max-width:640px}.today-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:inset 0 3px 0 var(--hl);margin:14px 0 18px;padding:22px}.today-headline{color:var(--text);align-items:center;gap:10px;font-size:1.35rem;font-weight:700;line-height:1.2;display:flex}.today-emoji{font-size:1.5rem}.today-reason{color:var(--muted);margin:10px 0 4px}.today-encouragement{color:var(--accent-l);margin:0 0 16px;font-size:.9rem}.today-actions{flex-wrap:wrap;gap:10px;display:flex}.today-card--rest,.today-card--done{box-shadow:inset 0 3px 0 var(--success)}.today-consistency{gap:12px;display:flex}.today-consistency .stat-card{text-align:center;flex:1}.today-graduate{margin-top:18px}.cal-event-more{color:var(--dim);padding:1px 4px;font-size:.73rem}.cal-slot-hint{color:var(--dim);font-size:.78rem}:is(.cal-event,.activity-badge).act-running{background:#ea580c}:is(.cal-event,.activity-badge).act-trail-running{background:#c2410c}:is(.cal-event,.activity-badge).act-track-running{background:#f97316}:is(.cal-event,.activity-badge).act-treadmill{background:#9a3412}:is(.cal-event,.activity-badge).act-ultra-run{background:#7c2d12}:is(.cal-event,.activity-badge).act-indoor-track{background:#b45309}:is(.cal-event,.activity-badge).act-virtual-run{background:#a16207}:is(.cal-event,.activity-badge).act-obstacle-run{background:#dc4400}:is(.cal-event,.activity-badge).act-cycling{background:#2563eb}:is(.cal-event,.activity-badge).act-indoor-cycling{background:#3b82f6}:is(.cal-event,.activity-badge).act-mountain-biking{background:#1d4ed8}:is(.cal-event,.activity-badge).act-gravel-cycling{background:#1e40af}:is(.cal-event,.activity-badge).act-e-bike-road{background:#4f46e5}:is(.cal-event,.activity-badge).act-e-bike-mountain{background:#3730a3}:is(.cal-event,.activity-badge).act-track-cycling{background:#6366f1}:is(.cal-event,.activity-badge).act-bmx{background:#312e81}:is(.cal-event,.activity-badge).act-virtual-ride{background:#4338ca}:is(.cal-event,.activity-badge).act-swimming,:is(.cal-event,.activity-badge).act-pool-swim{background:#0891b2}:is(.cal-event,.activity-badge).act-open-water-swim{background:#0e7490}:is(.cal-event,.activity-badge).act-walking{background:#0d9488}:is(.cal-event,.activity-badge).act-hiking{background:#047857}:is(.cal-event,.activity-badge).act-nordic-walking{background:#059669}:is(.cal-event,.activity-badge).act-indoor-walking{background:#0f766e}:is(.cal-event,.activity-badge).act-rock-climbing{background:#b45309}:is(.cal-event,.activity-badge).act-indoor-climbing{background:#92400e}:is(.cal-event,.activity-badge).act-bouldering{background:#c05621}:is(.cal-event,.activity-badge).act-mountaineering{background:#78350f}:is(.cal-event,.activity-badge).act-via-ferrata{background:#713f12}:is(.cal-event,.activity-badge).act-alpine-skiing{background:#0284c7}:is(.cal-event,.activity-badge).act-snowboarding{background:#4c1d95}:is(.cal-event,.activity-badge).act-xc-classic-skiing{background:#0ea5e9}:is(.cal-event,.activity-badge).act-xc-skate-skiing{background:#0369a1}:is(.cal-event,.activity-badge).act-backcountry-skiing{background:#075985}:is(.cal-event,.activity-badge).act-ski-touring{background:#0c6c9e}:is(.cal-event,.activity-badge).act-snowshoeing{background:#1e3a8a}:is(.cal-event,.activity-badge).act-ice-skating{background:#6b21a8}:is(.cal-event,.activity-badge).act-kayaking{background:#155e75}:is(.cal-event,.activity-badge).act-whitewater-kayaking{background:#0f4c5c}:is(.cal-event,.activity-badge).act-canoeing{background:#0a3d4f}:is(.cal-event,.activity-badge).act-rowing{background:#164e63}:is(.cal-event,.activity-badge).act-open-water-rowing{background:#0e2b38}:is(.cal-event,.activity-badge).act-paddleboarding{background:#0c4a6e}:is(.cal-event,.activity-badge).act-surfing{background:#083344}:is(.cal-event,.activity-badge).act-windsurfing{background:#134e4a}:is(.cal-event,.activity-badge).act-kitesurfing{background:#0f4c5c}:is(.cal-event,.activity-badge).act-strength-training{background:#dc2626}:is(.cal-event,.activity-badge).act-cardio{background:#e11d48}:is(.cal-event,.activity-badge).act-hiit{background:#9333ea}:is(.cal-event,.activity-badge).act-yoga{background:#16a34a}:is(.cal-event,.activity-badge).act-pilates{background:#15803d}:is(.cal-event,.activity-badge).act-elliptical{background:#7e22ce}:is(.cal-event,.activity-badge).act-stair-stepper{background:#6d28d9}:is(.cal-event,.activity-badge).act-breathwork{background:#86198f}:is(.cal-event,.activity-badge).act-stretching{background:#d97706}:is(.cal-event,.activity-badge).act-tennis{background:#4d7c0f}:is(.cal-event,.activity-badge).act-pickleball{background:#65a30d}:is(.cal-event,.activity-badge).act-squash{background:#3f6212}:is(.cal-event,.activity-badge).act-badminton{background:#5a8700}:is(.cal-event,.activity-badge).act-racquetball{background:#3d5e00}:is(.cal-event,.activity-badge).act-padel{background:#2a4900}:is(.cal-event,.activity-badge).act-golf{background:#166534}:is(.cal-event,.activity-badge).act-basketball{background:#d4500a}:is(.cal-event,.activity-badge).act-soccer{background:#1a7d43}:is(.cal-event,.activity-badge).act-volleyball{background:#ca6b00}:is(.cal-event,.activity-badge).act-ice-hockey{background:#1a6fa8}:is(.cal-event,.activity-badge).act-rugby{background:#7d3c1a}:is(.cal-event,.activity-badge).act-baseball{background:#6b4c2a}:is(.cal-event,.activity-badge).act-boxing{background:#7f1d1d}:is(.cal-event,.activity-badge).act-kickboxing{background:#991b1b}:is(.cal-event,.activity-badge).act-martial-arts{background:#b91c1c}:is(.cal-event,.activity-badge).act-triathlon{background:#be185d}:is(.cal-event,.activity-badge).act-duathlon{background:#9d174d}:is(.cal-event,.activity-badge).act-swim-run{background:#db2777}:is(.cal-event,.activity-badge).act-multisport{background:#f43f5e}:is(.cal-event,.activity-badge).act-sailing{background:#475569}:is(.cal-event,.activity-badge).act-horse-riding{background:#78716c}:is(.cal-event,.activity-badge).act-hunting{background:#52525b}:is(.cal-event,.activity-badge).act-fishing{background:#57534e}:is(.cal-event,.activity-badge).act-orienteering{background:#4b5563}:is(.cal-event,.activity-badge).act-jump-rope{background:#374151}:is(.cal-event,.activity-badge).act-dance{background:#c026d3}:is(.cal-event,.activity-badge).act-obstacle-course{background:#be123c}:is(.cal-event,.activity-badge).act-floor-climbing{background:#431407}:is(.cal-event,.activity-badge).act-other{background:#4b5563}:is(.cal-event,.activity-badge).act-golf:before{content:"⛳ "}:is(.cal-event,.activity-badge).act-sailing:before{content:"⛵ "}:is(.cal-event,.activity-badge).act-horse-riding:before{content:"🐎 "}:is(.cal-event,.activity-badge).act-hunting:before{content:"🏹 "}:is(.cal-event,.activity-badge).act-fishing:before{content:"🎣 "}.profile-page{max-width:var(--page-wide);padding:0 var(--gutter) 48px;margin:32px 0}.profile-page .card{padding:0;overflow:hidden}.profile-page .card>*{padding:28px 32px}@media (width<=640px){.profile-page .card>*{padding:20px 16px}}.activity-empty{text-align:center;color:var(--muted);padding:48px 0;line-height:1.8}.activity-group{margin-bottom:28px}.activity-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin-bottom:10px;font-size:.78rem;font-weight:700}.activity-row{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:12px 0;display:flex}.activity-row:last-child{border-bottom:none}.activity-row--link,.activity-row--link:hover{color:inherit;text-decoration:none}.activity-row--link:hover .activity-title,.activity-row--link:focus-visible .activity-title{text-decoration:underline}.activity-filters{flex-wrap:wrap;gap:8px;max-width:640px;margin-bottom:8px;display:flex}.activity-filters input{flex:220px;min-width:0}.activity-filters select{flex:0 200px;min-width:0}.activity-count{color:var(--muted);margin:0 0 4px;font-size:.82rem}.activity-row-main{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.activity-badge{border-radius:var(--radius);color:#fff;background:var(--accent-d);white-space:nowrap;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-block}.activity-title{color:var(--text);font-size:.95rem;font-weight:600}.activity-meta{color:var(--muted);font-size:.82rem}.activity-notes{color:var(--dim);font-size:.82rem;font-style:italic}.analysis-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:18px 16px}.stat-value{font-family:var(--font-display);color:var(--text);margin-bottom:6px;font-size:2rem;font-weight:700;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);font-size:.78rem;font-weight:600}@media (width<=640px){.analysis-stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px 10px}.stat-value{white-space:nowrap;font-size:1.5rem}.stat-label{white-space:nowrap;letter-spacing:.03em}.range-selector{flex-wrap:wrap}.range-selector .cal-view-toggle{width:100%}.range-selector .cal-view-btn{flex:1;padding:7px 4px;font-size:.8rem}}.analysis-chart-title{color:var(--muted);margin-bottom:12px;font-size:.95rem;font-weight:700}.analysis-chart-note{color:var(--dim);font-size:.82rem;font-weight:400}.week-notes{color:var(--muted);margin:10px 0 0;padding-left:18px;font-size:.875rem;line-height:1.5}.week-notes li+li{margin-top:4px}.struct-editor{flex-direction:column;gap:6px;margin-top:8px;display:flex}.struct-row{align-items:center;gap:6px;display:flex}.struct-label{flex:auto}.struct-min{width:56px}.struct-unit{color:var(--dim);font-size:.8rem}.struct-type{flex:0 0 110px}.struct-del{color:var(--danger);padding:0 4px}.strength-log{flex-direction:column;gap:12px;margin-top:10px;display:flex}.strength-ex{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 4%, transparent);border-radius:10px;padding:10px 12px}.strength-ex-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.strength-ex-name{font-size:.92rem;font-weight:600}.strength-sets{flex-direction:column;gap:4px;display:flex}.strength-set{grid-template-columns:32px 1fr 1fr 1fr 24px;align-items:center;gap:6px;display:grid}.strength-set input{text-align:center;width:100%;padding:5px 7px;font-size:.85rem}.strength-set--head{text-transform:uppercase;letter-spacing:.04em;color:var(--dim);font-size:.7rem}.strength-set--head span{text-align:center}.strength-set-num{text-align:center;color:var(--muted);font-size:.82rem}.strength-x{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem}.strength-addset{align-self:flex-start;margin-top:4px}.strength-add{gap:8px;display:flex}.strength-add input{flex:auto;padding:7px 10px}.strength-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.strength-volume{color:var(--muted);font-size:.82rem;font-weight:600}.race-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.race-row input[type=date]{flex:none;width:auto;min-width:0}.race-row select{flex:0 0 130px;width:auto}.race-row input[type=text]{flex:auto;width:auto;min-width:0}@media (width<=640px){.race-row{flex-wrap:wrap}.race-row input[type=date],.race-row select{flex:40%}.race-row input[type=text]{flex:calc(100% - 40px)}}.race-del{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 4px}.field-help{color:var(--dim);margin:2px 0 8px;font-size:.8rem}.cal-year-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=900px){.cal-year-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.cal-year-grid{grid-template-columns:repeat(2,1fr)}}.cal-mini-month{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);padding:12px}.cal-mini-header{text-align:center;cursor:pointer;color:var(--accent-l);margin-bottom:8px;font-size:.85rem;font-weight:700}.cal-mini-header:hover{text-decoration:underline}.cal-mini-dow{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.cal-mini-dow span{text-align:center;color:var(--dim);font-size:.62rem;font-weight:600}.cal-mini-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-mini-day{aspect-ratio:1;cursor:pointer;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:.68rem;display:flex;position:relative}.cal-mini-day:hover:not(:empty){background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text)}.cal-mini-day.is-today{background:var(--accent-d);color:#fff;font-weight:700}.cal-mini-day.has-workout:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:1px}.cal-mini-day.is-today.has-workout:after{background:#fffc}.cal-month{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.cal-dow-header{background:var(--surface-2);border-bottom:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-dow{text-align:center;color:var(--muted);padding:8px 0;font-size:.78rem;font-weight:600}.cal-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;min-height:96px;padding:6px;transition:background .1s}.cal-cell:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.cal-cell:nth-child(7n){border-right:none}.cal-cell--empty{background:var(--inset);cursor:default}.cal-cell--other{background:var(--inset-soft)}.cal-cell--other .cal-day-num{color:var(--dim)}.cal-cell--today{background:color-mix(in srgb, var(--accent) 8%, transparent)}.cal-cell--drop{background:color-mix(in srgb, var(--accent) 20%, transparent);box-shadow:inset 0 0 0 2px var(--accent)}.cal-event--draggable{cursor:grab}.cal-event--draggable:active{cursor:grabbing}.cal-event--dragging{opacity:.4}.cal-day-num{color:var(--muted);align-items:center;gap:4px;margin-bottom:4px;font-size:.82rem;font-weight:600;display:flex}.cal-day-num>span{cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.cal-day-num>span:hover{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--text)}.cal-cell--today .cal-day-num>span{background:var(--accent-d);color:#fff}.cal-cell--today .cal-day-num>span:hover{background:var(--accent)}.cal-timeline{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.cal-tl-header{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:2;display:grid;position:sticky;top:0}.cal-tl-gutter{border-right:1px solid var(--border)}.cal-tl-day-hdr{text-align:center;border-right:1px solid var(--border);cursor:pointer;padding:10px 4px 8px;transition:background .1s}.cal-tl-day-hdr:last-child{border-right:none}.cal-tl-day-hdr:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.cal-tl-day-hdr.is-today{background:color-mix(in srgb, var(--accent) 9%, transparent)}.cal-tl-dow{color:var(--dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.cal-tl-date{color:var(--muted);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;margin:4px auto 0;font-size:1.1rem;font-weight:700;display:flex}.cal-tl-day-hdr.is-today .cal-tl-date{background:var(--accent-d);color:#fff}.cal-allday{border-bottom:1px solid var(--border);display:grid}.cal-allday-label{color:var(--dim);text-align:right;border-right:1px solid var(--border);padding:6px 6px 0;font-size:.65rem}.cal-allday-cell{border-right:1px solid var(--border);cursor:pointer;min-width:0;min-height:32px;padding:4px;overflow:hidden}.cal-allday-cell:last-child{border-right:none}.cal-allday-cell:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.cal-tl-body{min-height:240px;max-height:calc(100vh - 240px);position:relative;overflow-y:auto}.cal-tl-gutter-body{border-right:1px solid var(--border);background:var(--bg-card);z-index:1;position:sticky;left:0}.cal-tl-gutter-body .cal-hour-label{border-right:none}.cal-tl-day-col{border-right:1px solid var(--border);cursor:pointer;position:relative}.cal-tl-day-col:last-child{border-right:none}.cal-tl-day-col:hover{background:color-mix(in srgb, var(--accent) 2%, transparent)}.cal-hour-line{pointer-events:none;background:#2628408c;height:1px;position:absolute;left:0;right:0}.cal-event--timed{white-space:normal;cursor:pointer;z-index:1;border-radius:5px;flex-direction:column;padding:3px 6px;transition:filter .1s;display:flex;position:absolute;left:2px;right:2px;overflow:hidden}.cal-event--timed:hover{filter:brightness(1.18);z-index:2}.cal-event-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.75rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.cal-event-meta{opacity:.75;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.65rem;overflow:hidden}.cal-hour-row{border-bottom:1px solid #26284099;display:grid}.cal-hour-row:last-child{border-bottom:none}.cal-hour-label{color:var(--dim);text-align:right;border-right:1px solid var(--border);white-space:nowrap;height:48px;padding-right:6px;font-size:.68rem;line-height:48px}.cal-hour-cell{cursor:pointer;border-right:1px solid #26284073;height:48px;padding:2px 4px;overflow:hidden}.cal-hour-cell:last-child{border-right:none}.cal-hour-cell:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.cal-modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:100;background:#0000009e;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cal-modal{background:var(--bg-modal);border:1px solid var(--border-hi);border-radius:var(--radius);width:100%;max-width:460px;max-height:calc(100vh - 48px);padding:28px;overflow-y:auto;box-shadow:0 12px 40px #05060f59}.cal-modal h2{overflow-wrap:anywhere;margin-bottom:4px;font-size:1.25rem;font-weight:700}.cal-modal .subtitle{color:var(--muted);margin-bottom:20px}.cal-modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.session-page{max-width:780px;padding:0 var(--gutter);margin:24px 0}.session-page-back{margin-bottom:12px;display:inline-block}.cal-modal.cal-modal--page,:root[data-theme=light] .cal-modal.cal-modal--page{max-width:none;max-height:none;box-shadow:none;overflow:visible}.cal-modal--page h1{overflow-wrap:anywhere;margin-bottom:4px;font-size:1.5rem;font-weight:700}.session-open-page{color:var(--muted);margin-bottom:6px;font-size:.82rem;display:inline-block}.session-open-page:hover{color:var(--text)}@media (width<=640px){.cal-modal-overlay{padding:10px}.cal-modal{border-radius:var(--radius);padding:20px}.cal-modal-actions{flex-wrap:wrap}}.duration-inputs{align-items:center;gap:6px;display:flex}.duration-inputs input{flex:0 62px;width:62px;min-width:0}.duration-inputs span{color:var(--dim);white-space:nowrap;font-size:.875rem}.card-error{background:var(--surface);border:1px dashed var(--border-hi);border-radius:var(--radius);color:var(--muted);align-items:flex-start;gap:9px;margin-bottom:14px;padding:14px 16px;font-size:.85rem;line-height:1.5;display:flex}.card-error-icon{flex-shrink:0;font-size:1rem;line-height:1.35}.offline-bar{background:#f59e0b1f;border:1px solid #f59e0b59;border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:12px;padding:9px 12px;display:flex}.offline-bar--syncing{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 32%, transparent)}.offline-bar-head{font-size:.85rem;font-weight:700}.offline-bar-text{color:var(--muted);font-size:.82rem;line-height:1.45}.offline-bar-count{background:#f59e0b38;border-radius:999px;margin-left:auto;padding:2px 9px;font-size:.75rem;font-weight:700}@media (width<=560px){.offline-bar-count{margin-left:0}}.weather-banner{background:#38bdf81a;border:1px solid #38bdf847;border-radius:10px;flex-direction:column;gap:3px;margin-bottom:14px;padding:10px 12px;display:flex}.weather-summary{font-size:.9rem;font-weight:600}.weather-guidance{color:var(--muted);font-size:.85rem}.weather-pacing{color:var(--text);border-top:1px solid #38bdf838;margin-top:5px;padding-top:6px;font-size:.85rem;line-height:1.45}.fueling-banner{color:var(--text);background:#fbbf241a;border:1px solid #fbbf2447;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 12px;font-size:.85rem;line-height:1.45;display:flex}.fueling-icon{font-size:1rem;line-height:1.3}.fueling-card{color:var(--text);background:#fbbf2414;border:1px solid #fbbf2447;border-radius:10px;margin-bottom:14px;padding:12px 14px;font-size:.85rem;line-height:1.45}.fueling-card-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.fueling-card-sub{opacity:.72;font-size:.8rem}.fueling-card-grid{flex-wrap:wrap;gap:16px;margin-bottom:8px;display:flex}.fueling-stat{flex-direction:column;display:flex}.fueling-stat-val{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.fueling-stat-label{opacity:.72;font-size:.76rem}.fueling-card-carry{opacity:.9;margin:4px 0 0}.fueling-card-basis{opacity:.72;margin:6px 0 0;font-size:.78rem;font-style:italic}.past-plans{margin-top:16px}.past-plan-list{margin:0;padding:0;list-style:none}.past-plan-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:8px 0;display:flex}.past-plan-row:last-child{border-bottom:none}.past-plan-name{font-weight:600}.past-plan-dates{opacity:.72;font-variant-numeric:tabular-nums;font-size:.82rem}.past-plan-row--expandable{display:block}.past-plan-head{align-items:center;gap:12px;display:flex}.past-plan-toggle{min-height:24px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;flex:auto;align-items:center;gap:10px;padding:8px 0;display:flex}.past-plan-toggle:hover .past-plan-name{text-decoration:underline}.past-plan-caret{opacity:.6;font-size:.8rem}.past-plan-body{padding:4px 0 12px}.plan-summary{flex-direction:column;gap:10px;display:flex}.plan-summary-goal{opacity:.85;margin:0;font-style:italic}.plan-summary-line{opacity:.78;margin:0;font-size:.86rem}.plan-summary-sports{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.plan-summary-sports li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.plan-summary-sport-figs{opacity:.8;font-variant-numeric:tabular-nums;font-size:.84rem}.plan-summary-races h4{margin:0 0 6px;font-size:.9rem}.plan-summary-races ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.plan-summary-races li{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.plan-summary-race-date{opacity:.7;font-variant-numeric:tabular-nums;font-size:.82rem}.plan-summary-race-label{font-weight:600}.plan-summary-race-result{font-variant-numeric:tabular-nums;opacity:.85}.plan-next-cta,.plan-next-block{padding:12px 16px}.pr-celebration-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pr-celebration{background:var(--bg-modal);border:1px solid var(--hl);border-radius:var(--radius);text-align:center;width:100%;max-width:380px;padding:28px 32px;box-shadow:0 12px 40px #0006}.pr-celebration-medal{margin-bottom:8px;font-size:3rem;line-height:1}.pr-celebration-title{margin:0 0 12px;font-size:1.2rem}.pr-celebration-list{flex-direction:column;gap:6px;margin:0 0 18px;padding:0;font-weight:600;list-style:none;display:flex}.pr-celebration-list li{background:#fbbf241f;border-radius:8px;padding:8px 12px}.season-mix{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.season-mix-cell{text-align:center;background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:8px;flex:60px;min-width:56px;padding:6px 4px}.season-mix-month{opacity:.65;font-size:.72rem}.season-mix-sessions{font-size:.95rem;font-weight:700}.season-mix-top{opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.library-picker{margin-bottom:14px}.library-toggle{cursor:pointer;color:var(--accent,#6366f1);background:0 0;border:none;padding:2px 0;font-size:.85rem;font-weight:600}.library-groups{flex-direction:column;gap:10px;margin-top:8px;display:flex}.library-group-label{text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-bottom:4px;font-size:.72rem}.library-chips{flex-wrap:wrap;gap:6px;display:flex}.library-chip{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);cursor:pointer;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.82rem;display:inline-flex}.library-chip:hover{background:color-mix(in srgb, var(--accent) 20%, transparent)}.library-chip-min{opacity:.6;font-size:.7rem}.compress-section{margin-bottom:14px}.compress-toggle{cursor:pointer;color:var(--accent,#6366f1);background:0 0;border:none;padding:2px 0;font-size:.85rem;font-weight:600}.compress-body{background:var(--inset);border:1px solid var(--border);border-radius:10px;margin-top:8px;padding:10px 12px}.compress-input{flex-wrap:wrap;align-items:center;gap:8px;font-size:.86rem;display:flex}.compress-input input{font-variant-numeric:tabular-nums;width:5.5rem;padding:5px 8px}.compress-note{margin:8px 0 0}.compress-preview{margin-top:10px}.compress-headline{margin-bottom:4px;font-size:.88rem;font-weight:600}.compress-mainset{color:var(--text);font-variant-numeric:tabular-nums;border-left:3px solid var(--success);margin-bottom:8px;padding-left:8px;font-size:.82rem}.compress-tradeoff{color:var(--muted);margin:0 0 10px;font-size:.82rem;line-height:1.45}.compress-refusal{color:var(--text);border-left:3px solid var(--warning);margin:10px 0 0;padding-left:8px;font-size:.82rem;line-height:1.45}.stream-card{border-radius:var(--radius);border:1px solid #80808033;margin-bottom:14px;padding:12px 14px}.stream-card-head{margin-bottom:10px;font-size:.9rem}.stream-visuals{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:10px;display:flex}.route-fig{flex:none;max-width:100%;margin:0}.route-map{background:color-mix(in srgb, var(--accent) 5%, transparent);max-width:100%;color:var(--text,#888);border-radius:8px;display:block}.route-legend{opacity:.75;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:.72rem;display:flex}.route-key:before{content:"";vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}.route-key-start:before{background:#10b981}.route-key-end:before{background:#ef4444}.route-scale{align-items:center;gap:4px;display:inline-flex}.route-tiles{filter:invert()hue-rotate(180deg)brightness(.9)contrast(.85)}:root[data-theme=light] .route-tiles{filter:none}.route-attrib{margin-left:auto}.route-attrib a{color:inherit}.route-scale i{border:1px solid;border-top:none;height:6px;display:inline-block}.elev-wrap{flex:220px;min-width:200px}.elev-profile{width:100%;height:90px;display:block}.elev-stats{opacity:.75;font-variant-numeric:tabular-nums;margin-top:2px;font-size:.76rem}.splits-trend{color:var(--accent,#6366f1);margin-bottom:6px;font-size:.82rem;font-weight:600}.splits-table{border-collapse:collapse;width:100%;font-size:.84rem}.splits-table th,.splits-table td{text-align:left;font-variant-numeric:tabular-nums;border-bottom:1px solid #80808024;padding:3px 8px}.splits-table th{opacity:.6;font-weight:600}.splits-table .split-partial{opacity:.6;font-style:italic}.splits-summary{opacity:.85;font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 16px;margin-bottom:8px;font-size:.8rem;display:flex}.splits-summary strong{opacity:.65;font-weight:600}.splits-scroll{max-height:260px;overflow-y:auto}.splits-scroll .splits-table thead th{background:var(--bg-modal,#1a1a1a);position:sticky;top:0}.splits-toggle{cursor:pointer;color:var(--accent,#6366f1);background:0 0;border:none;margin-top:6px;padding:0;font-size:.8rem;font-weight:600}.splits-toggle:hover{text-decoration:underline}@media (width<=480px){.stream-visuals{flex-direction:column}.route-fig{width:100%}.route-map{height:auto;width:100%!important}}.session-analysis{background:var(--inset);border:1px solid var(--border);border-radius:10px;margin-bottom:14px;padding:12px 14px}.session-analysis-headline{margin-bottom:8px;font-size:.9rem;font-weight:600}.session-analysis-rows{gap:6px;display:grid}.session-analysis-row{border-left:3px solid var(--dim);grid-template-columns:84px 1fr auto 1fr;align-items:baseline;gap:8px;padding-left:8px;font-size:.84rem;display:grid}.session-analysis-row.verdict-on{border-left-color:var(--success)}.session-analysis-row.verdict-harder{border-left-color:var(--warning)}.session-analysis-row.verdict-easier{border-left-color:var(--accent)}.session-analysis-row.verdict-info{border-left-color:var(--border-hi)}.sa-label{color:var(--muted)}.sa-prescribed{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.sa-arrow{color:var(--dim)}.sa-actual{font-variant-numeric:tabular-nums;font-weight:600}@media (width<=480px){.session-analysis-row{grid-template-columns:72px 1fr auto 1fr;gap:6px;font-size:.8rem}}.session-compare{background:var(--inset);border:1px solid var(--border);border-radius:10px;margin-bottom:14px;padding:12px 14px}.session-compare-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.session-compare-title{font-size:.9rem;font-weight:600}.session-compare-source{color:var(--muted);font-size:.76rem}.session-compare-headline{color:var(--text);margin:0 0 10px;font-size:.84rem;line-height:1.45}.session-compare-rows{gap:6px;display:grid}.session-compare-row{border-left:3px solid var(--dim);grid-template-columns:84px 1fr auto 1fr 62px;align-items:baseline;gap:8px;padding-left:8px;font-size:.84rem;display:grid}.session-compare-row.tone-better{border-left-color:var(--success)}.session-compare-row.tone-worse{border-left-color:var(--warning)}.session-compare-row.tone-info{border-left-color:var(--border-hi)}.sc-metric{color:var(--muted)}.sc-prev{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.sc-arrow{color:var(--dim)}.sc-cur{font-variant-numeric:tabular-nums;font-weight:600}.sc-change{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.session-compare-row.tone-better .sc-change{color:var(--success)}.session-compare-row.tone-worse .sc-change{color:var(--warning)}@media (width<=480px){.session-compare-row{grid-template-columns:68px 1fr auto 1fr;gap:6px;font-size:.8rem}.sc-change{display:none}}.session-reps{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.session-reps-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:8px;display:flex}.session-reps-title{font-size:.82rem;font-weight:600}.session-reps-source{color:var(--dim);font-size:.72rem}.session-reps-bars{flex-wrap:wrap;gap:6px;display:flex}.session-rep{border:1px solid var(--border);background:#ffffff08;border-bottom-width:3px;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:62px;padding:6px 8px;display:flex}.session-rep.verdict-on{border-bottom-color:var(--success)}.session-rep.verdict-harder{border-bottom-color:var(--warning)}.session-rep.verdict-easier{border-bottom-color:var(--accent)}.session-rep.verdict-info{border-bottom-color:var(--border-hi)}.session-rep-index{color:var(--dim);font-size:.68rem}.session-rep-value{font-variant-numeric:tabular-nums;font-size:.84rem;font-weight:600}.session-reps-note{color:var(--muted);margin-top:8px;font-size:.78rem}.start-session-btn{width:100%;margin-bottom:14px;padding:12px;font-size:1rem}.ivl-overlay{z-index:200;color:#fff;padding:24px calc(24px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));padding-top:calc(24px + env(safe-area-inset-top));flex-direction:column;transition:background .4s;display:flex;position:fixed;inset:0}.ivl-top{align-items:center;gap:12px;display:flex}.ivl-title{text-shadow:0 1px 3px #0000004d;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.ivl-step-count{font-variant-numeric:tabular-nums;opacity:.85;font-weight:600}.ivl-x{color:#fff;cursor:pointer;background:#00000038;border:none;border-radius:50%;width:38px;height:38px;font-size:1rem}.ivl-main{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.ivl-effort{letter-spacing:.14em;opacity:.92;font-size:1.5rem;font-weight:700}.ivl-clock{font-variant-numeric:tabular-nums;text-shadow:0 4px 20px #00000047;font-size:clamp(4.5rem,26vw,9rem);font-weight:700;line-height:1}.ivl-label{opacity:.95;font-size:1.25rem;font-weight:600}.ivl-next{opacity:.8;background:#0000002e;border-radius:999px;margin-top:8px;padding:6px 14px;font-size:.95rem}.ivl-progress{background:#00000038;border-radius:999px;height:26px;margin-bottom:22px;position:relative;overflow:hidden}.ivl-progress-bar{background:#ffffff52;transition:width .5s linear;position:absolute;inset:0 auto 0 0}.ivl-progress-text{text-align:center;font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600;line-height:26px;position:relative}.ivl-controls{justify-content:center;align-items:center;gap:28px;display:flex}.ivl-ctrl{color:#fff;cursor:pointer;background:#00000038;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.4rem;display:flex}.ivl-ctrl--big{background:#00000052;width:82px;height:82px;font-size:2rem}.ivl-ctrl:active{transform:scale(.93)}.ivl-done{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:auto;display:flex}.ivl-done-check{background:#22c55e;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;margin-bottom:12px;font-size:3rem;display:flex}.ivl-done h2{font-size:1.6rem}.ivl-done-total{opacity:.8;margin-bottom:16px}.cal-event--done{opacity:.78}.cal-event--partial{opacity:.78;background-image:linear-gradient(#ffffff1f,#ffffff1f)}.cal-event--skipped{opacity:.32;text-decoration:line-through}.wellness-bar{background:#34d39912;border-bottom:1px solid #34d39924;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;font-size:.85rem;display:flex}.wellness-bar-label{color:var(--tone-good);font-weight:600}.wellness-bar-summary{color:var(--muted)}.wellness-bar-empty{color:var(--dim)}.profile-page .card>.connected-apps,.profile-page .card>.passkey-section,.profile-page .card>.danger-zone{border-top:none;margin-top:14px;padding-top:0;padding-bottom:0}.profile-page .card>.connected-apps:first-child,.profile-page .card>.passkey-section:first-child,.profile-page .card>.danger-zone:first-child{margin-top:28px}.profile-page .card>.connected-apps:last-child,.profile-page .card>.passkey-section:last-child,.profile-page .card>.danger-zone:last-child{margin-bottom:28px}.danger-zone h3{margin-bottom:12px;font-size:1rem}.danger-zone .connected-app-row+.connected-app-row{margin-top:10px}.danger-title{color:var(--danger)}.danger-confirm{margin-top:12px}.danger-confirm label{color:var(--dim);margin-bottom:6px;font-size:.875rem;display:block}.danger-confirm-row{flex-wrap:wrap;gap:10px;display:flex}.danger-confirm-row input{flex:220px}.danger-confirm-row .btn{width:auto}.connected-apps h3{margin-bottom:12px;font-size:1rem}.connected-app-row{background:var(--inset);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 14px;display:flex}.connected-app-row>div:first-child{flex:340px;min-width:0}.connected-app-row>div:last-child{flex:none}@media (width<=640px){.connected-app-row>div:last-child{flex-basis:100%}}.connected-app-name{color:#fc5200;font-weight:600}:root[data-theme=light] .connected-app-name{color:#c2410c}.connected-app-name--neutral{color:var(--text)}.connected-app-detail{color:var(--muted);margin-top:2px;font-size:.85rem}.notif-summary{gap:4px;display:grid}.notif-summary>div{justify-content:space-between;gap:12px;display:flex}.notif-summary>div>span{color:var(--muted)}.notif-matrix{gap:4px;display:grid}.notif-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;display:flex}.notif-row:last-child{border-bottom:none}.notif-type-name{font-size:.9rem;font-weight:600}.notif-type-hint{color:var(--muted);margin-top:1px;font-size:.78rem}.notif-channels{flex-wrap:wrap;gap:16px;display:flex}.notif-channels .pref-toggle{margin:0}.notif-quiet{align-items:center}.quiet-range{align-items:center;gap:6px;display:inline-flex}.quiet-range select{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:4px 8px;font-size:.82rem}.quiet-to{color:var(--muted);font-size:.8rem}.zones-card h3{margin-bottom:6px;font-size:1rem}.zones-card .empty-hint{color:var(--muted);background:var(--inset);border:1px solid var(--border);border-radius:10px;margin-top:12px;padding:14px 16px;font-size:.9rem}.zones-card .empty-hint ul{margin:8px 0 0;padding-left:20px}.zones-card .empty-hint li{margin:4px 0}.zones-grid{gap:18px;margin-top:16px;display:grid}@media (width>=720px){.zones-grid{grid-template-columns:1fr 1fr}}.zone-system{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.zone-system-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.zone-system-name{color:var(--accent-l);font-weight:700}.zone-system-anchor{color:var(--dim);font-size:.78rem}.zone-table{border-collapse:collapse;width:100%}.zone-table th[scope=row]{text-align:left;color:var(--text);white-space:nowrap;padding:6px 10px 6px 0;font-size:.82rem;font-weight:600}.zone-table td{vertical-align:top;padding:6px 0}.zone-range{font-variant-numeric:tabular-nums;color:var(--accent-l);white-space:nowrap;font-weight:600;padding-right:12px!important}.zone-desc{color:var(--muted);font-size:.8rem}.zone-table tr+tr th,.zone-table tr+tr td{border-top:1px solid var(--border)}.passkey-section h3{margin-bottom:8px;font-size:1rem}.passkey-section .section-hint{color:var(--muted);max-width:46ch;margin-bottom:14px;font-size:.85rem}.passkey-list{gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.passkey-row{background:var(--inset);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.passkey-name{color:var(--text);font-weight:600}.passkey-detail{color:var(--muted);margin-top:2px;font-size:.85rem}.passkey-add-form{margin-top:6px}.passkey-add-form .btn-row{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.passkey-add-form .btn-row .btn{width:auto}.btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.import-result{background:var(--inset);border:1px solid var(--border);border-radius:10px;margin-top:12px;padding:10px 14px}.import-result-errors{color:var(--danger,#ef4444);margin:6px 0 0;padding-left:20px;font-size:.82rem;line-height:1.5}.readiness-banner{flex-wrap:wrap;align-items:baseline;gap:12px;padding:10px 16px;font-size:.85rem;display:flex}.readiness-banner--amber{background:#f59e0b1a;border-bottom:1px solid #f59e0b47}.readiness-banner--red{background:#ef44441a;border-bottom:1px solid #ef444447}.readiness-banner--advisory{background:color-mix(in srgb, var(--accent) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.readiness-banner--advisory .readiness-banner-headline{color:var(--accent-l)}.readiness-banner-headline{font-weight:600}.readiness-banner--amber .readiness-banner-headline{color:#fbbf24}.readiness-banner--red .readiness-banner-headline{color:#f87171}.readiness-banner--amber .readiness-banner-reasons{color:#fbbf24bf}.readiness-banner--red .readiness-banner-reasons{color:#f87171bf}.readiness-banner-rec{color:var(--muted)}.dash{max-width:760px;padding:0 var(--gutter);margin:32px 0}.dash-head{margin-bottom:20px}.dash-greeting{font-size:var(--step-4);line-height:1.1}.dash-date{color:var(--muted);margin-top:4px;font-size:.9rem}.dash-headline{color:var(--text);max-width:60ch;margin:-8px 0 20px;font-size:1.15rem;font-weight:600;line-height:1.45}.dash .readiness-banner{border-radius:var(--radius);margin-bottom:14px}.dash .readiness-banner--amber{border:1px solid #f59e0b47}.dash .readiness-banner--red{border:1px solid #ef444447}.dash .readiness-banner--advisory{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.dash-metrics{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin-bottom:22px;display:grid}.dash-metric{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--border-hi);border-radius:var(--radius);padding:14px 16px}.dash-metric-label{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);margin-bottom:6px;font-size:.72rem;font-weight:600}.dash-metric-value{color:var(--text);font-size:1.5rem;font-weight:700;line-height:1.15}.dash-metric-sub{color:var(--muted);font-size:.9rem;font-weight:600}.dash-metric-note{color:var(--muted);margin-top:5px;font-size:.76rem;line-height:1.35}.onboard-step--done .onboard-step-title{color:var(--muted);text-decoration:line-through}.onboard-step--done .onboard-step-icon{color:var(--success)}.page-skeleton-block{border-radius:var(--radius);background:var(--surface-2);min-height:92px;animation:1.4s ease-in-out infinite page-skeleton-pulse}.page-skeleton-block--lead{min-height:150px;margin-bottom:16px}.page-skeleton-row{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;display:grid}@keyframes page-skeleton-pulse{0%,to{opacity:.55}50%{opacity:.9}}.page-skeleton-block--tall{min-height:60vh;margin-top:16px}.page-skeleton-hold{min-height:100vh}@media (prefers-reduced-motion:reduce){.page-skeleton-block{animation:none}}.dash-metric-note a{color:var(--accent-l)}.dash-metric--fresh{border-left-color:var(--success)}.dash-metric--neutral{border-left-color:var(--accent)}.dash-metric--building{border-left-color:var(--warning)}.dash-metric--fatigued{border-left-color:var(--danger)}.dash-metric--fresh .dash-metric-value{color:var(--success)}.dash-metric--building .dash-metric-value{color:var(--warning)}.dash-metric--fatigued .dash-metric-value{color:var(--danger)}.dash-trend{margin-left:6px;font-size:.85rem;font-weight:700}.dash-trend--up{color:var(--success)}.dash-trend--down{color:var(--warning)}.dash-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:18px 20px}.dash-panel--flush{background:0 0;border:none;padding:0}.gated-card{border-style:dashed}.gated-chip{letter-spacing:.02em;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600}.gated-pitch{color:var(--muted);margin:6px 0 12px;font-size:.9rem}.gated-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.about-feature-more{margin-top:4px}.about-feature-more summary{cursor:pointer;color:var(--accent-l);width:fit-content;font-size:.85rem;font-weight:600}.about-feature-more[open] summary{margin-bottom:4px}.shared-page h2{font-size:1.05rem;font-weight:700}.shared-weeks,.shared-sessions{margin:0;padding:0;list-style:none}.shared-weeks li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:8px 0;display:flex}.shared-weeks li:last-child{border-bottom:none}.shared-week-label{color:var(--muted)}.shared-session{border-bottom:1px solid var(--border);padding:10px 0}.shared-session:last-child{border-bottom:none}.shared-session-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.shared-session-title{overflow-wrap:anywhere;min-width:0;font-weight:600}.shared-session-state{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:700}.shared-session-state--done{color:var(--accent-l)}.shared-session-meta{color:var(--muted);margin-top:2px;font-size:.85rem}.strava-writeback{cursor:pointer;align-items:flex-start;gap:8px;margin-top:10px;font-weight:600;display:flex}.strava-writeback input{flex-shrink:0;margin-top:3px}.strava-writeback-hint{color:var(--muted);margin-top:2px;font-size:.85rem;font-weight:400;display:block}.coach-log--compact{font-size:.92rem}.coach-log-list{margin:0;padding:0;list-style:none}.coach-log-entry{border-bottom:1px solid var(--border);padding:12px 0}.coach-log-entry:last-child{border-bottom:none;padding-bottom:0}.coach-log-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.coach-log-title{overflow-wrap:anywhere;min-width:0;font-weight:600}.coach-log-status{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:700}.coach-log-status--pending{color:var(--accent-l)}.coach-log-meta{color:var(--muted);margin-top:2px;font-size:.82rem}.coach-log-toggle{margin-top:4px;font-size:.82rem}.coach-log-detail{margin-top:8px;font-size:.9rem}.coach-log-reason{white-space:pre-line;overflow-wrap:anywhere;margin:0 0 8px}.coach-log-sessions{margin:0 0 8px;padding-left:18px}.coach-log-sessions li{margin-bottom:4px}.coach-log-outcome{color:var(--muted);margin:0}.founding-badge{color:var(--muted);margin:0 0 14px;font-size:.9rem}.subscription-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.promo-redeem-form{align-items:center;gap:8px;display:flex}.promo-redeem-form input{border:1px solid var(--border);background:var(--bg-card);width:160px;color:var(--text);border-radius:8px;padding:5px 10px}.subscription-chip{vertical-align:middle;margin-left:8px}label.connected-app-name{margin:0;display:block}.subscription-section .connected-app-row+.connected-app-row{margin-top:10px}.connected-apps.subscription-section .connected-app-name{color:var(--text)}.subscription-actions{flex:none;gap:8px;display:flex}.subscription-actions .btn{width:auto}.subscription-actions--below{margin-top:12px}@media (width<=640px){.connected-app-row>div.promo-redeem-form{flex:100%;min-width:0}.promo-redeem-form input{flex:1;width:auto;min-width:0}}.pricing-grid{grid-template-columns:1fr 1fr;gap:16px;max-width:720px;margin:0 auto;display:grid}@media (width<=640px){.pricing-grid{grid-template-columns:1fr}}.pricing-tier{flex-direction:column;display:flex}.pricing-tier--coach{border-color:var(--accent)}.pricing-price{margin:4px 0 2px;font-size:1.6rem;font-weight:700}.pricing-price small{color:var(--muted);font-size:.85rem;font-weight:400}.pricing-list{margin:10px 0 14px;padding:0;list-style:none}.pricing-list li{padding:3px 0;font-size:.92rem}.pricing-note{color:var(--muted);margin-top:auto;font-size:.85rem}.pricing-buy{flex-direction:column;gap:8px;margin-top:auto;display:flex}.dash-story{box-shadow:inset 3px 0 0 var(--hl)}.dash-story-text{margin:0;font-size:.98rem;line-height:1.6}.dash-countdown{border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:inset 3px 0 0 var(--accent);align-items:center;gap:18px;margin-bottom:16px;padding:16px 20px;display:flex}.dash-countdown--soon{background:var(--hl-wash);border-color:var(--hl);box-shadow:inset 3px 0 0 var(--hl)}.dash-countdown-num{color:var(--accent-l);flex-shrink:0;align-items:baseline;gap:6px;font-size:2.6rem;font-weight:700;line-height:1;display:flex}.dash-countdown--soon .dash-countdown-num{color:#f472b6}.dash-countdown-unit{color:var(--muted);font-size:.9rem;font-weight:600}.dash-countdown-title{color:var(--text);font-size:1.05rem;font-weight:700}.dash-countdown-sub{color:var(--muted);margin-top:3px;font-size:.85rem;line-height:1.4}.dash-weather{border-radius:var(--radius);background:#38bdf817;border:1px solid #38bdf842;align-items:flex-start;gap:12px;margin-bottom:16px;padding:13px 16px;display:flex}.dash-weather-icon{flex-shrink:0;font-size:1.3rem;line-height:1.2}.dash-weather-head{color:var(--text);font-size:.92rem;font-weight:700}.dash-weather-when{color:var(--muted);font-weight:500}.dash-weather-guidance{color:var(--muted);margin-top:3px;font-size:.85rem;line-height:1.45}.dash-countdown-readiness{border-top:1px solid color-mix(in srgb, var(--accent) 20%, transparent);color:var(--muted);margin-top:8px;padding-top:8px;font-size:.82rem;line-height:1.45}.dash-countdown-form{color:var(--accent-l);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:6px;margin-right:6px;padding:1px 7px;font-weight:700;display:inline-block}.dash-panel--lead{border-color:var(--border-hi)}.wreview-headline{color:var(--text);margin:4px 0 14px;font-size:1.02rem;font-weight:600;line-height:1.55}.wreview-rec{background:var(--sky-wash);border:1px solid var(--border);border-radius:11px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.wreview-rec-tag{letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--accent-d);border-radius:6px;flex-shrink:0;margin-top:1px;padding:3px 8px;font-size:.66rem;font-weight:700}.wreview-rec-text{color:var(--text);font-size:.9rem;line-height:1.5}.wreview-stats{flex-wrap:wrap;gap:22px;margin-bottom:14px;display:flex}.wreview-stat-value{color:var(--text);font-size:1.35rem;font-weight:700;line-height:1}.wreview-stat-label{color:var(--muted);margin-top:4px;font-size:.72rem}.wreview-intensity{margin-bottom:14px}.wreview-bar{border-radius:6px;height:12px;display:flex;overflow:hidden}.wreview-bar-seg{height:100%}.wreview-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:7px;font-size:.76rem;display:flex}.wreview-upcoming{border-top:1px solid var(--border);padding-top:12px}.wreview-upcoming-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.wreview-upcoming-list{flex-direction:column;gap:7px;list-style:none;display:flex}.wreview-upcoming-item{align-items:center;gap:9px;font-size:.88rem;display:flex}.wreview-upcoming-day{width:34px;color:var(--muted);flex-shrink:0;font-size:.76rem;font-weight:700}.wreview-upcoming-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.wreview-upcoming-dur{color:var(--muted);flex-shrink:0;font-size:.78rem}.wreview-upcoming-key{letter-spacing:.05em;text-transform:uppercase;color:var(--accent-l);background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:5px;flex-shrink:0;padding:2px 6px;font-size:.62rem;font-weight:700}.bell{align-items:center;display:flex;position:relative}.bell-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s;display:flex;position:relative}.bell-btn:hover{color:var(--accent-l);border-color:var(--border-hi)}.bell-badge{color:#fff;text-align:center;min-width:17px;height:17px;box-shadow:0 0 0 2px var(--bg-raised);background:#dc2626;border-radius:9px;padding:0 4px;font-size:.66rem;font-weight:700;line-height:17px;position:absolute;top:-6px;right:-6px}.bell-panel{z-index:200;background:var(--bg-modal);border:1px solid var(--border-hi);border-radius:var(--radius);width:min(360px,100vw - 24px);max-height:min(70vh,520px);padding:12px;position:absolute;top:calc(100% + 10px);right:0;overflow-y:auto;box-shadow:0 12px 40px #05060f4d}.bell-panel-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:2px 4px 10px;font-size:.72rem;font-weight:700}.bell-empty{color:var(--muted);text-align:center;padding:8px 4px 12px;font-size:.88rem}.bell-list{flex-direction:column;gap:8px;list-style:none;display:flex}.bell-item{align-items:flex-start;gap:10px}.bell-action{cursor:pointer;color:var(--accent-l);font:inherit;background:0 0;border:none;margin-top:6px;padding:0;font-size:.82rem;font-weight:700}.bell-action:hover{text-decoration:underline}.bell-dismiss{cursor:pointer;width:24px;height:24px;color:var(--dim);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:0;font-size:1.15rem;line-height:1;transition:color .15s,background .15s}.bell-dismiss:hover{color:var(--text);background:#ffffff0f}.inbox-list{flex-direction:column;gap:10px;list-style:none;display:flex}.inbox-item{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 5%, transparent);border-left-width:3px;border-radius:11px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.inbox-item--urgent{border-left-color:var(--danger);background:#f8717112}.inbox-item--attention{border-left-color:var(--warning);background:#fbbf240f}.inbox-item--info{border-left-color:var(--accent)}.inbox-icon{flex-shrink:0;font-size:1.15rem;line-height:1.2}.inbox-body{flex:200px;min-width:0}.inbox-title{color:var(--text);font-size:.92rem;font-weight:700}.inbox-detail{color:var(--muted);margin-top:2px;font-size:.82rem;line-height:1.4}.inbox-action{flex-shrink:0}.dash-more{margin-top:6px}.dash-more-toggle{border-radius:var(--radius);cursor:pointer;background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text);align-items:center;gap:9px;padding:13px 16px;font-family:inherit;font-size:.95rem;font-weight:700;transition:border-color .15s,background .15s;display:flex}.dash-more-toggle:hover{border-color:var(--border-hi);background:var(--bg-raised)}.dash-more-chev{color:var(--accent);flex-shrink:0}.dash-more-hint{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:.74rem;font-weight:500;overflow:hidden}.dash-more-body{flex-direction:column;gap:16px;margin-top:14px;display:flex}.dash-more-group{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);margin:10px 0 -2px;padding-bottom:6px;font-size:.74rem;font-weight:700}.dash-more-group:first-child{margin-top:0}.rpe-list{flex-direction:column;gap:10px;display:flex}.rpe-item{background:color-mix(in srgb, var(--accent) 6%, transparent);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.rpe-item-body{flex:140px;min-width:0}.rpe-item-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.rpe-item-meta{color:var(--muted);margin-top:2px;font-size:.76rem}.rpe-feels{flex-shrink:0;gap:6px;display:flex}.rpe-feel-btn{cursor:pointer;background:0 0;border:1.5px solid;border-radius:8px;padding:5px 11px;font-size:.8rem;font-weight:600;transition:background .12s}.rpe-feel-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent)}.rpe-feel-btn:disabled{opacity:.5;cursor:default}.dash-panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.dash-panel-head h2{text-overflow:ellipsis;min-width:0;font-size:1.05rem;font-weight:700;overflow:hidden}.dash-panel-link{color:var(--accent-l);white-space:nowrap;align-items:center;min-height:24px;font-size:.8rem;display:inline-flex}button.dash-panel-link{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}button.dash-panel-link:hover{text-decoration:underline}.dash-today-list{flex-direction:column;gap:8px;display:flex}.dash-today-item{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.dash-today-item.is-done{opacity:.62}.dash-today-body{flex:1;min-width:0}.dash-today-title{font-size:.95rem;font-weight:600}.dash-today-meta{color:var(--muted);margin-top:2px;font-size:.8rem}.dash-done-tag{color:var(--success)}.dash-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px;padding:0}.dash-rest,.dash-empty{color:var(--muted);font-size:.9rem}.dash-empty a{color:var(--accent-l)}.dash-welcome h2{margin:0 0 6px;font-size:1.15rem}.dash-welcome-lead{color:var(--muted);max-width:60ch;margin:0 0 18px;font-size:.9rem}.onboard-list{counter-reset:onboard;gap:14px;margin:0;padding:0;list-style:none;display:grid}.onboard-step{counter-increment:onboard;border:1px solid var(--border);border-radius:var(--radius);background:var(--inset);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.onboard-step-icon{background:var(--glow);border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:1.35rem;line-height:1.2;display:grid}.onboard-step-body{gap:6px;display:grid}.onboard-step-title{font-weight:600}.onboard-step-title:before{content:"Step " counter(onboard) " · ";color:var(--accent-l);font-weight:700}.onboard-step-desc{color:var(--muted);max-width:56ch;font-size:.85rem}.onboard-step .btn{justify-self:start;margin-top:2px}.dash-today-race{align-items:center;gap:14px;display:flex}.dash-race-flag{font-size:1.6rem}.intensity-split{background:var(--surface-2);border-radius:6px;height:12px;display:flex;overflow:hidden}.dash-focus{flex-wrap:wrap;gap:24px;margin-bottom:4px;display:flex}.dash-focus-value{color:var(--accent-l);font-size:1.4rem;font-weight:700;line-height:1.1}.dash-focus-label{color:var(--muted);margin-top:3px;font-size:.78rem}.dash-advisory{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text);border-radius:10px;margin-top:12px;padding:10px 12px;font-size:.85rem;line-height:1.4}.dash-advisory--warn{background:#f59e0b17;border-color:#f59e0b42}.push-toggle{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin:4px 0 8px;padding:12px 14px;display:flex}.push-toggle-text{flex-direction:column;gap:2px;display:flex}.push-toggle-sub{color:var(--muted);font-size:.8rem}.push-toggle-error{color:#f87171;font-size:.8rem}.race-plan{border:1px solid var(--border);background:var(--surface-2,#7f7f7f0d);border-radius:10px;margin-bottom:14px;padding:12px 14px}.race-plan-block+.race-plan-block{margin-top:12px}.race-plan-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.72rem}.race-plan-splits{flex-wrap:wrap;gap:6px 14px;display:flex}.race-plan-split{align-items:baseline;gap:6px;font-size:.85rem;display:flex}.race-plan-split-label{color:var(--muted)}.race-plan-split-target{font-variant-numeric:tabular-nums;font-weight:600}.race-plan-fueling{margin:0;padding-left:18px;font-size:.85rem;line-height:1.5}.race-plan-fueling li{margin-bottom:3px}.race-form{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:10px;margin-bottom:14px;padding:12px 14px}.race-form-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:6px;display:flex}.race-form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.race-form-nums{font-variant-numeric:tabular-nums;color:var(--text);font-size:.85rem}.race-form-msg{color:var(--text);margin:0;font-size:.85rem;line-height:1.5}.race-debrief{border:1px solid var(--border);background:var(--surface-2,#7f7f7f0d);border-radius:10px;margin-bottom:14px;padding:14px}.race-debrief-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin-bottom:10px;display:flex}.race-debrief-finish{align-items:baseline;gap:8px;display:flex}.race-debrief-actual{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.race-debrief-target{color:var(--muted);font-size:.8rem}.race-debrief-delta{border-radius:999px;padding:3px 9px;font-size:.8rem;font-weight:600}.race-debrief-delta.is-faster{color:var(--success);background:#34d3991f}.race-debrief-delta.is-slower{color:var(--warning);background:#fbbf241f}.race-debrief-splits{flex-wrap:wrap;gap:4px 16px;margin-bottom:10px;display:flex}.race-debrief-split{align-items:baseline;gap:6px;font-size:.85rem;display:flex}.race-debrief-split span:first-child{color:var(--muted)}.race-debrief-split span:last-child{font-variant-numeric:tabular-nums;font-weight:600}.race-debrief-takeaway{color:var(--text);margin:0 0 6px;font-size:.85rem;line-height:1.5}.race-debrief-takeaway:last-child{margin-bottom:0}.weight-card{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:18px 20px}.weight-card-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.weight-card-head h3{margin:0;font-size:.95rem;font-weight:700}.weight-current{align-items:baseline;gap:4px;display:flex}.weight-current-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.weight-current-unit{color:var(--muted);font-size:.85rem}.weight-deltas{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.weight-delta{font-variant-numeric:tabular-nums;background:#7f7f7f1f;border-radius:999px;padding:3px 9px;font-size:.8rem;font-weight:600}.weight-delta.is-down{color:var(--success);background:#34d3991f}.weight-delta.is-up{color:var(--warning);background:#fbbf241f}.weight-delta-label{color:var(--muted);margin-left:2px;font-weight:500}.weight-empty{color:var(--muted);margin:4px 0 14px;font-size:.85rem;line-height:1.5}.pr-card{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:18px 20px}.pr-card-title{margin:0 0 14px;font-size:.95rem;font-weight:700}.pr-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.pr-tile{background:var(--surface-2,#7f7f7f0f);border-radius:9px;padding:12px 14px}.pr-tile-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.pr-tile-value{margin:3px 0;font-size:1.25rem;font-weight:700}.pr-tile-meta{color:var(--muted);font-size:.74rem}.pr-races{margin-top:18px}.pr-races-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:.72rem}.pr-race-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:8px;padding:7px 0;font-size:.85rem;display:flex}.pr-race-event{font-weight:600}.pr-race-result{color:var(--accent);flex:auto}.pr-race-date{color:var(--muted);font-size:.78rem}.plan-benchmark-advisory{background:color-mix(in srgb, var(--accent) 10%, transparent);border-left:3px solid color-mix(in srgb, var(--accent) 50%, transparent);border-radius:6px;margin:4px 0 10px;padding:8px 12px;font-size:.85rem;line-height:1.45}.race-equivalents{margin:4px 0 10px}.race-equiv-toggle{cursor:pointer;color:var(--accent,#8b5cf6);background:0 0;border:none;align-items:center;min-height:24px;padding:2px 0;font-size:.85rem;font-weight:600;display:inline-flex}.race-equiv-table{border-collapse:collapse;width:100%;margin-top:4px;font-size:.85rem}.race-equiv-table th,.race-equiv-table td{text-align:left;border-bottom:1px solid #8080802e;padding:4px 8px}.race-equiv-table th{opacity:.7;font-weight:600}.race-equiv-table td:nth-child(2){font-variant-numeric:tabular-nums;font-weight:600}.race-equiv-table td:nth-child(3){font-variant-numeric:tabular-nums;opacity:.8}.coach-chat-log{flex-direction:column;gap:8px;max-height:340px;margin:8px 0;padding:4px 2px;display:flex;overflow-y:auto}.coach-chat-empty{padding:6px 0}.coach-chat-suggestions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.coach-chip{border:1px solid var(--border);background:var(--inset);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.8rem;transition:all .1s}.coach-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent-l)}.coach-msg{border-radius:var(--radius);white-space:pre-wrap;max-width:85%;padding:8px 12px;font-size:.9rem;line-height:1.5}.coach-msg--user{background:var(--accent-d);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.coach-msg--assistant{border:1px solid var(--border);background:#ffffff0f;border-bottom-left-radius:4px;align-self:flex-start}.coach-msg--typing{color:var(--muted);align-items:center;gap:8px;display:flex}.coach-chat-input{gap:8px;margin-top:6px;display:flex}.coach-chat-input input{flex:1}.coach-chat-disclaimer{color:var(--muted);margin-top:8px;font-size:.72rem}.niggle-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.niggle-row--resolved{opacity:.65}.niggle-badge{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.9rem;font-weight:700;display:flex}.niggle-sev-low{background:#15803d}.niggle-sev-mid{background:#b45309}.niggle-sev-high{background:#dc2626}.niggle-body{flex:1;min-width:0}.niggle-part{font-weight:600}.niggle-note{color:var(--muted);margin-top:2px;font-size:.82rem}.niggle-cleared{color:var(--muted);font-weight:400}.niggle-actions{flex-shrink:0;gap:6px;display:flex}.niggle-add{margin-top:14px}.niggle-resolved{margin-top:12px;font-size:.9rem}.niggle-resolved summary{cursor:pointer;color:var(--muted)}.niggle-item{margin-bottom:10px}.niggle-return{margin:2px 0 0 44px}.niggle-return .btn-link{color:var(--muted);font-size:.82rem}.niggle-return-body{border-left:2px solid var(--accent);background:#ffffff08;border-radius:0 8px 8px 0;margin-top:8px;padding:12px 14px}.niggle-return-intro{color:var(--muted);margin:0 0 10px;font-size:.85rem}.niggle-return-stages{flex-direction:column;gap:8px;margin:0;padding-left:18px;display:flex}.niggle-return-stages li{font-size:.85rem}.niggle-return-stages li strong{margin-bottom:2px;display:block}.niggle-return-stages li div{color:var(--muted)}.niggle-return-caution{color:var(--muted);margin:10px 0 0;font-size:.8rem;font-style:italic}.niggle-review{border-left:2px solid var(--warning);background:color-mix(in srgb, var(--warning) 8%, transparent);border-radius:0 8px 8px 0;flex-direction:column;align-items:flex-start;gap:8px;margin:8px 0 0 44px;padding:10px 12px;display:flex}.niggle-review p{color:var(--muted);margin:0;font-size:.85rem}.hr-check{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--card);border-radius:10px;margin-bottom:18px;padding:16px 18px}.hr-check h3{margin:0 0 10px;font-size:1rem}.hr-check-item{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.hr-check-item:first-of-type{border-top:0;padding-top:0}.hr-check-item p{margin:0;font-size:.88rem;line-height:1.5}.hr-check-foot{color:var(--muted);margin:12px 0 0;font-size:.78rem;font-style:italic}.readiness-banner--niggle{border-left-color:#f472b6}.race-course{margin:12px 0}.race-course-figure{margin:6px 0 4px}.race-course-figure svg{width:100%;height:80px;display:block}.race-course-area{fill:var(--accent);opacity:.15}.race-course-line{stroke:var(--accent);stroke-width:2px}.race-course-axis{color:var(--muted);justify-content:space-between;font-size:.8rem;display:flex}.race-course-hint{color:var(--muted);margin:6px 0;font-size:.9rem}.race-course-actions{align-items:center;gap:8px;margin-top:6px;display:flex}.race-plan-heat{background:#f59e0b1f;border-left:3px solid #f59e0b99;border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:.85rem;line-height:1.45}.trajectory-trend{margin-top:14px}.trajectory-trend:first-of-type{margin-top:6px}.trajectory-trend-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:2px;display:flex}.trajectory-metric{font-size:.9rem;font-weight:600}.trajectory-summary{color:var(--muted);font-size:.8rem}.scale-picker{flex-wrap:wrap;gap:4px;display:flex}.scale-btn{border:1px solid var(--border);background:var(--inset);cursor:pointer;width:36px;height:36px;color:var(--muted);border-radius:7px;font-size:.85rem;font-weight:500;transition:all .1s}.scale-btn:hover{border-color:var(--accent);color:var(--accent-l)}.scale-btn.selected{background:var(--accent-d);border-color:var(--accent);color:#fff}.plan-badge{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent-l);text-transform:uppercase;letter-spacing:.04em;border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.plan-goal-row{background:#6d28d91a;border:1px solid #6d28d938;border-radius:9px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.plan-goal-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.plan-goal-value{color:var(--text);align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:flex}.plan-goal-sep{color:#6d28d9}.recurring-section{background:var(--inset);border:1px solid var(--border);border-radius:9px;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px;display:flex}.recurring-section .form-group{margin-bottom:0}.repeat-mode-btns,.repeat-days{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.repeat-limit-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;display:flex}.repeat-limit-btns{flex-shrink:0;gap:4px;display:flex}.repeat-count-row{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.repeat-count-row input{text-align:center}.series-scope-section{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:9px;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.series-scope-label{color:var(--accent-l);white-space:nowrap;font-size:.85rem;font-weight:600}.series-badge{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent-l);vertical-align:middle;letter-spacing:.04em;text-transform:uppercase;border-radius:20px;margin-left:6px;padding:1px 7px;font-size:.7rem;font-weight:600;display:inline-block}.source-badge{vertical-align:middle;letter-spacing:.04em;text-transform:uppercase;color:#cbd5e1;background:#94a3b829;border:1px solid #94a3b847;border-radius:20px;margin-left:6px;padding:1px 7px;font-size:.7rem;font-weight:600;display:inline-block}.source-badge--strava{color:#fc7a3c;background:#fc520029;border-color:#fc520057}.source-badge--import{color:#5eead4;background:#2dd4bf26;border-color:#2dd4bf4d}:root[data-theme=light] .source-badge{color:var(--muted)}:root[data-theme=light] .source-badge--strava{color:#c2410c}:root[data-theme=light] .source-badge--import{color:#0f766e}.completion-section{border-top:1px solid var(--border);margin-top:20px;padding-top:12px}.completion-section--lead{border-top:none;border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--accent) 7%, transparent);border-radius:10px;margin-top:0;margin-bottom:18px;padding:12px 14px}.completion-toggle{cursor:pointer;color:var(--accent);background:0 0;border:none;align-items:center;min-height:44px;padding:4px 0;font-size:.9rem;font-weight:600;display:flex}.completion-section--lead .completion-toggle{font-size:1rem}.completion-form{margin-top:12px}.completion-options{gap:8px;display:flex}.completion-new-hint{color:var(--muted);margin:0 0 10px;font-size:.8rem}.plan-page{max-width:var(--page-wide);padding:0 var(--gutter);margin:32px 0}.plan-page h1,.profile-page h1{margin-bottom:16px}.plan-add-btn{width:100%;margin-top:8px}.plan-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex;overflow:auto hidden}.plan-tab{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;margin-bottom:-1px;padding:10px 14px;font-family:inherit;font-size:.9rem;font-weight:600}.plan-tab:hover{color:var(--text)}.plan-tab--active{color:var(--text);border-bottom-color:var(--hl);font-weight:700}.acwr-gauge{margin:8px 0 4px}.acwr-track{background:#ffffff0d;border-radius:999px;height:26px;position:relative;overflow:hidden}.acwr-band{position:absolute;top:0;bottom:0}.acwr-marker{width:4px;box-shadow:0 0 0 2px var(--bg-card);border-radius:2px;position:absolute;top:-3px;bottom:-3px;transform:translate(-2px)}.acwr-scale{height:16px;color:var(--muted);font-size:.7rem;position:relative}.acwr-scale span{position:absolute;transform:translate(-50%)}.acwr-scale span:first-child{left:40%}.acwr-scale span:nth-child(2){left:65%}.acwr-scale span:nth-child(3){left:75%}.acwr-readout{align-items:baseline;gap:10px;margin-top:6px;display:flex}.acwr-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.acwr-zone{color:var(--muted);font-size:.9rem}.casual-mode-note h3{margin:0 0 6px;font-size:1rem}.casual-mode-note p{margin:0 0 8px}.plan-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow-wrap:anywhere;margin-bottom:20px;padding:24px;transition:border-color .2s}.plan-card:hover{border-color:var(--border-hi)}.plan-card h3{margin-bottom:8px;font-size:1.1rem;font-weight:700}.plan-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.plan-card-header h3{margin-bottom:0}.plan-generating{align-items:center;gap:16px;display:flex}.plan-meta{color:var(--muted);margin-bottom:10px;font-size:.875rem}.plan-goal{margin-bottom:10px}.plan-summary{color:var(--muted);white-space:pre-wrap;margin-bottom:12px}.plan-insights{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);margin:4px 0 14px;padding:14px 16px 12px}.plan-countdown{color:var(--muted);margin-bottom:12px;font-size:.85rem}.plan-countdown-num{color:var(--text);margin-right:4px;font-size:1.6rem;font-weight:600}.plan-weeks{align-items:flex-end;gap:2px;height:64px;display:flex}.plan-week{border-radius:4px 4px 0 0;flex-direction:column;flex:1;gap:3px;max-width:26px;height:100%;display:flex}.plan-week--current{background:#ffffff0f}.plan-week-slot{flex:1;position:relative}.plan-week-track,.plan-week-fill{border-radius:4px 4px 0 0;position:absolute;bottom:0;left:1px;right:1px}.plan-week-track{background:#10b9812e}.plan-week-fill{background:#10b981}.plan-week-phase{border-radius:2px;height:5px;margin:0 1px}.plan-insights-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:.75rem;display:flex}.plan-legend-item{align-items:center;gap:5px;display:inline-flex}.plan-legend-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.plan-legend-swatch--track{background:#10b9812e}.plan-legend-swatch--fill{background:#10b981}.plan-phase-note{border-left:3px solid var(--border);color:var(--muted);background:#ffffff0a;border-radius:6px;margin-top:12px;padding:10px 12px;font-size:.85rem;line-height:1.5}.plan-phase-note strong{color:var(--text)}.plan-feasibility{border:1px solid var(--border);--feas-color:#10b981;border-radius:10px;margin:14px 0;padding:12px 14px;font-size:.875rem}.plan-insights .plan-feasibility{background:var(--inset);margin-bottom:0}.feas--ok{--feas-color:#10b981}.feas--stretch{--feas-color:#d97706;border-color:#d9770673}.feas--risk{--feas-color:#ef4444;border-color:#ef444473}.plan-feasibility-headline{align-items:center;gap:8px;display:flex}.plan-feasibility-dot{background:var(--feas-color);border-radius:50%;flex-shrink:0;width:10px;height:10px}.plan-feasibility-findings{color:var(--muted);margin:8px 0 0;padding-left:26px;line-height:1.5}.plan-feasibility-findings li{margin-bottom:4px}.plan-feasibility-findings li:last-child{margin-bottom:0}.plan-feasibility-hint{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:.8rem}.plan-card--sport{border-left:3px solid var(--sport-color,var(--border));padding-left:21px}.plan-sport-tag{letter-spacing:.03em;color:#fff;background:var(--sport-color,var(--accent-d));border-radius:999px;margin-bottom:6px;padding:2px 10px;font-size:.72rem;font-weight:700;display:inline-block}.plan-stat-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.plan-stat{border:1px solid var(--border);color:var(--muted);background:#ffffff0d;border-radius:999px;padding:2px 9px;font-size:.78rem}.plan-stat--event{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent-l)}.form-section-label{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);border-bottom:1px solid var(--border);margin:18px 0 10px;padding-bottom:6px;font-size:.72rem;font-weight:700}.label-hint{color:var(--dim);font-weight:400}.label-required{color:var(--danger);margin-left:2px;font-weight:600}.cal-wellness-btn{color:var(--dim);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;align-items:center;min-height:24px;padding:1px 3px;font-size:10px;line-height:1;transition:opacity .15s,color .15s;display:inline-flex}.cal-cell:hover .cal-wellness-btn,.cal-tl-day-hdr:hover .cal-wellness-btn{opacity:1}.cal-wellness-btn:hover{color:var(--accent-l);background:color-mix(in srgb, var(--accent) 12%, transparent)}.cal-wellness-btn:focus-visible{opacity:1}@media (hover:none){.cal-wellness-btn{opacity:.65}}@media (width<=640px){.cal-cell .cal-wellness-btn,.cal-cell .cal-quicklog,.cal-cell .cal-profile{display:none}}.sport-picker{border:1px solid var(--border);background:var(--inset);border-radius:9px;max-height:280px;padding:12px;overflow-y:auto}.plan-sport-picker{flex-wrap:wrap;gap:8px;display:flex}.sport-group{margin-bottom:10px}.sport-group-name{color:var(--dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.72rem;font-weight:600}.sport-options,.day-picker{flex-wrap:wrap;gap:6px;display:flex}.sport-chip{border:1px solid var(--border);background:var(--inset);cursor:pointer;min-height:24px;color:var(--muted);border-radius:999px;padding:3px 12px;font-size:.8rem;transition:all .1s}.sport-chip:hover{border-color:var(--accent);color:var(--accent-l)}.sport-chip.selected{background:var(--accent-d);border-color:var(--accent);color:#fff}.sport-chip:disabled{opacity:.5;cursor:default}.wizard-steps{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin:4px 0 18px;padding-bottom:14px;display:flex}.wizard-step{border:1px solid var(--border);background:var(--inset);color:var(--dim);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.78rem;transition:all .1s;display:inline-flex}.wizard-step:disabled{cursor:default}.wizard-step.done{color:var(--muted);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.wizard-step.active{background:var(--accent-d);border-color:var(--accent);color:#fff}.wizard-step-num{background:#ffffff1f;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;font-weight:700;display:inline-flex}.wizard-step.active .wizard-step-num{background:#ffffff40}.wizard-bench-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.wizard-bench-label{color:var(--muted);flex:0 0 48px;font-size:.8rem;font-weight:600}.wizard-bench-row input{flex:1}.review-heading{margin:18px 0 8px;font-size:1rem}.week-grid-scroll-cue{margin-bottom:4px;display:none}@media (width<=640px){.week-grid-scroll-cue{display:block}.week-grid.week-hours input{width:78px;padding-left:6px;padding-right:6px}.week-grid.week-hours th{white-space:normal;font-size:.7rem}}.week-grid-wrap{overflow-x:auto}.week-grid{border-collapse:separate;border-spacing:4px}.week-grid th{color:var(--muted);text-align:center;white-space:nowrap;padding:2px 4px;font-size:.78rem;font-weight:600}.week-grid thead th{white-space:normal;vertical-align:bottom;max-width:96px}.week-grid:not(.week-hours) thead th:not(:first-child){overflow-wrap:anywhere;width:64px;min-width:64px;max-width:64px}.week-grid th[scope=row]{text-align:left;width:40px}.week-grid:not(.week-hours) th[scope=row]{z-index:1;background:var(--bg-card);position:sticky;left:0}.week-grid td{text-align:center;padding:0}.week-cell{border:1px solid var(--border);color:#fff;cursor:pointer;background:0 0;border-radius:6px;width:44px;height:32px;font-weight:700}.week-cell.on{background:var(--accent);border-color:var(--accent)}.week-grid-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:4px;font-size:.7rem}.week-grid thead th .week-grid-remove{min-width:24px;min-height:20px;margin:2px auto 0;display:block}.week-grid-add{margin-top:8px}.week-hours input{width:110px}.week-preview-role--empty{color:var(--dim);font-style:italic}@media (width<=640px){.row.wizard-event-row{flex-direction:column;gap:0}}.wizard-cross-days{flex-direction:column;gap:6px;display:flex}.wizard-cross-row{align-items:center;gap:10px;display:flex}.wizard-cross-day{color:var(--muted);flex:0 0 40px;font-size:.82rem;font-weight:600}.wizard-cross-row select{flex:1}.edit-hub{margin-bottom:8px}.edit-hub-title{margin:4px 0 12px;font-weight:700}.edit-hub-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.edit-hub-card{text-align:left;border:1px solid var(--border);color:var(--text);cursor:pointer;font:inherit;background:0 0;border-radius:10px;padding:12px 14px}.edit-hub-card:hover{border-color:var(--accent)}.edit-hub-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.edit-hub-card--quiet{border-style:dashed}.edit-hub-card-title{margin-bottom:4px;font-weight:600}.edit-hub-card-hint{color:var(--muted);font-size:.8rem;line-height:1.35}.edit-contract{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--text);border-radius:8px;margin:14px 0 4px;padding:10px 12px;font-size:.85rem}.edit-contract--compact{margin:0 0 14px}.pin-badge{color:var(--text);background:#f59e0b29;border-radius:999px;align-items:center;gap:6px;margin-left:8px;padding:2px 8px;font-size:.75rem;display:inline-flex}.pin-unpin{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:24px;padding:0;font-size:.72rem;text-decoration:underline}.pin-unpin:hover{color:var(--text)}.form-group label.checkbox-row{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:.9rem;display:flex}.checkbox-row input[type=checkbox]{flex:none;width:auto;margin:0}.wizard-review-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.wizard-review-row:first-child{border-top:none}.wizard-review-label{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:3px;font-size:.7rem;font-weight:700}.wizard-review-value{color:var(--muted);font-size:.9rem}.week-preview{border-top:1px solid var(--border);padding:14px 0 4px}.week-preview-title{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:8px;font-size:.7rem;font-weight:700}.week-preview-strip{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}@media (width<=640px){.week-preview-strip{grid-template-columns:repeat(4,1fr)}}.week-preview-day{border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;min-height:62px;padding:8px 4px;display:flex}.week-preview-dow{color:var(--dim);font-size:.7rem;font-weight:700}.week-preview-role{color:var(--muted);font-size:.72rem;line-height:1.2}.week-preview-act{color:var(--dim);font-size:.64rem;font-weight:400;display:block}.week-preview-day--primary{background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.week-preview-sub{color:var(--muted);font-size:.8rem;font-weight:400}.phase-week{margin:10px 0 6px}.phase-week-head{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.phase-week-meta{color:var(--muted);font-size:.78rem}.phase-tag{letter-spacing:.03em;text-transform:uppercase;background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.phase-tag--base{background:#10b98129}.phase-tag--build{background:color-mix(in srgb, var(--accent) 16%, transparent)}.phase-tag--return{background:#14b8a62e}.phase-tag--steady{background:color-mix(in srgb, var(--accent) 12%, transparent)}.phase-tag--specific{background:#f59e0b2e}.phase-tag--deload{background:#94a3b833}.phase-tag--taper{background:#3b82f629}.phase-tag--race{background:#ef444429}.week-preview-day--primary .week-preview-role{color:var(--text);font-weight:600}.week-preview-day--primary.is-long{background:color-mix(in srgb, var(--accent) 26%, transparent);border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.week-preview-day--cross{background:#10a34a1f;border-color:#10a34a4d}.week-preview-day--rest{opacity:.6;border-style:dashed}.week-preview-day--race{background:#ef444429;border-color:#ef44448c}.week-preview-day--race .week-preview-role{color:var(--text);font-weight:700}.week-preview-day--race .week-preview-role:before{content:"🏁 "}.week-preview-note{color:var(--dim);margin-top:8px;font-size:.75rem;line-height:1.4}.suggestion-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--inset);margin-top:14px;padding:16px}.suggestion-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.suggestion-status{letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.revrow-toggle{cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:none;flex-direction:column;gap:5px;padding:0;display:flex}.revrow-line1{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.revrow-chev{color:var(--accent);flex-shrink:0}.revrow-date{flex-shrink:0}.revrow-line2{align-items:baseline;gap:10px;min-width:0;display:flex}.revrow-desc{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:.9rem;overflow:hidden}.revrow-stats{flex-shrink:0}.suggestion-status.status-pending{color:#fcd34d;background:#fbbf2424;border:1px solid #fbbf2447}.suggestion-status.status-applied{color:#6ee7b7;background:#34d39924;border:1px solid #34d39947}.suggestion-status.status-dismissed{color:var(--dim);border:1px solid var(--border);background:#ffffff0d}.suggestion-analysis{white-space:pre-wrap;color:var(--muted);margin-bottom:12px;font-size:.9rem}.suggestion-changes h4{margin-bottom:8px;font-size:.85rem;font-weight:700}.change-row{border-top:1px solid var(--border);gap:10px;padding:8px 0;font-size:.85rem;display:flex}.change-action{white-space:nowrap;border-radius:4px;height:fit-content;padding:2px 8px;font-size:.68rem;font-weight:700}.change-update .change-action{color:#93c5fd;background:#3b82f629;border:1px solid #3b82f647}.change-add .change-action{color:#6ee7b7;background:#34d39924;border:1px solid #34d39947}.change-delete .change-action{color:#fca5a5;background:#ef444424;border:1px solid #ef444447}.change-notes{color:var(--muted);margin-top:2px}.change-reason{color:#fcd34d;margin-top:2px;font-style:italic}.subtitle{color:var(--muted);font-size:.95rem}.field-display{color:var(--text);align-items:center;min-height:36px;padding:4px 0;font-size:.95rem;display:flex}.field-display--pre{white-space:pre-wrap;align-items:flex-start;min-height:60px}.account-fields .form-group{margin-bottom:10px}.account-fields .form-group label{margin-bottom:2px}.account-read .form-group{border-bottom:1px solid var(--border);grid-template-columns:190px 1fr;align-items:baseline;gap:16px;margin:0;padding:10px 0;display:grid}.account-read .row{display:contents}.account-read .form-group label{align-self:baseline;margin:0}.account-read .field-display{min-height:0;color:var(--text);padding:0;font-weight:500}.account-read .field-display--pre{align-self:start}.account-read .notif-summary{gap:4px;width:100%;font-weight:400;display:grid}.account-read>.form-group:last-of-type{border-bottom:none}@media (width<=560px){.account-read .form-group{grid-template-columns:1fr;gap:2px;padding:8px 0}}.radio-group{align-items:center;gap:24px;min-height:42px;padding:10px 0;display:flex}.radio-option{cursor:pointer;color:var(--text);align-items:center;gap:8px;font-size:.95rem;font-weight:400;display:flex}.radio-group--stacked{flex-direction:column;align-items:flex-start;gap:8px}.radio-group--stacked .radio-option{align-items:flex-start}.radio-group--stacked .radio-option input{flex-shrink:0;margin-top:3px}.mfa-qr{justify-content:center;padding:12px 0;display:flex}.mfa-qr svg{background:#fff;border-radius:8px;padding:8px}.mfa-secret{text-align:center;color:var(--text-muted,#6b7280);overflow-wrap:anywhere;margin-bottom:12px;font-size:.85rem}.mfa-secret code{-webkit-user-select:all;user-select:all;font-size:.85rem}.pref-toggle,label.pref-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin-bottom:0;display:inline-flex}.pref-toggle input{opacity:0;width:0;height:0;position:absolute}.pref-toggle-track{background:var(--border-hi);border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.pref-toggle input:checked+.pref-toggle-track{background:var(--accent-d)}.pref-toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0006}.pref-toggle input:checked~.pref-toggle-track .pref-toggle-thumb,.pref-toggle input:checked+.pref-toggle-track .pref-toggle-thumb{transform:translate(18px)}.pref-toggle-label{color:var(--muted);min-width:24px;font-size:.9rem}.pref-toggle-hint{color:var(--muted);max-width:46ch;margin:6px 0 0;font-size:.78rem}html.cal-mono :is(.cal-event,.activity-badge){background:#3f4252!important}html.cal-mono .cal-profile rect{fill:#ffffff59!important}.brand-n-mark{vertical-align:baseline;width:auto;height:.58em;margin-right:.07em;overflow:visible}.admin-page{max-width:var(--page-wide);padding:0 var(--gutter);margin:40px 0}.admin-page h1{margin-bottom:4px}.admin-settings-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:16px 0;padding:16px 20px;display:flex}.admin-settings-title{font-weight:600}.admin-settings-desc{color:var(--muted);max-width:620px;margin-top:2px;font-size:.85rem}.admin-settings-control{align-items:center;gap:12px;display:flex}.admin-notice-card{display:block}.admin-notice-card .admin-settings-text{margin-bottom:14px}.admin-notice-form{flex-direction:column;gap:4px;display:flex}.admin-notice-row{flex-wrap:wrap;gap:0 16px;display:flex}.admin-notice-row .form-group{flex:200px}.admin-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}.admin-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:14px 16px;font-size:.72rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#ffffff05}.admin-row-self{background:color-mix(in srgb, var(--accent) 5%, transparent)}.admin-user-name{color:var(--text);align-items:center;gap:8px;font-weight:600;display:flex}.admin-user-email{color:var(--muted);margin-top:2px;font-size:.82rem}.admin-you{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-l);border:1px solid var(--border-hi);border-radius:5px;padding:1px 5px;font-size:.64rem;font-weight:700}.admin-2fa,.admin-joined,.admin-lastlogin{color:var(--muted);white-space:nowrap}.admin-lastlogin{color:var(--text)}.admin-lastlogin.admin-never{color:var(--muted);font-style:italic}.admin-passkey{font-size:.85rem}.admin-pager{justify-content:center;align-items:center;gap:16px;margin-top:18px;display:flex}.admin-pager-label{color:var(--muted);font-size:.85rem}.admin-bulkbar{border:1px solid var(--border);background:var(--bg-raised);z-index:20;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex;position:sticky;top:60px}.admin-bulkbar-count{white-space:nowrap;font-size:.85rem;font-weight:600}.admin-bulkbar-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.admin-bulkbar-confirm{flex-direction:column;flex-basis:100%;gap:8px;display:flex}.admin-bulkbar-confirm-lead{color:var(--danger);margin:0;font-size:.85rem}.admin-bulkbar-confirm-list{border:1px solid var(--border);background:var(--bg-card);max-height:132px;color:var(--muted);border-radius:8px;margin:0;padding:6px 10px;font-size:.8rem;list-style:none;overflow-y:auto}.admin-bulkbar-confirm-list li{padding:2px 0}.admin-bulkbar-confirm .admin-bulkbar-actions{margin-left:0}.admin-select-col{white-space:nowrap;text-align:center;width:1%}.admin-select-col input[type=checkbox]{cursor:pointer;width:24px;height:24px;accent-color:var(--accent)}.admin-select-col input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.admin-row-selected>td{background:var(--bg-raised)}@media (width<=640px){.admin-bulkbar-actions{margin-left:0}.admin-bulkbar{position:static}}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-block}.badge-ok{color:var(--success);background:#34d39924;border-color:#34d3994d}.badge-danger{color:var(--danger);background:#f8717124;border-color:#f871714d}.badge-admin{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-l);border-color:color-mix(in srgb, var(--accent) 34%, transparent)}.badge-muted{color:var(--muted);border-color:var(--border);background:#ffffff0d}.promo-generate-form{flex-direction:column;align-items:stretch}.promo-generate-form .row{margin-bottom:4px}.promo-code-mono{letter-spacing:.02em;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.85rem}.promo-new-codes{border:1px solid var(--border-hi);border-radius:var(--radius);background:var(--bg-card);margin:16px 0;padding:16px 20px}.promo-new-codes-list{flex-wrap:wrap;gap:10px;margin:10px 0;list-style:none;display:flex}.promo-new-codes-list li{border:1px solid var(--border);background:var(--bg-raised);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:flex}.dash-acwr-ratio{opacity:.85;font-weight:700}.fuel-daychip{white-space:nowrap;border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.fuel-daychip--cool{color:#60a5fa;background:#60a5fa24;border-color:#60a5fa4d}.fuel-daychip--mid{color:var(--success);background:#34d39924;border-color:#34d3994d}.fuel-daychip--warm{color:var(--warning);background:#fbbf2429;border-color:#fbbf2457}.fuel-headline{margin:0 0 14px;font-size:.95rem;line-height:1.5}.fuel-macros{gap:12px;margin-bottom:12px;display:flex}.fuel-macro{background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:12px 14px}.fuel-macro-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.74rem;font-weight:600}.fuel-macro-value{color:var(--text);margin-top:2px;font-size:1.5rem;font-weight:700;line-height:1.2}.fuel-unit{color:var(--muted);font-size:.9rem;font-weight:600}.fuel-macro-sub{color:var(--muted);margin-top:2px;font-size:.76rem}.fuel-timing{color:var(--muted);margin:0;font-size:.85rem;line-height:1.5}.fuel-note{color:var(--muted);margin:10px 0 0;font-size:.8rem}.ach-stats{gap:10px;margin-bottom:14px;display:flex}.ach-stat{text-align:center;background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:10px 6px}.ach-stat-value{color:var(--text);font-size:1.35rem;font-weight:700;line-height:1.1;display:block}.ach-stat-label{color:var(--muted);margin-top:2px;font-size:.72rem;display:block}.ach-badges{flex-wrap:wrap;gap:8px;margin-bottom:6px;display:flex}.ach-badge{background:var(--hl-wash);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;display:flex}.ach-badge-icon{font-size:1.05rem;line-height:1}.ach-badge-title{color:var(--text);font-size:.82rem;font-weight:700}.ach-badge-date{color:var(--muted);font-size:.72rem}.ach-progress{margin-top:14px}.ach-progress-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:.74rem;font-weight:600}.ach-prog-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.ach-prog-icon{opacity:.7;font-size:1.1rem}.ach-prog-body{flex:1;min-width:0}.ach-prog-head{justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.ach-prog-title{color:var(--text);font-size:.85rem;font-weight:600}.ach-prog-amount{color:var(--muted);white-space:nowrap;font-size:.78rem}.ach-prog-track{background:var(--surface-2,#7f7f7f1f);border-radius:999px;height:7px;overflow:hidden}.ach-prog-fill{background:var(--accent);border-radius:999px;height:100%}.curve-models{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.curve-model{background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);border-radius:var(--radius);flex:1;min-width:140px;padding:12px 14px}.curve-model-value{color:var(--text);font-size:1.4rem;font-weight:700;line-height:1.15}.curve-model-label{color:var(--muted);margin-top:3px;font-size:.76rem}.curve-model-sub{color:var(--muted);opacity:.85;margin-top:2px;font-size:.74rem}.curve-chart-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 4px;font-size:.78rem;font-weight:600}.curve-durability{border:1px solid var(--border);background:var(--surface-2,#7f7f7f0d);border-left-width:3px;border-radius:10px;margin-bottom:10px;padding:10px 12px}.curve-durability p{color:var(--muted);margin:4px 0 0;font-size:.84rem;line-height:1.45}.curve-durability-head{color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;font-size:.85rem;display:flex}.curve-durability-head span{color:var(--muted);font-size:.76rem}.curve-durability--on{border-left-color:var(--success,#16a34a)}.curve-durability--info{border-left-color:var(--accent,#6366f1)}.curve-durability--warn{border-left-color:var(--warning,#d97706)}.curve-note{color:var(--muted);margin:10px 0 0;font-size:.8rem;line-height:1.5}.app-shell-main{flex:1 0 auto;min-height:100vh}.app-shell-main:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--hl);color:#2a1000;border-radius:0 0 8px 8px;padding:10px 16px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-60px;left:8px}.skip-link:focus{top:0}.content-page{max-width:760px;padding:0 var(--gutter) 56px;margin:40px 0}.content-head{margin-bottom:28px}.content-head h1{margin-bottom:10px}.content-lead{color:var(--muted);max-width:62ch;font-size:1.05rem;line-height:1.6}.content-section{margin-bottom:32px}.legal-meta{color:var(--muted);margin-top:10px;font-size:.85rem}.legal-page ul{padding-left:20px;line-height:1.65}.legal-page li{margin-bottom:8px}.legal-page p{line-height:1.65}.guide-list{gap:14px;display:grid}.guide-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:18px 20px;text-decoration:none;transition:border-color .15s;display:block}.guide-card:hover{border-color:var(--accent)}.guide-card h2{margin-bottom:6px;font-size:1.1rem;font-weight:700}.guide-card p{color:var(--muted);margin-bottom:8px;font-size:.92rem;line-height:1.55}.guide-meta{color:var(--accent);font-size:.8rem;font-weight:600}.guide-breadcrumb{margin-bottom:10px;font-size:.9rem}.guide-page h2{margin:26px 0 10px;font-size:1.2rem;font-weight:700}.guide-page p{margin-bottom:14px}.guide-cta{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);margin-top:26px;padding:16px 18px}.guide-cta p{margin:0;line-height:1.6}.guide-related{padding:0;list-style:none}.guide-related li{padding:4px 0}.content-section h2{margin-bottom:12px}.content-section p{margin-bottom:12px;line-height:1.65}.content-note{color:var(--muted);font-size:.9rem}.content-legal p{color:var(--muted);font-size:.92rem}.about-page .content-section p{color:var(--muted)}.content-disclaimer{background:var(--surface-2,#fbbf240f);border-radius:var(--radius);color:var(--text);border:1px solid #fbbf2459;border-left-width:4px;padding:16px 18px;font-size:.92rem;line-height:1.6}.content-page.features-page{max-width:1040px}.about-features{columns:2 380px;column-gap:14px;margin:4px 0 16px}.landing-section{max-width:1120px;padding:56px var(--gutter) 8px;margin:0 auto}.landing-section h2{font-size:var(--step-3);margin-bottom:12px}.landing-section-lead{max-width:68ch;color:var(--muted);margin-bottom:20px;line-height:1.65}.landing-section .landing-actions{margin:8px 0 40px}.about-feature{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);break-inside:avoid;align-items:flex-start;gap:14px;margin-bottom:14px;padding:14px 16px;display:flex}.about-feature-icon{flex:none;font-size:1.4rem;line-height:1.2}.about-feature .about-feature-title{margin:0 0 3px;font-size:1rem;font-weight:700}.about-feature .about-feature-body{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.help-toc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:14px 18px}.help-toc ul{grid-template-columns:repeat(2,1fr);gap:6px 20px;margin:0;padding:0;list-style:none;display:grid}.help-toc a{font-size:.92rem}.help-section{scroll-margin-top:84px}.help-section-intro{color:var(--muted)}.help-list{margin:0}.help-item{border-top:1px solid var(--border);padding:10px 0}.help-item:first-child{border-top:none}.help-item dt{margin-bottom:3px;font-weight:650}.help-item dd{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.site-footer{border-top:1px solid var(--border);margin:0 clamp(16px,4vw,48px)}.site-footer-links{flex-wrap:wrap;align-items:center;gap:8px 20px;min-height:24px;padding:18px 0 24px;display:flex}.site-footer-links a{color:var(--muted);font-size:.875rem}.site-footer-links a:hover{color:var(--text)}.site-footer-copy{color:var(--muted);margin-left:auto;font-size:.85rem}.site-footer-button{color:var(--muted);font-size:.875rem;text-decoration:none}.cookie-banner{z-index:45;background:var(--bg-modal);max-width:640px;color:var(--text);border:1px solid var(--border-hi);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin:0 auto;padding:14px 16px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 8px 30px #00000059}.cookie-banner p{flex:18rem;margin:0;font-size:.9rem}.cookie-banner-actions{gap:8px;display:flex}.cookie-banner-actions .btn{width:auto;padding:8px 16px;font-size:.875rem}@media (width<=640px){.cookie-banner{bottom:12px}}@media (width<=560px){.help-toc ul{grid-template-columns:1fr}}@media (width<=640px){.site-footer-copy{margin-left:0}}.goals-add{cursor:pointer;background:0 0;border:none;align-items:center;min-height:24px;display:inline-flex}.goals-list{margin:0;padding:0;list-style:none}.goal-row{border-top:1px solid var(--border);padding:9px 0}.goal-row:first-child{border-top:none}.goal-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.goal-title{color:var(--text);flex:1;min-width:0;font-size:.9rem;font-weight:600}.goal-amount{color:var(--muted);white-space:nowrap;font-size:.82rem}.goal-del{color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:0 2px;font-size:1.1rem;line-height:1;display:inline-flex}.goal-del:hover{color:var(--danger)}.goal-track{background:var(--surface-2,#7f7f7f1f);border-radius:999px;height:8px;overflow:hidden}.goal-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.goal-row.is-achieved .goal-fill{background:var(--success)}.goal-row.is-achieved .goal-title{color:var(--success)}.goal-form{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.goal-form-row{flex-wrap:wrap;gap:8px;display:flex}.goal-form-row select,.goal-form-row input{border:1px solid var(--border);background:var(--bg-input,var(--bg-card));color:var(--text);border-radius:8px;padding:8px 10px;font-size:.88rem}.goal-form-row input{flex:1;min-width:120px}.goal-form-error{color:var(--danger);margin-top:8px;font-size:.82rem}.goal-form-actions{gap:8px;margin-top:12px;display:flex}.fscore-body{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.fscore-number{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fscore-value{color:var(--text);font-size:2.6rem;font-weight:700;line-height:1}.fscore-max{color:var(--muted);font-size:1rem;font-weight:600}.fscore-level{color:var(--accent-l);align-self:center;font-size:.85rem;font-weight:700}.fscore-delta{align-self:center;font-size:.85rem;font-weight:700}.fscore-delta--up{color:var(--success)}.fscore-delta--down{color:var(--muted)}.fscore-spark{flex:1;min-width:160px;height:48px}.fscore-note{color:var(--muted);margin:10px 0 0;font-size:.85rem;line-height:1.5}.hydration-stats{gap:10px;margin-bottom:10px;display:flex}.hydration-stat{text-align:center;background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:10px 6px}.hydration-stat-value{color:var(--text);font-size:1.2rem;font-weight:700;line-height:1.15}.hydration-stat-label{color:var(--muted);margin-top:3px;font-size:.72rem}.hydration-headline{color:var(--muted);margin:0;font-size:.88rem;line-height:1.5}.sweat-form{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.sweat-form-help{color:var(--muted);margin:0 0 12px;font-size:.82rem;line-height:1.5}.sweat-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sweat-form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:.8rem;display:flex}.sweat-form-grid input{border:1px solid var(--border);background:var(--bg-input,var(--bg-card));color:var(--text);border-radius:8px;padding:8px 10px;font-size:.9rem}.cycle-phase{border-radius:var(--radius);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px 14px;display:flex}.cycle-phase-label{font-weight:700}.cycle-phase-day{color:var(--muted);font-size:.82rem}.cycle-phase--menstrual{background:#f43f5e1a;border-color:#f43f5e4d}.cycle-phase--follicular{background:#34d3991a;border-color:#34d3994d}.cycle-phase--ovulatory{background:#60a5fa1a;border-color:#60a5fa4d}.cycle-phase--luteal{background:#fbbf241a;border-color:#fbbf244d}.cycle-note{color:var(--muted);margin:0;font-size:.88rem;line-height:1.55}.pr-tile{position:relative}.pr-share{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:2px 4px;font-size:.95rem;line-height:1;display:inline-flex;position:absolute;top:4px;right:4px}.pr-share:hover{opacity:1;color:var(--accent-l);background:var(--surface-2,#7f7f7f1a)}.ach-badge--share{cursor:pointer;font:inherit;text-align:left}.ach-badge--share:hover{border-color:#fbbf248c}.energy-advisory strong{margin-bottom:6px;display:block}.energy-signals{margin:6px 0;padding-left:18px}.energy-signals li{margin:2px 0}.energy-guidance{color:var(--muted);margin-top:6px}.sleepdebt-body{gap:10px;display:flex}.sleepdebt-metric{text-align:center;border-radius:var(--radius);background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);border-left:3px solid var(--accent);flex:1;padding:10px 6px}.sleepdebt-metric--fresh{border-left-color:var(--success)}.sleepdebt-metric--building{border-left-color:var(--warning)}.sleepdebt-metric--fatigued{border-left-color:var(--danger)}.sleepdebt-metric--neutral{border-left-color:var(--accent)}.sleepdebt-value{color:var(--text);font-size:1.4rem;font-weight:700;line-height:1.1}.sleepdebt-metric--fatigued .sleepdebt-value{color:var(--danger)}.sleepdebt-metric--building .sleepdebt-value{color:var(--warning)}.sleepdebt-label{color:var(--muted);margin-top:3px;font-size:.72rem}.strengthprog-list{margin:4px 0 0;padding:0;list-style:none}.strengthprog-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 0;display:flex}.strengthprog-row:last-child{border-bottom:none}.strengthprog-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.strengthprog-name{color:var(--text);font-size:.9rem;font-weight:600}.strengthprog-best{color:var(--muted);font-size:.82rem}.strengthprog-delta{margin-left:6px;font-weight:700}.strengthprog-delta--up{color:var(--success)}.strengthprog-delta--down{color:var(--danger)}.strengthprog-spark{flex-shrink:0;width:120px;height:32px}.recap-share{cursor:pointer;font:inherit;background:0 0;border:none}.recap-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;display:grid}.recap-stat{text-align:center;border-radius:var(--radius);background:var(--surface-2,#7f7f7f0d);border:1px solid var(--border);padding:12px 6px}.recap-value{color:var(--accent-l);font-size:1.25rem;font-weight:700;line-height:1.15}.recap-label{color:var(--muted);margin-top:3px;font-size:.72rem}.recap-highlights{color:var(--muted);margin:14px 0 0;padding-left:18px;font-size:.86rem;line-height:1.6}.recap-highlights strong{color:var(--text)}.travel-form{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.travel-field{color:var(--muted);flex-direction:column;gap:4px;font-size:.78rem;display:flex}.travel-field input{border:1px solid var(--border);background:var(--bg-input,var(--bg-card));color:var(--text);border-radius:8px;padding:8px 10px;font-size:.88rem}.travel-submit{grid-column:1/-1;justify-self:start}.travel-result{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.travel-summary{color:var(--text);margin:0 0 10px;font-size:.9rem}.travel-block h3{color:var(--accent-l);margin:10px 0 4px;font-size:.85rem}.travel-block ul{color:var(--muted);margin:0;padding-left:18px;font-size:.84rem;line-height:1.55}.travel-block li{margin:3px 0}.travel-disclaimer{color:var(--dim);margin:12px 0 0;font-size:.76rem;font-style:italic}.why-session{background:color-mix(in srgb, var(--accent) 7%, transparent);border:1px solid color-mix(in srgb, var(--accent) 16%, transparent);border-radius:10px;margin:10px 0;padding:10px 12px}.why-session-label{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-l);margin-bottom:3px;font-size:.7rem;font-weight:700;display:block}.why-session-text{color:var(--text);font-size:.85rem;line-height:1.5}.est-card{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 5%, transparent);border-radius:10px;margin:10px 0;padding:10px 12px}.est-profile{background:#7f7f7f1f;border-radius:4px}.est-card-head,.briefing-notes-head{letter-spacing:.04em;text-transform:uppercase;color:var(--dim);margin-bottom:6px;font-size:.7rem;font-weight:700;display:block}.est-caption{color:var(--muted);margin-top:6px;font-size:.8rem}.est-stats{flex-wrap:wrap;gap:6px 20px;margin-top:8px;display:flex}.est-stat{flex-direction:column;min-width:64px;display:flex}.est-stat--wide{flex:auto}.est-stat-label{letter-spacing:.04em;text-transform:uppercase;color:var(--dim);font-size:.68rem;font-weight:700}.est-stat-value{color:var(--text);font-size:.9rem;font-weight:600}.step-list{border:1px solid var(--border);border-radius:10px;max-height:300px;margin:10px 0;padding:8px 12px;overflow-y:auto}.step-row{align-items:center;gap:8px;padding:3px 0;font-size:.85rem;display:flex}.step-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.step-label{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.step-dur{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}.step-target{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.zone-rollup{border-top:1px dashed var(--border);flex-wrap:wrap;gap:4px 16px;margin-top:8px;padding-top:8px;display:flex}.zone-rollup-row{color:var(--dim);align-items:center;gap:6px;font-size:.78rem;display:flex}.zone-rollup-time{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.zone-rollup-pct{font-variant-numeric:tabular-nums}.briefing-notes{white-space:pre-wrap;color:var(--text);opacity:.92;margin:10px 0 14px;font-size:.88rem;line-height:1.55}@media (width<=480px){.travel-form{grid-template-columns:1fr}}.game-plan{background:color-mix(in srgb, var(--accent) 6%, transparent);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);border-radius:10px;margin:10px 0;padding:12px 14px}.game-plan-head{flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.game-plan-label{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-l);font-size:.7rem;font-weight:700}.game-plan-focus{color:var(--text);font-size:.9rem;font-weight:600;line-height:1.4}.game-plan-cues{flex-direction:column;gap:4px;margin:0 0 8px;padding-left:18px;display:flex}.game-plan-cues li{color:var(--text);font-size:.82rem;line-height:1.45}.game-plan-expect{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.game-plan-loads{margin:0 0 10px}.game-plan-loads-head{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.7rem;font-weight:700}.game-plan-load-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.game-plan-load-list li{background:var(--card-2,#ffffff08);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr auto;gap:2px 10px;padding:7px 9px;display:grid}.load-exercise{color:var(--text);font-size:.85rem;font-weight:600}.load-prescription{color:var(--accent-l);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem;font-weight:700}.load-basis{color:var(--muted);grid-column:1/-1;font-size:.75rem;line-height:1.4}.game-plan-loads-note{color:var(--muted);margin:0 0 8px;font-size:.8rem;line-height:1.5}.dash-metric-head{justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.dash-metric-head .dash-metric-label{margin-bottom:0}.dash-metric-info{border:1px solid var(--border-hi);width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.72rem;line-height:1;transition:border-color .15s,color .15s;display:inline-flex}.dash-metric-info:hover{border-color:var(--accent);color:var(--accent)}.dash-metric-explain{border-top:1px dashed var(--border);color:var(--muted);margin-top:10px;padding-top:10px;font-size:.76rem;line-height:1.45}.dash-metric-explain p{margin:0 0 5px}.dash-metric-explain p:last-child{margin-bottom:0}.dash-metric-explain strong{color:var(--text)}.dash-more-topbar{justify-content:flex-end;display:flex}.dash-customize-toggle{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:5px 10px;font-family:inherit;font-size:.78rem;font-weight:600;transition:border-color .15s,color .15s}.dash-customize-toggle:hover{border-color:var(--accent);color:var(--accent)}.dash-customize{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.dash-customize-hint{color:var(--muted);margin:0 0 10px;font-size:.78rem}.dash-customize-group{letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:10px 0 4px;font-size:.7rem;font-weight:700}.dash-customize-group:first-of-type{margin-top:0}.dash-customize-row{justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.dash-customize-name{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.dash-pin-btn{border:1px solid var(--border-hi);color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;padding:3px 9px;font-family:inherit;font-size:.74rem;transition:border-color .15s,color .15s,background .15s}.dash-pin-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dash-pin-btn.is-pinned{background:var(--accent);border-color:var(--accent);color:#fff}.dash-pin-btn:disabled{opacity:.4;cursor:default}.benchmark-nudge{background:#34d39914;border:1px solid #34d39947;border-radius:10px;gap:10px;margin:8px 0;padding:11px 13px;display:flex}.benchmark-nudge-easing{background:#fbbf2417;border-color:#fbbf2452}.benchmark-nudge-icon{flex-shrink:0;font-size:1.1rem;line-height:1.3}.benchmark-nudge-body{flex-direction:column;gap:8px;display:flex}.benchmark-nudge-msg{color:var(--text);margin:0;font-size:.86rem;line-height:1.45}.benchmark-nudge-actions{flex-wrap:wrap;gap:8px;display:flex}.compare-period{gap:4px;display:inline-flex}.compare-period-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;padding:3px 9px;font-family:inherit;font-size:.74rem;transition:border-color .15s,color .15s}.compare-period-btn:hover{border-color:var(--accent);color:var(--accent)}.compare-period-btn.is-active{border-color:var(--accent);color:var(--accent);font-weight:700}.compare-rows{flex-direction:column;gap:2px;margin:12px 0;display:flex}.compare-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:baseline;gap:10px;padding:7px 0;display:grid}.compare-row:last-child{border-bottom:none}.compare-row-label{color:var(--muted);font-size:.82rem}.compare-row-value{color:var(--text);text-align:right;font-size:.95rem;font-weight:700}.compare-delta{text-align:right;min-width:48px;font-size:.76rem;font-weight:700}.compare-delta--up{color:var(--success)}.compare-delta--down{color:var(--warning)}.compare-delta--flat{color:var(--dim)}.compare-mix-block{flex-direction:column;gap:7px;margin:4px 0 12px;display:flex}.compare-mix-row{grid-template-columns:70px 1fr;align-items:center;gap:10px;display:grid}.compare-mix-label{color:var(--muted);font-size:.74rem}.compare-mix{background:var(--surface-2,#7f7f7f14);border-radius:6px;height:12px;display:flex;overflow:hidden}.compare-mix--empty{background:var(--surface-2,#7f7f7f14)}.compare-mix-seg{height:100%}.compare-mix-seg--easy{background:var(--success)}.compare-mix-seg--mod{background:var(--warning)}.compare-mix-seg--hard{background:var(--danger)}.compare-mix-legend{color:var(--muted);gap:14px;margin-top:2px;font-size:.72rem;display:flex}.compare-mix-legend span{align-items:center;gap:5px;display:inline-flex}.compare-dot{border-radius:2px;width:9px;height:9px;display:inline-block}.compare-dot--easy{background:var(--success)}.compare-dot--mod{background:var(--warning)}.compare-dot--hard{background:var(--danger)}.compare-msg{color:var(--muted);margin:0;font-size:.82rem;line-height:1.45}.season-card{border-left:3px solid var(--border-hi)}.season-card--race{border-left-color:var(--accent)}.season-card--attention{border-left-color:var(--warning)}.season-card--recover{border-left-color:var(--success)}.season-headline{margin-bottom:6px;font-size:1.02rem;font-weight:600}.season-reco{color:var(--muted);margin:0;font-size:.85rem;line-height:1.5}.season-done{color:var(--success);margin:10px 0 0;font-size:.82rem}.season-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.season-history{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.season-history-title{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:6px;font-size:.72rem}.season-history-row{justify-content:space-between;gap:10px;padding:3px 0;font-size:.8rem;display:flex}.season-history-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.season-history-meta{color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0}.brief-card{border-left:3px solid var(--border-hi)}.brief-card--go{border-left-color:var(--success)}.brief-card--ease{border-left-color:var(--warning)}.brief-card--rest{border-left-color:var(--danger)}.brief-lead{align-items:flex-start;gap:12px;display:flex}.brief-icon{flex-shrink:0;font-size:1.5rem;line-height:1.1}.brief-lead-text{min-width:0}.brief-headline{margin-bottom:4px;font-size:1.06rem;font-weight:700}.brief-because{color:var(--muted);margin:0;font-size:.87rem;line-height:1.5}.brief-agreement{color:var(--dim);margin:6px 0 0;font-size:.78rem}.brief-action{margin-top:12px}.brief-detail{border-top:1px solid var(--border);margin-top:12px;padding-top:8px}.brief-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;align-items:center;gap:6px;min-height:24px;padding:0;font-size:.78rem;display:inline-flex}.brief-toggle:hover{color:var(--text)}.brief-chev{color:var(--dim)}.brief-signals{gap:10px;margin-top:10px;display:grid}.brief-signal{border-left:2px solid var(--border);padding-left:10px}.brief-signal-head{align-items:center;gap:6px;display:flex}.brief-signal-dot{background:var(--dim);border-radius:50%;width:7px;height:7px}.brief-signal--fine .brief-signal-dot{background:var(--success)}.brief-signal--watch .brief-signal-dot{background:var(--border-hi)}.brief-signal--act .brief-signal-dot{background:var(--warning)}.brief-signal--urgent .brief-signal-dot{background:var(--danger)}.brief-signal--act{border-left-color:var(--warning)}.brief-signal--urgent{border-left-color:var(--danger)}.brief-signal-label{font-size:.8rem;font-weight:600}.brief-signal-detail{color:var(--muted);margin:3px 0 0;font-size:.8rem;line-height:1.45}.plan-benchmark-advisory--warn{border-left:3px solid var(--warning);padding-left:10px}.plan-benchmark-advisory--note{border-left:3px solid var(--border-hi);padding-left:10px}.dash-metric-note>a:only-child{align-items:center;min-height:24px;display:inline-flex}.admin-activity{margin-top:40px}.admin-activity h2{margin-bottom:4px}.admin-activity-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex}.admin-activity-filter input{max-width:280px}.admin-activity-notable{color:var(--danger,#c0392b);font-weight:600}.gear-list{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.gear-item{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.gear-item.is-retired{opacity:.7}.gear-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.gear-name{font-weight:600}.gear-meta,.gear-km{color:var(--muted);font-size:.9rem}.gear-due{color:var(--tone-warn,var(--text));font-weight:600}.gear-bar{background:var(--surface-2);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.gear-bar-fill{background:var(--accent);height:100%}.gear-bar-fill.is-due{background:var(--tone-warn,var(--accent))}.gear-actions{align-items:center;gap:8px;margin-top:6px;display:flex}.gear-form{margin-top:12px}.session-gear{align-items:center;gap:8px;margin:10px 0;font-size:.9rem;display:flex}.session-gear select{width:auto}.live-status{color:var(--muted)}.live-status.is-live{color:var(--tone-good);font-weight:600}.live-stats{flex-wrap:wrap;gap:16px;margin:12px 0;display:flex}.live-stats div{flex-direction:column;font-weight:600;display:flex}.live-stats span{color:var(--muted);font-size:.8rem;font-weight:400}.live-map{margin:12px 0}.live-map svg{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:100%;max-width:520px;height:auto;display:block}.live-map figcaption{color:var(--muted);margin-top:4px;font-size:.75rem}.privacy-zones{margin-top:16px}.pz-list{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.pz-item{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.pz-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.pz-name{font-weight:600}.pz-meta{color:var(--muted);font-size:.9rem}.pz-actions{gap:8px;margin-top:4px;display:flex}.privacy-zone-add{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.privacy-zone-add .form-group{margin:0}.garmin-attr{color:var(--ink-soft);margin-bottom:6px;font-size:.9rem;font-weight:700}.garmin-attr--sm{font-size:.8rem}.garmin-attr--center{text-align:center}.activity-row-main .garmin-attr{margin:0 0 0 8px}.legal-callout{border:1px solid var(--border-hi);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface-2);margin:16px 0;padding:14px 16px}.legal-callout h3{font-family:var(--font-display);font-size:var(--step-1);margin:0 0 8px}.legal-callout p+p{margin-top:8px}.quick-plan h2{margin-top:0}.quick-plan .form-group input[type=number],.quick-plan .form-group input[type=date]{max-width:220px}.quick-plan-alt{margin:12px 0 0}.quick-plan-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.quick-plan-actions .btn{width:auto}.tune-list{flex-direction:column;gap:8px;margin:12px 0;display:flex}.tune-row{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.tune-name{flex:150px;font-weight:600}.tune-hours{align-items:center;gap:6px;display:flex}.tune-hours span{text-align:center;min-width:44px}.tune-hours button,.tune-remove{border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;font-size:1rem}.tune-hours button:disabled{opacity:.4;cursor:default}.tune-days{gap:4px;display:flex}.tune-day{border:1px solid var(--border);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;font-size:.8rem}.tune-day.on{background:var(--accent-d);border-color:var(--accent-d);color:#fff}.tune-day:disabled{cursor:default;opacity:.55}.tune-day.on:disabled{opacity:1}.tune-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tune-tools select{width:auto;max-width:100%;min-height:36px}.tune-remove-space{flex:0 0 32px;width:32px}.tune-main{width:auto;min-height:32px;padding:4px 8px;font-weight:600}.plan-goal-progress--ahead{border-left-color:var(--success,#16a34a);background:color-mix(in srgb, var(--success,#16a34a) 10%, transparent)}.plan-goal-progress--behind{border-left-color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent)}.trajectory-goal-note{color:var(--muted);margin:0 0 6px;font-size:.85rem}
