:root{color-scheme:light;--clr-brand: #fc4c02;--clr-brand-dk: #e04400;--on-brand: #fff;--clr-heading: #222;--clr-text: #333;--clr-muted: #666;--clr-subtle: #bbb;--clr-danger: #d32f2f;--clr-bg: #fff;--clr-surface: #fafafa;--clr-surface-2: #f0f0f0;--clr-elevated: #fff;--clr-border: rgba(0, 0, 0, .07);--clr-border-strong: #ccc;--glass-bg: rgba(255, 255, 255, .8);--glass-bg-solid: rgba(255, 255, 255, .96);--scrim: rgba(0, 0, 0, .35);--hover-wash: rgba(0, 0, 0, .04);--tint-brand: rgba(252, 76, 2, .08);--tint-brand-sm: rgba(252, 76, 2, .05);--row-hover: rgba(252, 76, 2, .06);--stat-good-bg: #e8f5e9;--stat-good-fg: #2e7d32;--stat-info-bg: #e3f2fd;--stat-info-fg: #1565c0;--stat-cool-bg: #e0f7fa;--stat-cool-fg: #00838f;--stat-warn-bg: #fff3e0;--stat-warn-fg: #e65100;--stat-danger-bg: #ffebee;--stat-danger-fg: #c62828;--stat-neutral-bg: #f5f5f5;--stat-neutral-fg: #555;--stat-purple-bg: #f3e5f5;--stat-purple-fg: #6a1b9a;--stat-pink-bg: #fce4ec;--stat-pink-fg: #c62828;--ok: #43a047;--bad: #e53935;--scale-1: #1565c0;--scale-2: #42a5f5;--scale-3: #2e7d32;--scale-4: #f9a825;--scale-5: #e65100;--scale-6: #c62828;--chart-bar: #fc4c02;--chart-bar-zero: #ececec;--chart-grid: #e8e8e8;--chart-axis: #ccc;--chart-label: #aaa;--chart-value: #555;--skeleton-1: #f0f0f0;--skeleton-2: #e0e0e0;--nav-h: 56px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 24px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 1px 4px rgba(0, 0, 0, .12);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .15);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--container-max: 1400px;--container-pad: clamp(.75rem, 4vw, 2rem);--font-sm: clamp(.78rem, 1.5vw, .875rem);--font-base: clamp(.9rem, 2vw, 1rem)}:root[data-theme=dark]{color-scheme:dark;--clr-heading: #f4f2ef;--clr-text: #e6e3df;--clr-muted: #a7a19a;--clr-subtle: #6a655e;--clr-danger: #ff6b6b;--clr-bg: #16181c;--clr-surface: #1e2127;--clr-surface-2: #262a31;--clr-elevated: #23272e;--clr-border: rgba(255, 255, 255, .1);--clr-border-strong: #454b54;--glass-bg: rgba(24, 27, 32, .82);--glass-bg-solid: rgba(24, 27, 32, .97);--scrim: rgba(0, 0, 0, .6);--hover-wash: rgba(255, 255, 255, .06);--tint-brand: rgba(252, 76, 2, .18);--tint-brand-sm: rgba(252, 76, 2, .11);--row-hover: rgba(252, 76, 2, .13);--stat-good-bg: rgba(76, 175, 80, .18);--stat-good-fg: #81c784;--stat-info-bg: rgba(33, 150, 243, .18);--stat-info-fg: #64b5f6;--stat-cool-bg: rgba(0, 172, 193, .18);--stat-cool-fg: #4dd0e1;--stat-warn-bg: rgba(255, 152, 0, .18);--stat-warn-fg: #ffb74d;--stat-danger-bg: rgba(244, 67, 54, .2);--stat-danger-fg: #ef9a9a;--stat-neutral-bg: rgba(255, 255, 255, .08);--stat-neutral-fg: #b3ada6;--stat-purple-bg: rgba(171, 71, 188, .2);--stat-purple-fg: #ce93d8;--stat-pink-bg: rgba(236, 64, 122, .2);--stat-pink-fg: #f48fb1;--scale-1: #64b5f6;--scale-2: #90caf9;--scale-3: #81c784;--scale-4: #ffca28;--scale-5: #ffa726;--scale-6: #ef5350;--chart-bar: #fc4c02;--chart-bar-zero: #2c313a;--chart-grid: #333941;--chart-axis: #464c55;--chart-label: #7c766e;--chart-value: #a7a19a;--skeleton-1: #23262c;--skeleton-2: #2e323a;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .45);--shadow-md: 0 2px 6px rgba(0, 0, 0, .55);--shadow-lg: 0 6px 24px rgba(0, 0, 0, .65)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--clr-bg);color:var(--clr-text);line-height:1.6;overflow-x:hidden;font-size:var(--font-base);transition:background-color .2s ease,color .2s ease}@media(prefers-reduced-motion:reduce){body{transition:none}}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.navbar{position:sticky;top:0;z-index:100;height:var(--nav-h);background:var(--glass-bg-solid);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;padding:0 var(--container-pad)}.navbar .logo{height:36px;display:block;position:absolute;left:var(--container-pad)}:root[data-theme=dark] .navbar .logo{border-radius:50%}.nav-tabs{display:none}.nav-tab,.drawer-item{display:flex;align-items:center;gap:.4rem}.nav-tab{background:transparent;color:var(--clr-muted);border:none;border-bottom:3px solid transparent;border-radius:0;padding:0 clamp(.6rem,1.5vw,1.2rem);height:var(--nav-h);margin-bottom:-1px;font-size:clamp(.8rem,1.4vw,.9rem);cursor:pointer;transition:color .15s;white-space:nowrap}.nav-tab:hover:not(:disabled){background:transparent;color:var(--clr-text)}.nav-tab.active{color:var(--clr-brand);border-bottom-color:var(--clr-brand)}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:transparent;border:none;width:44px;height:44px;cursor:pointer;position:absolute;right:var(--container-pad)}.hamburger span{display:block;width:22px;height:2px;background:var(--clr-muted);border-radius:2px}.hamburger:hover:not(:disabled){background:transparent}.profile-wrap{display:none;position:absolute;right:calc(var(--container-pad) + 3rem);align-items:center}.profile-btn{background:transparent;border:none;color:var(--clr-muted);padding:.4rem;font-size:1rem;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s,background .15s}.profile-btn:hover:not(:disabled),.profile-btn.active{background:var(--tint-brand);color:var(--clr-brand)}.profile-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;display:block}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.profile-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background:var(--clr-bg);border-radius:10px;box-shadow:var(--shadow-lg);padding:.4rem 0;z-index:100}.profile-action{display:flex;align-items:center;gap:.6rem;width:100%;background:transparent;border:none;border-radius:0;color:var(--clr-text);font-size:.9rem;padding:.6rem 1rem;text-align:left;cursor:pointer}.profile-action:hover:not(:disabled){background:var(--clr-surface-2);color:var(--clr-text)}.profile-action:disabled{opacity:.6}.profile-signout{color:var(--clr-muted)}.comp-past td{background:var(--stat-good-bg)}.profile-divider{height:1px;background:var(--clr-border);margin:.3rem 0}.profile-login{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.profile-login p{margin:0;font-size:.85rem;color:var(--clr-muted)}.profile-error{color:var(--clr-danger);font-size:.82rem;padding:0 1rem;margin:.25rem 0}@media(min-width:1024px){.nav-tabs,.profile-wrap{display:flex}.hamburger{display:none}}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:200;animation:fadeInOverlay .2s ease}.drawer{position:absolute;top:0;right:0;bottom:0;width:clamp(200px,60vw,280px);background:var(--glass-bg-solid);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;padding:1.5rem 0;box-shadow:var(--shadow-lg);animation:slideInRight .25s cubic-bezier(.25,.46,.45,.94)}.drawer-item{background:transparent;color:var(--clr-text);border:none;border-left:3px solid transparent;border-radius:0;padding:.85rem 1.5rem;font-size:1rem;text-align:left;cursor:pointer}.drawer-item:hover:not(:disabled){background:var(--clr-surface-2);color:var(--clr-text)}.drawer-item.active{color:var(--clr-brand);border-left-color:var(--clr-brand);background:var(--tint-brand-sm)}.drawer-divider{height:1px;background:var(--clr-border);margin:.5rem 0}.drawer-login{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.drawer-login p{margin:0;font-size:.85rem;color:var(--clr-muted)}.drawer-signout{color:var(--clr-muted)}.theme-row{color:var(--clr-text)}.theme-row span:first-of-type{flex:1}.theme-switch{position:relative;flex-shrink:0;width:40px;height:22px;border-radius:999px;background:var(--clr-border-strong);transition:background .2s ease}.theme-switch.on{background:var(--clr-brand)}.theme-switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s ease}.theme-switch.on .theme-switch-knob{transform:translate(18px)}.container{max-width:var(--container-max);width:100%;margin:clamp(.75rem,3vw,2rem) auto;padding:0 var(--container-pad);flex:1;display:flex;flex-direction:column}.tab-content{animation:fadeIn .2s ease;flex:1;display:flex;flex-direction:column}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:clamp(1rem,4vw,2rem) var(--container-pad);gap:1.5rem}.home-card{display:flex;flex-direction:column;gap:.75rem;width:clamp(200px,60vw,360px)}.photo-carousel{display:grid;width:min(100%,max(160px,calc((100vh - 360px) * 2 / 3)));width:min(100%,max(160px,calc((100dvh - 360px) * 2 / 3)));aspect-ratio:2 / 3;align-self:center;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none}.photo-carousel:focus,.photo-carousel:focus-visible{outline:none;background:none}.home-photo{grid-area:1 / 1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease;transform:scale(1.04)}.home-photo--active{opacity:1;animation:photoEnter .7s ease forwards}.photo-carousel:hover .home-photo--active{filter:brightness(1.04)}.logo{transition:opacity .3s ease}.home-quote{margin:0;padding:.2rem .5rem;font-family:Oswald,sans-serif;font-style:italic}.home-quote-text{margin:0 0 .4rem;font-size:clamp(1.1rem,3vw,1.4rem);font-weight:700;color:var(--clr-heading);line-height:1.3;text-align:center}.home-quote-author{display:block;font-size:clamp(.82rem,2vw,.95rem);font-weight:400;color:var(--clr-muted);letter-spacing:.03em;text-align:right}.weather-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem .9rem;width:clamp(280px,92vw,420px);padding:.6rem 1.2rem;background:var(--glass-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);font-family:Oswald,sans-serif;color:var(--clr-text)}.weather-strip-icon{font-size:2rem;color:var(--clr-text);flex-shrink:0}.weather-strip-temp{font-size:1.5rem;font-weight:700;color:var(--clr-heading)}.weather-strip-feels{font-size:.85rem;color:var(--clr-muted)}.weather-strip-chips{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem .7rem}.weather-chip{font-size:.85rem;color:var(--clr-text);white-space:nowrap}.weather-strip-meta{flex-basis:100%;text-align:center;font-size:.74rem;font-style:italic;color:var(--clr-muted);letter-spacing:.03em}.weather-strip--loading{opacity:.55}@media(max-width:767px){.weather-strip{width:min(calc(100vw - 2rem),360px);padding:.5rem .85rem;gap:.35rem .7rem}.weather-strip-icon{font-size:1.7rem}.weather-strip-temp{font-size:1.3rem}.weather-strip-feels,.weather-chip{font-size:.8rem}}.health-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;padding:.5rem 0}.health-empty{color:var(--clr-muted);text-align:center;padding:2rem}.metric-card--muted .metric-sub{font-size:.78rem;color:var(--clr-subtle)}.home-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;width:clamp(200px,80vw,480px)}.metric-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.15rem;min-width:0}.metric-label{font-size:.68rem;font-weight:600;color:var(--clr-subtle);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.metric-value{font-size:1.25rem;font-weight:700;color:var(--clr-heading);line-height:1.1}.metric-sub{font-size:.72rem;color:var(--clr-muted)}.metric-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:99px;text-transform:capitalize;white-space:nowrap}.metric-card--wide{grid-column:span 2}.race-predictions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.4rem}.race-item{display:flex;flex-direction:column;align-items:center;gap:.1rem}.race-dist{font-size:.65rem;font-weight:700;color:var(--clr-muted);text-transform:uppercase;letter-spacing:.04em}.race-time{font-size:1rem;font-weight:700;color:var(--clr-text)}.metric-value--mono{font-variant-numeric:tabular-nums;letter-spacing:.02em}.predictions-grid{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.prediction-block{display:flex;flex-direction:column;align-items:center;background:var(--hover-wash);border-radius:8px;padding:.4rem .75rem;flex:1;min-width:58px}.prediction-dist{font-size:.62rem;font-weight:700;color:var(--clr-muted);text-transform:uppercase;letter-spacing:.06em}.prediction-time{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--clr-text);margin-top:3px;white-space:nowrap}@media(max-width:767px){.home-metrics{grid-template-columns:repeat(2,1fr);width:clamp(200px,90vw,400px)}}.controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1.25rem;background:var(--glass-bg);padding:.75rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.controls label{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:var(--font-sm)}.controls input[type=date]{padding:.35rem .5rem;border:1px solid var(--clr-border-strong);border-radius:var(--radius-sm);font-size:var(--font-base)}.controls input[type=date]:disabled{opacity:.45;cursor:not-allowed}.all-time-label{display:flex;align-items:center;gap:.4rem;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-sm)}.runs-summary{color:var(--clr-muted);margin-bottom:.75rem;font-size:.95rem}button{padding:.45rem 1.1rem;background:var(--clr-brand);color:var(--on-brand);border:none;border-radius:var(--radius-sm);font-size:var(--font-base);cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}button:hover:not(:disabled){background:var(--clr-brand-dk)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;background:var(--clr-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}th,td{padding:clamp(.4rem,1.2vw,.6rem) clamp(.5rem,1.5vw,1rem);text-align:left;border-bottom:1px solid var(--clr-border);white-space:nowrap;font-size:var(--font-sm)}th{background:var(--clr-surface);font-weight:600}tbody tr:hover{background:var(--row-hover)}.table-compact{width:fit-content;margin:0 auto}.table-compact table{width:auto}.mileage-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem}.view-toggle{display:flex;background:var(--clr-surface);border-radius:var(--radius-sm);padding:3px;gap:2px}.view-toggle button{background:transparent;color:var(--clr-muted);border:none;border-radius:calc(var(--radius-sm) - 2px);padding:.3rem .9rem;font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.view-toggle button:hover:not(:disabled){background:var(--tint-brand);color:var(--clr-brand)}.view-toggle button.active{background:var(--clr-elevated);color:var(--clr-brand);box-shadow:var(--shadow-sm)}.year-selector{display:flex;flex-wrap:wrap;gap:.35rem}.year-selector button{background:var(--clr-surface);color:var(--clr-muted);border:1px solid var(--clr-border);border-radius:var(--radius-sm);padding:.25rem .7rem;font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.year-selector button:hover:not(:disabled){background:var(--tint-brand);color:var(--clr-brand);border-color:var(--clr-brand)}.year-selector button.active{background:var(--clr-brand);color:var(--on-brand);border-color:var(--clr-brand)}.yearly-chart-wrap{max-width:680px;margin:0 auto;width:100%}.yearly-chart{width:100%;display:block;overflow:visible}.chart-grid{stroke:var(--chart-grid)}.chart-axis{stroke:var(--chart-axis)}.chart-arrow{fill:var(--chart-axis)}.chart-label{fill:var(--chart-label)}.chart-value{fill:var(--chart-value)}.chart-bar{fill:var(--chart-bar)}.chart-bar--zero{fill:var(--chart-bar-zero)}.gear-tooltip{position:fixed;z-index:300;background:var(--clr-bg);border-radius:12px;box-shadow:var(--shadow-lg);padding:.6rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;pointer-events:none;animation:fadeIn .15s ease}.gear-tooltip img{width:180px;height:120px;object-fit:contain;border-radius:6px;background:#fff;padding:4px}.gear-tooltip span{font-size:.78rem;color:var(--clr-muted);text-align:center;max-width:180px}.logo--link{cursor:pointer}.site-footer{text-align:center;padding:1.25rem 1rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));font-size:.82rem;color:var(--clr-subtle)}.error{color:var(--clr-danger);margin-bottom:1rem}.loading-box{background:var(--glass-bg);border-radius:var(--radius-md);padding:2rem;text-align:center;color:var(--clr-muted);box-shadow:var(--shadow-sm)}@keyframes photoEnter{0%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(max-width:767px){.home{padding:.5rem var(--container-pad);gap:.5rem;justify-content:flex-start}.home-card{width:min(calc(100vw - 2rem),360px);gap:.5rem}.home-quote-text{font-size:.88rem}.home-quote-author{font-size:.74rem}}@media(max-width:767px){.table-wrap table thead{display:none}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}.table-wrap tr{border:1px solid var(--clr-border);border-radius:var(--radius-md);margin-bottom:.75rem;box-shadow:var(--shadow-sm)}.table-wrap td{display:flex;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--clr-border);text-align:right;white-space:normal;word-break:break-word;font-size:var(--font-sm)}.table-wrap td:last-child{border-bottom:none}.table-wrap td:before{content:attr(data-label);font-weight:600;color:var(--clr-muted);text-align:left;white-space:nowrap;flex-shrink:0;margin-right:.5rem}.table-wrap td[data-label=""]{font-weight:600;font-size:1rem;background:var(--clr-surface);border-bottom:2px solid var(--clr-border);justify-content:flex-start}.table-compact{width:100%}.table-compact table thead{display:none}.table-compact table,.table-compact tbody,.table-compact tr,.table-compact td{display:block;width:100%}.table-compact tr{border:1px solid var(--clr-border);border-radius:var(--radius-md);margin-bottom:.75rem;box-shadow:var(--shadow-sm)}.table-compact td{display:flex;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--clr-border);text-align:right;white-space:normal;word-break:break-word;font-size:var(--font-sm)}.table-compact td:last-child{border-bottom:none}.table-compact td:before{content:attr(data-label);font-weight:600;color:var(--clr-muted);text-align:left;white-space:nowrap;flex-shrink:0;margin-right:.5rem}.table-compact td[data-label=""]{font-weight:600;font-size:1rem;background:var(--clr-surface);border-bottom:2px solid var(--clr-border);justify-content:flex-start}.table-compact .gear-edit-row td:nth-child(4),.table-compact .gear-edit-row td:nth-child(5){display:none}}.cal-agenda-wrap{max-width:640px;margin:0 auto;background:var(--clr-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.75rem 1rem}.cal-agenda{display:flex;flex-direction:column}.cal-row{display:grid;grid-template-columns:72px 1fr;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--clr-border);align-items:flex-start}.cal-row:last-child{border-bottom:none}.cal-row--rest{opacity:.38}.cal-row-label{display:flex;flex-direction:column;gap:2px;padding-top:3px}.cal-row-dow{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--clr-muted)}.cal-row--today .cal-row-dow{color:var(--clr-brand)}.cal-row-date{font-size:.9rem;font-weight:600;color:var(--clr-text)}.cal-row--today .cal-row-date{color:var(--clr-brand)}.cal-row-events{display:flex;flex-direction:column;gap:.4rem}.cal-rest-label{color:var(--clr-muted);font-size:.85rem;padding-top:4px}.cal-card{border-radius:8px;padding:.5rem .7rem;display:flex;flex-direction:column;gap:.2rem}.cal-card-top{display:flex;align-items:flex-start;gap:.45rem}.cal-card-emoji{font-size:1rem;flex-shrink:0;line-height:1.35}.cal-card-name{font-size:.88rem;font-weight:600;line-height:1.35}.cal-card-meta{display:flex;gap:.5rem;font-size:.75rem;opacity:.75;margin-left:1.45rem}.cal-run{background:var(--stat-good-bg);color:var(--stat-good-fg)}.cal-bike{background:var(--stat-info-bg);color:var(--stat-info-fg)}.cal-swim{background:var(--stat-cool-bg);color:var(--stat-cool-fg)}.cal-strength{background:var(--stat-pink-bg);color:var(--stat-pink-fg)}.cal-other{background:var(--stat-purple-bg);color:var(--stat-purple-fg)}@media(max-width:480px){.home-quote-text{font-size:.88rem}.cal-row{grid-template-columns:56px 1fr;gap:.5rem}.cal-card-name{font-size:.82rem}}.goals-wrap{display:flex;flex-direction:column;gap:2rem}.goals-year{display:flex;flex-direction:column;gap:.75rem}.goals-year-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.goals-year-label{font-size:1.1rem;font-weight:700;color:var(--clr-text);min-width:3rem}.goals-progress{flex:1;height:6px;background:var(--clr-surface-2);border-radius:3px;overflow:hidden}.goals-progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.goals-year-count{font-size:.8rem;color:var(--clr-muted);min-width:2.5rem;text-align:right}.goals-list{display:flex;flex-direction:column;gap:.5rem}.goal-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--clr-surface);border-radius:var(--radius-md);border-left:3px solid var(--clr-border-strong);transition:border-color .2s}.goal-card--done{border-left-color:var(--ok);background:var(--stat-good-bg)}.goal-card--failed{border-left-color:var(--bad);background:var(--stat-danger-bg)}.goal-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--clr-border-strong);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:transparent;flex-shrink:0;background:transparent;padding:0;cursor:pointer;transition:border-color .15s,background .15s}button.goal-check:hover:not(:disabled){border-color:var(--clr-muted);background:var(--hover-wash)}.goal-check--done{background:var(--ok);border-color:var(--ok);color:var(--on-brand)}.goal-check--failed{background:var(--bad);border-color:var(--bad);color:var(--on-brand)}.goal-desc{flex:1;font-size:.95rem;color:var(--clr-text)}.goal-card--done .goal-desc{color:var(--stat-good-fg)}.goal-card--failed .goal-desc{color:var(--stat-danger-fg)}.goal-result{font-size:.8rem;font-weight:700;background:var(--ok);color:var(--on-brand);padding:.15rem .55rem;border-radius:999px;white-space:nowrap}.goal-edit-btn{background:transparent;border:1px solid var(--clr-border-strong);color:var(--clr-muted);padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;flex-shrink:0}.goal-card--editing{flex-wrap:wrap;gap:.5rem;align-items:flex-start;border-left-color:var(--clr-brand)}.goal-check-wrap{display:flex;align-items:center;padding-top:.4rem}.goal-edit-fields{display:flex;flex:1;gap:.5rem;min-width:0}@media(max-width:767px){.goal-card{padding:.6rem .75rem}.goal-edit-fields{flex-direction:column}input,select,textarea{font-size:max(1rem,16px)!important}}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--skeleton-1) 25%,var(--skeleton-2) 50%,var(--skeleton-1) 75%);background-size:800px 100%;animation:skeleton-shimmer 1.4s infinite linear;border-radius:6px}.skeleton-lines{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0}.skeleton-line{height:18px;border-radius:4px}.skeleton-table{display:flex;flex-direction:column;gap:.5rem;padding:1rem 0}.skeleton-row{height:40px;border-radius:6px}.hr-zones{margin-top:1.25rem}.hr-zones-title{font-size:var(--font-sm);font-weight:600;color:var(--clr-muted);margin-bottom:.6rem;text-transform:uppercase;letter-spacing:.04em}.hr-zone-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem}.hr-zone-label{width:clamp(76px,22vw,120px);font-size:clamp(.72rem,2.5vw,var(--font-sm));color:var(--clr-muted);flex-shrink:0}.hr-zone-bar-wrap{flex:1;background:var(--clr-surface-2);border-radius:4px;height:10px;overflow:hidden}.hr-zone-bar{height:100%;border-radius:4px;transition:width .3s ease}.hr-zone-count{width:36px;text-align:right;font-size:var(--font-sm);color:var(--clr-muted)}
