.confirm-modal{text-align:left;max-width:380px;padding:1.5rem 1.5rem 1.25rem}.confirm-modal__icon-ring{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;margin-bottom:.75rem;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.confirm-modal--warning .confirm-modal__icon-ring{background:color-mix(in srgb,#f59e0b 14%,transparent);color:#d97706}.confirm-modal__title{font-family:var(--font-heading);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin:0 0 .5rem}.confirm-modal__body{font-size:.85rem;line-height:1.5;color:var(--color-text-secondary);margin-bottom:1.1rem}.confirm-modal__body p{margin:0 0 .5rem}.confirm-modal__body p:last-child{margin-bottom:0}.confirm-modal__actions{display:flex;gap:.5rem}.confirm-modal__btn{flex:1;font-family:var(--font);font-size:.85rem;font-weight:600;padding:.6rem 1rem;border-radius:8px;cursor:pointer;transition:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.confirm-modal__btn--cancel{color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border)}.confirm-modal__btn--cancel.confirm-modal__btn--pressed,.confirm-modal__btn--cancel:active{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent)}.confirm-modal__btn--confirm{color:#fff;background:var(--color-primary);border:1px solid color-mix(in srgb,var(--color-primary) 80%,#000)}.confirm-modal--warning .confirm-modal__btn--confirm{background:#d97706;border-color:#b45309}.confirm-modal__btn--confirm.confirm-modal__btn--pressed,.confirm-modal__btn--confirm:active{filter:brightness(.92)}@media(hover:hover){.confirm-modal__btn--cancel:hover{background:color-mix(in srgb,var(--color-text-muted) 8%,transparent)}.confirm-modal__btn--confirm:hover{filter:brightness(.95)}}.auth-button__wrap{position:relative}.auth-button{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.auth-button:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.auth-button:active,.auth-button.auth-button--pressed{background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.auth-button__icon{color:var(--color-text-secondary)}.auth-button__avatar{width:22px;height:22px;border-radius:50%}.auth-button__name{color:var(--color-text-secondary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-button__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:220px;display:flex;flex-direction:column;padding:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px #ffffff0a inset,0 18px 36px -12px #0f172a40,0 8px 16px -8px #0f172a26;animation:auth-menu-in .16s cubic-bezier(.22,1,.36,1) both}@keyframes auth-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-button__menu-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;font-size:.85rem;font-weight:500;color:var(--color-text);background:transparent;border:0;border-radius:8px;cursor:pointer;text-align:left;transition:background .14s ease}.auth-button__menu-item:hover,.auth-button__menu-item:focus-visible{background:var(--color-bg);outline:none}[data-theme=dark] .auth-button__menu{background:var(--color-surface);box-shadow:0 1px #ffffff0a inset,0 18px 36px -12px #0009,0 8px 16px -8px #0006}.profile-avatar-btn{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;overflow:hidden;cursor:pointer;transition:border-color var(--transition),transform .22s ease}.profile-avatar-btn__img{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block;transform:scale(1.04);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.profile-avatar-btn__initial{display:grid;place-items:center;width:100%;height:100%;font-family:var(--font-heading);font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:#fff;background:linear-gradient(135deg,#7dd3fc,#3b82f6 55%,#8b5cf6);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}@media(hover:hover){.profile-avatar-btn:hover{border-color:var(--color-text-muted)}.profile-avatar-btn:hover .profile-avatar-btn__img,.profile-avatar-btn:hover .profile-avatar-btn__initial{transform:scale(1.08)}}.profile-avatar-btn:active,.profile-avatar-btn.profile-avatar-btn--pressed{border-color:var(--color-text-muted);transform:scale(.94);transition:none}.sync-banner{position:fixed;top:calc(var(--header-height, calc(7.5rem + env(safe-area-inset-top, 0px)) ) + .25rem);left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:0;pointer-events:none;animation:sync-banner-enter .5s cubic-bezier(.16,1,.3,1) forwards}.sync-banner--leaving{animation:sync-banner-exit .4s cubic-bezier(.4,0,1,1) forwards}@keyframes sync-banner-enter{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes sync-banner-exit{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}.sync-banner__card{pointer-events:auto;display:flex;align-items:center;gap:.65rem;width:100%;max-width:420px;margin:.6rem 1rem 0;padding:.65rem .75rem .65rem 0;border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md),0 0 0 1px #fc4c020f;overflow:hidden;position:relative}.sync-banner__accent{width:4px;align-self:stretch;flex-shrink:0;border-radius:2px 0 0 2px}.sync-banner--success .sync-banner__accent{background:linear-gradient(180deg,#fc4c02,#e8440a)}.sync-banner--error .sync-banner__accent{background:linear-gradient(180deg,var(--color-red),#dc2626)}.sync-banner__icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.85rem}.sync-banner--success .sync-banner__icon{background:#fc4c0214;color:#fc4c02}.sync-banner--error .sync-banner__icon{background:var(--color-red-light);color:var(--color-red)}.sync-banner__body{flex:1;min-width:0}.sync-banner__title{font-family:var(--font);font-size:.8rem;font-weight:600;color:var(--color-text);line-height:1.3}.sync-banner__subtitle{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-muted);line-height:1.3;margin-top:1px;letter-spacing:-.01em}.sync-banner__dismiss{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px;font-size:.75rem;transition:background .15s ease,color .15s ease;padding:0}@media(hover:hover){.sync-banner__dismiss:hover{background:var(--color-border);color:var(--color-text-secondary)}}.sync-banner__dismiss:active,.sync-banner__dismiss.sync-banner__dismiss--pressed{background:var(--color-border);color:var(--color-text-secondary);transition:none}.sync-banner__timer{position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 0 var(--radius)}.sync-banner--success .sync-banner__timer{background:#fc4c024d}.sync-banner--error .sync-banner__timer{background:#ef44444d}.sync-banner__timer--running{animation:sync-banner-timer 5s linear forwards}@keyframes sync-banner-timer{0%{width:100%}to{width:0%}}[data-theme=dark] .sync-banner__card{background:#1e293bf2;border-color:#334155b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #0006,0 0 0 1px #fc4c0214}[data-theme=dark] .sync-banner--success .sync-banner__icon{background:#fc4c021f;color:#ff6a2f}[data-theme=dark] .sync-banner--error .sync-banner__icon{background:#f871711f;color:#f87171}@media(hover:hover){[data-theme=dark] .sync-banner__dismiss:hover{background:#33415599;color:var(--color-text-secondary)}}[data-theme=dark] .sync-banner--success .sync-banner__timer{background:#fc4c0240}[data-theme=dark] .sync-banner--error .sync-banner__timer{background:#f8717133}@media(max-width:480px){.sync-banner__card{max-width:none;margin:.4rem .5rem 0;border-radius:var(--radius-sm)}}.sync-banner__sessions{display:flex;flex-direction:column;gap:6px;margin-top:2px}.sync-banner__session-block{display:flex;flex-direction:column;gap:1px}.sync-banner__session-desc{font-size:.74rem;color:var(--color-text-secondary);padding-left:9px;line-height:1.3}.sync-banner__session{display:flex;align-items:center;gap:6px;font-size:.78rem;line-height:1.3;color:var(--color-text-secondary)}.sync-banner__session-bar{flex-shrink:0;width:3px;height:.85em;border-radius:2px}.sync-banner__session-label{color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-banner__session-miles{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.sync-banner__session-miles:before{content:"· ";margin-right:1px}.role-change-banner{position:fixed;top:0;left:0;right:0;z-index:210;display:flex;align-items:center;justify-content:center;padding:0;pointer-events:none;animation:role-change-banner-enter .55s cubic-bezier(.16,1,.3,1) forwards}.role-change-banner--leaving{animation:role-change-banner-exit .4s cubic-bezier(.4,0,1,1) forwards}@keyframes role-change-banner-enter{0%{transform:translateY(-110%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes role-change-banner-exit{0%{transform:translateY(0);opacity:1}to{transform:translateY(-110%);opacity:0}}.role-change-banner__card{pointer-events:auto;position:relative;display:flex;align-items:stretch;gap:.75rem;width:100%;max-width:460px;margin:calc(env(safe-area-inset-top,0px) + .6rem) 1rem 0;padding:.7rem .85rem .7rem 0;border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md),0 0 0 1px #6366f114;overflow:hidden}.role-change-banner__accent{width:4px;flex-shrink:0;border-radius:2px 0 0 2px;background:linear-gradient(180deg,#6366f1,#8b5cf6)}.role-change-banner--to-coach .role-change-banner__accent{background:linear-gradient(180deg,#4f46e5,#7c3aed)}.role-change-banner--to-athlete .role-change-banner__accent{background:linear-gradient(180deg,#6366f1,#06b6d4)}.role-change-banner__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem;padding:.05rem 0}.role-change-banner__heading{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}.role-change-banner__title{font-family:var(--font);font-size:.85rem;font-weight:650;color:var(--color-text);line-height:1.25;letter-spacing:-.005em}.role-change-banner__source{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);line-height:1.25}.role-change-banner__flip{display:inline-flex;align-items:center;gap:.4rem;margin-top:.1rem}.role-change-banner__chip{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .45rem .18rem .4rem;border-radius:999px;font-family:var(--font);font-size:.7rem;font-weight:600;letter-spacing:-.005em;line-height:1;border:1px solid transparent;white-space:nowrap}.role-change-banner__chip--from{color:var(--color-text-muted);background:#94a3b81a;border-color:#94a3b833;text-decoration:line-through;text-decoration-color:#94a3b88c;text-decoration-thickness:1px}.role-change-banner__chip--to{color:#4338ca;background:#6366f11a;border-color:#6366f140;animation:role-change-banner-pop .55s cubic-bezier(.34,1.56,.64,1) .1s both}.role-change-banner--to-athlete .role-change-banner__chip--to{color:#0e7490;background:#06b6d41a;border-color:#06b6d447}@keyframes role-change-banner-pop{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}.role-change-banner__arrow{display:inline-flex;align-items:center;justify-content:center;color:#6366f1;animation:role-change-banner-arrow .6s cubic-bezier(.4,0,.2,1) .05s both}.role-change-banner--to-athlete .role-change-banner__arrow{color:#06b6d4}@keyframes role-change-banner-arrow{0%{transform:translate(-4px);opacity:0}to{transform:translate(0);opacity:1}}.role-change-banner__time{font-family:var(--font-mono);font-size:.62rem;color:var(--color-text-muted);letter-spacing:-.01em;line-height:1.2}.role-change-banner__dismiss{flex-shrink:0;align-self:flex-start;margin-top:.05rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px;transition:background .15s ease,color .15s ease;padding:0}@media(hover:hover){.role-change-banner__dismiss:hover{background:var(--color-border);color:var(--color-text-secondary)}}.role-change-banner__dismiss:active,.role-change-banner__dismiss.role-change-banner__dismiss--pressed{background:var(--color-border);color:var(--color-text-secondary);transition:none}[data-theme=dark] .role-change-banner__card{background:#1e293bf2;border-color:#334155b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #0006,0 0 0 1px #6366f11f}[data-theme=dark] .role-change-banner__chip--from{background:#94a3b81a;border-color:#94a3b82e;color:var(--color-text-muted)}[data-theme=dark] .role-change-banner__chip--to{color:#a5b4fc;background:#6366f129;border-color:#6366f159}[data-theme=dark] .role-change-banner--to-athlete .role-change-banner__chip--to{color:#67e8f9;background:#06b6d429;border-color:#06b6d459}[data-theme=dark] .role-change-banner__arrow{color:#a5b4fc}[data-theme=dark] .role-change-banner--to-athlete .role-change-banner__arrow{color:#67e8f9}@media(hover:hover){[data-theme=dark] .role-change-banner__dismiss:hover{background:#33415599;color:var(--color-text-secondary)}}@media(max-width:480px){.role-change-banner__card{max-width:none;margin:calc(env(safe-area-inset-top,0px) + .4rem) .5rem 0;border-radius:var(--radius-sm);gap:.55rem;padding:.6rem .65rem .6rem 0}.role-change-banner__title{font-size:.82rem}.role-change-banner__chip{font-size:.68rem}}.post-delete-banner{position:fixed;top:calc(env(safe-area-inset-top) + .75rem);left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:flex-start;gap:.75rem;max-width:min(560px,calc(100vw - 1.5rem));padding:.85rem 1rem;background:#f59e0b1f;border:1px solid rgba(245,158,11,.4);color:#92400e;border-radius:12px;font-size:.85rem;line-height:1.4;box-shadow:0 8px 24px #00000014;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.post-delete-banner__text{margin:0;flex:1}.post-delete-banner__dismiss{flex-shrink:0;background:transparent;border:1px solid currentColor;color:inherit;padding:.25rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600;cursor:pointer}[data-theme=dark] .post-delete-banner{background:#f59e0b2e;border-color:#f59e0b73;color:#fbbf24}.notif-optin__backdrop{position:fixed;inset:0;background:#0000006b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;z-index:300;animation:notif-optin-backdrop-in .24s cubic-bezier(.22,1,.36,1) forwards}.notif-optin__backdrop--leaving{animation:notif-optin-backdrop-out .22s ease forwards}@keyframes notif-optin-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes notif-optin-backdrop-out{to{opacity:0}}.notif-optin__sheet{width:100%;max-width:460px;background:var(--color-surface);border-radius:28px 28px 0 0;padding:.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));box-shadow:0 -8px 60px #0000002e;animation:notif-optin-sheet-in .42s cubic-bezier(.22,1,.36,1)}.notif-optin__sheet--leaving{animation:notif-optin-sheet-out .26s cubic-bezier(.4,0,1,1) forwards}@keyframes notif-optin-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes notif-optin-sheet-out{to{transform:translateY(100%)}}.notif-optin__handle{width:38px;height:5px;border-radius:999px;background:var(--color-text-muted);opacity:.32;margin:.35rem auto 1.5rem}.notif-optin__preview{display:flex;gap:.7rem;padding:.7rem .85rem .8rem;border-radius:18px;background:color-mix(in srgb,var(--color-text) 4%,transparent);border:1px solid color-mix(in srgb,var(--color-text) 7%,transparent);margin:0 .1rem 1.6rem;animation:notif-optin-preview-in .46s cubic-bezier(.22,1,.36,1) both;animation-delay:.16s}@keyframes notif-optin-preview-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notif-optin__preview-icon{flex:0 0 auto;width:38px;height:38px;border-radius:9px;background:var(--color-surface);box-shadow:0 1px 1px #0000000a,0 0 0 1px color-mix(in srgb,var(--color-text) 6%,transparent);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.notif-optin__preview-icon img{display:block;width:28px;height:28px}.notif-optin__preview-body{flex:1;min-width:0}.notif-optin__preview-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.18rem}.notif-optin__preview-app{font-family:var(--font);font-size:.78rem;font-weight:600;letter-spacing:.005em;text-transform:lowercase;color:var(--color-text)}.notif-optin__preview-time{font-size:.7rem;color:var(--color-text-muted)}.notif-optin__preview-title{font-family:var(--font);font-size:.86rem;font-weight:600;line-height:1.32;color:var(--color-text);margin:0 0 .12rem}.notif-optin__preview-sub{font-size:.78rem;line-height:1.35;color:var(--color-text-secondary);margin:0}.notif-optin__title{font-family:var(--font-heading);font-size:1.4rem;font-weight:600;letter-spacing:-.015em;color:var(--color-text);margin:0 0 .45rem;padding:0 .1rem}.notif-optin__copy{font-family:var(--font);font-size:.9rem;line-height:1.5;color:var(--color-text-secondary);margin:0 0 1.4rem;padding:0 .1rem}.notif-optin__actions{display:flex;flex-direction:column;gap:.35rem}.notif-optin__btn{font-family:var(--font);font-size:.95rem;font-weight:600;padding:.85rem 1rem;border-radius:12px;cursor:pointer;transition:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;letter-spacing:-.005em}.notif-optin__btn--primary{background:var(--color-primary);color:#fff;box-shadow:0 1px 2px #00000014,0 6px 20px color-mix(in srgb,var(--color-primary) 28%,transparent)}.notif-optin__btn--primary.notif-optin__btn--pressed,.notif-optin__btn--primary:active{filter:brightness(.92)}.notif-optin__btn--ghost{background:transparent;color:var(--color-text-secondary);padding:.65rem 1rem}.notif-optin__btn--ghost.notif-optin__btn--pressed,.notif-optin__btn--ghost:active{color:var(--color-text);background:color-mix(in srgb,var(--color-text) 6%,transparent)}.notif-optin__btn:disabled{opacity:.55;pointer-events:none}@media(hover:hover){.notif-optin__btn--primary:hover{filter:brightness(.96)}.notif-optin__btn--ghost:hover{color:var(--color-text)}}@media(prefers-reduced-motion:reduce){.notif-optin__backdrop,.notif-optin__backdrop--leaving,.notif-optin__sheet,.notif-optin__sheet--leaving,.notif-optin__preview{animation:none}}[data-theme=dark] .notif-optin__preview{background:color-mix(in srgb,var(--color-text) 7%,transparent);border-color:color-mix(in srgb,var(--color-text) 12%,transparent)}[data-theme=dark] .notif-optin__preview-icon{background:color-mix(in srgb,var(--color-text) 8%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-text) 14%,transparent)}.search-button{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.search-button:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}.search-button:hover .search-button__icon{transform:scale(1.08)}}.search-button:active,.search-button.search-button--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.search-button:active .search-button__icon,.search-button.search-button--pressed .search-button__icon{transform:scale(.94)}.search-button__icon{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.dock{display:none;position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom,12px));z-index:90;grid-template-columns:repeat(4,1fr);background:#ffffffd1;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(226,232,240,.7);border-radius:26px;padding:7px;box-shadow:0 1px #ffffffb3 inset,0 18px 40px -8px #0f172a38,0 8px 16px -4px #0f172a1a}body.is-page-loading .app-content,body.is-switching-tab .app-content,body.is-page-loading #header-toolbar-slot,body.is-page-loading #header-signin-slot,body.is-page-loading #footer-slot,body.is-switching-tab #header-toolbar-slot,body.is-switching-tab #header-signin-slot,body.is-switching-tab #footer-slot{opacity:0;pointer-events:none}@media(max-width:768px){.dock{display:grid}.dock.dock--with-feed{grid-template-columns:repeat(5,1fr);padding:6px}[data-native=true] .dock{bottom:max(8px,calc(env(safe-area-inset-bottom,12px) - 18px))}body.has-dock .app{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}[data-theme=dark] .dock{background:#111b2fc7;border-color:#33415599;box-shadow:0 1px #ffffff0a inset,0 18px 40px -8px #0009,0 8px 16px -4px #0006}.dock__tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 4px 8px;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;border-radius:20px;font-family:var(--font);transition:color .22s ease}.dock__tab:active,.dock__tab.dock__tab--pressed{transform:scale(.96);color:var(--color-text);transition:none}.dock__tab-icon{width:22px;height:22px;display:grid;place-items:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.dock__tab-icon svg{width:22px;height:22px}.dock__fill{opacity:0;transition:opacity .2s ease}.dock__tab-label{font-size:.61rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-mono)}.dock--with-feed .dock__tab{padding:9px 2px 7px}.dock--with-feed .dock__tab-label{letter-spacing:.06em}.dock__tab--active{color:var(--color-text)}.dock__tab--active .dock__tab-icon{transform:translateY(-1px)}.dock__tab--active:before{content:"";position:absolute;top:4px;left:50%;transform:translate(-50%);width:22px;height:2.5px;background:var(--color-primary);border-radius:2px;box-shadow:0 0 8px #2563eb80;animation:dock-lane .5s cubic-bezier(.34,1.56,.64,1)}@keyframes dock-lane{0%{width:0;opacity:0}to{width:22px;opacity:1}}.dock__tab--active:after{content:"";position:absolute;inset:3px;border-radius:16px;background:linear-gradient(180deg,rgba(37,99,235,.06),transparent 70%);pointer-events:none}@media(prefers-reduced-motion:reduce){.dock__tab,.dock__tab-icon,.dock__fill{transition:none}.dock__tab--active:before{animation:none}}body.has-dock .cal-controls__btn[data-tooltip="Plans list"],body.has-dock .cal-controls__btn[data-tooltip="Plans list"]+.cal-controls__divider,body.has-dock .cal-controls__btn[data-tooltip="Today's workout"],body.has-dock .cal-controls__btn[data-tooltip=Progress],body.has-dock .cal-controls__divider--nav:has(+.cal-controls__btn[data-tooltip=Progress]){display:none}body.has-dock .plan-chip--switcher,body.has-dock .today-view__btn--calendar{display:none}body.has-dock .today-view__actions:has(>.today-view__btn--calendar:only-child){display:none}.topnav{display:none}.topnav--coach{display:flex;align-items:center;justify-content:center;gap:.25rem}@media(min-width:769px){.topnav{display:flex;align-items:center;justify-content:center;gap:.25rem}}@media(max-width:768px){.topnav--coach{gap:0}.topnav--coach .topnav__tab-label{display:none}.topnav--coach .topnav__tab{padding:.4rem .45rem}}.topnav__tab{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:0;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;transition:color .18s ease,padding .35s cubic-bezier(.4,0,.2,1),font-size .35s cubic-bezier(.4,0,.2,1)}.topnav__tab-icon,.topnav__tab-icon svg{transition:width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1)}.topnav__tab-icon{display:grid;place-items:center;width:18px;height:18px;color:currentColor}.topnav__tab-icon svg{width:18px;height:18px}.topnav__tab:after{content:"";position:absolute;left:50%;bottom:-2px;width:60%;height:2.5px;background:var(--color-primary);border-radius:2px;transform:translate(-50%) scaleX(0);transform-origin:center;transition:transform .22s cubic-bezier(.4,0,.2,1),opacity .18s ease;opacity:0;pointer-events:none}@media(hover:hover){.topnav__tab:hover{color:var(--color-text)}.topnav__tab:hover:after{transform:translate(-50%) scaleX(1);opacity:.55}}.topnav__tab--active{color:var(--color-text)}.topnav__tab--active:after{width:100%;transform:translate(-50%) scaleX(1);opacity:1;box-shadow:0 0 8px #3b82f673}.topnav__tab:active,.topnav__tab.topnav__tab--pressed{color:var(--color-text);transition:none}.topnav--coach .topnav__tab:after{background:var(--color-purple)}.topnav--coach .topnav__tab--active:after{box-shadow:0 0 8px #8b5cf673}.app-header--compact .topnav__tab{padding:.4rem .55rem;font-size:.6875rem}.app-header--compact .topnav__tab-icon,.app-header--compact .topnav__tab-icon svg{width:16px;height:16px}@media(prefers-reduced-motion:reduce){.topnav__tab,.topnav__tab:after{transition:none}}.coach-notice{position:relative;min-height:calc(100dvh - var(--header-height, 120px) - 7rem);margin:-.5rem -1rem 0;padding:.75rem 1rem 1rem;display:flex;align-items:center;justify-content:center}.coach-notice__card{position:relative;z-index:1;width:100%;max-width:420px;margin:0 auto;padding:28px 24px 22px;border-radius:24px;background:linear-gradient(180deg,#fffffff5,#ffffffe0);border:1px solid rgba(226,232,240,.8);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);box-shadow:0 1px #fffc inset,0 28px 60px -18px #0f172a38,0 10px 22px -8px #0f172a24;text-align:center;animation:coach-notice-float .7s cubic-bezier(.22,1,.36,1) both}.coach-notice__card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(59,130,246,.45),rgba(139,92,246,.2) 50%,transparent 75%);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none;opacity:.9}@keyframes coach-notice-float{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.coach-notice__icon{width:46px;height:46px;margin:0 auto 14px;border-radius:14px;display:grid;place-items:center;color:var(--color-primary);background:var(--color-primary-light)}.coach-notice__icon svg{width:22px;height:22px}.coach-notice__eyebrow{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);padding:4px 10px;border-radius:999px;background:var(--color-primary-light);margin-bottom:12px}.coach-notice__title{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--color-text);margin:0 0 10px;background:linear-gradient(180deg,var(--color-text),var(--color-text-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.coach-notice__desc{font-size:.92rem;line-height:1.5;color:var(--color-text-secondary);max-width:36ch;margin:0 auto 20px}.coach-notice__actions{display:flex;flex-direction:column;gap:10px}.coach-notice__btn{position:relative;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border:0;border-radius:14px;font-family:var(--font);font-size:.95rem;font-weight:600;letter-spacing:-.005em;cursor:pointer;overflow:hidden;transition:transform .18s ease,box-shadow .22s ease}.coach-notice__btn--primary{background:linear-gradient(180deg,#0f172a,#1e293b);color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 14px 30px -10px #0f172a80}.coach-notice__btn--ghost{background:#f8fafcd9;color:var(--color-text);box-shadow:0 0 0 1px #e2e8f0e6}.coach-notice__btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.14) 45%,transparent 60%);transform:translate(-120%);transition:transform .8s cubic-bezier(.22,1,.36,1)}@media(hover:hover){.coach-notice__btn:hover{transform:translateY(-1px)}.coach-notice__btn--primary:hover{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 20px 36px -12px #0f172a8c}.coach-notice__btn--ghost:hover{background:#f1f5f9f2}.coach-notice__btn:hover:before{transform:translate(120%)}}.coach-notice__btn:active,.coach-notice__btn.coach-notice__btn--pressed{transform:translateY(-1px);transition:none}.coach-notice__btn--primary:active,.coach-notice__btn--primary.coach-notice__btn--pressed{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 20px 36px -12px #0f172a8c}.coach-notice__btn--ghost:active,.coach-notice__btn--ghost.coach-notice__btn--pressed{background:#f1f5f9f2}.coach-notice__btn:active:before,.coach-notice__btn.coach-notice__btn--pressed:before{transform:translate(120%)}@media(min-width:720px){.coach-notice{min-height:calc(100dvh - var(--header-height, 120px) - 4rem)}.coach-notice__card{padding:36px 32px 28px}.coach-notice__title{font-size:1.85rem}.coach-notice__desc{font-size:1rem}}[data-theme=dark] .coach-notice__card{background:linear-gradient(180deg,#1e293be0,#0f172ad1);border-color:#334155b3;box-shadow:0 1px #ffffff0a inset,0 28px 60px -18px #000000b3,0 10px 22px -8px #00000080}[data-theme=dark] .coach-notice__card:before{background:linear-gradient(140deg,rgba(96,165,250,.5),rgba(139,92,246,.25) 50%,transparent 75%)}[data-theme=dark] .coach-notice__btn--primary{background:linear-gradient(180deg,#1e293b,#0f172a);box-shadow:0 1px #ffffff0f inset,0 0 0 1px #60a5fa40,0 16px 32px -10px #0009}[data-theme=dark] .coach-notice__btn--ghost{background:#1e293ba6;color:var(--color-text);box-shadow:0 0 0 1px #334155b3}[data-theme=dark] .coach-notice__btn--ghost:active,[data-theme=dark] .coach-notice__btn--ghost.coach-notice__btn--pressed{background:#334155bf}@media(prefers-reduced-motion:reduce){.coach-notice__card,.coach-notice__btn:before{animation:none!important;transition:none!important}}.role-selector{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;background:#f8fafc99;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);animation:role-backdrop-in .4s ease both}@keyframes role-backdrop-in{0%{opacity:0}to{opacity:1}}.role-selector__card{width:100%;max-width:440px;padding:28px 24px 24px;border-radius:24px;background:linear-gradient(180deg,#fffffff5,#ffffffe0);border:1px solid rgba(226,232,240,.8);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);box-shadow:0 1px #fffc inset,0 28px 60px -18px #0f172a38,0 10px 22px -8px #0f172a24;text-align:center;animation:role-card-float .6s cubic-bezier(.22,1,.36,1) both;animation-delay:.1s}.role-selector__card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(59,130,246,.45),rgba(139,92,246,.2) 50%,transparent 75%);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none;opacity:.9}@keyframes role-card-float{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.role-selector__eyebrow{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);padding:4px 10px;border-radius:999px;background:var(--color-primary-light);margin-bottom:14px}.role-selector__title{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;letter-spacing:-.035em;line-height:1.15;color:var(--color-text);margin-bottom:6px;background:linear-gradient(180deg,var(--color-text),var(--color-text-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.role-selector__desc{font-size:.88rem;color:var(--color-text-muted);margin-bottom:22px}.role-selector__options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-selector__option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 14px 18px;border:1.5px solid var(--color-border);border-radius:16px;background:#f8fafc99;cursor:pointer;transition:all .2s ease;font-family:var(--font)}@media(hover:hover){.role-selector__option:hover{border-color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-2px);box-shadow:0 8px 24px -8px #3b82f640}}.role-selector__option:active{transform:scale(.97);transition:none}.role-selector__option:disabled{opacity:.6;pointer-events:none}.role-selector__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center}.role-selector__icon svg{width:26px;height:26px}.role-selector__icon--athlete{background:#22c55e1f;color:#16a34a}.role-selector__icon--coach{background:#8b5cf61f;color:#7c3aed}.role-selector__label{font-size:1rem;font-weight:650;color:var(--color-text);letter-spacing:-.01em}.role-selector__sublabel{font-size:.78rem;line-height:1.35;color:var(--color-text-muted);max-width:16ch}[data-theme=dark] .role-selector{background:#0f172a99}[data-theme=dark] .role-selector__card{background:linear-gradient(180deg,#1e293be0,#0f172ad1);border-color:#334155b3;box-shadow:0 1px #ffffff0a inset,0 28px 60px -18px #000000b3,0 10px 22px -8px #00000080}[data-theme=dark] .role-selector__card:before{background:linear-gradient(140deg,rgba(96,165,250,.5),rgba(139,92,246,.25) 50%,transparent 75%)}[data-theme=dark] .role-selector__option{border-color:#33415599;background:#0f172a80}@media(hover:hover){[data-theme=dark] .role-selector__option:hover{border-color:var(--color-primary);background:#3b82f61a}}@media(prefers-reduced-motion:reduce){.role-selector,.role-selector__card{animation:none!important}}@media(max-width:380px){.role-selector__options{grid-template-columns:1fr}}.limen-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;animation:limen-mark-breathe 2.2s ease-in-out infinite}.limen-mark--xs{width:16px;height:16px}.limen-mark--sm{width:28px;height:28px}.limen-mark--md{width:56px;height:56px}.limen-mark--lg{width:88px;height:88px}.limen-mark--xl{width:128px;height:128px}.limen-mark__svg{display:block;width:100%;height:100%;transform-origin:50% 50%;animation:limen-mark-spin 2.2s cubic-bezier(.78,.02,.22,.98) infinite}.limen-mark__dotcap{position:absolute;top:50%;left:50%;width:17.2%;aspect-ratio:1 / 1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#bfe4ff,#60a5fa 55%,#1d4ed8);transform:translate(-50%,-50%);animation:limen-mark-dot 2.2s ease-in-out infinite;pointer-events:none}.limen-mark--xs .limen-mark__dotcap,.limen-mark--sm .limen-mark__dotcap{display:none}.limen-mark__halo{position:absolute;inset:-22%;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(59,130,246,.36) 0%,rgba(59,130,246,.14) 42%,transparent 72%);filter:blur(2px);animation:limen-mark-halo 2.2s ease-in-out infinite;z-index:-1}@keyframes limen-mark-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes limen-mark-breathe{0%,to{transform:scale(1)}50%{transform:scale(.965)}}@keyframes limen-mark-dot{0%,to{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 3px #60a5fa66}50%{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 10px #60a5faf2}}@keyframes limen-mark-halo{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.page-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;background:radial-gradient(circle,var(--color-dot-grid) 1px,transparent 1px) 0 0 / 24px 24px,var(--color-bg)}.dropdown{position:relative;width:100%}.dropdown__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;font-family:var(--font);font-size:1rem;font-weight:400;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.625rem .75rem;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition);text-align:left;gap:.5rem;line-height:1.5}@media(hover:hover){.dropdown__trigger:hover{border-color:var(--color-text-muted)}}.dropdown__trigger:active:not(.dropdown--open),.dropdown__trigger.dropdown__trigger--pressed{border-color:var(--color-text-muted);transition:none}.dropdown--open .dropdown__trigger,.dropdown__trigger:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}[data-theme=dark] .dropdown--open .dropdown__trigger,[data-theme=dark] .dropdown__trigger:focus-visible{box-shadow:0 0 0 3px #60a5fa33}.dropdown__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown__value--placeholder{color:var(--color-text-muted)}.dropdown__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.dropdown--open .dropdown__chevron{transform:rotate(180deg)}.dropdown__menu{position:fixed;top:0;left:0;right:0;z-index:10000;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;animation:dropdown-enter .15s cubic-bezier(.22,1,.36,1)}.dropdown__menu-scroll{list-style:none;margin:0;padding:4px;max-height:240px;overflow-y:auto;overscroll-behavior:contain}.dropdown__menu--above{animation:dropdown-enter-above .15s cubic-bezier(.22,1,.36,1);transform-origin:bottom center}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dropdown-enter-above{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown__menu-scroll::-webkit-scrollbar{width:6px}.dropdown__menu-scroll::-webkit-scrollbar-track{background:transparent}.dropdown__menu-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.dropdown__menu-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.dropdown__option{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;border-radius:6px;font-family:var(--font);font-size:.9375rem;color:var(--color-text);cursor:pointer;transition:background 80ms ease;-webkit-user-select:none;user-select:none;gap:.5rem}@media(hover:hover){.dropdown__option:hover{background:var(--color-primary-light)}}.dropdown__option:active,.dropdown__option.dropdown__option--pressed{background:var(--color-primary-light);transition:none}.dropdown__option--focused{background:var(--color-primary-light)}.dropdown__option--selected{font-weight:600;color:var(--color-primary)}.dropdown__option--disabled{color:var(--color-text-muted);cursor:default;pointer-events:none}.dropdown__check{flex-shrink:0;color:var(--color-primary)}.dropdown--small .dropdown__trigger{font-size:.8rem;font-weight:600;padding:.4rem .6rem;color:var(--color-text-secondary)}.dropdown__menu--small .dropdown__option{font-size:.8125rem;padding:.4375rem .5rem}@media(pointer:coarse){.dropdown__option{min-height:44px;padding:.625rem .75rem}.dropdown--small .dropdown__option{min-height:40px}}[data-theme=dark] .dropdown__menu{border-color:var(--color-border);box-shadow:0 8px 24px #00000080,0 0 0 1px #ffffff0a}[data-theme=dark] .dropdown__option--focused{background:#60a5fa1a}@media(hover:hover){[data-theme=dark] .dropdown__option:hover{background:#60a5fa1a}}@media(prefers-reduced-motion:reduce){.dropdown__menu{animation:none}.dropdown__chevron{transition:none}}.weather-prompt{margin:.5rem 0 .75rem;padding:.75rem 1rem;border:1px dashed var(--color-border);border-radius:var(--radius);animation:today-enter .4s cubic-bezier(.22,1,.36,1) both;animation-delay:.1s}.weather-prompt__text{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.625rem}.weather-prompt__icon{flex-shrink:0;opacity:.6}.weather-prompt__actions{display:flex;gap:.5rem}.weather-prompt__btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;border:none}.weather-prompt__btn--locate{background:var(--color-primary);color:#fff}@media(hover:hover){.weather-prompt__btn--locate:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}}.weather-prompt__btn--locate:active,.weather-prompt__btn--locate.weather-prompt__btn--pressed{background:var(--color-primary-hover);box-shadow:var(--shadow-sm);transition:none}.weather-prompt__btn--search{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}@media(hover:hover){.weather-prompt__btn--search:hover{border-color:var(--color-text-muted);background:var(--color-bg)}}.weather-prompt__btn--search:active,.weather-prompt__btn--search.weather-prompt__btn--pressed{border-color:var(--color-text-muted);background:var(--color-bg);transition:none}.weather-prompt__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:today-spin .6s linear infinite}.weather-prompt__denied{margin-top:.5rem;font-size:.7rem;color:var(--color-red);opacity:.8}.weather-location-search{margin:.5rem 0 .75rem;animation:today-enter .3s cubic-bezier(.22,1,.36,1) both}.weather-location-search__input-wrap{display:flex;gap:.375rem}.weather-location-search__input{flex:1;padding:.5rem .75rem;font-size:.8125rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:var(--font);transition:border-color .15s ease}.weather-location-search__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.weather-location-search__close{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex-shrink:0}@media(hover:hover){.weather-location-search__close:hover{color:var(--color-text);border-color:var(--color-text-muted)}}.weather-location-search__close:active,.weather-location-search__close.weather-location-search__close--pressed{color:var(--color-text);border-color:var(--color-text-muted);transition:none}.weather-location-search__results{margin-top:.375rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow)}.weather-location-search__result{display:flex;align-items:baseline;gap:.5rem;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);font-family:var(--font);cursor:pointer;transition:background .1s ease}.weather-location-search__result:last-child{border-bottom:none}@media(hover:hover){.weather-location-search__result:hover{background:var(--color-primary-light)}}.weather-location-search__result:active,.weather-location-search__result.weather-location-search__result--pressed{background:var(--color-primary-light);transition:none}.weather-location-search__result-name{font-size:.8125rem;font-weight:600}.weather-location-search__result-region{font-size:.7rem;color:var(--color-text-muted)}.weather-location-search__loading{padding:.5rem;font-size:.7rem;color:var(--color-text-muted);text-align:center}.weather-strip{margin:.375rem 0 .5rem;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);overflow:visible;animation:today-enter .4s cubic-bezier(.22,1,.36,1) both;animation-delay:90ms;transition:box-shadow .2s ease,border-color .2s ease}@media(hover:hover){.weather-strip:hover{border-color:var(--color-text-muted);box-shadow:var(--shadow-sm)}}.weather-strip--loading{padding:.625rem .875rem}.weather-strip__skeleton{height:22px;border-radius:4px;background:linear-gradient(90deg,var(--color-border) 25%,transparent 50%,var(--color-border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.weather-strip__unavailable{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.75rem;color:var(--color-text-muted);opacity:.7}.weather-strip__unavailable svg{flex-shrink:0;opacity:.5}.weather-strip__main{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .875rem;background:none;border:none;font-family:var(--font);color:var(--color-text);transition:background .1s ease}.weather-strip__main--clickable{cursor:pointer}@media(hover:hover){.weather-strip__main--clickable:hover{background:#00000005}[data-theme=dark] .weather-strip__main--clickable:hover{background:#ffffff08}}.weather-strip__main--clickable:active{background:#00000005;transition:none}[data-theme=dark] .weather-strip__main--clickable:active{background:#ffffff08;transition:none}.weather-strip__left{display:flex;align-items:center;gap:.5rem}.weather-strip__condition{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.weather-strip__right{display:flex;align-items:center;gap:.25rem}.weather-strip__high{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-text);letter-spacing:-.02em}.weather-strip__sep{font-size:.75rem;color:var(--color-text-muted);margin:0 .125rem}.weather-strip__low{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--color-text-muted);letter-spacing:-.02em}.weather-strip__chevron{margin-left:.375rem;color:var(--color-text-muted);transition:transform .2s cubic-bezier(.22,1,.36,1);flex-shrink:0}.weather-strip__chevron--open{transform:rotate(180deg)}.weather-icon--clear{color:#f59e0b}.weather-icon--partly-cloudy{color:#fbbf24}.weather-icon--cloudy,.weather-icon--fog{color:var(--color-text-muted)}.weather-icon--rain{color:#60a5fa}.weather-icon--freezing{color:#93c5fd}.weather-icon--snow{color:#94a3b8}.weather-icon--storm{color:#a78bfa}[data-theme=dark] .weather-icon--clear{color:#fbbf24}[data-theme=dark] .weather-icon--partly-cloudy{color:#fcd34d}[data-theme=dark] .weather-icon--rain{color:#93c5fd}[data-theme=dark] .weather-icon--freezing{color:#bfdbfe}[data-theme=dark] .weather-icon--snow{color:#cbd5e1}[data-theme=dark] .weather-icon--storm{color:#c4b5fd}.weather-strip__hourly-panel{border-top:1px solid var(--color-border);padding:.625rem .5rem .375rem;animation:weather-expand .25s cubic-bezier(.22,1,.36,1) both}@keyframes weather-expand{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:200px;padding-top:.625rem;padding-bottom:.375rem}}.weather-hourly{display:flex;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:.25rem}.weather-hourly::-webkit-scrollbar{display:none}.weather-hourly__item{display:flex;flex-direction:column;align-items:center;gap:.125rem;min-width:36px;padding:0 .125rem;flex-shrink:0;transition:opacity .15s ease}.weather-hourly__item--past{opacity:.35}.weather-hourly__item--now{position:relative}.weather-hourly__temp{font-family:var(--font-mono);font-size:.625rem;font-weight:600;color:var(--color-text);letter-spacing:-.02em}.weather-hourly__bar-wrap{width:8px;display:flex;align-items:flex-end;justify-content:center;height:32px}.weather-hourly__bar{width:4px;border-radius:2px;background:var(--color-primary);opacity:.3;transition:height .2s ease}.weather-hourly__item--now .weather-hourly__bar{opacity:.7;width:5px}.weather-hourly__time{font-size:.5625rem;color:var(--color-text-muted);font-weight:500;letter-spacing:.01em}.weather-hourly__item--now .weather-hourly__time{color:var(--color-primary);font-weight:700}.weather-hourly__wind{display:flex;flex-direction:column;align-items:center;gap:0;margin-top:.125rem}.weather-hourly__wind-arrow{color:var(--color-text-muted);opacity:.7;flex-shrink:0}.weather-hourly__item--now .weather-hourly__wind-arrow{color:var(--color-primary);opacity:.9}.weather-hourly__wind-speed{font-family:var(--font-mono);font-size:.5rem;color:var(--color-text-muted);letter-spacing:-.02em;line-height:1}.weather-hourly__item--now .weather-hourly__wind-speed{color:var(--color-primary)}.weather-strip__footer{padding:0 .875rem .375rem}.weather-strip__location-row{display:flex;align-items:center;gap:.25rem}.weather-strip__locate-icon{color:var(--color-primary);opacity:.6;flex-shrink:0}.weather-strip__location-link{display:inline;background:none;border:none;font-family:var(--font);font-size:.625rem;color:var(--color-text-muted);cursor:pointer;padding:0;opacity:.7;transition:opacity .15s ease,color .15s ease;text-decoration:none}@media(hover:hover){.weather-strip__location-link:hover{opacity:1;color:var(--color-text-secondary);text-decoration:underline}}.weather-strip__location-link:active{opacity:1;color:var(--color-text-secondary);text-decoration:underline;transition:none}.weather-strip__refresh-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;margin-left:.125rem;cursor:pointer;color:var(--color-text-muted);opacity:.5;transition:opacity .15s ease,color .15s ease;border-radius:3px}@media(hover:hover){.weather-strip__refresh-btn:hover{opacity:1;color:var(--color-text-secondary)}}.weather-strip__refresh-btn:active{opacity:1;color:var(--color-text-secondary);transition:none}.weather-strip__refresh-icon{display:block}.weather-strip__refresh-icon--spinning{animation:refresh-spin .8s linear infinite}@keyframes refresh-spin{to{transform:rotate(360deg)}}.weather-strip__settings{margin-top:.25rem;animation:today-enter .2s ease both}.weather-strip__settings-btn{font-size:.625rem;font-weight:600;color:var(--color-primary);background:none;border:none;padding:0;cursor:pointer;font-family:var(--font)}@media(hover:hover){.weather-strip__settings-btn:hover{text-decoration:underline}}.weather-strip__settings-btn:active{text-decoration:underline}.weather-strip__adjustments{display:flex;flex-direction:column}.weather-strip__adjust-label,.weather-strip__toggle-text-short{display:none}@media(min-width:600px){.weather-strip__adjustments{flex-direction:row;align-items:center;gap:.75rem}.weather-strip__adjustments>.weather-strip__heat-toggle,.weather-strip__adjustments>.weather-strip__heat-time{margin-top:.25rem}}@media(max-width:599px){.weather-strip__adjustments{flex-direction:row;align-items:center;flex-wrap:wrap;gap:.4rem .6rem;margin-top:.25rem}.weather-strip__adjust-label{display:inline-flex;font-family:var(--font);font-size:.625rem;font-weight:600;color:var(--color-text-muted);opacity:.7}.weather-strip__adjustments>.weather-strip__heat-toggle,.weather-strip__adjustments>.weather-strip__heat-time{margin-top:0}.weather-strip__adjustments .weather-strip__heat-toggle{gap:.2rem;padding:0}.weather-strip__adjustments .wind-config-trigger{padding:0 0 0 .3rem}.weather-strip__toggle-text-full{display:none}.weather-strip__toggle-text-short{display:inline}}.weather-strip__heat-toggle{display:inline-flex;align-items:center;gap:.3rem;margin-top:.25rem;padding:.2rem 0;font-family:var(--font);font-size:.625rem;font-weight:600;color:var(--color-text-muted);background:none;border:none;cursor:pointer;opacity:.6}@media(hover:hover){.weather-strip__heat-toggle{transition:opacity .15s ease,color .15s ease}.weather-strip__heat-toggle:hover{opacity:1;color:var(--color-text-secondary)}}.weather-strip__heat-toggle:active:not(.weather-strip__heat-toggle--on),.weather-strip__heat-toggle.weather-strip__heat-toggle--pressed:not(.weather-strip__heat-toggle--on){opacity:1;color:var(--color-text-secondary);transition:none}.weather-strip__heat-toggle--on{opacity:1;color:var(--color-red, #ef4444)}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--altitude{color:var(--color-primary)}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--wind{color:var(--color-cyan, #06b6d4)}@media(hover:hover){.weather-strip__heat-toggle--on:hover{color:var(--color-red, #ef4444);filter:brightness(1.15)}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--altitude:hover{color:var(--color-primary-hover);filter:none}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--wind:hover{color:var(--color-cyan, #06b6d4);filter:brightness(1.15)}}.weather-strip__heat-toggle--on:active,.weather-strip__heat-toggle--on.weather-strip__heat-toggle--pressed{color:var(--color-red, #ef4444);filter:brightness(1.15);transition:none}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--altitude:active,.weather-strip__heat-toggle--on.weather-strip__heat-toggle--altitude.weather-strip__heat-toggle--pressed{color:var(--color-primary-hover);filter:none}.weather-strip__heat-toggle--on.weather-strip__heat-toggle--wind:active,.weather-strip__heat-toggle--on.weather-strip__heat-toggle--wind.weather-strip__heat-toggle--pressed{color:var(--color-cyan, #06b6d4);filter:brightness(1.15)}.weather-strip__wind-group{display:inline-flex;align-items:center;flex-shrink:0}@media(min-width:600px){.weather-strip__adjustments>.weather-strip__wind-group{margin-top:.25rem}}.weather-strip__wind-group .weather-strip__heat-toggle{margin-top:0;margin-right:0}.wind-config-trigger{appearance:none;display:inline-flex;align-items:center;justify-content:center;padding:.2rem 0 .2rem .35rem;border-radius:4px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;line-height:1;transition:color .12s,background .12s,opacity .12s;flex-shrink:0;opacity:.55}.wind-config-trigger>svg{display:block}.wind-config-trigger--open{color:var(--color-cyan, #06b6d4);opacity:1}@media(hover:hover){.wind-config-trigger:hover{color:var(--color-cyan, #06b6d4);opacity:1}}.wind-config-trigger:active:not(.wind-config-trigger--open){color:var(--color-cyan, #06b6d4);opacity:1;transition:none}.wind-config-trigger--attached{margin-left:0}.weather-strip__heat-toggle--on+.wind-config-trigger,.modal-adj-strip__pill--on+.wind-config-trigger{color:var(--color-cyan, #06b6d4);opacity:.85}.wind-config-panel{width:280px;padding:.65rem .75rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-lg);animation:wind-config-fade .12s ease-out}@keyframes wind-config-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.wind-config-panel .wind-estimate{padding:0;margin:0;background:transparent;border:none;border-radius:0}.wind-estimate{display:flex;flex-direction:column;gap:.5rem;padding:.5rem .75rem;margin-top:.4rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.wind-estimate__group{display:flex;flex-direction:column;gap:.3rem}.wind-estimate__label{font-size:.6875rem;font-weight:500;letter-spacing:.02em;color:var(--color-text-muted);text-transform:uppercase}.wind-estimate__pills{display:flex;flex-wrap:wrap;gap:.25rem}.wind-estimate__pill{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.75rem;padding:.3rem .65rem;border-radius:999px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}@media(hover:hover){.wind-estimate__pill:hover{border-color:var(--color-cyan, #06b6d4);color:var(--color-text)}}.wind-estimate__pill:active:not(.wind-estimate__pill--on),.wind-estimate__pill.wind-estimate__pill--pressed:not(.wind-estimate__pill--on){border-color:var(--color-cyan, #06b6d4);color:var(--color-text);transition:none}.wind-estimate__pill--on{background:#06b6d426;border-color:var(--color-cyan, #06b6d4);color:var(--color-cyan, #06b6d4);font-weight:600}.wind-estimate__group--compass{align-items:flex-start}.wind-estimate__compass{display:grid;grid-template-columns:repeat(8,26px);gap:.25rem}.wind-estimate__compass-btn{appearance:none;width:26px;height:26px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s,border-color .12s}@media(hover:hover){.wind-estimate__compass-btn:hover{border-color:var(--color-cyan, #06b6d4);color:var(--color-text)}}.wind-estimate__compass-btn:active:not(.wind-estimate__compass-btn--on),.wind-estimate__compass-btn.wind-estimate__compass-btn--pressed:not(.wind-estimate__compass-btn--on){border-color:var(--color-cyan, #06b6d4);color:var(--color-text);transition:none}.wind-estimate__compass-btn--on{background:#06b6d42e;border-color:var(--color-cyan, #06b6d4);color:var(--color-cyan, #06b6d4)}.wind-estimate__compass-arrow{font-family:var(--font-symbols);font-size:.95rem;line-height:1;display:inline-block;transform:translateY(-1px)}.weather-strip__heat-time{display:flex;align-items:center;gap:.15rem}.weather-strip__heat-time-icon{color:var(--color-text-muted);opacity:.5;flex-shrink:0}.weather-strip__heat-time-dropdown{width:auto}.weather-strip__heat-time-dropdown .dropdown__trigger{font-size:.5625rem;font-weight:600;padding:.1rem .25rem;color:var(--color-text-muted);background:none;border:none;gap:.15rem;box-shadow:none;line-height:1.2}@media(hover:hover){.weather-strip__heat-time-dropdown .dropdown__trigger:hover{border:none}}.weather-strip__heat-time-dropdown.dropdown--open .dropdown__trigger{border:none;box-shadow:none}.weather-strip__heat-time-dropdown .dropdown__chevron{width:8px;height:8px}.dropdown__menu.weather-strip__heat-time-dropdown{min-width:120px;width:auto;left:0;right:auto;max-height:200px;font-size:.75rem}.dropdown__menu.weather-strip__heat-time-dropdown .dropdown__option{font-size:.6875rem;padding:.3rem .5rem;min-height:0}@media(pointer:coarse){.dropdown__menu.weather-strip__heat-time-dropdown .dropdown__option{min-height:32px}}.dropdown__menu.weather-strip__heat-time-dropdown .dropdown__check{width:11px;height:11px}@media(max-width:480px){.weather-strip__main{padding:.5rem .75rem}.weather-strip__condition{font-size:.75rem}.weather-hourly__item{min-width:32px}}@media(prefers-reduced-motion:reduce){.weather-strip,.weather-prompt,.weather-location-search,.weather-strip__hourly-panel{animation:none}.weather-strip__chevron{transition:none}}.ui-stepper{display:inline-flex;align-items:center;align-self:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);overflow:hidden;width:max-content}.ui-stepper__btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text);cursor:pointer;width:30px;height:30px;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ui-stepper__btn:first-child{border-top-left-radius:calc(var(--radius-sm, 6px) - 1px);border-bottom-left-radius:calc(var(--radius-sm, 6px) - 1px)}.ui-stepper__btn:last-child{border-top-right-radius:calc(var(--radius-sm, 6px) - 1px);border-bottom-right-radius:calc(var(--radius-sm, 6px) - 1px)}.ui-stepper__btn:active:not(:disabled){background:var(--color-border);transition:none}.ui-stepper__btn:disabled{opacity:.35;cursor:not-allowed}@media(hover:hover){.ui-stepper__btn:not(:disabled):hover{background:var(--color-border)}}.ui-stepper__input{font-family:var(--font);font-size:.85rem;text-align:center;border:none;background:transparent;color:var(--color-text);caret-color:var(--color-text);padding:0 .2rem;height:30px;-moz-appearance:textfield;-webkit-tap-highlight-color:transparent}.ui-stepper__input::-webkit-outer-spin-button,.ui-stepper__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ui-stepper__input:focus,.ui-stepper__input:focus-visible,.ui-stepper__input:active{outline:none;background:transparent;background-color:transparent;box-shadow:none}.ui-stepper__input::selection{background:color-mix(in srgb,var(--color-text) 18%,transparent);color:var(--color-text)}.wb-backdrop{animation:backdrop-in .3s cubic-bezier(.22,1,.36,1) forwards}.wb-backdrop--leaving{animation:backdrop-out .25s ease forwards}.wb-modal{width:min(92vw,720px);max-height:88vh;display:flex;flex-direction:column;padding:0;font-family:var(--font);color:var(--color-text)}.wb-backdrop--leaving .wb-modal{animation:replan-confirm-exit .25s ease forwards}.wb-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.wb-modal__title{font-family:var(--font-heading, var(--font));font-size:1.05rem;font-weight:700;margin:0;letter-spacing:-.01em}.wb-modal__close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:1.4rem;line-height:1;padding:.25rem .5rem;border-radius:var(--radius-sm, 6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wb-modal__close:active{background:var(--color-border);color:var(--color-text);transition:none}@media(hover:hover){.wb-modal__close:hover{background:var(--color-border);color:var(--color-text)}}.wb-modal__body{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem}.wb-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.4rem .75rem;align-items:start}.wb-row__label{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);padding-top:.45rem}.wb-row__control{flex:1;min-width:160px}.wb-row__input{flex:1;min-width:160px;font-family:var(--font);font-size:.85rem;padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-surface);color:var(--color-text)}.wb-duration{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;flex:1;min-width:0}.wb-duration__unit{min-width:0;flex:1 1 110px}.wb-zone{min-width:0;flex:1 1 100px}.wb-pace{display:flex;align-items:center;gap:.4rem;width:100%;min-width:0;flex-wrap:wrap}.wb-pace>.dropdown,.wb-pace__mode,.wb-zone{flex:1 1 0;min-width:0}.wb-pace__manual{font-family:var(--font-mono, ui-monospace, monospace);font-size:.85rem;width:100%;padding:.4rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-surface);color:var(--color-text);text-align:center}.wb-pace__manual--error{border-color:#ef4444;color:#ef4444}.wb-pace__unit{font-size:.78rem;color:var(--color-text-secondary)}.wb-rest{display:block;width:100%;min-width:0}.wb-rest>*+*{margin-top:.35rem}.wb-rest>.dropdown,.wb-rest__kind{display:block;width:100%;min-width:0}.wb-rest__group{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}.wb-rest__unit{font-size:.78rem;color:var(--color-text-secondary)}.wb-section-list{display:flex;flex-direction:column;gap:.6rem}.wb-section-list__add{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}.wb-add-btn{font-family:var(--font);font-size:.78rem;font-weight:600;padding:.4rem .7rem;border:1px dashed var(--color-border);border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-secondary);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wb-add-btn:active{border-style:solid;border-color:var(--color-primary, #2563eb);color:var(--color-text);transition:none}@media(hover:hover){.wb-add-btn:hover{border-style:solid;border-color:var(--color-primary, #2563eb);color:var(--color-text)}}.wb-section{border:1px solid var(--color-border);border-radius:var(--radius-sm, 8px);background:var(--color-surface-alt, var(--color-surface));padding:.7rem .85rem;display:flex;flex-direction:column;gap:.55rem}.wb-section__header{display:flex;align-items:center;gap:.5rem}.wb-section__handle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--color-text-muted, var(--color-text-secondary));cursor:grab;border-radius:var(--radius-sm, 4px);-webkit-user-select:none;user-select:none}.wb-section__handle:active{cursor:grabbing}.wb-section__handle:active{background:var(--color-border);color:var(--color-text);transition:none}@media(hover:hover){.wb-section__handle:hover{background:var(--color-border);color:var(--color-text)}}.wb-section--dragging{opacity:.4}.wb-section--drop-above{box-shadow:0 -2px 0 0 var(--color-primary, #2563eb)}.wb-section--drop-below{box-shadow:0 2px 0 0 var(--color-primary, #2563eb)}.wb-section__index{font-size:.72rem;font-weight:700;color:var(--color-text-secondary);background:var(--color-border);padding:.15rem .45rem;border-radius:999px}.wb-section__kind{flex:1;min-width:140px}.wb-section__mode{min-width:150px}.wb-section__actions{display:flex;gap:.25rem}.wb-section__btn{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;padding:.25rem .5rem;border-radius:var(--radius-sm, 4px);line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wb-section__btn:active{background:var(--color-border);color:var(--color-text);transition:none}.wb-section__btn--remove:active{background:#ef44441f;color:#ef4444;border-color:#ef44444d;transition:none}@media(hover:hover){.wb-section__btn:hover{background:var(--color-border);color:var(--color-text)}.wb-section__btn--remove:hover{background:#ef44441f;color:#ef4444;border-color:#ef44444d}}.wb-section__btn--add-seg{font-family:var(--font);font-size:.75rem;padding:.35rem .6rem;border-style:dashed;align-self:flex-start}.wb-section__btn--collapse{display:inline-flex;align-items:center;justify-content:center;padding:.3rem}.wb-section__summary{font-size:.82rem;color:var(--color-text-secondary);font-style:italic;padding:.25rem .1rem .1rem;word-break:break-word}.wb-section__seg-summary{font-size:.78rem;color:var(--color-text-secondary);font-style:italic}.wb-section__btn:disabled{opacity:.4;cursor:not-allowed}.wb-section__row{display:grid;grid-template-columns:56px minmax(0,1fr);grid-auto-rows:min-content;gap:.4rem .5rem;align-items:start}.wb-section__row>*{align-self:start;min-height:0}.wb-section__label{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);padding-top:.45rem}.wb-section__x{font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.wb-section__checkbox{display:inline-flex;align-items:flex-start;gap:.4rem;font-size:.78rem;color:var(--color-text-secondary);cursor:pointer;flex:1;min-width:0}.wb-section__checkbox input[type=checkbox]{flex-shrink:0}.wb-section__composite{display:flex;flex-direction:column;gap:.4rem}.wb-section__composite-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wb-section__seg-idx{font-size:.72rem;color:var(--color-text-secondary);font-weight:600;min-width:50px}.wb-section__composite-group{display:flex;flex-direction:column;gap:.3rem;padding-bottom:.6rem}.wb-section__composite-group:not(:last-of-type){border-bottom:2px dashed var(--color-text-muted)}.wb-section__composite-header{display:flex;align-items:center;gap:.5rem}.wb-section__composite-header .wb-section__btn--collapse{margin-left:auto}.wb-section__composite-rest-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wb-section__composite-rest-row .wb-rest{flex:1 1 0;min-width:0;width:auto}.wb-section__seg-idx--rest{font-weight:500;font-style:italic;opacity:.75}.wb-modal__preview{padding:.85rem 1.25rem;background:var(--color-surface-alt, var(--color-surface));border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.25rem}.wb-modal__preview-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.wb-modal__preview-text{font-family:var(--font-mono, ui-monospace, monospace);font-size:.85rem;color:var(--color-text);word-break:break-word}.wb-modal__preview-error{color:#ef4444;font-style:italic}.wb-modal__preview-meta{font-size:.72rem;color:var(--color-text-secondary)}.wb-modal__library{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.25rem 0;flex-wrap:wrap}.wb-modal__library-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;line-height:1.2;padding:.45rem 0;border-top:1px solid transparent;border-bottom:1px solid transparent;box-sizing:border-box;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.wb-modal__library-toggle input{margin:0;cursor:pointer}.wb-modal__library-name{flex:1 1 180px;min-width:0;font-family:var(--font);font-size:.85rem;line-height:1.2;padding:.45rem .65rem;border-radius:var(--radius-sm, 8px);border:1px solid var(--color-border);box-sizing:border-box;background:var(--color-bg);color:var(--color-text)}.wb-modal__library-name:focus{outline:none;border-color:var(--color-primary, #2563eb)}.wb-modal__actions{display:flex;gap:.6rem;padding:.85rem 1.25rem}.wb-modal__btn{flex:1;font-family:var(--font);font-size:.85rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius-sm, 8px);border:none;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wb-modal__btn--cancel{background:var(--color-border);color:var(--color-text-secondary)}.wb-modal__btn--cancel:active{background:var(--color-text-muted);color:var(--color-text);transition:none}@media(hover:hover){.wb-modal__btn--cancel:hover{background:var(--color-text-muted);color:var(--color-text)}}.wb-modal__btn--save{background:var(--color-primary, #2563eb);color:#fff}.wb-modal__btn--save:active:not(:disabled){filter:brightness(1.05);transition:none}@media(hover:hover){.wb-modal__btn--save:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}}.wb-modal__btn--save:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.wb-modal{width:96vw;max-height:92vh}.wb-modal__body{padding:.9rem 1rem;gap:.95rem}.wb-modal__header,.wb-modal__preview,.wb-modal__library,.wb-modal__actions{padding-left:1rem;padding-right:1rem}.wb-section{padding:.8rem}.wb-row{grid-template-columns:80px minmax(0,1fr)}.wb-section__handle,.wb-section__btn{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center}.wb-section__btn--add-seg{width:auto;height:auto;padding:.45rem .7rem}.wb-add-btn{flex:1 1 calc(50% - .2rem);text-align:center}}.wlp-backdrop{animation:backdrop-in .25s cubic-bezier(.22,1,.36,1) forwards}.wlp-backdrop--leaving{animation:backdrop-out .2s ease forwards}.wlp-modal{width:min(92vw,520px);max-height:80vh;display:flex;flex-direction:column;padding:0;font-family:var(--font);color:var(--color-text)}.wlp-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.wlp-modal__title{font-family:var(--font-heading, var(--font));font-size:1.05rem;font-weight:700;margin:0;letter-spacing:-.01em}.wlp-modal__close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:1.4rem;line-height:1;padding:.25rem .5rem;border-radius:var(--radius-sm, 6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wlp-modal__close:active{background:var(--color-border);color:var(--color-text);transition:none}@media(hover:hover){.wlp-modal__close:hover{background:var(--color-border);color:var(--color-text)}}.wlp-modal__search{padding:.65rem 1.25rem;border-bottom:1px solid var(--color-border)}.wlp-modal__search-input{width:100%;font-family:var(--font);font-size:.85rem;padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 8px);background:var(--color-bg);color:var(--color-text);box-sizing:border-box}.wlp-modal__search-input:focus{outline:none;border-color:var(--color-primary, #2563eb)}.wlp-modal__body{flex:1;overflow-y:auto;padding:.4rem 0}.wlp-modal__empty{padding:2rem 1.25rem;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.wlp-modal__empty-hint{font-size:.78rem;color:var(--color-text-muted, var(--color-text-secondary));margin-top:.4rem}.wlp-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.wlp-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;padding:.75rem 1.25rem;transition:background .12s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.wlp-item:active:not(:disabled),.wlp-item--pressed:not(:disabled){background:var(--color-border);transition:none}@media(hover:hover){.wlp-item:hover:not(:disabled){background:var(--color-border)}}.wlp-item:disabled{opacity:.5;cursor:not-allowed}.wlp-item__name{font-size:.92rem;font-weight:600;color:var(--color-text)}.wlp-item__label{font-size:.78rem;color:var(--color-text-secondary);font-family:var(--font-mono, ui-monospace, monospace)}.wlp-item__loading{font-size:.72rem;color:var(--color-text-secondary);margin-top:.2rem}.wlp-modal__actions{display:flex;gap:.6rem;padding:.75rem 1.25rem;border-top:1px solid var(--color-border)}.wlp-modal__btn{flex:1;font-family:var(--font);font-size:.85rem;font-weight:600;padding:.55rem 1rem;border-radius:var(--radius-sm, 8px);border:none;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wlp-modal__btn--cancel{background:var(--color-border);color:var(--color-text-secondary)}.wlp-modal__btn--cancel:active{background:var(--color-text-muted);color:var(--color-text);transition:none}@media(hover:hover){.wlp-modal__btn--cancel:hover{background:var(--color-text-muted);color:var(--color-text)}}.wbp-backdrop{animation:backdrop-in .25s cubic-bezier(.22,1,.36,1) forwards}.wbp-backdrop--leaving{animation:backdrop-out .2s ease forwards}.wbp-modal{width:min(94vw,560px);max-height:85vh;display:flex;flex-direction:column;padding:0;font-family:var(--font);color:var(--color-text)}.wbp-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.wbp-modal__title{font-family:var(--font-heading, var(--font));font-size:1.05rem;font-weight:700;margin:0;letter-spacing:-.01em}.wbp-modal__close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:1.4rem;line-height:1;padding:.25rem .5rem;border-radius:var(--radius-sm, 6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wbp-modal__close:active{background:var(--color-border);color:var(--color-text);transition:none}@media(hover:hover){.wbp-modal__close:hover{background:var(--color-border);color:var(--color-text)}}.wbp-modal__category{padding:.55rem .85rem .75rem;background:var(--color-surface);position:relative;z-index:1}.wbp-category-dropdown{width:100%}.wbp-category-dropdown .dropdown__trigger{background:var(--color-bg);border-color:var(--color-border);box-shadow:inset 0 0 0 1px transparent;padding:.42rem .75rem;font-size:.92rem;line-height:1.3;transition:border-color .12s ease,box-shadow .12s ease}.wbp-category-dropdown.dropdown--open .dropdown__trigger,.wbp-category-dropdown .dropdown__trigger:focus-visible{border-color:var(--color-primary, #3b82f6);box-shadow:inset 0 0 0 1px var(--color-primary, #3b82f6)}@media(hover:hover){.wbp-category-dropdown .dropdown__trigger:hover{border-color:var(--color-text-muted, var(--color-text-secondary))}}.wbp-modal__body{flex:1;overflow-y:auto;padding:.25rem 0 .4rem}.wbp-modal__empty{padding:2rem 1.25rem;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.wbp-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.wbp-item{position:relative;display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;padding:.7rem 1.1rem .7rem .75rem;transition:background .12s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.wbp-item__accent{flex:0 0 auto;width:4px;border-radius:2px;background:var(--wbp-accent, var(--color-primary, #3b82f6));align-self:stretch}.wbp-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.wbp-item__desc{font-family:var(--font-mono, ui-monospace, monospace);font-size:.86rem;font-weight:500;color:var(--color-text);line-height:1.4;word-break:break-word}.wbp-item__meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wbp-item__sublabel{font-family:var(--font);font-size:.7rem;font-weight:600;letter-spacing:.02em;color:var(--color-text-secondary);text-transform:uppercase}.wbp-item__badges{display:inline-flex;gap:.3rem;flex-wrap:wrap}.wbp-item__badge{font-family:var(--font);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.1rem .38rem;border-radius:999px;background:var(--color-border);color:var(--color-text-secondary)}.wbp-item__check{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--color-primary, #3b82f6)}.wbp-item:active:not(:disabled),.wbp-item--pressed:not(:disabled){background:var(--color-border);transition:none}@media(hover:hover){.wbp-item:hover:not(:disabled){background:var(--color-border)}}.wbp-item--selected,.wbp-item--selected:hover{background:color-mix(in srgb,var(--wbp-accent, var(--color-primary, #3b82f6)) 12%,transparent)}.wbp-item--selected .wbp-item__label{color:var(--color-text)}.wbp-preview{border-top:1px solid var(--color-border);padding:.85rem 1.25rem .9rem;display:flex;flex-direction:column;gap:.55rem;background:color-mix(in srgb,var(--wbp-accent, var(--color-primary, #3b82f6)) 6%,var(--color-surface))}.wbp-preview__head{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.wbp-preview__label{font-family:var(--font);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.wbp-preview__head-right{display:inline-flex;align-items:center;gap:.5rem}.wbp-preview__total{font-family:var(--font-mono, ui-monospace, monospace);font-size:.88rem;font-weight:700;color:var(--color-text)}.wbp-preview__zone{font-family:var(--font);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .5rem;border-radius:999px;background:var(--wbp-accent, var(--color-primary, #3b82f6));color:#fff}.wbp-preview__breakdown{display:flex;flex-wrap:wrap;gap:.4rem;font-family:var(--font-mono, ui-monospace, monospace);font-size:.72rem;color:var(--color-text-secondary)}.wbp-preview__desc{font-family:var(--font-mono, ui-monospace, monospace);font-size:.92rem;font-weight:600;color:var(--color-text);line-height:1.4;word-break:break-word}.wbp-preview__rows{display:flex;flex-direction:column;gap:.4rem}.wbp-preview__row{display:grid;grid-template-columns:5rem auto 1fr;align-items:center;gap:.6rem}.wbp-preview__row-label{font-family:var(--font);font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.wbp-preview__row-unit{font-family:var(--font);font-size:.78rem;color:var(--color-text-secondary);justify-self:start}.wbp-preview__row-meta{font-family:var(--font);font-size:.7rem;color:var(--color-text-muted, var(--color-text-secondary));justify-self:start}.wbp-modal__actions{display:flex;gap:.6rem;padding:.75rem 1.25rem;border-top:1px solid var(--color-border)}.wbp-modal__btn{flex:1;font-family:var(--font);font-size:.88rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius-sm, 8px);border:none;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wbp-modal__btn--cancel{background:var(--color-border);color:var(--color-text-secondary)}.wbp-modal__btn--cancel:active{background:var(--color-text-muted);color:var(--color-text);transition:none}@media(hover:hover){.wbp-modal__btn--cancel:hover{background:var(--color-text-muted);color:var(--color-text)}}.wbp-modal__btn--primary{background:var(--color-primary, #3b82f6);color:#fff}.wbp-modal__btn--primary:disabled{opacity:.45;cursor:not-allowed}.wbp-modal__btn--primary:not(:disabled):active{filter:brightness(.92);transition:none}@media(hover:hover){.wbp-modal__btn--primary:not(:disabled):hover{filter:brightness(.95)}}.cm-backdrop{animation:backdrop-in .22s cubic-bezier(.22,1,.36,1) forwards}.cm-backdrop--leaving{animation:backdrop-out .18s ease forwards}.cm-modal{width:min(92vw,440px);display:flex;flex-direction:column;padding:0;font-family:var(--font);color:var(--color-text)}.cm-modal__header{display:flex;align-items:center;justify-content:space-between;padding:.95rem 1.15rem;border-bottom:1px solid var(--color-border)}.cm-modal__title{font-family:var(--font-heading, var(--font));font-size:1rem;font-weight:700;margin:0;letter-spacing:-.01em}.cm-modal__close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:1.35rem;line-height:1;padding:.2rem .45rem;border-radius:var(--radius-sm, 6px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cm-modal__close:active{background:var(--color-border);color:var(--color-text);transition:none}@media(hover:hover){.cm-modal__close:hover{background:var(--color-border);color:var(--color-text)}}.cm-modal__list{list-style:none;margin:0;padding:.4rem 0;display:flex;flex-direction:column}.cm-option{display:flex;align-items:center;gap:.85rem;width:100%;text-align:left;background:transparent;border:none;color:var(--color-text);cursor:pointer;padding:.85rem 1.15rem;transition:background .12s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.cm-option:active,.cm-option--pressed{background:var(--color-border);transition:none}.cm-option:active .cm-option__icon,.cm-option:active .cm-option__chev,.cm-option--pressed .cm-option__icon,.cm-option--pressed .cm-option__chev{color:var(--color-text)}@media(hover:hover){.cm-option:hover{background:var(--color-border)}.cm-option:hover .cm-option__icon,.cm-option:hover .cm-option__chev{color:var(--color-text)}}.cm-option__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--color-text-secondary)}.cm-option__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.cm-option__label{font-size:.92rem;font-weight:600;color:var(--color-text)}.cm-option__desc{font-size:.78rem;color:var(--color-text-secondary);line-height:1.3}.cm-option__chev{color:var(--color-text-muted, var(--color-text-secondary));flex-shrink:0}.acwr-gauge{padding:10px 12px}.acwr-gauge__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.acwr-gauge__title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.acwr-gauge__value{font-family:var(--font-mono);font-size:18px;font-weight:700}.acwr-gauge__insufficient{font-size:12px;color:var(--color-text-muted);margin-top:4px;display:block}.acwr-gauge__track{position:relative;height:8px;border-radius:4px;overflow:hidden;background:var(--color-border)}.acwr-gauge__zone{position:absolute;top:0;height:100%;opacity:.35}.acwr-gauge__needle{position:absolute;top:-3px;width:3px;height:14px;border-radius:2px;background:var(--color-text);transform:translate(-50%);transition:left .5s ease;box-shadow:0 0 4px #0000004d}.acwr-gauge__footer{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.acwr-gauge__status{font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.acwr-gauge__detail{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted)}.weekly-summary{margin-top:8px;border-top:1px solid var(--color-border)}.weekly-summary--pinned{margin-top:0;border-top:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:14px 16px 16px}.weekly-summary__header{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--color-border);margin-bottom:4px}.weekly-summary__header .weekly-summary__toggle-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);opacity:1}.weekly-summary--pinned .weekly-summary__body{padding:12px 0 0;animation:none}.weekly-summary__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 0 0;background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;-webkit-tap-highlight-color:transparent}.weekly-summary__toggle-label{opacity:.7}.weekly-summary__chevron{transition:transform .2s ease;opacity:.5}.weekly-summary__chevron--open{transform:rotate(180deg)}.weekly-summary__body{padding:10px 0 2px;animation:fade-in .2s ease both}.weekly-summary__stats{display:flex;gap:16px}.weekly-summary__stat{display:flex;flex-direction:column;align-items:center;min-width:48px}.weekly-summary__stat-value{font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--color-text);line-height:1.2}.weekly-summary__stat-value--over{color:#22c55e}.weekly-summary__stat-value--under{color:var(--color-text-muted)}.weekly-summary__stat-label{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.weekly-summary__acwr{margin-top:12px;padding-top:10px;border-top:1px dashed var(--color-border)}.weekly-summary__acwr .acwr-gauge{padding:0}.weekly-summary__highlights{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:4px}.weekly-summary__highlight{font-size:12px;color:var(--color-text-muted);padding-left:12px;position:relative}.weekly-summary__highlight:before{content:"";position:absolute;left:0;top:6px;width:4px;height:4px;border-radius:50%;background:var(--color-primary);opacity:.6}[data-theme=dark] .weekly-summary__stat-value--over{color:#4ade80}@media(max-width:480px){.weekly-summary__stats{gap:12px}.weekly-summary__stat-value{font-size:14px}}body.has-sign-gate .app-footer{display:none}body.has-sign-gate.has-dock .app{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}html.has-sign-gate,body.has-sign-gate{overflow:hidden;overscroll-behavior:none}.sign-gate{position:relative;min-height:calc(100dvh - var(--header-height, 120px) - 7rem);margin:-.5rem -1rem 0;padding:.75rem 1rem 1rem;display:flex;align-items:center;justify-content:center}.sign-gate__card{position:relative;z-index:1;width:100%;max-width:420px;margin:0 auto;padding:26px 22px 20px;border-radius:24px;background:linear-gradient(180deg,#fffffff5,#ffffffe0);border:1px solid rgba(226,232,240,.8);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);box-shadow:0 1px #fffc inset,0 28px 60px -18px #0f172a38,0 10px 22px -8px #0f172a24;text-align:center;animation:sign-gate-card-float .7s cubic-bezier(.22,1,.36,1) both}.sign-gate__card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(59,130,246,.45),rgba(139,92,246,.2) 50%,transparent 75%);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none;opacity:.9}@keyframes sign-gate-card-float{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.sign-gate__lock{position:relative;width:46px;height:46px;margin:0 auto 14px;border-radius:14px;display:grid;place-items:center;color:var(--color-primary);background:var(--color-primary-light)}.sign-gate__lock svg{width:22px;height:22px}.sign-gate__lock-pulse{position:absolute;inset:-6px;border-radius:18px;border:1.5px solid var(--color-primary);opacity:.45;animation:sign-gate-pulse 2.4s ease-in-out infinite}@keyframes sign-gate-pulse{0%,to{transform:scale(.9);opacity:0}50%{transform:scale(1.12);opacity:.55}}.sign-gate__eyebrow{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);padding:4px 10px;border-radius:999px;background:var(--color-primary-light);margin-bottom:12px}.sign-gate__title{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;letter-spacing:-.035em;line-height:1.08;color:var(--color-text);margin-bottom:8px;min-height:2.16em;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,var(--color-text),var(--color-text-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sign-gate__desc{font-size:.93rem;line-height:1.5;color:var(--color-text-secondary);max-width:32ch;margin:0 auto 18px;min-height:4.5em}.sign-gate__list{list-style:none;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(2.6em,auto);gap:8px 14px;padding:14px;margin:0 0 22px;border-radius:14px;background:#f8fafcb8;border:1px solid rgba(226,232,240,.7);text-align:left}.sign-gate__list-item{display:flex;align-items:flex-start;gap:7px;font-size:.8rem;line-height:1.35;font-weight:500;color:var(--color-text-secondary);animation:sign-gate-item-in .5s cubic-bezier(.22,1,.36,1) both}.sign-gate__list-item .sign-gate__dot{margin-top:.45em}@keyframes sign-gate-item-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.sign-gate__dot{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.sign-gate__error{padding:10px 14px;margin:0 0 12px;border-radius:12px;background:#fee2e2e6;border:1px solid rgba(220,38,38,.4);color:#7f1d1d;font-size:.82rem;line-height:1.4;text-align:left}[data-theme=dark] .sign-gate__error{background:#7f1d1d66;border-color:#f8717173;color:#fecaca}.sign-gate__link-banner{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px 36px 12px 14px;margin:0 0 14px;border-radius:12px;background:#fef3c7d9;border:1px solid rgba(217,119,6,.35);color:#78350f;font-size:.82rem;line-height:1.4;text-align:left}.sign-gate__link-banner strong{font-weight:700;color:#78350f}.sign-gate__link-banner-dismiss{position:absolute;top:6px;right:8px;width:22px;height:22px;border:0;background:transparent;font-size:18px;line-height:1;color:#78350f;cursor:pointer;border-radius:6px;opacity:.6}.sign-gate__link-banner-dismiss:hover{opacity:1;background:#0000000d}[data-theme=dark] .sign-gate__link-banner{background:#78350f59;border-color:#d9770673;color:#fde68a}[data-theme=dark] .sign-gate__link-banner strong,[data-theme=dark] .sign-gate__link-banner-dismiss{color:#fde68a}.sign-gate__providers{display:flex;flex-direction:column;gap:10px}.sign-gate__btn{position:relative;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border:0;border-radius:14px;font-family:var(--font);font-size:.95rem;font-weight:600;letter-spacing:-.005em;cursor:pointer;overflow:hidden;transition:transform .18s ease,box-shadow .22s ease}.sign-gate__btn--google{background:linear-gradient(180deg,#0f172a,#1e293b);color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 14px 30px -10px #0f172a80}.sign-gate__btn--apple{background:#000;color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 14px 30px -10px #00000080}.sign-gate__btn-apple{flex-shrink:0;margin-top:-2px}.sign-gate__btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.14) 45%,transparent 60%);transform:translate(-120%);transition:transform .8s cubic-bezier(.22,1,.36,1)}@media(hover:hover){.sign-gate__btn:hover{transform:translateY(-1px)}.sign-gate__btn--google:hover{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 20px 36px -12px #0f172a8c}.sign-gate__btn--apple:hover{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 20px 36px -12px #0009}.sign-gate__btn:hover:before{transform:translate(120%)}}.sign-gate__btn:active,.sign-gate__btn.sign-gate__btn--pressed{transform:translateY(-1px);transition:none}.sign-gate__btn--google:active,.sign-gate__btn--google.sign-gate__btn--pressed{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 20px 36px -12px #0f172a8c}.sign-gate__btn--apple:active,.sign-gate__btn--apple.sign-gate__btn--pressed{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 20px 36px -12px #0009}.sign-gate__btn:active:before,.sign-gate__btn.sign-gate__btn--pressed:before{transform:translate(120%)}.sign-gate__btn-g{flex-shrink:0;padding:3px;background:#fff;border-radius:6px}.sign-gate__btn-arrow{opacity:.6;transition:transform .2s ease,opacity .2s ease}@media(hover:hover){.sign-gate__btn:hover .sign-gate__btn-arrow{transform:translate(2px);opacity:1}}.sign-gate__fineprint{font-size:.72rem;color:var(--color-text-muted);margin-top:10px;letter-spacing:.01em}@media(min-width:720px){.sign-gate{min-height:calc(100dvh - var(--header-height, 120px) - 4rem)}.sign-gate__card{padding:32px 28px 24px}.sign-gate__title{font-size:2rem}.sign-gate__desc{font-size:1rem}}[data-theme=dark] .sign-gate__card{background:linear-gradient(180deg,#1e293be0,#0f172ad1);border-color:#334155b3;box-shadow:0 1px #ffffff0a inset,0 28px 60px -18px #000000b3,0 10px 22px -8px #00000080}[data-theme=dark] .sign-gate__card:before{background:linear-gradient(140deg,rgba(96,165,250,.5),rgba(139,92,246,.25) 50%,transparent 75%)}[data-theme=dark] .sign-gate__list{background:#0f172a8c;border-color:#3341558c}[data-theme=dark] .sign-gate__btn--google{background:linear-gradient(180deg,#1e293b,#0f172a);box-shadow:0 1px #ffffff0f inset,0 0 0 1px #60a5fa40,0 16px 32px -10px #0009}[data-theme=dark] .sign-gate__btn--apple{background:#fff;color:#000;box-shadow:0 1px #0000000d inset,0 0 0 1px #ffffffd9,0 16px 32px -10px #0009}@media(prefers-reduced-motion:reduce){.sign-gate__card,.sign-gate__list-item,.sign-gate__lock-pulse,.sign-gate__btn:before{animation:none!important}}.pace-curve{padding:12px 14px 10px}.pace-curve__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px;min-height:38px}.pace-curve__title-block{display:flex;flex-direction:column;gap:2px;min-width:0}.pace-curve__title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.pace-curve__subtitle{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;color:var(--color-text-muted);opacity:.7}.pace-curve__mode-toggle{display:inline-flex;gap:1px;background:var(--color-border);border-radius:4px;padding:1px}.pace-curve__mode-btn{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.04em;color:var(--color-text-muted);background:transparent;border:none;padding:2px 6px;border-radius:3px;cursor:pointer;transition:background .12s ease,color .12s ease;line-height:1}@media(hover:hover){.pace-curve__mode-btn:hover{color:var(--color-text)}}.pace-curve__mode-btn:active:not(.pace-curve__mode-btn--active),.pace-curve__mode-btn.pace-curve__mode-btn--pressed:not(.pace-curve__mode-btn--active){color:var(--color-text);transition:none}.pace-curve__mode-btn--active{background:var(--color-surface);color:var(--color-text);font-weight:600}.pace-curve__source-count{margin-left:4px}.pace-curve__benchmark-label{font-family:var(--font-mono);font-size:7px;font-weight:600;fill:var(--color-text-muted);letter-spacing:.06em;opacity:.8}.pace-curve__readout{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:0 8px;text-align:right;animation:fade-in .1s ease;font-family:var(--font-mono)}.pace-curve__readout-duration{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);grid-column:1 / 2}.pace-curve__readout-pace{font-size:14px;font-weight:700;color:var(--color-text);grid-column:2 / 3;letter-spacing:-.01em}.pace-curve__readout-unit{font-size:9px;font-weight:500;color:var(--color-text-muted);margin-left:1px}.pace-curve__readout-meta{grid-column:1 / 3;font-size:9px;color:var(--color-text-muted);letter-spacing:.02em}.pace-curve__svg{width:100%;height:auto;display:block;touch-action:none;animation:pace-curve-fade-in .32s ease both}@keyframes pace-curve-fade-in{0%{opacity:0}to{opacity:1}}.pace-curve__line{stroke-dasharray:2000;stroke-dashoffset:2000;animation:pace-curve-draw .9s ease-out 80ms forwards}@keyframes pace-curve-draw{to{stroke-dashoffset:0}}.pace-curve__grid{stroke:var(--color-border);stroke-width:.5;opacity:.7}.pace-curve__axis{font-family:var(--font-mono);font-size:7.5px;fill:var(--color-text-muted)}.pace-curve__axis-label{font-family:var(--font-mono);font-size:7px;font-weight:600;fill:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;opacity:.6}.pace-curve__crosshair{stroke:var(--color-text-muted);stroke-width:.5;stroke-dasharray:2 2;opacity:.45;pointer-events:none}.pace-curve__dot{fill:var(--color-surface);stroke:var(--color-primary);stroke-width:1.5;transition:r .15s ease}.pace-curve__dot--hovered{fill:var(--color-text);stroke:var(--color-primary);stroke-width:2}.pace-curve__legend{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding:0 2px}.pace-curve__legend-spectrum{display:block;height:3px;border-radius:2px;background:linear-gradient(to right,#f43f5e 0%,#f97316 22%,var(--color-primary) 48%,#14b8a6 78%,#22c55e 100%);opacity:.55}.pace-curve__legend-labels{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);opacity:.7}.pace-curve__empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 14px 18px;color:var(--color-text-muted)}.pace-curve__empty svg{color:var(--color-text-muted);opacity:.55;margin-bottom:2px}.pace-curve__empty-title{font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text)}.pace-curve__empty-sub{font-size:11px;line-height:1.45;max-width:30ch}@media(max-width:480px){.pace-curve{padding:10px 10px 8px}.pace-curve__readout-pace{font-size:13px}.pace-curve__header:has(.pace-curve__readout) .pace-curve__subtitle{display:none}}[data-theme=dark] .pace-curve__legend-spectrum{opacity:.7}[data-theme=dark] .pace-curve__dot{fill:var(--color-surface)}.insight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.875rem 1rem;margin-bottom:.625rem;box-shadow:var(--shadow-sm);position:relative}.insight-card__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.insight-card__head--readout{align-items:flex-start;min-height:38px}.insight-card__title{font-family:var(--font-mono);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.insight-card__value{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text-secondary);font-weight:600}.insight-card__value em{font-family:var(--font-heading);font-style:normal;color:var(--color-primary);font-weight:700;font-size:1rem;margin-left:.3rem;letter-spacing:-.01em}.insight-card__value sub{font-size:.66rem;color:var(--color-text-muted);margin-left:2px;vertical-align:baseline;font-weight:500}.insight-card__foot{margin-top:.75rem;font-size:.78rem;line-height:1.45;color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:.6rem}.insight-card__foot .key{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary);font-weight:600}.insight-card__foot .dot{width:7px;height:7px;border-radius:50%;background:var(--color-green);display:inline-block}.insight-card__placeholder{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);letter-spacing:.04em;padding:.4rem 0}.notes-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.875rem 1rem;margin-bottom:.625rem;box-shadow:var(--shadow-sm);position:relative}.notes-card--user{overflow:hidden;padding-left:1.1rem}.notes-card--user:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#d97706,#d9770626);opacity:.85}.notes-card__lbl{font-family:var(--font-mono);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:.5rem;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.notes-card__edit-hint{font-family:var(--font-mono);font-size:.58rem;font-weight:600;letter-spacing:.08em;color:var(--color-text-muted);opacity:.55;text-transform:uppercase}.notes-card__field{font-size:.84rem;line-height:1.55;color:var(--color-text-secondary)}.notes-card__line{margin:0 0 .4rem}.notes-card__line:last-of-type{margin-bottom:0}.notes-card__line--user{font-family:var(--font, inherit);font-size:.88rem;line-height:1.65;color:var(--color-text);white-space:pre-wrap;word-break:break-word}.notes-card--editable{cursor:text;transition:border-color .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media(hover:hover){.notes-card--editable:hover{border-color:#d9770659;box-shadow:0 0 0 1px #d977061f,var(--shadow-sm)}.notes-card--editable:hover .notes-card__edit-hint{opacity:1;color:#d97706}}.notes-card--editable:active,.notes-card--editable.notes-card--pressed{border-color:#d9770673;box-shadow:0 0 0 1px #d977062e,var(--shadow-sm);transition:none}.notes-card--editable:active .notes-card__edit-hint,.notes-card--editable.notes-card--pressed .notes-card__edit-hint{opacity:1;color:#d97706;transition:none}.notes-card--add{display:block;width:100%;text-align:left;background:var(--color-surface);border:1px dashed var(--color-border);font:inherit;color:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.notes-card--add:before{opacity:.4}@media(hover:hover){.notes-card--add:hover{border-color:#d9770673;background:#d9770608}.notes-card--add:hover:before{opacity:.85}}.notes-card--add:active,.notes-card--add.notes-card--pressed{border-color:#d9770699;background:#d9770614;transition:none}.notes-card--add:active:before,.notes-card--add.notes-card--pressed:before{opacity:.95;transition:none}.notes-card--add .notes-card__lbl{margin-bottom:0;align-items:center}.notes-card__add-icon{color:#d97706;opacity:.7;transition:opacity .15s ease,transform .15s ease;flex-shrink:0}@media(hover:hover){.notes-card--add:hover .notes-card__add-icon{opacity:1;transform:rotate(-8deg) scale(1.08)}}.notes-card--add:active .notes-card__add-icon,.notes-card--add.notes-card--pressed .notes-card__add-icon{opacity:1;transform:rotate(-8deg) scale(1.08);transition:none}.notes-card--editing{border-color:#d9770666;box-shadow:0 0 0 1px #d9770626,var(--shadow-sm)}.notes-card__textarea{display:block;width:100%;box-sizing:border-box;min-height:7rem;padding:.6rem .75rem;margin-top:.1rem;font-family:var(--font, inherit);font-size:.88rem;line-height:1.6;color:var(--color-text);background:#d9770608;border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;transition:border-color .15s ease,background-color .15s ease}.notes-card__textarea::placeholder{color:var(--color-text-muted);opacity:.7;font-style:italic}.notes-card__textarea:focus{outline:none;border-color:#d977068c;background:#d977060d}.notes-card__actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.6rem}.notes-card__btn{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.4rem .85rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.notes-card__btn--save{background:#d97706;color:#fff}@media(hover:hover){.notes-card__btn--save:hover{background:#b45309}}.notes-card__btn--save:active,.notes-card__btn--save.notes-card__btn--pressed{background:#b45309;transition:none}.notes-card__btn--cancel{background:transparent;color:var(--color-text-muted);border-color:var(--color-border)}@media(hover:hover){.notes-card__btn--cancel:hover{color:var(--color-text-secondary);border-color:var(--color-text-muted)}}.notes-card__btn--cancel:active,.notes-card__btn--cancel.notes-card__btn--pressed{color:var(--color-text-secondary);border-color:var(--color-text-muted);transition:none}.notes-card__signoff{font-family:var(--font-mono);font-size:.66rem;color:var(--color-text-muted);margin-top:.5rem;display:block;font-weight:600;letter-spacing:.04em}.cond-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.4rem}.cond-strip .cond{background:#94a3b80f;border-radius:var(--radius-sm);padding:.5rem .4rem;text-align:center}.cond__icon{display:block;margin:0 auto .25rem;color:var(--color-text-muted);opacity:.65}.cond--altitude .cond__icon{color:var(--color-orange);opacity:.85}.cond-strip .cond .num{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--color-text)}.cond-strip .cond .num sub{font-size:.6rem;color:var(--color-text-muted);margin-left:1px;vertical-align:baseline;font-weight:500}.cond-strip .cond .cap{font-family:var(--font-mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-top:.25rem;font-weight:600}.cond--dual .cond__dual-num{font-family:var(--font-mono);font-weight:700;font-size:.84rem;color:var(--color-text);display:inline-flex;align-items:baseline;justify-content:center;gap:.2rem;line-height:1}.cond--dual .cond__dual-num sub{font-size:.56rem;color:var(--color-text-muted);margin-left:1px;vertical-align:baseline;font-weight:500}.cond--dual .cond__divider{color:var(--color-text-muted);opacity:.45;font-weight:500}.cond--altitude{background:#fbbf241a;position:relative}.cond--altitude .num{color:var(--color-orange)}.cond--altitude:before{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--color-orange);box-shadow:0 0 5px #fbbf2499}.cond-hint{font-family:var(--font-mono);font-size:.7rem;line-height:1.5;color:var(--color-text-muted);letter-spacing:.02em;padding:.35rem 0}.cond-loc{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);letter-spacing:.04em;margin-bottom:.5rem}.cond__wind-dir{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);font-weight:600;letter-spacing:.06em;margin-left:.1rem}.cond--wind .cond__dual-num{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;line-height:1}.cond__wind-arrow{color:var(--color-text);opacity:.7;transform-origin:center;flex-shrink:0;margin-right:.05rem}.cond-toggles{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .6rem;margin-top:.625rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.cond-toggles__label{font-family:var(--font);font-size:.625rem;font-weight:600;color:var(--color-text-muted);opacity:.7}.cond-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem 0;background:none;border:none;font-family:var(--font);font-size:.625rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;opacity:.6}@media(hover:hover){.cond-toggle{transition:opacity .15s ease,color .15s ease}.cond-toggle:hover{opacity:1;color:var(--color-text-secondary)}}.cond-toggle:active:not(.cond-toggle--on),.cond-toggle.cond-toggle--pressed:not(.cond-toggle--on){opacity:1;color:var(--color-text-secondary);transition:none}.cond-toggle--on{opacity:1}.cond-toggle--on.cond-toggle--heat{color:var(--color-red, #ef4444)}.cond-toggle--on.cond-toggle--alt{color:var(--color-primary)}.cond-toggle--on.cond-toggle--wind{color:var(--color-cyan)}.rep-splits{display:flex;flex-direction:column;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.72rem}.rep-splits__card-head{gap:.6rem}.rep-splits__tabs{display:inline-flex;gap:1px;background:var(--color-border);border-radius:5px;padding:1px}.rep-splits__tab{font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);background:transparent;border:none;padding:3px 8px;border-radius:4px;cursor:pointer;transition:background .14s ease,color .14s ease;line-height:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(hover:hover){.rep-splits__tab:hover{color:var(--color-text)}}.rep-splits__tab:active:not(.rep-splits__tab--active),.rep-splits__tab.rep-splits__tab--pressed:not(.rep-splits__tab--active){color:var(--color-text);transition:none}.rep-splits__tab--active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000000f}.rep-target{position:relative;padding-top:.1rem;animation:rep-target-fade-in .22s ease both}@keyframes rep-target-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.rep-target__readout{display:inline-flex;align-items:baseline;gap:.4rem;margin-bottom:.25rem;min-height:1.3rem}.rep-target__readout-label{font-family:var(--font-mono);font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.rep-target__readout-value{font-family:var(--font-heading);font-style:normal;font-weight:700;font-size:1rem;letter-spacing:-.01em;color:var(--color-text);font-variant-numeric:tabular-nums}.rep-target__readout-delta{font-family:var(--font-mono);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em;margin-left:.1rem}.rep-target__readout-delta--faster{color:#16a34a}.rep-target__readout-delta--slower{color:#ea580c}.rep-target__readout-delta--on{color:var(--color-text-muted)}.rep-target__svg{display:block;width:100%;height:auto;touch-action:none}.rep-target__grid{stroke:var(--color-border);stroke-width:.5;opacity:.7}.rep-target__axis{font-family:var(--font-mono);font-size:8px;fill:var(--color-text-muted);font-variant-numeric:tabular-nums}.rep-target__target-line{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:4 3;opacity:.7}.rep-target__target-tag{font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;fill:var(--color-text-muted);opacity:.85}.rep-target__bar{stroke-width:0;animation:rep-target-bar-rise .38s cubic-bezier(.2,.7,.3,1) both;transform-origin:center;transition:fill .12s ease,opacity .12s ease}.rep-target__bar--faster{fill:url(#rt-faster)}.rep-target__bar--slower{fill:url(#rt-slower)}.rep-target__bar--on{fill:url(#rt-on)}.rep-target__svg:has(.rep-target__bar--hovered) .rep-target__bar:not(.rep-target__bar--hovered){opacity:.5}.rep-target__bar--hovered.rep-target__bar--faster{fill:#22c55e}.rep-target__bar--hovered.rep-target__bar--slower{fill:#fb923c}.rep-target__bar--hovered.rep-target__bar--on{fill:#94a3b8}@keyframes rep-target-bar-rise{0%{opacity:0}to{opacity:1}}.rep-target__dot{stroke-width:1.4;fill:var(--color-surface);transition:r .14s ease,stroke-width .14s ease}.rep-target__dot--faster{stroke:#16a34a}.rep-target__dot--slower{stroke:#ea580c}.rep-target__dot--on{stroke:var(--color-text-muted)}.rep-target__dot--hovered{stroke-width:1.8;fill:var(--color-text)}.rep-target__crosshair{stroke:var(--color-text-muted);stroke-width:.5;stroke-dasharray:2 2;opacity:.45;pointer-events:none}.rep-target__axis--hovered{fill:var(--color-text);font-weight:700}[data-theme=dark] .rep-target__dot--faster{stroke:#4ade80}[data-theme=dark] .rep-target__dot--slower{stroke:#fb923c}[data-theme=dark] .rep-target__readout-delta--faster{color:#4ade80}[data-theme=dark] .rep-target__readout-delta--slower{color:#fb923c}.rep-splits__rest-inline,.rep-splits__hr{display:none}.rep-splits__row--expandable{cursor:pointer;position:relative;transition:background-color .12s ease,transform .12s ease;border-radius:var(--radius-sm, 4px)}@media(hover:hover){.rep-splits__row--expandable:hover{background-color:#94a3b812}}.rep-splits__row--expandable:active{background-color:#94a3b824;transform:scale(.997);transition:none}.rep-splits__row--expandable.rep-splits__row--expanded{background-color:#94a3b80f}.rep-splits__row--expandable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.rep-splits__details{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;padding:.35rem 0 .45rem 4rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.66rem;border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);background:#94a3b80a}.rep-splits__details-item{display:inline-flex;align-items:baseline;gap:.35rem}.rep-splits__details-label{font-family:var(--font-sans, inherit);font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.rep-splits__details-value{color:var(--color-text);font-weight:600;display:inline-flex;align-items:baseline;gap:.35rem}.rep-splits__details-equiv-part{font-weight:600}.rep-splits__details-equiv-part--heat{color:var(--color-red, #ef4444)}.rep-splits__details-equiv-part--altitude{color:var(--color-orange)}.rep-splits__delta{font-weight:600}.rep-splits__details-ref{color:var(--color-text-muted);font-weight:400;opacity:.75}.rep-splits__delta--faster{color:var(--color-green, #16a34a)}.rep-splits__delta--slower{color:var(--color-orange, #f97316)}.rep-splits__delta--on{color:var(--color-text-muted)}.rep-splits__row{display:grid;grid-template-columns:3.6rem 2.4rem 2.5rem 1fr;gap:.4rem;padding:.22rem 0;align-items:baseline;color:var(--color-text)}.rep-splits__row--has-adj{grid-template-columns:3.6rem 2.4rem 2.5rem 4rem 1fr}.rep-splits__row--has-adj .rep-splits__pace{white-space:nowrap}.rep-splits__row+.rep-splits__row,.rep-splits__rest+.rep-splits__row,.rep-splits__row+.rep-splits__rest{border-top:1px dashed var(--color-border)}.rep-splits__row--ws{color:var(--color-text-secondary)}.rep-splits__section{margin-top:.5rem;padding-top:.4rem;border-top:1px dashed var(--color-border);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted, var(--color-text-secondary))}.rep-splits__row--stride{color:#c084fc}.rep-splits__row--stride+.rep-splits__row--stride{border-top:1px dashed var(--color-border)}.rep-splits--no-dist .rep-splits__row,.rep-splits--no-dist .rep-splits__head{grid-template-columns:3.6rem 2.5rem 1fr}.rep-splits--no-dist-has-adj .rep-splits__row,.rep-splits--no-dist-has-adj .rep-splits__head{grid-template-columns:3.6rem 2.5rem 1fr 4rem}.rep-splits--no-dist-has-hr .rep-splits__row,.rep-splits--no-dist-has-hr .rep-splits__head{grid-template-columns:3.6rem 2.5rem 1fr 3rem}.rep-splits--no-dist-has-adj.rep-splits--no-dist-has-hr .rep-splits__row,.rep-splits--no-dist-has-adj.rep-splits--no-dist-has-hr .rep-splits__head{grid-template-columns:3.6rem 2.5rem 1fr 4rem 3rem}.rep-splits--no-dist .rep-splits__hr{display:inline;text-align:right}.rep-splits--no-dist .rep-splits__head-cell--hr{display:inline}.rep-splits--no-dist .rep-splits__head-cell--equiv,.rep-splits--no-dist .rep-splits__time{text-align:left}.rep-splits--no-dist .rep-splits__adj{display:block;font-size:.72rem}.rep-splits--no-dist .rep-splits__adj-pace{font-size:.72rem}.rep-splits__label{font-family:var(--font-sans, inherit);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.rep-splits__dist{text-align:right}.rep-splits__time{text-align:right;color:var(--color-text-secondary)}.rep-splits__pace{color:var(--color-text-secondary)}.rep-splits__adj{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:.3rem;font-size:.62rem;font-weight:600;opacity:.8}.rep-splits__adj-approx{margin-right:.1rem;font-family:var(--font)}.rep-splits__adj--heat{color:var(--color-red, #ef4444)}.rep-splits__adj--altitude{color:var(--color-orange)}.rep-splits__adj--wind{color:var(--color-cyan)}.rep-splits__adj--multiple{color:#7c3aed}.rep-splits__rest{display:flex;align-items:baseline;gap:.4rem;padding:.18rem 0 .18rem 4rem;font-size:.62rem;letter-spacing:.04em;color:var(--color-primary);opacity:.85}.rep-splits__rest-label{font-family:var(--font-sans, inherit);text-transform:uppercase}.rep-splits__rest-time{font-variant-numeric:tabular-nums}.rep-splits__rest-pace{font-variant-numeric:tabular-nums;margin-left:.4rem;color:var(--color-text-secondary);opacity:.85}.rep-splits__rest--jog{color:var(--color-primary);opacity:.85}.rep-splits__rest--jog .rep-splits__rest-pace{color:var(--color-primary);opacity:.75}.rep-splits__head{display:grid;grid-template-columns:3.6rem 2.4rem 2.5rem 1fr;gap:.4rem;padding:.2rem 0 .3rem;border-bottom:1px dashed var(--color-border);margin-bottom:.15rem}.rep-splits__head.rep-splits__row--has-adj{grid-template-columns:3.6rem 2.4rem 2.5rem 4rem 1fr}.rep-splits__head-cell{font-family:var(--font-sans);font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);opacity:.7}.rep-splits__head-cell--right{text-align:right}.rep-splits__head-cell--end{justify-self:end}.rep-splits__head-cell--equiv{text-align:right}.rep-splits__head-cell--hr,.rep-splits__head-cell--rest{display:none}@media(min-width:768px){.rep-splits{max-width:36rem}.rep-splits__rest{display:none}.rep-splits__row{grid-template-columns:4.5rem 3rem 2.5rem 4rem 1fr}.rep-splits--no-dist .rep-splits__row,.rep-splits--no-dist .rep-splits__head{grid-template-columns:4.5rem 2.5rem 1fr}.rep-splits--no-dist-has-adj .rep-splits__row,.rep-splits--no-dist-has-adj .rep-splits__head{grid-template-columns:4.5rem 2.5rem 1fr 5rem}.rep-splits--no-dist-has-hr .rep-splits__row,.rep-splits--no-dist-has-hr .rep-splits__head{grid-template-columns:4.5rem 2.5rem 1fr 3.5rem}.rep-splits--no-dist-has-adj.rep-splits--no-dist-has-hr .rep-splits__row,.rep-splits--no-dist-has-adj.rep-splits--no-dist-has-hr .rep-splits__head{grid-template-columns:4.5rem 2.5rem 1fr 5rem 3.5rem}.rep-splits__row--has-adj{grid-template-columns:4.5rem 3rem 2.5rem 4rem 6.5rem 1fr}.rep-splits__row--has-hr{grid-template-columns:4.5rem 3rem 2.5rem 4rem 3.5rem 1fr}.rep-splits__row--has-adj.rep-splits__row--has-hr{grid-template-columns:4.5rem 3rem 2.5rem 4rem 6.5rem 3.5rem 1fr}.rep-splits__head{display:grid;grid-template-columns:4.5rem 3rem 2.5rem 4rem 1fr;gap:.4rem;padding:0 0 .35rem;align-items:baseline;border-bottom:1px solid var(--color-border);margin-bottom:.15rem}.rep-splits__head.rep-splits__row--has-adj{grid-template-columns:4.5rem 3rem 2.5rem 4rem 6.5rem 1fr}.rep-splits__head.rep-splits__row--has-hr{grid-template-columns:4.5rem 3rem 2.5rem 4rem 3.5rem 1fr}.rep-splits__head.rep-splits__row--has-adj.rep-splits__row--has-hr{grid-template-columns:4.5rem 3rem 2.5rem 4rem 6.5rem 3.5rem 1fr}.rep-splits__hr{display:inline;text-align:right;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.rep-splits__adj{justify-content:flex-start}.rep-splits__head-cell{font-family:var(--font-sans, inherit);font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);opacity:.7}.rep-splits__head-cell--right{text-align:right}.rep-splits__head-cell--end{justify-self:end}.rep-splits__head-cell--hr,.rep-splits__head-cell--rest{display:inline}.rep-splits__head-cell--equiv{text-align:left}.rep-splits__rest-inline{display:inline-flex;align-items:baseline;gap:.4rem;justify-self:end;font-size:.62rem;letter-spacing:.04em;color:var(--color-primary);opacity:.85}.rep-splits__rest-inline-label{font-family:var(--font-sans, inherit);text-transform:uppercase}.rep-splits__rest-inline-pace{color:var(--color-primary);opacity:.75}}.tiz-head{display:inline-flex;align-items:center;gap:.55rem;min-width:0}.tiz-mode-toggle{display:inline-flex;gap:1px;background:var(--color-border);border-radius:5px;padding:1px}.tiz-mode-btn{font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);background:transparent;border:none;padding:3px 8px;border-radius:4px;cursor:pointer;transition:background .14s ease,color .14s ease;line-height:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media(hover:hover){.tiz-mode-btn:hover{color:var(--color-text)}}.tiz-mode-btn:active:not(.tiz-mode-btn--active),.tiz-mode-btn.tiz-mode-btn--pressed:not(.tiz-mode-btn--active){color:var(--color-text);transition:none}.tiz-mode-btn--active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000000f}.zone-rows{display:flex;flex-direction:column;gap:.5rem}.zr{display:grid;grid-template-columns:96px 1fr 56px;gap:.6rem;align-items:center}.zr-label{display:flex;flex-direction:column;gap:.1rem;min-width:0}.zr-name{font-family:var(--font-heading);font-weight:700;font-size:.82rem;color:var(--color-text);letter-spacing:-.01em}.zr-pace{font-family:var(--font-mono);font-size:.6rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zr-bar{height:10px;background:#94a3b81f;border-radius:999px;overflow:hidden}.zr-bar span{display:block;height:100%;border-radius:999px;transition:width .22s ease}.zr-dur{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600;color:var(--color-text);text-align:right}.load-card .insight-card__head{align-items:flex-start;margin-bottom:.625rem}.load-card__hero{display:inline-flex;align-items:baseline;gap:.4rem;line-height:1}.load-card__hero-num{font-family:var(--font-heading);font-style:normal;font-weight:800;font-size:1.55rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.load-card__hero-tier{font-family:var(--font-mono);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;opacity:.85}.load-card__row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.35rem}.load-card__row-label{font-family:var(--font);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.load-card__row-value{font-family:var(--font-mono);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text)}.load-card__bar{display:flex;align-items:center;height:22px;gap:6px;margin-bottom:.45rem}.load-card__day{display:flex;align-items:center;flex-basis:0;height:100%;gap:1.5px}.load-card__seg{flex-basis:0;min-width:6px;height:12px;border-radius:1.5px;cursor:pointer;transition:opacity .22s ease,height .22s ease,transform .22s ease,box-shadow .22s ease;-webkit-tap-highlight-color:transparent;touch-action:none}.load-card__seg--scrubbing{opacity:1;transform:translateY(-2px)}.load-card__day .load-card__seg:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.load-card__day .load-card__seg:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.load-card__seg--past{opacity:.4}.load-card__seg--rest{background:var(--color-border)!important;opacity:.5}.load-card__seg--highlight{opacity:1;height:22px;border-radius:4px;box-shadow:0 2px 8px color-mix(in srgb,var(--seg-tone, var(--color-text)) 40%,transparent);position:relative;z-index:1}.load-card__seg--highlight:after{content:"";position:absolute;left:50%;bottom:-7px;width:5px;height:5px;background:var(--seg-tone, var(--color-text));border-radius:50%;transform:translate(-50%);opacity:.9}.load-card__caption{font-family:var(--font);font-size:.72rem;color:var(--color-text-muted);line-height:1.4;letter-spacing:.005em}.load-card__caption strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;color:var(--color-text)}.load-card__acwr{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.7rem;padding-top:.6rem;border-top:1px dashed var(--color-border)}.load-card__acwr-num{display:inline-flex;align-items:baseline;gap:.4rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.load-card__acwr-tip{position:relative;display:inline-flex;align-items:baseline;gap:.3rem;padding:2px 5px;margin:-2px -5px;border:none;border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.load-card__acwr-tip--open{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent);z-index:30}@media(hover:hover){.load-card__acwr-tip:hover{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent)}}.load-card__acwr-tip:active{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent);transition:none}.load-card__acwr-tip-label{font-family:var(--font);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.load-card__acwr-tip-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;color:var(--color-text)}.load-card__acwr-sep{color:var(--color-text-muted);opacity:.5}.load-card__tooltip{position:absolute;bottom:calc(100% + 8px);left:0;z-index:20;width:max-content;max-width:230px;padding:.55rem .7rem;background:#0f172af7;color:#f8fafcf5;border-radius:6px;font-family:var(--font);font-size:.7rem;font-weight:500;line-height:1.4;letter-spacing:.005em;text-transform:none;text-align:left;box-shadow:0 6px 18px #00000047;pointer-events:none;animation:load-card__tip-in .14s ease-out}.load-card__tooltip:after{content:"";position:absolute;top:100%;left:14px;border:5px solid transparent;border-top-color:#0f172af7}.load-card__tooltip--right{left:auto;right:0}.load-card__tooltip--right:after{left:auto;right:14px}@keyframes load-card__tip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.load-card__acwr-pill{position:relative;display:inline-flex;align-items:baseline;gap:.4rem;padding:.2rem .55rem .22rem;border-radius:999px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 8%,transparent);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .15s ease}.load-card__acwr-pill--open{background:color-mix(in srgb,currentColor 16%,transparent);z-index:30}@media(hover:hover){.load-card__acwr-pill:hover{background:color-mix(in srgb,currentColor 16%,transparent)}}.load-card__acwr-pill:active{background:color-mix(in srgb,currentColor 16%,transparent);transition:none}.load-card__acwr-pill-label{font-family:var(--font-mono);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1;opacity:.75}.load-card__acwr-ratio{font-family:var(--font-heading);font-style:normal;font-weight:800;font-size:.92rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1}.load-card__acwr-status{font-family:var(--font-mono);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1}.today-view{max-width:640px;margin:0 auto;padding:.25rem 1rem .75rem;position:relative}@media(max-width:480px){.today-view{margin-top:-1.5rem}}.app:has(>.today-view){display:flex;flex-direction:column;min-height:100vh}.today-view{flex:1}.today-view~.app-footer{margin-top:0;padding-top:.5rem;padding-bottom:.25rem}@media(max-width:600px){.app:has(>.today-view){padding-bottom:.5rem}.today-view{padding-bottom:0}.today-view~.app-footer{padding-top:.25rem}.today-view__day-nav{margin-bottom:.25rem}}.today-view--loading{display:flex;align-items:center;justify-content:center}.today-view__loader{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:today-spin .7s linear infinite}.today-view:before{content:"";position:fixed;inset:0;opacity:0;z-index:-1;pointer-events:none;transition:opacity .6s ease}.today-view--ambient-dt:before{background:linear-gradient(135deg,#3b82f6,#8b5cf6);opacity:.06}.today-view--ambient-long:before{background:linear-gradient(135deg,#22c55e,#06b6d4);opacity:.05}.today-view--ambient-long-workout:before{background:linear-gradient(135deg,#14b8a6,#3b82f6);opacity:.05}.today-view--ambient-vo2:before{background:linear-gradient(135deg,#166534,#ec4899);opacity:.05}.today-view--ambient-hill:before{background:linear-gradient(135deg,#22c55e,#eab308);opacity:.05}.today-view--ambient-speed:before{background:linear-gradient(135deg,#ef4444,#f97316,#dc2626);opacity:.05}.today-view--ambient-tuneup:before{background:linear-gradient(135deg,#8b5cf6,#ec4899);opacity:.05}.today-view--ambient-marathon:before{background:linear-gradient(135deg,#ec4899,#8b5cf6);opacity:.05}.today-view--ambient-race:before{background:linear-gradient(135deg,#f59e0b,#f97316,#eab308);opacity:.08}.today-view--ambient-easy:before{background:linear-gradient(135deg,#22c55e,#3b82f6);opacity:.03}.today-view--ambient-off:before{background:linear-gradient(135deg,#6366f1,#1e293b);opacity:.03}[data-theme=dark] .today-view--ambient-dt:before{opacity:.1}[data-theme=dark] .today-view--ambient-long:before{opacity:.08}[data-theme=dark] .today-view--ambient-long-workout:before{opacity:.08}[data-theme=dark] .today-view--ambient-vo2:before{opacity:.08}[data-theme=dark] .today-view--ambient-hill:before{opacity:.08}[data-theme=dark] .today-view--ambient-speed:before{opacity:.08}[data-theme=dark] .today-view--ambient-tuneup:before{opacity:.08}[data-theme=dark] .today-view--ambient-marathon:before{opacity:.08}[data-theme=dark] .today-view--ambient-race:before{opacity:.12}[data-theme=dark] .today-view--ambient-easy:before{opacity:.05}[data-theme=dark] .today-view--ambient-off:before{opacity:.05}@keyframes today-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes today-spin{to{transform:rotate(360deg)}}@keyframes today-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.today-view__header,.today-view__date,.today-view__type-badge,.today-view__session,.today-view__strides,.today-view__actions,.today-view__rest,.today-view__race,.today-view__empty,.today-view__day-nav{animation:today-enter .4s ease-out backwards}body.is-booting .today-view__header,body.is-booting .today-view__date,body.is-booting .today-view__type-badge,body.is-booting .today-view__session,body.is-booting .today-view__strides,body.is-booting .today-view__actions,body.is-booting .today-view__rest,body.is-booting .today-view__race,body.is-booting .today-view__empty,body.is-booting .today-view__day-nav{animation:none!important}@media(prefers-reduced-motion:reduce){.today-view__header,.today-view__date,.today-view__type-badge,.today-view__session,.today-view__strides,.today-view__actions,.today-view__rest,.today-view__race,.today-view__empty,.today-view__day-nav,.today-view__loader{animation:none!important}}.today-view__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.75rem;gap:1rem;animation-delay:0ms}.today-view__meta{display:flex;flex-direction:column;gap:.25rem}.today-view__phase{font-family:var(--font);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:.2rem .6rem;border-radius:100px;display:inline-flex;width:fit-content}.today-view__phase--base{background:#22c55e1f;color:#16a34a}.today-view__phase--build{background:#3b82f61f;color:#2563eb}.today-view__phase--peak{background:#8b5cf61f;color:#7c3aed}.today-view__phase--taper{background:#f59e0b1f;color:#d97706}.today-view__phase--race{background:#f59e0b26;color:#d97706}.today-view__phase--recovery{background:#22c55e1a;color:#16a34a}[data-theme=dark] .today-view__phase--base{background:#4ade801f;color:#4ade80}[data-theme=dark] .today-view__phase--build{background:#60a5fa1f;color:#60a5fa}[data-theme=dark] .today-view__phase--peak{background:#a78bfa1f;color:#a78bfa}[data-theme=dark] .today-view__phase--taper{background:#fbbf241f;color:#fbbf24}[data-theme=dark] .today-view__phase--race{background:#fbbf2426;color:#fbbf24}[data-theme=dark] .today-view__phase--recovery{background:#4ade801a;color:#4ade80}.today-view__week{font-family:var(--font);font-size:.8rem;color:var(--color-text-muted);font-weight:500}.today-view__countdown{text-align:right;display:flex;flex-direction:column;align-items:flex-end}.today-view__countdown-number{font-family:var(--font-mono);font-size:2.5rem;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--color-text)}.today-view__countdown-number--urgent{color:var(--color-orange);animation:today-pulse 2s ease-in-out infinite}.today-view__countdown-label{font-family:var(--font);font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500;margin-top:.15rem}.today-view__countdown--complete .today-view__countdown-label{color:#16a34a}[data-theme=dark] .today-view__countdown--complete .today-view__countdown-label{color:#4ade80}.today-view__countdown-badge{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:100px;background:#22c55e1f;color:#16a34a;margin-bottom:.1rem}[data-theme=dark] .today-view__countdown-badge{background:#4ade8024;color:#4ade80}.today-view__date{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;color:var(--color-text);margin-bottom:0;letter-spacing:-.02em;line-height:1.2;animation-delay:80ms}.today-view__date-row{margin-bottom:1rem}.today-view__weekly-progress{margin-bottom:.75rem;padding:.625rem .875rem;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border)}.today-view__weekly-progress-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.375rem}.today-view__weekly-progress-label{font-family:var(--font);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.today-view__weekly-progress-numbers{font-family:var(--font-mono);font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.today-view__weekly-progress-done{color:var(--color-primary);transition:color .3s ease}.today-view__weekly-progress-sep{color:var(--color-text-muted);margin:0 .1rem}.today-view__weekly-progress-unit{color:var(--color-text-muted);font-size:.7rem;margin-left:.15rem}.today-view__weekly-progress-bar{height:4px;border-radius:2px;background:var(--color-border);overflow:hidden}.today-view__weekly-progress-fill{height:100%;border-radius:2px;background:var(--color-primary);min-width:0}.today-view__weekly-progress-fill--animated{transition:width .5s cubic-bezier(.4,0,.2,1)}.today-view__weekly-progress-fill--complete{background:var(--color-green)}.today-view__type-badge{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;animation-delay:.16s}.today-view__type-badge-left{display:flex;align-items:center;gap:.5rem}.today-view__type-label{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text)}.today-view__type-check{font-family:var(--font-symbols);font-size:1rem;color:var(--color-text)}.today-view__type-miles{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-muted)}.today-view__type-miles-actual{font-weight:700;color:var(--color-text)}.today-view__type-miles-sep{opacity:.4;font-weight:500}.today-view__type-miles .delta-chip{margin-left:.4rem}.today-view__strava-cta{display:flex;align-items:center;gap:.5rem;width:100%;padding:.625rem .75rem;margin-bottom:1rem;border:1px dashed rgba(252,76,2,.35);border-radius:8px;background:#fc4c020f;color:#fc4c02;font-family:var(--font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}@media(hover:hover){.today-view__strava-cta:hover{background:#fc4c021f;border-color:#fc4c0280}}.today-view__strava-cta:active,.today-view__strava-cta.today-view__strava-cta--pressed{background:#fc4c021f;border-color:#fc4c0280;transition:none}.today-view__strava-cta svg{flex-shrink:0}.today-view__session{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:.625rem;box-shadow:var(--shadow-sm);position:relative}.today-view__session-prefix{font-family:var(--font-mono);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);line-height:1}.today-view__session-watch{display:inline-flex;align-items:center;justify-content:center;padding:.2rem;border:none;border-radius:5px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s ease,opacity .15s ease,background-color .15s ease;flex-shrink:0;opacity:.5;line-height:0;margin-left:0}@media(hover:hover){.today-view__session-miles:hover .today-view__session-watch{opacity:.85}.today-view__session-watch:hover{opacity:1;color:var(--color-primary, #4f46e5);background-color:#4f46e526}[data-theme=dark] .today-view__session-watch:hover{background-color:#818cf838}}.today-view__session-miles:active .today-view__session-watch{opacity:.85}.today-view__session-watch:active{color:var(--color-primary, #4f46e5);opacity:1;background-color:#4f46e540;transition:none}.today-view__session-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.today-view__session-header-left{display:flex;align-items:center;gap:.5rem;min-width:0}.today-view__session-header-right{display:flex;align-items:center;gap:.35rem}.today-view__session-miles{display:inline-flex;align-items:center;gap:.15rem;font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.today-view__session-miles-actual{font-weight:700;color:var(--color-text)}.today-view__session-miles-sep{opacity:.4}.today-view__session--editing{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),var(--shadow-sm)}.today-view__miles-edit{display:flex;align-items:center;gap:.5rem}.today-view__miles-stepper{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;height:32px;outline:none}.today-view__miles-stepper:focus-within{outline:none;box-shadow:none}.today-view__miles-stepper-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease;padding:0;line-height:1}@media(hover:hover){.today-view__miles-stepper-btn:hover:not(:disabled){background:var(--color-primary-light, rgba(59, 130, 246, .08));color:var(--color-primary)}}.today-view__miles-stepper-btn:active:not(:disabled){background:var(--color-primary-light, rgba(59, 130, 246, .08));color:var(--color-primary);transition:none}.today-view__miles-stepper-btn:disabled{opacity:.3;cursor:not-allowed}.today-view__miles-input{width:3.5ch;text-align:center;border:none;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);background:transparent;font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--color-text);height:32px;padding:0;-moz-appearance:textfield}.today-view__miles-input::-webkit-outer-spin-button,.today-view__miles-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.today-view__miles-input:focus{outline:none;box-shadow:none}.today-view__miles-unit{font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-muted);font-weight:500}.today-view__miles-delta{font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:.15rem .4rem;border-radius:999px}.today-view__miles-delta--less{background:#ef44441a;color:var(--color-red, #ef4444)}.today-view__miles-delta--more{background:#22c55e1a;color:var(--color-green, #22c55e)}.today-view__redistribute{display:flex;border:1px solid var(--color-border);border-radius:var(--radius);margin-top:.75rem;overflow:hidden}.today-view__redistribute--past{flex-wrap:wrap}.today-view__redistribute--no-targets{font-size:.7rem;color:var(--color-text-muted);border:none;padding:.25rem 0}.today-view__redistribute-btn{flex:1;padding:.35rem .5rem;font-size:.7rem;font-weight:500;background:transparent;border:none;border-right:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:background .12s ease,color .12s ease;white-space:nowrap}.today-view__redistribute-btn:last-child{border-right:none}.today-view__redistribute-btn--active{background:var(--color-primary);color:#fff}@media(hover:hover){.today-view__redistribute-btn:not(.today-view__redistribute-btn--active):hover{background:var(--color-bg)}}.today-view__redistribute-btn:not(.today-view__redistribute-btn--active):active{background:var(--color-bg);transition:none}.today-view__redistribute-btn--disabled{opacity:.35;cursor:not-allowed}.today-view__edit-actions{display:flex;gap:.5rem;margin-top:.75rem}.today-view__edit-cancel{flex:1;padding:.5rem;font-size:.75rem;font-weight:500;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;transition:background .12s ease}@media(hover:hover){.today-view__edit-cancel:hover{background:var(--color-bg)}}.today-view__edit-cancel:active{background:var(--color-bg);transition:none}.today-view__edit-confirm{flex:1;padding:.5rem;font-size:.75rem;font-weight:600;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.35rem;transition:opacity .12s ease}@media(hover:hover){.today-view__edit-confirm:hover{opacity:.9}}.today-view__edit-confirm:active{opacity:.9;transition:none}.today-view__edit-confirm.is-loading,.today-view__modal-confirm.is-loading,.today-view__modal-option.is-loading{opacity:.7}[data-theme=dark] .today-view__session--editing{border-color:var(--color-primary);box-shadow:0 0 0 1px #3b82f666,var(--shadow-sm)}[data-theme=dark] .today-view__miles-stepper{border-color:#fff3}[data-theme=dark] .today-view__miles-stepper-btn{color:#ffffffb3}@media(hover:hover){[data-theme=dark] .today-view__miles-stepper-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}}[data-theme=dark] .today-view__miles-input{border-color:#fff3;color:#fff}[data-theme=dark] .today-view__redistribute{border-color:#fff3}[data-theme=dark] .today-view__redistribute-btn{border-color:#fff3;color:#ffffff80}[data-theme=dark] .today-view__redistribute-btn--active{background:#ffffff4d;color:#fff}@media(hover:hover){[data-theme=dark] .today-view__redistribute-btn:not(.today-view__redistribute-btn--active):hover{background:#ffffff1a;color:#fffc}}[data-theme=dark] .today-view__edit-cancel{border-color:#fff3;color:#fff9}@media(hover:hover){[data-theme=dark] .today-view__edit-cancel:hover{background:#ffffff14}}.today-view__wc-edit{margin-top:.5rem}.today-view__wc-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.today-view__wc-field{display:flex;align-items:center;gap:.35rem}.today-view__wc-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);min-width:3.5em}.today-view__wc-input{width:3.5ch;text-align:center;border:none;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);background:transparent;font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-text);height:32px;padding:0;-moz-appearance:textfield}.today-view__wc-input::-webkit-outer-spin-button,.today-view__wc-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.today-view__wc-input:focus{outline:none;box-shadow:none}.today-view__wc-separator{font-size:.85rem;font-weight:500;color:var(--color-text-muted)}.today-view__wc-workout-vol{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.today-view__wc-segments{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.today-view__wc-segment{display:flex;align-items:center;gap:.3rem}.today-view__wc-segment-value{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-text);min-width:1.5ch;padding:0 .35rem;text-align:center}.today-view__wc-segment-label{font-size:.7rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.today-view__wc-segment-sep{font-size:.85rem;color:var(--color-text-muted)}.today-view__timeline--editable{cursor:pointer;position:relative;transition:opacity .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.today-view__timeline--editable:hover{opacity:.85}}.today-view__timeline--editable:active,.today-view__timeline--editable.today-view__timeline--pressed{opacity:.85;transition:none}.today-view__timeline-edit-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%);opacity:.35;color:var(--color-text-muted);transition:opacity .15s ease;pointer-events:none}@media(hover:hover){.today-view__timeline--editable:hover .today-view__timeline-edit-icon{opacity:.7}}.today-view__timeline--editable:active .today-view__timeline-edit-icon,.today-view__timeline--editable.today-view__timeline--pressed .today-view__timeline-edit-icon{opacity:.7}[data-theme=dark] .today-view__wc-input{border-color:#fff3;color:#fff}.today-view__workout-hero{margin-bottom:1rem}.today-view__workout-desc{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--color-text);line-height:1.5;letter-spacing:-.01em}.today-view__heat-badge{display:flex;align-items:center;gap:.3rem;font-size:.6875rem;font-weight:600;color:var(--color-red, #ef4444);margin-bottom:.375rem;opacity:.8}.today-view__heat-badge--altitude{color:var(--color-blue, #3b82f6)}.today-view__heat-badge--combined{color:#a855f7}.today-view__heat-badge svg{flex-shrink:0}.heat-pace--multiple{text-decoration-color:#a855f7}@media(hover:hover){.heat-pace--multiple:hover{background:#a855f71f}[data-theme=dark] .heat-pace--multiple:hover{background:#a855f72e}}.heat-pace--wind{text-decoration-color:var(--color-cyan, #06b6d4)}@media(hover:hover){.heat-pace--wind:hover{background:#06b6d41f}[data-theme=dark] .heat-pace--wind:hover{background:#22d3ee2e}}.heat-pace--pressed.heat-pace--multiple{background:#a855f71f}.heat-pace--pressed.heat-pace--wind{background:#06b6d41f}[data-theme=dark] .heat-pace--pressed.heat-pace--multiple{background:#a855f72e}[data-theme=dark] .heat-pace--pressed.heat-pace--wind{background:#22d3ee2e}.today-view__split{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.today-view__split-value{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;color:var(--color-text-secondary)}.today-view__split-label{font-family:var(--font);font-size:.8rem;color:var(--color-text-muted);font-weight:500}.today-view__easy-label{font-family:var(--font);font-size:.95rem;color:var(--color-text-secondary);margin-top:.25rem}.today-view__timeline{display:flex;border-radius:8px;height:52px;margin-top:.5rem;gap:2px}.session-segments{margin-top:.875rem;padding-top:.875rem;border-top:1px dashed var(--color-border)}.session-segments__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.session-segments__title{font-family:var(--font-mono);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.session-segments__list{display:flex;flex-direction:column;gap:.4rem}.session-seg{display:grid;grid-template-columns:22px 1fr auto;gap:.6rem;align-items:center;padding:.5rem .6rem;background:#94a3b80f;border-radius:6px}.session-seg__num{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--color-text-muted);width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#94a3b81f}.session-seg.is-easy .session-seg__num{background:#4ade802e;color:#4ade80}.session-seg.is-work .session-seg__num{background:#eab3082e;color:#eab308}.session-seg__body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.session-seg__title{font-size:.84rem;font-weight:600;color:var(--color-text);letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-seg__pace{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);letter-spacing:.02em}.session-seg__dist{font-family:var(--font-mono);font-size:.74rem;font-weight:700;color:var(--color-text-secondary)}.today-view__timeline-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:48px;padding:.25rem .4rem;overflow:hidden}.today-view__timeline-seg:first-child{border-radius:8px 0 0 8px}.today-view__timeline-seg:last-child{border-radius:0 8px 8px 0}.today-view__timeline-seg:first-child:last-child{border-radius:8px}.today-view__timeline-seg--warmup{background:var(--color-primary-light)}.today-view__timeline-seg--work{background:linear-gradient(135deg,var(--color-primary),#6366f1);color:#fff;position:relative;overflow:visible}.today-view__rep-ticks{position:absolute;inset:0;display:flex;border-radius:inherit;touch-action:none}.today-view__rep-tick{height:100%;min-width:0}.today-view__rep-tick--rep{border-right:1px solid rgba(255,255,255,.2)}.today-view__rep-tick--group{border-right:2px solid rgba(255,255,255,.35)}.today-view__rep-tick--float{background:#00000038;border-right:1px solid rgba(255,255,255,.2)}.today-view__rep-tick[data-tooltip]{position:relative;pointer-events:auto;cursor:default}.today-view__rep-tick[data-tooltip]:after{--tip-tx: -50%;--tip-ty-init: 4px;--tip-ty-rest: 0;--tip-scale-init: .94;content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(var(--tip-tx),var(--tip-ty-init)) scale(var(--tip-scale-init));transform-origin:50% calc(100% + 6px);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font-mono);font-size:.66rem;font-weight:500;line-height:1.45;letter-spacing:-.005em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:pre-line;text-align:center;width:max-content;pointer-events:none;opacity:0;transition:opacity .18s ease 90ms,transform .28s cubic-bezier(.18,1.1,.3,1.05) 90ms;z-index:10}.today-view__rep-tick--pressed[data-tooltip]:after{opacity:1;transform:translate(var(--tip-tx),var(--tip-ty-rest)) scale(1)}@media(hover:hover){.today-view__rep-tick[data-tooltip]:hover:after{opacity:1;transform:translate(var(--tip-tx),var(--tip-ty-rest)) scale(1)}}.today-view__rep-tick:first-child[data-tooltip]:after{left:0;--tip-tx: 0}.today-view__rep-tick:last-child[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}.today-view__rep-tick-touch-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font-mono);font-size:.66rem;font-weight:500;line-height:1.45;letter-spacing:-.005em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:pre-line;text-align:center;width:max-content;pointer-events:none;z-index:11}.today-view__rep-tick:first-child .today-view__rep-tick-touch-tip{left:0;transform:none}.today-view__rep-tick:last-child .today-view__rep-tick-touch-tip{left:auto;right:0;transform:none}.today-view__timeline-seg--cooldown{background:var(--color-primary-light)}.today-view__timeline-miles{font-family:var(--font-mono);font-size:.75rem;font-weight:700;line-height:1.2;position:relative;z-index:1;pointer-events:none}.today-view__timeline-label{font-family:var(--font);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;opacity:.75;font-weight:500;position:relative;z-index:1;pointer-events:none}.today-view__timeline-seg--warmup .today-view__timeline-miles,.today-view__timeline-seg--warmup .today-view__timeline-label,.today-view__timeline-seg--cooldown .today-view__timeline-miles,.today-view__timeline-seg--cooldown .today-view__timeline-label{color:var(--color-text-secondary)}@media(max-width:480px){.today-view__timeline-seg--warmup .today-view__timeline-label,.today-view__timeline-seg--cooldown .today-view__timeline-label{display:none}}.today-view--ambient-dt .today-view__timeline-seg--work{background:linear-gradient(135deg,#3b82f6,#8b5cf6)}.today-view--ambient-long .today-view__timeline-seg--work,.today-view--ambient-long-workout .today-view__timeline-seg--work{background:linear-gradient(135deg,#22c55e,#06b6d4)}.today-view--ambient-vo2 .today-view__timeline-seg--work{background:linear-gradient(135deg,#166534,#ec4899)}.today-view--ambient-hill .today-view__timeline-seg--work{background:linear-gradient(135deg,#22c55e,#eab308)}.today-view--ambient-speed .today-view__timeline-seg--work{background:linear-gradient(135deg,#ef4444,#f97316)}.today-view--ambient-marathon .today-view__timeline-seg--work{background:linear-gradient(135deg,#ec4899,#8b5cf6)}.today-view__strides{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;box-shadow:var(--shadow-sm)}.today-view__strides-label{font-family:var(--font);font-size:.85rem;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:.25rem}.today-view__strides-or{font-style:italic;color:var(--color-text-muted, var(--color-text-secondary));opacity:.6}.today-view__strides-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.today-view__strides-check{color:#22c55e;font-weight:600;font-size:.75rem;letter-spacing:.02em}.today-view__strides--done{border-color:#22c55e66}.today-view__rest{text-align:center;padding:3rem 1rem;animation-delay:.16s}.today-view__rest-icon{color:var(--color-text-muted);margin-bottom:1rem;opacity:.6}.today-view__rest-title{font-family:var(--font-heading);font-size:2rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem;letter-spacing:-.02em}.today-view__rest-subtitle{font-family:var(--font);font-size:1rem;color:var(--color-text-muted)}.today-view__race{text-align:center;padding:2.5rem 1rem;animation-delay:.16s}.today-view__race-title{font-family:var(--font-heading);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--color-orange);margin-bottom:.75rem}.today-view__race-distance{font-family:var(--font-heading);font-size:2.5rem;font-weight:800;color:var(--color-text);letter-spacing:-.03em;margin-bottom:1.5rem}.today-view__race-goal{display:flex;flex-direction:column;align-items:center;gap:.25rem}.today-view__race-goal-label{font-family:var(--font);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-weight:600}.today-view__race-goal-time{font-family:var(--font-mono);font-size:3rem;font-weight:800;color:var(--color-text);letter-spacing:-.03em;line-height:1}.today-view__empty{text-align:center;padding:3rem 1rem}.today-view__empty-icon{color:var(--color-text-muted);margin-bottom:1.25rem;opacity:.5}.today-view__empty-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem;letter-spacing:-.02em}.today-view__empty-subtitle{font-family:var(--font);font-size:1rem;color:var(--color-text-muted)}.today-view__day-nav{display:flex;gap:.5rem;margin-bottom:.75rem;animation-delay:40ms}.today-view__day-nav-btn{flex:1;min-width:0;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--color-surface);border:1px dashed var(--color-border);position:relative;cursor:pointer;transition:all var(--transition);font-family:inherit}.today-view__day-nav-btn--today{border:2px solid var(--color-primary)}.today-view__day-nav-btn--yesterday,.today-view__day-nav-btn--tomorrow{border:1px solid var(--color-border)}@media(hover:hover){.today-view__day-nav-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light)}}.today-view__day-nav-btn:active,.today-view__day-nav-btn.today-view__day-nav-btn--pressed,.today-view__day-nav-btn--swipe-active{transform:scale(.98);border-color:var(--color-primary);background:var(--color-primary-light);transition:none}.today-view__day-nav-btn:active .today-view__day-nav-arrow,.today-view__day-nav-btn.today-view__day-nav-btn--pressed .today-view__day-nav-arrow,.today-view__day-nav-btn--swipe-active .today-view__day-nav-arrow{color:var(--color-primary);transition:none}.today-view__day-nav-arrow{font-size:.85rem;color:var(--color-text-muted);flex-shrink:0;transition:color var(--transition)}@media(hover:hover){.today-view__day-nav-btn:hover .today-view__day-nav-arrow{color:var(--color-primary)}}.today-view__day-nav-weekday{font-family:var(--font);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.today-view__day-nav-btn--today .today-view__day-nav-weekday{color:var(--color-primary)}.today-view__day-nav-date{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--color-text-muted)}.today-view__day-nav-type{font-family:var(--font);font-size:.85rem;font-weight:600;color:var(--color-text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-view__day-nav-miles{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.today-view__day-nav-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:.5rem .75rem;min-width:150px;z-index:100;pointer-events:none}.today-view__day-nav-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:var(--color-border)}@media(hover:hover){.today-view__day-nav-btn:hover .today-view__day-nav-tooltip{display:block}}.today-view__day-nav-tooltip.is-longpress-visible{display:block}.today-view__day-nav-tooltip-date{font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--color-text-muted);margin-bottom:.3rem;display:none}.today-view__day-nav-tooltip-session{display:flex;flex-direction:column;gap:.1rem}.today-view__day-nav-tooltip-session+.today-view__day-nav-tooltip-session{margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--color-border)}.today-view__day-nav-tooltip-zone{font-family:var(--font);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}.today-view__day-nav-tooltip-miles{font-family:var(--font-mono);font-size:.7rem;font-weight:600;color:var(--color-text-secondary)}.today-view__day-nav-tooltip-desc{font-family:var(--font);font-size:.65rem;color:var(--color-text-muted);line-height:1.3}.today-view__back-to-today{display:inline-block;vertical-align:middle;background:none;border:none;font-family:var(--font);font-size:.78rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;padding:0;margin-left:.6rem;position:relative;top:-.15rem;transition:color var(--transition);white-space:nowrap;line-height:1}@media(hover:hover){.today-view__back-to-today:hover{color:var(--color-primary)}}.today-view__back-to-today:active{color:var(--color-primary);transition:none}@media(hover:hover){.today-view__back-to-today:hover{opacity:.7}}.today-view__back-to-today:active{opacity:.7;transition:none}.today-view__date-row{display:flex;align-items:center;justify-content:space-between}.today-view__date-row .today-view__date{animation:none}.today-view__close-btn{padding:.4rem;border:none;background:none;color:var(--color-text-muted);cursor:pointer;opacity:.5;transition:opacity .15s;flex-shrink:0}@media(hover:hover){.today-view__close-btn:hover{opacity:1}}.today-view__close-btn:active,.today-view__close-btn.today-view__close-btn--pressed{opacity:1;transition:none}.today-view__session--checked{transition:opacity .3s ease}.today-view__confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:9999;display:none}.today-view__actions{display:flex;gap:.75rem;margin-top:.5rem}.today-view__empty~.today-view__actions{justify-content:center}.today-view__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);transition:all var(--transition)}@media(hover:hover){.today-view__btn:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-sm)}}.today-view__btn:active,.today-view__btn.today-view__btn--pressed{border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-sm);transition:none}.today-view__btn--bail-active{border-color:var(--color-border);color:var(--color-text-secondary)}.today-view__btn--bail-active:only-child,.today-view__btn--bail-disabled:only-child{flex:1;justify-content:center}@media(hover:hover){.today-view__btn--bail-active:hover{border-color:var(--color-purple);color:var(--color-purple);box-shadow:var(--shadow-sm)}}.today-view__btn--bail-active:active,.today-view__btn--bail-active.today-view__btn--pressed{border-color:var(--color-purple);color:var(--color-purple);box-shadow:var(--shadow-sm);transition:none}.today-view__btn--bail-disabled{border-color:var(--color-border);color:var(--color-text-muted);opacity:.5;cursor:not-allowed}.today-view__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media(hover:hover){.today-view__btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff;box-shadow:var(--shadow)}}.today-view__btn--primary:active,.today-view__btn--primary.today-view__btn--pressed{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff;box-shadow:var(--shadow);transition:none}.today-view__btn--calendar{flex:1;justify-content:center}.today-view__btn--weekly{display:flex;width:100%;margin-top:.75rem;box-sizing:border-box}.today-view .zone-tag{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.modal-content.today-view__modal{max-width:380px;padding:1.75rem}.modal-content.today-view__modal--wide{max-width:560px}.today-view__modal-back{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;font-family:var(--font);font-size:.75rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;padding:.25rem 0;margin-bottom:.75rem;transition:color var(--transition)}@media(hover:hover){.today-view__modal-back:hover{color:var(--color-primary)}}.today-view__modal-back:active,.today-view__modal-back.today-view__modal-back--pressed{color:var(--color-primary);transition:none}.today-view__modal-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;margin-bottom:.4rem}.today-view__modal-desc{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:1.25rem}.today-view__modal-desc--muted{font-size:.8rem;font-style:italic;color:var(--color-text-muted);margin-bottom:.75rem}.today-view__modal-options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.today-view__modal-mark-yesterday{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:0 0 .85rem;padding:.5rem .7rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-sm)}.today-view__modal-mark-yesterday-label{font-size:.82rem;color:var(--color-text);min-width:0}.today-view__modal-mark-yesterday .redistribute-toggle--inline{flex:none}[data-theme=dark] .today-view__modal-mark-yesterday{background:#f59e0b1f;border-color:#f59e0b4d}.today-view__modal-option{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all var(--transition);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.today-view__modal-option strong{font-family:var(--font);font-size:.875rem;font-weight:700;color:var(--color-text)}.today-view__modal-option span{font-size:.75rem;color:var(--color-text-muted)}@media(hover:hover){.today-view__modal-option--convert:hover,.today-view__modal-option--skip:hover,.today-view__modal-option--redistribute:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.today-view__modal-option--off:hover,.today-view__modal-option--drop:hover{border-color:var(--color-orange);background:var(--color-orange-light)}.today-view__modal-option--move:hover{border-color:var(--color-purple);background:#8b5cf60f}}.today-view__modal-option--convert.is-pressed,.today-view__modal-option--skip.is-pressed,.today-view__modal-option--redistribute.is-pressed,.today-view__modal-option--convert:active,.today-view__modal-option--skip:active,.today-view__modal-option--redistribute:active{border-color:var(--color-primary);background:var(--color-primary-light);transition:none}.today-view__modal-option--off.is-pressed,.today-view__modal-option--drop.is-pressed,.today-view__modal-option--off:active,.today-view__modal-option--drop:active{border-color:var(--color-orange);background:var(--color-orange-light);transition:none}.today-view__modal-option--move.is-pressed,.today-view__modal-option--move:active{border-color:var(--color-purple);background:#8b5cf60f;transition:none}.today-view__modal-confirm{width:100%;padding:.65rem 1.25rem;border-radius:var(--radius-sm);border:none;background:var(--color-primary);color:#fff;font-family:var(--font);font-size:.85rem;font-weight:700;cursor:pointer;transition:all var(--transition);margin-bottom:.5rem}@media(hover:hover){.today-view__modal-confirm:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}}.today-view__modal-confirm:active,.today-view__modal-confirm.today-view__modal-confirm--pressed{background:var(--color-primary-hover);box-shadow:var(--shadow-sm);transition:none}.today-view__modal-cancel{width:100%;padding:.55rem;border:none;background:none;font-family:var(--font);font-size:.8rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition)}@media(hover:hover){.today-view__modal-cancel:hover{background:var(--color-bg);color:var(--color-text-secondary)}}.today-view__modal-cancel:active,.today-view__modal-cancel.today-view__modal-cancel--pressed{background:var(--color-bg);color:var(--color-text-secondary);transition:none}.today-view__modal-actions{display:flex;flex-direction:column;gap:0;margin-top:1.25rem}.today-view__skip-input-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.today-view__skip-input-wrap{display:flex;align-items:center;gap:.4rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .75rem;transition:border-color var(--transition)}.today-view__skip-input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.today-view__skip-input{width:4.5rem;border:none;background:transparent;font-family:var(--font-mono);font-size:1.25rem;font-weight:700;color:var(--color-text);text-align:center;outline:none;-moz-appearance:textfield}.today-view__skip-input::-webkit-inner-spin-button,.today-view__skip-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.today-view__skip-unit{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-muted);font-weight:500}.today-view__skip-badge{font-family:var(--font-mono);font-size:.75rem;font-weight:700;padding:.2rem .5rem;border-radius:100px;white-space:nowrap}.today-view__skip-badge--less{background:#f59e0b1f;color:#d97706}.today-view__skip-badge--more{background:#22c55e1f;color:#16a34a}.mini-week{margin:.75rem 0}.mini-week__labels{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-bottom:.25rem}.mini-week__label{text-align:center;font-family:var(--font);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.mini-week__grid{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.mini-week__grid--dragging .mini-day{transition:transform .2s cubic-bezier(.2,0,0,1)}.mini-week__grid--holding{cursor:grab}.mini-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.45rem .25rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:grab;transition:all var(--transition);position:relative;min-height:52px;-webkit-user-select:none;user-select:none;touch-action:none}@media(hover:hover){.mini-day:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.mini-day:active{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transition:none}}.mini-day__date{font-family:var(--font);font-size:.6rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.15rem;white-space:nowrap}.mini-day__miles{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--color-text)}.mini-day__label{font-family:var(--font);font-size:.65rem;font-weight:500;color:var(--color-text-muted)}.mini-day--dt{background:linear-gradient(135deg,#3b82f6,#1e3a8a);border-color:transparent}.mini-day--dt .mini-day__date,.mini-day--dt .mini-day__miles{color:#fff}.mini-day--long{background:linear-gradient(135deg,#22c55e,#06b6d4);border-color:transparent}.mini-day--long .mini-day__date,.mini-day--long .mini-day__miles{color:#fff}.mini-day--long-workout{background:linear-gradient(135deg,#22c55e,#0d9488,#3b82f6);border-color:transparent}.mini-day--long-workout .mini-day__date,.mini-day--long-workout .mini-day__miles{color:#fff}.mini-day--vo2{background:linear-gradient(135deg,#166534,#db2777);border-color:transparent}.mini-day--vo2 .mini-day__date,.mini-day--vo2 .mini-day__miles{color:#fff}.mini-day--hill{background:linear-gradient(135deg,#22c55e,#ca8a04);border-color:transparent}.mini-day--hill .mini-day__date,.mini-day--hill .mini-day__miles{color:#fff}.mini-day--speed{background:linear-gradient(135deg,#b91c1c,#ef4444);border-color:transparent}.mini-day--speed .mini-day__date,.mini-day--speed .mini-day__miles{color:#fff}.mini-day--tuneup{background:linear-gradient(135deg,#8b5cf6,#ec4899);border-color:transparent}.mini-day--tuneup .mini-day__date,.mini-day--tuneup .mini-day__miles{color:#fff}.mini-day--marathon{background:linear-gradient(135deg,#db2777,#6366f1);border-color:transparent}.mini-day--marathon .mini-day__date,.mini-day--marathon .mini-day__miles{color:#fff}.mini-day--threshold{background:linear-gradient(135deg,#60a5fa,#a78bfa);border-color:transparent}.mini-day--threshold .mini-day__date,.mini-day--threshold .mini-day__miles{color:#fff}.mini-day--race{background:linear-gradient(135deg,#d97706,#f59e0b,#fbbf24);border-color:transparent}.mini-day--race .mini-day__date,.mini-day--race .mini-day__miles{color:#fff}.mini-day--off{opacity:.55}.mini-day--easy{background:var(--color-surface)}.mini-day--past{opacity:.45}@media(hover:hover){.mini-day--past:hover{opacity:.7}}.mini-day--current{outline:1px dashed var(--color-text-secondary);outline-offset:1px}.mini-day--source{outline:2px solid var(--color-primary);outline-offset:1px}.mini-day--floating{position:fixed;z-index:1000;opacity:.92;transform:scale(1.08);box-shadow:0 8px 24px #0003;cursor:grabbing;pointer-events:none}.mini-day.day-card--drop-zone{opacity:.3;border-style:dashed;border-color:var(--color-primary);background:var(--color-primary-light)}.mini-day.day-card--drop-zone--warning{border-color:var(--color-red);background:#ef444414}.mini-day.day-card--holding{transform:scale(1.04);box-shadow:var(--shadow-md)}.mini-week__hard-group{pointer-events:none;outline:2px solid var(--color-red);outline-offset:2px;border-radius:var(--radius-sm);z-index:1}.mini-week__status{min-height:2.5rem;display:flex;align-items:center;justify-content:center;margin-top:.5rem}.mini-week__error{padding:.5rem .75rem;border-radius:var(--radius-sm);background:#ef444414;border:1px solid rgba(239,68,68,.2);color:var(--color-red);font-size:.75rem;font-weight:600;text-align:center;width:100%}.mini-week__warning{padding:.5rem .75rem;border-radius:var(--radius-sm);background:#f59e0b14;border:1px solid rgba(245,158,11,.2);color:#d97706;font-size:.75rem;font-weight:600;text-align:center;width:100%}.mini-week__hint{font-size:.75rem;color:var(--color-text-muted);text-align:center}.today-view__modal-confirm--disabled{opacity:.4;cursor:not-allowed}@media(hover:hover){.today-view__modal-confirm--disabled:hover{background:var(--color-primary);box-shadow:none}}.mini-day__tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:.5rem .65rem;min-width:130px;z-index:100;pointer-events:none}.mini-day__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-border)}@media(hover:hover){.mini-day:hover .mini-day__tooltip{display:block}}.mini-day--floating .mini-day__tooltip,.mini-day.day-card--drop-zone .mini-day__tooltip,.mini-week__grid--dragging .mini-day__tooltip,.mini-week__grid--holding .mini-day__tooltip,.mini-day--past .mini-day__tooltip{display:none!important}.mini-day__tooltip-session{display:flex;flex-direction:column;gap:.1rem}.mini-day__tooltip-session+.mini-day__tooltip-session{margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--color-border)}.mini-day__tooltip-zone{font-family:var(--font);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}.mini-day__tooltip-miles{font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--color-text-secondary)}.mini-day__tooltip-desc{font-family:var(--font);font-size:.6rem;color:var(--color-text-muted);line-height:1.3}@media(hover:hover){[data-theme=dark] .today-view__modal-option--convert:hover,[data-theme=dark] .today-view__modal-option--skip:hover,[data-theme=dark] .today-view__modal-option--redistribute:hover{background:#60a5fa1a}[data-theme=dark] .today-view__modal-option--off:hover,[data-theme=dark] .today-view__modal-option--drop:hover{background:#fbbf241a}[data-theme=dark] .today-view__modal-option--move:hover{background:#a78bfa1a}}[data-theme=dark] .today-view__modal-option--convert.is-pressed,[data-theme=dark] .today-view__modal-option--skip.is-pressed,[data-theme=dark] .today-view__modal-option--redistribute.is-pressed{background:#60a5fa1a}[data-theme=dark] .today-view__modal-option--off.is-pressed,[data-theme=dark] .today-view__modal-option--drop.is-pressed{background:#fbbf241a}[data-theme=dark] .today-view__modal-option--move.is-pressed{background:#a78bfa1a}[data-theme=dark] .today-view__skip-badge--less{background:#fbbf241f;color:#fbbf24}[data-theme=dark] .today-view__skip-badge--more{background:#4ade801f;color:#4ade80}[data-theme=dark] .today-view__skip-input-wrap:focus-within{box-shadow:0 0 0 3px #60a5fa26}[data-theme=dark] .mini-day--off{opacity:.45}[data-theme=dark] .mini-day--easy{background:var(--color-surface)}[data-theme=dark] .mini-day.day-card--drop-zone{background:#60a5fa14}[data-theme=dark] .mini-day.day-card--drop-zone--warning{background:#f8717114}[data-theme=dark] .mini-week__error{background:#f871711a;border-color:#f8717133;color:#fca5a5}[data-theme=dark] .mini-week__warning{background:#fbbf241a;border-color:#fbbf2433;color:#fbbf24}@media(prefers-reduced-motion:reduce){.today-view__session-check--done{animation:none!important}.today-view__confetti{display:none!important}}@media(max-width:480px){.modal-content.today-view__modal--wide{max-width:100%;padding:1.25rem}.mini-day{padding:.35rem .15rem;min-height:44px}.mini-day__date{font-size:.5rem}.mini-day__miles{font-size:.6rem}.mini-week__label{font-size:.5rem}.mini-day__tooltip{display:none!important}}@media(max-width:480px){.today-view{padding:1rem .75rem .5rem}.today-view__countdown-number{font-size:2rem}.today-view__date{font-size:1.4rem}.today-view__split-value{font-size:1.1rem}.today-view__race-distance{font-size:2rem}.today-view__race-goal-time{font-size:2.5rem}.today-view__rest-title{font-size:1.6rem}.today-view__actions{flex-direction:column}.today-view__btn{justify-content:center}.today-view__day-nav-btn{flex-wrap:wrap;gap:.15rem .5rem;padding:.6rem .75rem;align-items:center}.today-view__day-nav-weekday{font-size:.7rem}.today-view__day-nav-miles{font-size:.7rem;margin-left:auto}.today-view__day-nav-type{font-size:.8rem}.today-view__day-nav-date{display:none}.today-view__day-nav-tooltip-date{display:block}}.today-view__modal .redistribute-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius);margin-top:.5rem;margin-bottom:.75rem}.today-view__modal .redistribute-toggle--past{flex-wrap:wrap}.today-view__modal .redistribute-toggle__btn{flex:1;padding:.5rem;font-size:.75rem;font-family:inherit;border:none;border-right:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s}.today-view__modal .redistribute-toggle__btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.today-view__modal .redistribute-toggle__btn:last-of-type{border-right:none;border-radius:0 var(--radius) var(--radius) 0}.today-view__modal .redistribute-toggle__btn--active{background:var(--color-primary);color:#fff}@media(hover:hover){.today-view__modal .redistribute-toggle__btn:not(.redistribute-toggle__btn--active):hover{background:var(--color-bg)}}.today-view__modal .redistribute-toggle__btn--disabled{opacity:.4;cursor:not-allowed}.today-view__modal .redistribute-toggle__warning{width:100%;font-size:.7rem;color:var(--color-warning, #d97706);padding:.25rem .5rem 0;line-height:1.3}.today-view__sync-status{display:flex;align-items:center;justify-content:center;gap:.35rem;color:var(--color-text-secondary);font-size:.65rem;font-weight:500;opacity:.7;padding:.125rem 0}.today-view__sync-spinner{animation:today-view-sync-spin 1s linear infinite}@keyframes today-view-sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.today-view__strava-actual{margin-top:.75rem;padding:.625rem .75rem;border-radius:8px;border-left:3px solid;font-size:.8rem}.today-view__strava-actual+.insight-card{margin-top:.625rem}.today-view__strava-actual--matched{background:#f1fdf5;border-left-color:#22c55e}.today-view__strava-actual--unmatched{background:#fefaf2;border-left-color:#f59e0b}.today-view__strava-actual-header{display:flex;align-items:center;gap:.3rem;margin-bottom:.35rem}.today-view__strava-logo{color:#fc4c02;flex-shrink:0}.today-view__strava-actual-label{font-weight:600;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.today-view__strava-actual-location{display:inline-flex;align-items:center;gap:.2rem;font-size:.65rem;color:var(--color-text-tertiary, #999);margin-left:auto;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.today-view__strava-actual-location svg{flex-shrink:0;opacity:.7}.today-view__strava-actual-location-abbr{display:none}@media(max-width:480px){.today-view__strava-actual-location-full{display:none}.today-view__strava-actual-location-abbr{display:inline}}.today-view__strava-actual-check{color:#22c55e;font-weight:700;font-size:.75rem;margin-left:auto;flex-shrink:0}.today-view__strava-actual-location+.today-view__strava-actual-check{margin-left:0}.today-view__strava-actual-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.today-view__strava-actual-stats .today-view__strava-actual-effort{flex-basis:100%;margin-top:.1rem}.today-view__strava-actual-miles{display:flex;align-items:baseline;gap:.3rem;font-size:.95rem;font-weight:600;color:var(--color-text)}.today-view__strava-actual-delta{font-size:.7rem;font-weight:500;border-radius:3px;padding:.05rem .3rem}.today-view__strava-actual-delta--over{color:#22c55e;background:#22c55e1a}.today-view__strava-actual-delta--under{color:#f59e0b;background:#f59e0b1a}.today-view__strava-actual-pace{font-size:.8rem;color:var(--color-text-secondary)}.today-view__strava-actual-effort{display:inline-flex;align-items:baseline;gap:.25rem;font-size:.8rem;color:var(--color-text-secondary)}.today-view__strava-actual-effort strong{font-weight:600;color:var(--color-text)}.today-view__strava-actual-effort-label{font-size:.7rem;opacity:.7}.today-view__strava-actual-effort--easy strong{color:#60a5fa}.today-view__strava-actual-effort--moderate strong{color:#4ade80}.today-view__strava-actual-effort--threshold strong{color:#facc15}.today-view__strava-actual-effort--hard strong{color:#f87171}.today-view__strava-actual-desc{margin:.3rem 0 0;font-size:.75rem;color:var(--color-text-secondary);line-height:1.4}.today-view__strava-intervals-toggle{display:flex;align-items:center;gap:.3rem;margin:.3rem 0 0;padding:0;background:none;border:none;font-size:.75rem;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;line-height:1.4;text-align:left}@media(hover:hover){.today-view__strava-intervals-toggle:hover{color:var(--color-text)}}.today-view__strava-intervals-chevron{flex-shrink:0;transition:transform .2s ease}.today-view__strava-intervals-chevron--open{transform:rotate(90deg)}.today-view__strava-intervals{margin:.35rem 0 0;padding:.4rem 0;font-size:.7rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.today-view__strava-interval-row{display:grid;grid-template-columns:4.5rem 3rem 2.5rem 1fr;gap:.4rem;padding:.2rem 0;align-items:baseline;color:var(--color-text)}.today-view__strava-interval-row--warmup{color:var(--color-text-secondary)}.today-view__strava-interval-label{font-family:var(--font-sans, inherit);font-size:.65rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary, var(--color-text-secondary))}.today-view__strava-interval-dist{text-align:right}.today-view__strava-interval-time{text-align:right;color:var(--color-text-secondary)}.today-view__strava-interval-pace{color:var(--color-text-secondary)}.today-view__strava-actual-link{display:inline-flex;align-items:center;color:#fc4c02;font-size:.7rem;font-weight:500;text-decoration:none;margin-top:.35rem;transition:opacity .15s}@media(hover:hover){.today-view__strava-actual-link:hover{text-decoration:underline}}.today-view__strava-actual-link:active,.today-view__strava-actual-link.today-view__strava-actual-link--pressed{text-decoration:underline;transition:none}.today-view__strava-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.today-view__delete-btn{background:none;border:none;padding:.2rem;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;opacity:.35;margin-left:auto;transition:opacity .15s,background .15s,color .15s}.today-view__delete-btn[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}@media(hover:hover){.today-view__delete-btn:hover{opacity:1;background:var(--color-red-light);color:var(--color-red)}}.today-view__delete-btn:active,.today-view__delete-btn.today-view__delete-btn--pressed{opacity:1;background:var(--color-red-light);color:var(--color-red);transition:none}.today-view__delete-confirm{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;margin-left:auto}.today-view__delete-cancel,.today-view__delete-go{background:none;border:1px solid var(--color-border);border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:600;cursor:pointer}.today-view__delete-cancel{color:var(--color-text-secondary)}@media(hover:hover){.today-view__delete-cancel:hover{background:var(--color-bg)}}.today-view__delete-go{color:var(--color-red);border-color:var(--color-red)}@media(hover:hover){.today-view__delete-go:hover{background:var(--color-red);color:#fff}}.today-view__delete-cancel:disabled,.today-view__delete-go:disabled{opacity:.6;cursor:not-allowed}@media(hover:hover){.today-view__delete-go:disabled:hover{background:none;color:var(--color-red)}}@media(hover:hover){[data-theme=dark] .today-view__delete-btn:hover{background:#dc262626;color:#f87171}}.today-view__strava-extra{padding:.75rem;border-radius:10px;background:#fc4c020a;border:1px solid rgba(252,76,2,.12);margin-bottom:1rem;animation:today-view-fadein .4s ease both}.today-view__strava-extra-header{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fc4c02;margin-bottom:.5rem}.today-view__strava-extra-item{padding:.5rem 0}.today-view__strava-extra-item+.today-view__strava-extra-item{border-top:1px solid rgba(252,76,2,.1)}.today-view__strava-extra-stats{display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600;color:var(--color-text)}.today-view__strava-extra-sep{color:var(--color-text-secondary);opacity:.5}.today-view__strava-extra-desc{margin:.2rem 0 0;font-size:.7rem;color:var(--color-text-secondary)}.today-view__strava-components{margin-top:.4rem;display:flex;flex-direction:column;gap:.35rem}.today-view__strava-component{padding:.35rem 0;border-top:1px solid rgba(255,255,255,.06)}.today-view__strava-component:first-child{border-top:none}.today-view__strava-component-stats{display:flex;align-items:baseline;gap:.4rem;font-size:.8rem;font-weight:600}.today-view__strava-component-sep{color:var(--color-text-secondary);font-weight:400}.today-view__strava-component-desc{margin:.15rem 0 0;font-size:.7rem;color:var(--color-text-secondary)}.today-view__strava-powered{display:flex;align-items:center;justify-content:center;gap:.3rem;margin-bottom:.125rem;font-size:.6rem;font-weight:500;letter-spacing:.03em;color:var(--color-text-secondary);opacity:.5}.today-view__strava-powered svg{color:#fc4c02}[data-theme=dark] .today-view__strava-actual--matched{background:#0f1f15}[data-theme=dark] .today-view__strava-actual--unmatched{background:#1f1a0f}[data-theme=dark] .today-view__strava-actual-delta--over{background:#22c55e26}[data-theme=dark] .today-view__strava-actual-delta--under{background:#f59e0b26}[data-theme=dark] .today-view__strava-extra{background:#fc4c020f;border-color:#fc4c0226}@media(pointer:coarse){.today-view__btn{min-height:44px}@media(hover:hover){.today-view__day-nav-btn:hover .today-view__day-nav-tooltip{display:none}}.today-view__day-nav-tooltip.is-longpress-visible{display:block}}.today-view__activity-drag-handle{display:inline-flex;align-items:center;justify-content:center;cursor:grab;padding:.25rem;margin-right:.25rem;border-radius:4px;touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0}@media(hover:hover){.today-view__activity-drag-handle:hover{background:#0000000f}[data-theme=dark] .today-view__activity-drag-handle:hover{background:#ffffff14}}.today-view__activity-drag-handle:active,.today-view__activity-drag-handle.today-view__activity-drag-handle--pressed{cursor:grabbing;background:#0000001a;transition:none}[data-theme=dark] .today-view__activity-drag-handle:active,[data-theme=dark] .today-view__activity-drag-handle.today-view__activity-drag-handle--pressed{background:#ffffff1f}.today-view__activity-drop-zone{display:none}.today-view__activity-drop-zone--active{display:flex;align-items:center;justify-content:center;margin-top:.5rem;padding:.75rem;border:2px dashed rgba(34,197,94,.4);border-radius:8px;background:#22c55e0d;color:#22c55e;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:background .15s,border-color .15s}@media(hover:hover){.today-view__activity-drop-zone--active:hover{background:#22c55e1f;border-color:#22c55e}}.today-view__strava-actual--dragging{opacity:.4;transform:scale(.97);transition:opacity .15s,transform .15s}.today-view__strava-extra--drop-target{border:2px dashed rgba(252,76,2,.4);background:#fc4c020a;min-height:48px;transition:border-color .15s,background .15s}@media(hover:hover){.today-view__strava-extra--drop-target:hover{border-color:#fc4c02;background:#fc4c0214}}.today-view__strava-extra-item-row{display:flex;align-items:center;gap:.25rem}.today-view__strava-extra-item--dragging{opacity:.4}.today-view__session-drag-target{border-radius:12px;outline:2px dashed rgba(34,197,94,.45);outline-offset:2px;background:#22c55e0a;transition:outline-color .15s,background .15s}[data-theme=dark] .today-view__session-drag-target{outline-color:#22c55e80;background:#22c55e0f}.today-view__activity-inline-remove-zone{display:flex;align-items:center;justify-content:center;margin:.375rem 0;padding:.625rem;border:2px dashed rgba(252,76,2,.4);border-radius:8px;background:#fc4c020a;color:#fc4c02;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s;touch-action:none;user-select:none;-webkit-user-select:none}@media(hover:hover){.today-view__activity-inline-remove-zone:hover{background:#fc4c021a;border-color:#fc4c02}}.today-view__activity-inline-remove-zone:active{background:#fc4c021a;border-color:#fc4c02;transition:none}[data-theme=dark] .today-view__activity-inline-remove-zone{background:#fc4c020f}@media(hover:hover){[data-theme=dark] .today-view__activity-inline-remove-zone:hover{background:#fc4c021f}}.today-view__strava-actual+.today-view__strava-actual{margin-top:.375rem}.today-view__strava-actual--draggable,.today-view__strava-extra-item--draggable{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}@media(hover:hover)and (pointer:fine){.today-view__strava-actual--draggable,.today-view__strava-extra-item--draggable{cursor:grab}.today-view__strava-actual--draggable:active,.today-view__strava-extra-item--draggable:active{cursor:grabbing}}.today-view__strava-footer-actions{display:inline-flex;align-items:center;gap:.15rem;margin-left:auto}.today-view__move-to-btn{background:none;border:none;padding:.2rem;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;opacity:.45;transition:opacity .15s,background .15s,color .15s}.today-view__move-to-btn[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}@media(hover:hover){.today-view__move-to-btn:hover{opacity:1;background:#8b5cf61f;color:var(--color-purple, #8b5cf6)}}.today-view__move-to-btn:active,.today-view__move-to-btn.today-view__move-to-btn--pressed{opacity:1;background:#8b5cf61f;color:var(--color-purple, #8b5cf6);transition:none}.today-view__modal-subtitle{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--color-text-secondary);margin:0 0 .85rem}@media(hover:hover){.today-view__modal-option--unmatch:hover{border-color:#fc4c02;background:#fc4c020f}}.today-view__modal-option--unmatch.is-pressed,.today-view__modal-option--unmatch:active{border-color:#fc4c02;background:#fc4c020f;transition:none}.today-view__activity-ghost{position:fixed;z-index:9999;pointer-events:none;display:flex;align-items:center;gap:.35rem;padding:.5rem .75rem;border-radius:10px;background:var(--color-surface, #fff);border:1.5px solid rgba(252,76,2,.35);box-shadow:0 8px 24px #0000001f,0 2px 6px #0000000f,0 0 0 1px #fc4c0214;font-size:.8rem;transform:rotate(-1.5deg) scale(1.03);opacity:.95;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);will-change:left,top;transition:none}.today-view__activity-ghost .today-view__strava-logo{color:#fc4c02;flex-shrink:0}.today-view__activity-ghost-miles{font-weight:700;color:var(--color-text, #1a1a2e);white-space:nowrap}.today-view__activity-ghost-sep{color:var(--color-text-secondary, #888);opacity:.5}.today-view__activity-ghost-pace{color:var(--color-text-secondary, #666);white-space:nowrap}[data-theme=dark] .today-view__activity-ghost{background:var(--color-surface, #1e1e2e);border-color:#fc4c0273;box-shadow:0 8px 24px #0006,0 2px 6px #0003,0 0 0 1px #fc4c0226}[data-theme=dark] .today-view__activity-drop-zone--active{border-color:#22c55e80;background:#22c55e14}[data-theme=dark] .today-view__strava-extra--drop-target{border-color:#fc4c0280;background:#fc4c020f}.today-view--is-today:before{opacity:.09!important}[data-theme=dark] .today-view--is-today:before{opacity:.14!important}.today-view__date-row{position:relative}.today-view--is-today .today-view__date-row:before{content:"";position:absolute;left:-.6rem;top:.15rem;bottom:.15rem;width:3px;border-radius:2px;background:var(--color-primary);animation:today-bar-breathe 3s ease-in-out infinite}@keyframes today-bar-breathe{0%,to{opacity:.85}50%{opacity:.35}}.today-view--is-today .today-view__date:after{content:"Today";display:inline-block;font-family:var(--font);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background:#3b82f614;padding:.15rem .45rem;border-radius:3px;margin-left:.6rem;vertical-align:middle;position:relative;top:-.15rem}[data-theme=dark] .today-view--is-today .today-view__date:after{background:#60a5fa1f}.today-view--is-today .today-view__countdown-label:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-primary);margin-right:.35rem;vertical-align:middle;position:relative;top:-.5px;animation:today-dot-pulse 2s ease-in-out infinite}@keyframes today-dot-pulse{0%,to{opacity:1;box-shadow:0 0 #3b82f666}50%{opacity:.6;box-shadow:0 0 0 4px #3b82f600}}[data-theme=dark] .today-view--is-today .today-view__countdown-label:before{background:#60a5fa}.today-view--is-today .today-view__session{border-color:#3b82f62e;box-shadow:var(--shadow-sm),0 0 0 1px #3b82f60f}[data-theme=dark] .today-view--is-today .today-view__session{border-color:#60a5fa2e;box-shadow:var(--shadow-sm),0 0 0 1px #60a5fa14}.today-view--is-today .today-view__weekly-progress{border-color:#3b82f626}[data-theme=dark] .today-view--is-today .today-view__weekly-progress{border-color:#60a5fa26}@media(prefers-reduced-motion:reduce){.today-view--is-today .today-view__date-row:before,.today-view--is-today .today-view__countdown-label:before{animation:none;opacity:.7}}.today-view__coach-note{padding:.7rem .85rem;margin:.5rem 0;background:#8b5cf60f;border:1px solid rgba(139,92,246,.15);border-radius:var(--radius);animation:fadeInUp .4s ease both}.today-view__unplanned-workout{display:flex;align-items:flex-start;gap:.55rem;padding:.7rem .85rem;margin:.5rem 0;background:#fefaf2;border:1px solid rgba(245,158,11,.35);border-left:3px solid #f59e0b;border-radius:8px;animation:fadeInUp .4s ease both}.today-view__unplanned-workout>svg{flex:none;margin-top:.15rem;color:#f59e0b}.today-view__unplanned-workout-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.today-view__unplanned-workout-title{font-size:.78rem;font-weight:600;color:#b45309}.today-view__unplanned-workout-desc{font-size:.82rem;line-height:1.45;color:#78350f}[data-theme=dark] .today-view__unplanned-workout{background:#1f1a0f;border-color:#f59e0b66;border-left-color:#f59e0b}[data-theme=dark] .today-view__unplanned-workout-title{color:#fbbf24}[data-theme=dark] .today-view__unplanned-workout-desc{color:#ffffffd9}.today-view__unplanned-workout-btn{align-self:flex-start;margin-top:.4rem;padding:.35rem .75rem;font-family:var(--font);font-size:.78rem;font-weight:600;color:#fff;background:#f59e0b;border:1px solid #d97706;border-radius:var(--radius-sm);cursor:pointer;transition:none}.today-view__unplanned-workout-btn--pressed,.today-view__unplanned-workout-btn:active{background:#d97706;transition:none}@media(hover:hover){.today-view__unplanned-workout-btn:hover{background:#d97706}}.today-view__unplanned-workout-btn-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.today-view__unplanned-workout-btn-row .today-view__unplanned-workout-btn{margin-top:0}.today-view__unplanned-workout-btn--secondary{color:#b45309;background:transparent;border:1px solid rgba(245,158,11,.5)}.today-view__unplanned-workout-btn--secondary:active,.today-view__unplanned-workout-btn--secondary.today-view__unplanned-workout-btn--pressed{background:#f59e0b26}@media(hover:hover){.today-view__unplanned-workout-btn--secondary:hover{background:#f59e0b26}}[data-theme=dark] .today-view__unplanned-workout-btn--secondary{color:#fbbf24;border-color:#f59e0b80}.today-view__coach-note-header{display:flex;align-items:center;gap:.35rem;color:#8b5cf6cc;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.today-view__coach-note-text{margin:0;font-size:.85rem;line-height:1.5;color:var(--color-text);white-space:pre-wrap}[data-theme=dark] .today-view__coach-note{background:#8b5cf61a;border-color:#8b5cf633}[data-theme=dark] .today-view__coach-note-text{color:#ffffffe6}.today-view__coach-note--editable{cursor:pointer;transition:background .15s ease,border-color .15s ease}@media(hover:hover){.today-view__coach-note--editable:hover{background:#8b5cf61a;border-color:#8b5cf640}[data-theme=dark] .today-view__coach-note--editable:hover{background:#8b5cf629;border-color:#8b5cf64d}}.today-view__coach-note--editable:active,.today-view__coach-note--editable.today-view__coach-note--pressed{background:#8b5cf61a;border-color:#8b5cf640;transition:none}[data-theme=dark] .today-view__coach-note--editable:active,[data-theme=dark] .today-view__coach-note--editable.today-view__coach-note--pressed{background:#8b5cf629;border-color:#8b5cf64d}.today-view__coach-note-edit-hint{margin-left:auto;font-weight:500;font-size:.65rem;opacity:.5;letter-spacing:.02em;text-transform:none}.today-view__coach-note--editing{padding-bottom:.5rem}.today-view__coach-note-textarea{display:block;width:100%;padding:.5rem .6rem;border:1px solid rgba(139,92,246,.2);border-radius:calc(var(--radius) - 2px);background:#ffffff80;color:var(--color-text);font-size:.85rem;line-height:1.5;font-family:inherit;resize:vertical;min-height:3.2rem;outline:none;transition:border-color .15s ease}.today-view__coach-note-textarea:focus{border-color:#8b5cf673}[data-theme=dark] .today-view__coach-note-textarea{background:#0003;border-color:#8b5cf640}[data-theme=dark] .today-view__coach-note-textarea:focus{border-color:#8b5cf680}.today-view__coach-note-actions{display:flex;gap:.4rem;margin-top:.4rem}.today-view__coach-note-btn{padding:.3rem .7rem;border:none;border-radius:calc(var(--radius) - 2px);font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}.today-view__coach-note-btn:active{opacity:.8;transition:none}.today-view__coach-note-btn--save{background:#8b5cf6d9;color:#fff}.today-view__coach-note-btn--cancel{background:#8b5cf61a;color:#8b5cf6cc}[data-theme=dark] .today-view__coach-note-btn--cancel{background:#8b5cf626;color:#8b5cf6e6}.today-view__coach-note-add{display:flex;align-items:center;gap:.4rem;width:100%;padding:.6rem .85rem;margin:.5rem 0;border:1px dashed rgba(139,92,246,.25);border-radius:var(--radius);background:transparent;color:#8b5cf68c;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;animation:fadeInUp .4s ease both}[data-theme=dark] .today-view__coach-note-add{color:#8b5cf680;border-color:#8b5cf633}@media(hover:hover){.today-view__coach-note-add:hover{background:#8b5cf60f;color:#8b5cf6bf;border-color:#8b5cf659}[data-theme=dark] .today-view__coach-note-add:hover{background:#8b5cf61a;color:#8b5cf6b3;border-color:#8b5cf64d}}.today-view__coach-note-add:active,.today-view__coach-note-add.today-view__coach-note-add--pressed{background:#8b5cf60f;color:#8b5cf6bf;border-color:#8b5cf659;transition:none}[data-theme=dark] .today-view__coach-note-add:active,[data-theme=dark] .today-view__coach-note-add.today-view__coach-note-add--pressed{background:#8b5cf61a;color:#8b5cf6b3;border-color:#8b5cf64d}.session-pills{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.625rem;position:relative}.session-pill{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.55rem .7rem .6rem;display:flex;flex-direction:column;gap:.2rem;cursor:pointer;position:relative;text-align:left;color:var(--color-text);transition:border-color .15s,box-shadow .15s}.session-pill.is-on{border-color:var(--color-primary);background:linear-gradient(135deg,#60a5fa1a,#60a5fa0a);box-shadow:0 0 0 1px #60a5fa73,0 1px 8px #60a5fa2e}.session-pill__top{display:flex;align-items:center;gap:.5rem}.session-pill__top .session-pill__check{margin-left:auto}.session-pill__time{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.18em;color:var(--color-text-muted);text-transform:uppercase}.session-pill.is-on .session-pill__time{color:var(--color-primary)}.session-pill__check{width:14px;height:14px;display:grid;place-items:center;background:#4ade8033;color:var(--color-green);border-radius:50%;font-size:.55rem;font-weight:800;line-height:1}.session-pill__name{font-weight:700;font-size:.96rem;color:var(--color-text);letter-spacing:-.015em}.session-pill__miles{font-family:var(--font-mono);font-size:.74rem;color:var(--color-text-muted);font-weight:600;margin-top:.05rem}.session-pill__time--am:before,.session-pill__time--pm:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:.4rem;vertical-align:middle;background:currentColor;opacity:.6}.session-pill.is-am.is-on .session-pill__time--am:before,.session-pill.is-pm.is-on .session-pill__time--pm:before{background:var(--color-primary);opacity:1;box-shadow:0 0 6px var(--color-primary)}.session-pill--drop-target{border-color:#22c55e99!important;background:#22c55e12!important;box-shadow:0 0 0 1px #22c55e4d,0 2px 8px #22c55e1a!important;cursor:crosshair}@media(hover:hover){.session-pill--drop-target:hover{border-color:#22c55ee6!important;background:#22c55e21!important;box-shadow:0 0 0 2px #22c55e80,0 4px 12px #22c55e26!important}}.session-pill__drop-hint{margin-left:auto;font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#22c55ecc}.session-mode{display:inline-flex;background:#0f172a8c;border:1px solid var(--color-border);border-radius:999px;padding:2px;gap:1px}.session-mode button{padding:4px 11px;background:transparent;border:0;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;border-radius:999px;line-height:1}.session-mode button.is-on{background:var(--color-primary);color:#fff;box-shadow:0 1px 3px #60a5fa66}.compliance-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.875rem 0 .625rem;padding:.625rem .875rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);position:relative}.compliance-row__lbl{font-family:var(--font-mono);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.compliance-row__lbl em{font-style:normal;color:var(--color-text-secondary, var(--color-text));font-weight:600;margin-left:.5rem;letter-spacing:.02em;text-transform:lowercase}.compliance-opt{display:inline-flex;background:#0f172a80;border:1px solid var(--color-border);border-radius:999px;padding:3px;gap:2px}.compliance-opt button{width:30px;height:26px;padding:0;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;display:grid;place-items:center;border-radius:999px;line-height:0}.compliance-opt button svg{display:block}.compliance-opt button.is-on{background:var(--color-primary);color:#fff;box-shadow:0 1px 4px #60a5fa73}.compliance-row--readonly .compliance-opt button{cursor:default}.compliance-row--readonly .compliance-opt button:not(.is-on){opacity:.35}.compliance-row--readonly .compliance-opt button[disabled]{pointer-events:none}.day-menu{position:relative;display:inline-block}.day-menu__trigger{background:transparent;border:0;border-radius:999px;width:26px;height:26px;padding:0;display:grid;place-items:center;cursor:pointer;color:var(--color-text-muted);opacity:.7;transition:opacity .15s ease,background .15s ease,color .15s ease}.day-menu__trigger[aria-expanded=true]{opacity:1;color:var(--color-text);background:#94a3b81f}.day-menu__trigger:active,.day-menu__trigger.day-menu__trigger--pressed{opacity:1;color:var(--color-text);background:#94a3b82e;transition:none}@media(hover:hover){.day-menu__trigger:hover{opacity:1;color:var(--color-text);background:#94a3b81f}}.day-menu__sheet{min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .18));padding:4px;z-index:1000;display:flex;flex-direction:column}.day-menu__item{background:transparent;border:0;text-align:left;padding:.55rem .75rem;font-size:.85rem;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);font-weight:500;display:flex;align-items:center;gap:.6rem;width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;transition:background .15s ease,color .15s ease}.day-menu__item-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0;transition:color .15s ease}.day-menu__item.is-destructive .day-menu__item-icon{color:var(--color-orange)}.day-menu__item-label{flex:1}@media(hover:hover){.day-menu__item:hover:not(:disabled){background:#60a5fa1a}.day-menu__item:hover:not(:disabled) .day-menu__item-icon{color:var(--color-text)}.day-menu__item.is-destructive:hover:not(:disabled){background:#fb923c1a}}.day-menu__item:active:not(:disabled),.day-menu__item--pressed:not(:disabled){background:#60a5fa1a;transition:none}.day-menu__item:active:not(:disabled) .day-menu__item-icon,.day-menu__item--pressed:not(:disabled) .day-menu__item-icon{color:var(--color-text);transition:none}.day-menu__item.is-destructive:active:not(:disabled),.day-menu__item.is-destructive.day-menu__item--pressed:not(:disabled){background:#fb923c1a;transition:none}.day-menu__item:disabled{opacity:.4;cursor:not-allowed}.day-menu__item.is-destructive{color:var(--color-orange)}.day-menu__item-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);margin-left:auto}.day-menu__item--back{color:var(--color-text-muted);font-size:.8rem;margin-bottom:2px}.day-menu__item--back .day-menu__item-icon{color:var(--color-text-muted)}.today-view__swipe-layer{margin-left:-2rem;margin-right:-2rem;padding-left:2rem;padding-right:2rem}.today-view-adjacent-portal{position:fixed;inset:0;padding-left:1rem;padding-right:1rem;background:var(--color-bg);pointer-events:none;z-index:10;overflow:hidden}.today-view-adjacent-portal .today-view{margin-top:0}.replan-confirm-backdrop{animation:backdrop-in .3s cubic-bezier(.22,1,.36,1) forwards}.replan-confirm--leaving.replan-confirm-backdrop{animation:backdrop-out .25s ease forwards}@keyframes backdrop-out{to{opacity:0}}.replan-confirm{text-align:center;max-width:380px;padding:2rem 1.75rem 1.5rem}.replan-confirm--leaving .replan-confirm{animation:replan-confirm-exit .25s ease forwards}@keyframes replan-confirm-exit{to{opacity:0;transform:scale(.95)}}.replan-confirm__icon-ring{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ef444414;color:#ef4444;border:1.5px solid rgba(239,68,68,.15)}.replan-confirm__title{font-family:var(--font-heading, var(--font));font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 .6rem;letter-spacing:-.01em}.replan-confirm__body{font-family:var(--font);font-size:.85rem;color:var(--color-text-secondary);line-height:1.55;margin:0 0 1rem}.replan-confirm__body strong{color:var(--color-text);font-weight:600}.replan-confirm__warning{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:20px;background:#ef44440f;border:1px solid rgba(239,68,68,.12);color:#ef4444;font-family:var(--font);font-size:.72rem;font-weight:600;letter-spacing:.02em;margin-bottom:1.25rem}.replan-confirm__actions{display:flex;gap:.6rem}.replan-confirm__btn{flex:1;font-family:var(--font);font-size:.82rem;font-weight:600;padding:.6rem 1rem;border-radius:var(--radius-sm, 8px);border:none;cursor:pointer;transition:all .15s ease}.replan-confirm__btn--cancel{background:var(--color-border);color:var(--color-text-secondary)}@media(hover:hover){.replan-confirm__btn--cancel:hover{background:var(--color-text-muted);color:var(--color-text)}}.replan-confirm__btn--cancel:active,.replan-confirm__btn--cancel.replan-confirm__btn--pressed{background:var(--color-text-muted);color:var(--color-text);transition:none}.replan-confirm__btn--confirm{background:#ef4444;color:#fff}@media(hover:hover){.replan-confirm__btn--confirm:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}}.replan-confirm__btn--confirm:active,.replan-confirm__btn--confirm.replan-confirm__btn--pressed{background:#dc2626;box-shadow:0 2px 8px #ef44444d;transition:none}.replan-confirm__btn--confirm:active{transform:translateY(0)}.replan-confirm__btn:disabled{cursor:default;opacity:.85}.replan-confirm__btn--cancel:disabled{opacity:.5}@media(hover:hover){.replan-confirm__btn:disabled:hover{background:#ef4444;transform:none;box-shadow:none}.replan-confirm__btn--cancel:disabled:hover{background:var(--color-border);color:var(--color-text-secondary)}}.replan-confirm__btn-loading{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.replan-confirm__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}[data-theme=dark] .replan-confirm__icon-ring{background:#ef44441a;border-color:#ef444433}[data-theme=dark] .replan-confirm__warning{background:#ef444414;border-color:#ef44442e}[data-theme=dark] .replan-confirm__btn--cancel{background:#33415599}@media(hover:hover){[data-theme=dark] .replan-confirm__btn--cancel:hover{background:#475569b3}}.confirm-dialog-backdrop{animation:backdrop-in .25s cubic-bezier(.22,1,.36,1) forwards}.confirm-dialog--leaving.confirm-dialog-backdrop{animation:confirm-backdrop-out .22s ease forwards}@keyframes confirm-backdrop-out{to{opacity:0}}.modal-content.confirm-dialog{text-align:center;max-width:360px;height:auto;max-height:calc(100vh - 2rem);border-radius:var(--radius-lg, 16px);padding:1.75rem 1.5rem 1.5rem;animation:confirm-dialog-in .3s cubic-bezier(.22,1,.36,1) forwards}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog--leaving .confirm-dialog{animation:confirm-dialog-out .22s ease forwards}@keyframes confirm-dialog-out{to{opacity:0;transform:scale(.96)}}@media(max-width:600px){.modal-backdrop.confirm-dialog-backdrop,[data-theme=dark] .modal-backdrop.confirm-dialog-backdrop{background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.confirm-dialog__icon-ring{width:52px;height:52px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#3b82f614;color:var(--color-primary);border:1.5px solid rgba(59,130,246,.18)}.confirm-dialog--destructive .confirm-dialog__icon-ring{background:#ef444414;color:#ef4444;border-color:#ef44442e}.confirm-dialog__title{font-family:var(--font-heading, var(--font));font-size:1.125rem;font-weight:700;color:var(--color-text);margin:0 0 .6rem;letter-spacing:-.01em}.confirm-dialog__body{font-family:var(--font);font-size:.875rem;color:var(--color-text-secondary);line-height:1.5;margin:0 0 1.25rem}.confirm-dialog__actions{display:flex;gap:.6rem}.confirm-dialog__btn{flex:1;font-family:var(--font);font-size:.875rem;font-weight:600;padding:.65rem 1rem;min-height:2.4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 8px);border:none;cursor:pointer;transition:all .15s ease}.confirm-dialog__btn:disabled{cursor:default;opacity:.85;transform:none!important;box-shadow:none!important}.confirm-dialog__btn-busy{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1}.confirm-dialog__btn--cancel{background:var(--color-border);color:var(--color-text-secondary)}@media(hover:hover){.confirm-dialog__btn--cancel:hover{background:var(--color-text-muted);color:var(--color-text)}}.confirm-dialog__btn--confirm{background:var(--color-primary);color:#fff}.confirm-dialog--destructive .confirm-dialog__btn--confirm{background:#ef4444}@media(hover:hover){.confirm-dialog__btn--confirm:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.confirm-dialog--destructive .confirm-dialog__btn--confirm:hover{box-shadow:0 2px 8px #ef44444d}}[data-theme=dark] .confirm-dialog__btn--cancel{background:#33415599}[data-theme=dark] .confirm-dialog__icon-ring{background:#3b82f61f;border-color:#3b82f640}[data-theme=dark] .confirm-dialog--destructive .confirm-dialog__icon-ring{background:#ef44441f;border-color:#ef444438}.loading-overlay{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 20%,rgba(59,130,246,.1),transparent 55%),radial-gradient(ellipse at 50% 100%,rgba(6,182,212,.07),transparent 55%),#f8fafcf5;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.25rem;z-index:100;animation:fade-in .2s ease}.loading-card{width:min(360px,100%);text-align:center;animation:loading-card-in .4s cubic-bezier(.2,.8,.2,1)}.loading-mark{display:flex;justify-content:center;margin:0 auto 1.5rem}.loading-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--color-text);margin:0 0 .4rem}.loading-status{font-size:.92rem;color:var(--color-text-secondary);margin:0;min-height:1.3em;animation:status-swap 3.5s ease-in-out}@keyframes status-swap{0%{opacity:0;transform:translateY(4px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:.85;transform:translateY(0)}}@keyframes loading-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:420px){.loading-title{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.loading-card,.loading-status{animation:none}}[data-theme=dark] .loading-overlay{background:radial-gradient(ellipse at 50% 20%,rgba(96,165,250,.12),transparent 55%),radial-gradient(ellipse at 50% 100%,rgba(6,182,212,.1),transparent 55%),#0f172af5}.history-toolbar{display:inline-flex;align-items:stretch;height:1.95rem;border-radius:999px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:inset 0 1px #ffffff80,0 1px 2px #0f172a0a;font-family:var(--font);overflow:hidden;isolation:isolate}[data-theme=dark] .history-toolbar{background:color-mix(in srgb,var(--color-surface) 70%,transparent);border-color:color-mix(in srgb,var(--color-border) 80%,transparent);box-shadow:inset 0 1px #ffffff0a,0 1px 2px #0000004d}.history-toolbar__btn{appearance:none;border:none;background:transparent;color:var(--color-text-secondary);display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;font-family:inherit;font-size:.72rem;font-weight:600;letter-spacing:.005em;cursor:pointer;transition:background .15s ease,color .15s ease;position:relative;height:100%;line-height:1}.history-toolbar__btn:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.55}.history-toolbar__btn:focus{outline:none}.history-toolbar__btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.history-toolbar__btn svg{transition:transform .25s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}@media(hover:hover){.history-toolbar__btn:not(:disabled):hover{background:color-mix(in srgb,var(--color-primary) 9%,transparent);color:var(--color-primary)}.history-toolbar__btn--undo:not(:disabled):hover svg{transform:rotate(-14deg)}.history-toolbar__btn--redo:not(:disabled):hover svg{transform:rotate(14deg)}}.history-toolbar__btn:not(:disabled):active{background:color-mix(in srgb,var(--color-primary) 16%,transparent);transition:none}.history-toolbar__btn--mid{padding:0 .5rem}.history-toolbar__btn--mid:before,.history-toolbar__btn--mid:after{content:"";position:absolute;top:22%;bottom:22%;width:1px;background:var(--color-border);pointer-events:none}.history-toolbar__btn--mid:before{left:0}.history-toolbar__btn--mid:after{right:0}[data-theme=dark] .history-toolbar__btn--mid:before,[data-theme=dark] .history-toolbar__btn--mid:after{background:color-mix(in srgb,var(--color-border) 60%,transparent)}.history-toolbar__btn--mid.is-active{background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary)}.history-toolbar__unread{position:absolute;top:5px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px color-mix(in srgb,var(--color-primary) 25%,transparent);animation:history-unread-pulse 2.2s ease-in-out infinite}@keyframes history-unread-pulse{0%,to{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px color-mix(in srgb,var(--color-primary) 25%,transparent)}50%{box-shadow:0 0 0 2px var(--color-surface),0 0 0 6px color-mix(in srgb,var(--color-primary) 10%,transparent)}}@media(prefers-reduced-motion:reduce){.history-toolbar__unread{animation:none}}.history-toolbar__label{line-height:1}@media(max-width:480px){.history-toolbar__label{display:none}.history-toolbar__btn{padding:0 .65rem}}.history-popover{position:fixed;z-index:200;width:min(360px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 120px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 0 0 1px #0f172a08,0 20px 50px -20px #0f172a40,0 8px 16px -8px #0f172a1a;display:flex;flex-direction:column;overflow:hidden;animation:history-popover-in .18s cubic-bezier(.2,.8,.2,1);transform-origin:top right}[data-theme=dark] .history-popover{background:var(--color-surface);box-shadow:0 0 0 1px #ffffff08,0 20px 50px -20px #000000b3,0 8px 16px -8px #00000059}@keyframes history-popover-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.history-popover__head{display:flex;justify-content:space-between;align-items:baseline;padding:.85rem 1rem .7rem;border-bottom:1px solid var(--color-border);background:linear-gradient(to bottom,color-mix(in srgb,var(--color-primary) 4%,transparent),transparent)}.history-popover__title{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--color-text);letter-spacing:-.015em;display:flex;align-items:center;gap:.5rem}.history-popover__title:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.history-popover__meta{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.history-popover__list{flex:1;overflow-y:auto;padding:.25rem 0 .5rem;overflow-x:hidden}.history-popover__list::-webkit-scrollbar{width:6px}.history-popover__list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.history-popover__empty{padding:2.5rem 1.5rem;font-size:.85rem;text-align:center;color:var(--color-text-muted);line-height:1.55;font-family:var(--font-heading);font-style:italic}.history-popover__foot{padding:.65rem 1rem;border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 60%,transparent);display:flex;justify-content:space-between;align-items:center}.history-popover__hint{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase}.history-popover__hint kbd{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);border-bottom-width:1.5px;border-radius:4px;padding:.1rem .32rem;margin:0 1px;color:var(--color-text);font-size:.62rem;font-weight:600}.history-entry{display:grid;grid-template-columns:24px 1fr;gap:.55rem;padding:.65rem 1rem .65rem .85rem;align-items:start;position:relative;transition:background .12s ease}.history-entry:not(.is-locked){cursor:default}.history-entry:hover{background:color-mix(in srgb,var(--color-primary) 4%,transparent)}button.history-entry{border:none;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}button.history-entry:focus{outline:none}button.history-entry:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.history-entry.is-clickable:hover{background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.history-entry.is-clickable:active{background:color-mix(in srgb,var(--color-primary) 14%,transparent)}.history-entry:before{content:"";position:absolute;left:calc(.85rem + 11.5px);top:0;bottom:0;width:1.5px;background:var(--color-border);z-index:0}.history-entry:first-child:before{top:1rem}.history-entry:last-child:before{bottom:1rem}.history-entry.is-next{background:linear-gradient(to right,color-mix(in srgb,var(--color-primary) 12%,transparent),color-mix(in srgb,var(--color-primary) 4%,transparent) 60%,transparent)}.history-entry.is-next:after{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2.5px;border-radius:2px;background:var(--color-primary)}.history-entry.is-ghost{opacity:.5}.history-entry.is-ghost .history-entry__what{color:var(--color-text-secondary);font-style:italic}.history-entry.is-locked .history-entry__what{color:var(--color-text-secondary)}.history-entry__dot{width:11px;height:11px;border-radius:50%;margin-top:5px;justify-self:center;flex-shrink:0;border:2px solid var(--color-primary);background:var(--color-surface);z-index:1;position:relative;box-shadow:0 0 0 2.5px var(--color-surface)}.history-entry__dot--coach{border-color:var(--color-text-secondary);background:var(--color-text-secondary)}.history-entry__dot--athlete{border-color:var(--color-primary);background:var(--color-surface)}.history-entry__dot.is-next{background:var(--color-primary);border-color:var(--color-primary);width:13px;height:13px;margin-top:4px;box-shadow:0 0 0 2.5px var(--color-surface),0 0 0 5.5px color-mix(in srgb,var(--color-primary) 22%,transparent)}.history-entry__dot.is-ghost{border-style:dashed;background:var(--color-surface);border-color:var(--color-text-muted)}.history-entry__dot.is-locked{border-color:var(--color-text-muted);background:var(--color-text-muted);width:9px;height:9px;margin-top:6px}.history-entry__body{min-width:0;padding-top:1px}.history-entry__main{font-size:.85rem;line-height:1.4;color:var(--color-text);display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.history-entry__who{font-family:var(--font-mono);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);padding:.1rem .42rem;border-radius:3px;background:color-mix(in srgb,var(--color-text-muted) 12%,transparent)}.history-entry__who--athlete{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.history-entry__who--coach{color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-text-secondary) 12%,transparent)}.history-entry__author{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.history-entry__name{font-size:.78rem;font-weight:600;letter-spacing:-.005em;font-family:var(--font);max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-entry__name--athlete{color:var(--color-primary)}.history-entry__name--coach{color:var(--color-text)}.history-entry__role{font-family:var(--font-mono);font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;padding:.08rem .36rem;border-radius:3px;flex-shrink:0}.history-entry__role--athlete{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.history-entry__role--coach{color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-text-secondary) 12%,transparent)}.history-entry__what{font-weight:600;color:var(--color-text);font-family:var(--font-heading);letter-spacing:-.005em}.history-entry__lock{color:var(--color-text-muted);flex-shrink:0}.history-entry__detail{font-size:.74rem;color:var(--color-text-secondary);margin-top:.2rem;line-height:1.4}.history-entry__time{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;color:var(--color-text-muted);margin-top:.3rem;font-variant-numeric:tabular-nums}.history-popover__handle{display:none}@media(max-width:640px){.history-popover{position:fixed;left:0;right:0!important;bottom:0;top:auto!important;width:auto;max-height:78vh;border-radius:18px 18px 0 0;border-bottom:none;padding-bottom:env(safe-area-inset-bottom);transform-origin:bottom center;animation:history-sheet-in .24s cubic-bezier(.2,.9,.2,1)}.history-popover__handle{display:block;position:relative;height:18px;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.history-popover__handle:before{content:"";position:absolute;top:7px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:2px;background:var(--color-border)}.history-popover__head{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}}@keyframes history-sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.month-nav{display:flex;justify-content:flex-end;align-items:center;padding:.5rem 0 .25rem}@media(max-width:768px){.week-nav-subtitle-row{flex-wrap:wrap;justify-content:center;row-gap:.5rem}.week-nav-subtitle-row>.week-nav-subtitle{order:1}.week-nav-subtitle-row:after{content:"";flex-basis:100%;height:0;order:2}.week-nav-subtitle-row>:not(.week-nav-subtitle){order:3}}@media(prefers-reduced-motion:reduce){.history-toolbar__btn svg,.history-popover,.history-entry{transition:none!important;animation:none!important}}.schedule-override__options{display:flex;flex-direction:column;gap:.5rem}.schedule-override__option{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .15s ease;text-align:left;font-family:var(--font);flex-wrap:wrap}.schedule-override__option--selected{border-color:var(--color-accent);background:#3b82f60a}@media(hover:hover){.schedule-override__option:hover:not(.schedule-override__option--selected){border-color:var(--color-text-muted)}}.schedule-override__option:active:not(.schedule-override__option--selected),.schedule-override__option.schedule-override__option--pressed:not(.schedule-override__option--selected){border-color:var(--color-text-muted);transition:none}.schedule-override__option-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--color-text-secondary);background:#0000000a;margin-top:1px}.schedule-override__option--selected .schedule-override__option-icon{color:var(--color-accent);background:#3b82f614}.schedule-override__option-label{font-size:.88rem;font-weight:600;color:var(--color-text);width:calc(100% - 40px)}.schedule-override__option-desc{font-size:.78rem;color:var(--color-text-secondary);width:calc(100% - 40px);margin-top:-2px}.schedule-override__summary{font-size:.8rem;color:var(--color-text-secondary);padding:.45rem .7rem;background:#3b82f60a;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.1);text-align:center}[data-theme=dark] .schedule-override__option{background:#ffffff05}[data-theme=dark] .schedule-override__option--selected{background:#3b82f60f}[data-theme=dark] .schedule-override__option-icon{background:#ffffff0f}[data-theme=dark] .schedule-override__option--selected .schedule-override__option-icon{background:#3b82f61f}[data-theme=dark] .schedule-override__summary{background:#3b82f60f;border-color:#3b82f626}.upload-backdrop{z-index:250}.upload-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.75rem;max-width:460px;width:100%;box-shadow:var(--shadow-lg),0 0 60px #0000001f;animation:scale-in .35s cubic-bezier(.34,1.56,.64,1);position:relative;display:flex;flex-direction:column;gap:1rem;max-height:85vh;overflow-y:auto}.upload-modal__header{display:flex;align-items:center;gap:.75rem}.upload-modal__icon-ring{width:36px;height:36px;border-radius:10px;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.upload-modal__title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--color-text)}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:2rem 1.5rem;cursor:pointer;transition:border-color .2s,background .2s,transform .15s;position:relative;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.upload-zone:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 23px,var(--color-border) 23px,var(--color-border) 24px),repeating-linear-gradient(90deg,transparent,transparent 23px,var(--color-border) 23px,var(--color-border) 24px);opacity:.15;pointer-events:none;transition:opacity .2s}@media(hover:hover){.upload-zone:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.upload-zone:hover:before{opacity:0}}.upload-zone:active,.upload-zone--pressed{border-color:var(--color-primary);background:var(--color-primary-light);transition:none}.upload-zone:active:before,.upload-zone--pressed:before{opacity:0;transition:none}.upload-zone--active{border-color:var(--color-primary);background:var(--color-primary-light);transform:scale(1.01);border-style:solid}.upload-zone--active:before{opacity:0}.upload-zone--compact{padding:.75rem 1rem}.upload-zone--compact:before{display:none}.upload-zone__input{display:none}.upload-zone__content{display:flex;flex-direction:column;align-items:center;gap:.75rem;position:relative;z-index:1}.upload-zone__content--compact{flex-direction:row;gap:.5rem;justify-content:center}.upload-zone__icon{color:var(--color-text-muted);transition:color .2s,transform .2s}.upload-zone--active .upload-zone__icon{color:var(--color-primary);transform:translateY(-2px)}@media(hover:hover){.upload-zone:hover .upload-zone__icon{color:var(--color-primary);transform:translateY(-2px)}.upload-zone--compact:hover .upload-zone__icon{transform:none}}.upload-zone__text{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.upload-zone--compact .upload-zone__text{font-size:.8rem}.upload-zone__formats{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.25rem}.upload-zone__format-chip{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:6px;background:var(--color-bg);border:1px solid var(--color-border);font-size:.7rem;color:var(--color-text-secondary)}.upload-zone__format-label{font-family:var(--font-mono);font-weight:600;font-size:.7rem;color:var(--color-text)}.upload-zone__format-desc{font-size:.65rem;color:var(--color-text-muted)}.upload-parsing{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem}.upload-parsing__spinner{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.upload-parsing__text{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.upload-file-list{display:flex;flex-direction:column;gap:.5rem}.upload-file-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.35rem;animation:fade-in .15s ease}.upload-file-item--error{border-color:var(--color-red)}.upload-file-item--failed{border-color:var(--color-red);opacity:.7}.upload-file-item__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.upload-file-item__name-row{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.upload-file-item__filename{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-item__format{font-family:var(--font-mono);font-size:.6rem;padding:.1rem .35rem;border-radius:3px;background:var(--color-primary-light);color:var(--color-primary);font-weight:700;flex-shrink:0}.upload-file-item__remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.2rem;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}@media(hover:hover){.upload-file-item__remove:hover{color:var(--color-red);background:var(--color-red-light)}}.upload-file-item__remove:active,.upload-file-item__remove.upload-file-item__remove--pressed{color:var(--color-red);background:var(--color-red-light);transition:none}.upload-file-item__meta{display:flex;align-items:baseline;gap:.4rem}.upload-file-item__date{font-family:var(--font-heading);font-weight:700;font-size:.8rem;color:var(--color-text)}.upload-file-item__time{font-size:.7rem;color:var(--color-text-muted)}.upload-file-item__stats{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);font-weight:500}.upload-file-item__dot{color:var(--color-text-muted)}.upload-file-item__error{font-size:.75rem;color:var(--color-red)}.upload-preview__actions{display:flex;gap:.5rem;justify-content:flex-end}.upload-preview__btn.upload-preview__btn{font-family:var(--font);font-size:.8rem;font-weight:600;padding:.5rem 1rem}.upload-preview__btn:disabled{opacity:.4;cursor:not-allowed}.upload-preview__out-of-range{font-size:.75rem;color:var(--color-red);background:var(--color-red-light);border-radius:var(--radius-sm);padding:.35rem .5rem;line-height:1.4;margin-top:.15rem}.upload-preview__duplicate-warning{font-size:.75rem;color:var(--color-amber, #d97706);background:#d977061a;border-radius:var(--radius-sm);padding:.35rem .5rem;line-height:1.4;margin-top:.15rem}@media(max-width:480px){.upload-modal{max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:fixed;bottom:0;left:0;right:0;max-height:85vh;overflow-y:auto;animation:slide-up .3s cubic-bezier(.22,1,.36,1)}.upload-zone{padding:1.5rem 1rem}.upload-zone__formats{gap:.35rem}}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.plan-view{animation:fade-in .3s ease;isolation:isolate}.plan-toolbar{max-width:1200px;margin:0 auto;padding:1rem 1rem .5rem}.plan-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.375rem;position:relative;z-index:50}.plan-header__left{display:inline-flex;align-items:center}.plan-header__right{display:flex;align-items:center;margin-left:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1875rem}.plan-header__context{display:none}@media(min-width:769px){.plan-header__context{display:inline-flex;align-items:baseline;gap:.5rem;margin:0 auto;padding:0 1rem;min-width:0;font-size:.8125rem;color:var(--color-text-secondary);line-height:1;white-space:nowrap}.plan-header__right{margin-left:0}.plan-header__context-plan{color:var(--color-text);font-family:var(--font-heading);font-weight:600;font-size:.9375rem;letter-spacing:-.01em}.plan-header__context-sep{color:var(--color-text-muted);opacity:.55}.plan-header__context-week{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.plan-header__context-week strong{color:var(--color-text);font-weight:600}}.plan-header__right .cal-controls,.plan-header__right .history-toolbar{border:none;background:none;padding:0;border-radius:0;box-shadow:none;height:auto}.plan-header__right .history-toolbar__btn,.plan-header__nav-mobile .history-toolbar__btn{height:34px;padding:0 .6rem}.plan-header__nav-mobile{display:none}.plan-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.375rem .875rem;font-size:.8rem;color:var(--color-text-secondary);box-shadow:var(--shadow-sm)}.plan-chip strong{color:var(--color-text);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.plan-info-dropdown{position:relative}.plan-header__info-mobile{display:none}.plan-info-panel{position:absolute;top:calc(100% + .5rem);left:0;z-index:20;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 95%,transparent);border:1px solid rgba(139,92,246,.25);border-radius:var(--radius);box-shadow:0 4px 16px #8b5cf61f;padding:.5rem 0;min-width:220px;animation:fade-in .15s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.plan-info-panel__section+.plan-info-panel__section{margin-top:.4rem;padding-top:.35rem;border-top:1px solid rgba(139,92,246,.18)}.plan-info-panel__section-head{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 1rem .15rem;font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}.plan-info-panel__section-sub{font-size:.6rem;letter-spacing:.08em;text-transform:none;font-family:var(--font);color:var(--color-text-muted)}.plan-info-panel__row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 1rem;font-size:.825rem;color:var(--color-text-secondary)}.plan-info-panel__row strong{color:var(--color-text);font-family:var(--font-mono);font-variant-numeric:tabular-nums}@keyframes gradient-pulse{0%{background-position:0% 50%;box-shadow:0 0 8px #8b5cf633}50%{background-position:100% 50%;box-shadow:0 0 20px #ec489959}to{background-position:0% 50%;box-shadow:0 0 8px #8b5cf633}}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)}}.day-card{touch-action:none}.month-view__week{position:relative;padding-left:12px}.day-card--zone-highlight{outline:2px solid var(--color-primary);outline-offset:2px;z-index:2;transition:outline-offset .2s ease,outline-color .2s ease}.day-card:not(.day-card--zone-highlight).day-card--zone-dimmed{opacity:.45;transition:opacity .2s ease}.paces-panel__row--hoverable{cursor:default;border-radius:var(--radius-sm);transition:background .15s ease}@media(hover:hover){.paces-panel__row--hoverable:hover{background:#8b5cf61a}}.paces-panel__row--hoverable:active{background:#8b5cf61a;transition:none}@media(prefers-reduced-motion:reduce){.week-grid .day-card{animation:none}.month-view__week{opacity:1;transform:none}.month-view__week--revealed,.day-card--today,.day-card__checkbox--checked{animation:none}}.phase-progress{display:flex;align-items:center;gap:.625rem;margin:0}.phase-progress__bar{flex:1;position:relative;height:5px;border-radius:3px;overflow:hidden}.phase-progress__track{display:flex;width:100%;height:100%}.phase-progress__seg{min-width:0}.phase-progress__seg--base{background:#10b981}.phase-progress__seg--build{background:#f97316}.phase-progress__seg--peak{background:#ef4444}.phase-progress__seg--taper{background:#eab308}.phase-progress__seg--race{background:#d97706}.phase-progress__overlay{position:absolute;top:0;bottom:0;right:0;background:var(--color-bg);opacity:.6;pointer-events:none}.phase-progress__label{font-family:var(--font-heading);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;padding:.125rem .5rem;border-radius:999px;flex-shrink:0;transition:color .3s ease,background .3s ease}.phase-progress__label--base{color:#059669;background:#10b9811f}.phase-progress__label--build{color:#ea580c;background:#f973161f}.phase-progress__label--peak{color:#dc2626;background:#ef44441f}.phase-progress__label--taper{color:#ca8a04;background:#eab3081f}.phase-progress__label--race{color:#b45309;background:#d977061f}[data-theme=dark] .phase-progress__seg--base{background:#34d399}[data-theme=dark] .phase-progress__seg--build{background:#fb923c}[data-theme=dark] .phase-progress__seg--peak{background:#f87171}[data-theme=dark] .phase-progress__seg--taper{background:#fbbf24}[data-theme=dark] .phase-progress__seg--race{background:#f59e0b}[data-theme=dark] .phase-progress__overlay{opacity:.65}[data-theme=dark] .phase-progress__label--base{color:#6ee7b7;background:#34d39926}[data-theme=dark] .phase-progress__label--build{color:#fdba74;background:#fb923c26}[data-theme=dark] .phase-progress__label--peak{color:#fca5a5;background:#f8717126}[data-theme=dark] .phase-progress__label--taper{color:#fde68a;background:#fbbf2426}[data-theme=dark] .phase-progress__label--race{color:#fcd34d;background:#f59e0b26}@media(prefers-reduced-motion:reduce){.phase-progress__label{transition:none}}@media(max-width:480px){.phase-progress{padding:0 .25rem;gap:.375rem}.phase-progress__label{font-size:.5rem;padding:.0625rem .375rem}}.week-slide-container{position:relative;overflow:visible;padding:8px 0;margin:-8px 0}@keyframes week-slide-next{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes week-slide-prev{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes week-exit-next{0%{transform:translateY(0);opacity:1}to{transform:translateY(-30px);opacity:0}}@keyframes week-exit-prev{0%{transform:translateY(0);opacity:1}to{transform:translateY(30px);opacity:0}}.week-grid.week-grid--slide-next{animation:week-slide-next .25s ease-out}.week-grid.week-grid--slide-prev{animation:week-slide-prev .25s ease-out}.week-grid.week-grid--exit-next{position:absolute;top:0;left:0;right:0;animation:week-exit-next .25s ease-out forwards;pointer-events:none}.week-grid.week-grid--exit-prev{position:absolute;top:0;left:0;right:0;animation:week-exit-prev .25s ease-out forwards;pointer-events:none}.week-grid.week-grid--slide-next .day-card,.week-grid.week-grid--slide-prev .day-card,.week-grid.week-grid--exit-next .day-card,.week-grid.week-grid--exit-prev .day-card{animation:none}@media(prefers-reduced-motion:reduce){.week-grid--slide-next,.week-grid--slide-prev,.week-grid--exit-next,.week-grid--exit-prev{animation:none}}.paces-dropdown{position:relative}.plan-header__paces-mobile{display:none}.paces-panel{position:absolute;top:calc(100% + .5rem);left:0;z-index:20;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);border:1px solid rgba(139,92,246,.25);border-radius:var(--radius);box-shadow:0 4px 16px #8b5cf61f;padding:.5rem 0;min-width:220px;animation:fade-in .15s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.paces-panel__row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 1rem;font-size:.825rem;color:var(--color-text-secondary)}.paces-panel__row strong{color:var(--color-text);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.paces-panel--dual{min-width:340px}.paces-panel--dual .paces-panel__headers{display:grid;grid-template-columns:1fr auto auto;gap:1rem;padding:.4rem 1rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(139,92,246,.15)}.paces-panel--dual .paces-panel__row{display:grid;grid-template-columns:1fr auto auto;gap:1rem}.plan-actions .add-menu-dropdown{display:flex}.cal-controls{display:inline-flex;align-items:center;gap:.125rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1875rem}.cal-controls__divider{width:1px;height:20px;background:var(--color-border);margin:0 .1875rem}.cal-controls__btn{width:34px;height:34px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s,color .15s;padding:0}.cal-controls__btn>svg{pointer-events:none}@media(hover:hover){.cal-controls__btn:hover:not(:disabled):not(.cal-controls__btn--active){background:var(--color-bg);color:var(--color-text)}}.cal-controls__btn:active:not(:disabled):not(.cal-controls__btn--active),.cal-controls__btn.cal-controls__btn--pressed:not(:disabled):not(.cal-controls__btn--active){background:var(--color-bg);color:var(--color-text);transition:none}.cal-controls__btn:disabled{opacity:.25;cursor:not-allowed}.cal-controls__btn--active{background:var(--color-primary);color:#fff}.week-nav{display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.week-nav__arrow--mobile{display:none}.week-nav-info{text-align:center;flex:1}.week-nav-info h3{font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.week-nav-subtitle-row{display:inline-flex;align-items:center;gap:6px;margin-top:.25rem}.week-nav-subtitle{display:inline-flex;align-items:center;gap:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;padding:.25rem .875rem;font-size:.8rem;color:var(--color-text-secondary)}.week-nav-subtitle__mileage{color:var(--color-primary);font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;margin-left:.5rem;padding-left:.5rem;border-left:1px solid var(--color-border)}.week-nav-subtitle>.delta-chip{margin-left:.5rem}.week-nav-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.125rem .5rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}.week-nav-badge--recovery{background:var(--color-orange-light);color:var(--color-orange)}.week-nav-badge--taper{background:var(--color-green-light);color:var(--color-green)}.week-nav-badge--build{background:#dbeafe;color:#1e40af}.week-nav-badge--peak{background:#fef3c7;color:#92400e}.week-nav-badge--marathon{background:#fdf2f8;color:#be185d}.week-nav-badge--marathon-lr{background:#f0fdf4;color:#15803d}.week-nav-badge--race-week{background:#fce7f3;color:#9d174d}.week-grid{position:relative;display:grid;grid-template-columns:1fr;gap:.5rem}.week-grid .day-card{display:grid;grid-template-columns:5.5rem 1fr 14rem;grid-template-rows:auto;align-items:center;gap:0 .75rem;overflow:visible}.week-grid .day-card__rest-btn[data-tooltip]:after{left:0;--tip-tx: 0;white-space:nowrap}.week-grid .day-card__header{grid-column:1;margin-bottom:0;display:grid;grid-template-columns:2.25rem 1fr;align-items:center;gap:.5rem;white-space:nowrap}.week-grid .day-card__date-group{justify-self:start}.week-grid .day-card__date{font-size:.75rem}.week-grid .day-card__sessions{grid-column:2;flex-direction:column;gap:0}.week-grid .day-card__footer{grid-column:3;margin-top:0;justify-content:flex-end}.week-grid .day-card__miles{white-space:nowrap;text-align:left}@media(max-width:600px){.week-grid .day-card{padding:.4rem .625rem;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.125rem .5rem}.week-grid .day-card__header{grid-column:1;grid-row:1;display:grid;grid-template-columns:2.25rem 1fr;justify-content:start}.week-grid .day-card__footer{grid-column:2;grid-row:1;align-self:center;margin-top:0}.week-grid .day-card__sessions{grid-column:1 / -1;grid-row:2;min-width:0}.week-grid .day-card--race-day .day-card__race-label{display:none}.week-grid .day-card--race-day .day-card__header,.week-grid .day-card--race-day .day-card__footer{grid-row:1;align-self:center}.week-grid .day-card--race-day .day-card__sessions{grid-row:2}.week-grid{gap:.375rem}.week-grid .day-card__session--full{padding:.1875rem .375rem;gap:.0625rem}.week-grid .day-card__session--full+.day-card__session--full{margin-top:.125rem}.week-grid .day-card__session-breakdown{display:none}.week-grid .day-card__session-header{min-width:0;gap:.25rem}.week-grid .day-card__session-pace{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 0;font-size:.7rem}.week-grid .day-card__session-miles{flex-shrink:0;font-size:.7rem}.week-grid .day-card__session-prefix{font-size:.7rem}.week-grid .zone-tag{font-size:.65rem;padding:0 .25rem;margin-right:.125rem}}.week-grid .day-card__race-label{grid-column:1;grid-row:2;align-self:start}.week-grid .day-card--race-day .day-card__header{grid-row:1;align-self:end}.week-grid .day-card--race-day .day-card__sessions,.week-grid .day-card--race-day .day-card__footer{grid-row:1 / 3;align-self:center}@media(max-width:600px){.week-grid .day-card--race-day .day-card__race-label{display:none}.week-grid .day-card--race-day .day-card__header,.week-grid .day-card--race-day .day-card__footer{grid-row:1;align-self:center}.week-grid .day-card--race-day .day-card__sessions{grid-row:2;align-self:start}}.week-grid .day-card .firework{grid-column:1 / -1}@media(max-width:768px){.rest-confirm-overlay,.day-card--compact .day-card__session-detail{display:none}}.month-view{display:flex;flex-direction:column;gap:0}.month-view__section{margin-top:1.5rem}.month-view__section:first-child{margin-top:0}.month-view__month-title{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.month-view__day-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.month-header{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-align:center;text-transform:uppercase;letter-spacing:.05em;padding-bottom:.5rem}.month-view__week{margin-bottom:.75rem}.month-view__week-label{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .55rem;padding:.25rem 0;margin-bottom:.25rem}.month-view__week-num{font-size:.75rem;font-weight:600;color:var(--color-text-muted);margin-right:.125rem}.month-view__week-mileage{font-family:var(--font-mono);font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-primary);background:var(--color-primary-light);padding:.0625rem .5rem;border-radius:999px}.month-view__week-grid{position:relative;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:.5rem}.month-view__phase-divider{display:flex;align-items:center;gap:.625rem;margin:.75rem 0 .375rem}.month-view__phase-divider-line{flex:1;height:1px;background:var(--color-border);opacity:.6}.month-view__phase-divider-label{font-family:var(--font-heading);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;padding:.125rem .625rem;border-radius:999px;border:1px solid transparent}.month-view__phase-divider--base .month-view__phase-divider-label{color:#059669;background:#10b98114;border-color:#10b98133}.month-view__phase-divider--build .month-view__phase-divider-label{color:#ea580c;background:#f9731614;border-color:#f9731633}.month-view__phase-divider--peak .month-view__phase-divider-label{color:#dc2626;background:#ef444414;border-color:#ef444433}.month-view__phase-divider--taper .month-view__phase-divider-label{color:#ca8a04;background:#eab30814;border-color:#eab30833}.month-view__phase-divider--race .month-view__phase-divider-label{color:#b45309;background:#d9770614;border-color:#d9770633}@media(max-width:480px){.month-view__phase-divider{margin:.25rem 0 .125rem}.month-view__phase-divider-label{font-size:.5rem;padding:.0625rem .375rem}}.day-card{position:relative;z-index:1;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.625rem .875rem;cursor:pointer;overflow:hidden;transition:transform var(--transition),box-shadow var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.day-card:active,.day-card--pressed{transform:translateY(-2px);box-shadow:var(--shadow-md);transition:none}@media(hover:hover){.day-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}.day-card:active:not(.day-card--off){box-shadow:var(--shadow-md);transition:none}.day-card--today{outline:2.5px solid var(--color-primary);outline-offset:-2.5px;animation:today-glow 2.5s ease-in-out infinite}@keyframes today-glow{0%,to{outline-width:2.5px;outline-offset:-2.5px}50%{outline-width:3.5px;outline-offset:-3.5px}}.day-card--double-threshold{background:linear-gradient(135deg,#3b82f6,#1e3a8a);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--double-threshold .day-card__day,.day-card--double-threshold .day-card__date,.day-card--double-threshold .day-card__session,.day-card--double-threshold .day-card__miles{color:#fff}.day-card--double-threshold .zone-tag,.day-card--long-run .zone-tag,.day-card--workout .zone-tag,.day-card--vo2max .zone-tag,.day-card--hill .zone-tag,.day-card--tuneup .zone-tag,.day-card--speed .zone-tag,.day-card--marathon .zone-tag,.day-card--long-workout .zone-tag,.day-card--race-day .zone-tag{background:#00000073;color:#fff}.day-card--long-run{background:linear-gradient(135deg,#22c55e,#06b6d4);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--long-run .day-card__day,.day-card--long-run .day-card__date,.day-card--long-run .day-card__session,.day-card--long-run .day-card__miles{color:#fff}.day-card--workout{background:linear-gradient(135deg,#60a5fa,#a78bfa);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--workout .day-card__day,.day-card--workout .day-card__date,.day-card--workout .day-card__session,.day-card--workout .day-card__miles{color:#fff}.day-card--vo2max{background:linear-gradient(135deg,#166534,#db2777);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--vo2max .day-card__day,.day-card--vo2max .day-card__date,.day-card--vo2max .day-card__session,.day-card--vo2max .day-card__miles{color:#fff}.day-card--hill{background:linear-gradient(135deg,#22c55e,#ca8a04);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--hill .day-card__day,.day-card--hill .day-card__date,.day-card--hill .day-card__session,.day-card--hill .day-card__miles{color:#fff}.day-card--tuneup{background:linear-gradient(135deg,#8b5cf6,#ec4899);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--tuneup .day-card__day,.day-card--tuneup .day-card__date,.day-card--tuneup .day-card__session,.day-card--tuneup .day-card__miles{color:#fff}.day-card--speed{background:linear-gradient(135deg,#b91c1c,#ef4444,#f87171);border-color:transparent;background-size:200% 200%;background-position:0% 50%;transition:transform var(--transition),box-shadow var(--transition),background-position .6s ease}@media(hover:hover){.day-card--speed:hover{background-position:100% 50%;animation:speed-gradient-sweep 2s ease-in-out infinite}}.day-card--speed .day-card__day,.day-card--speed .day-card__date,.day-card--speed .day-card__session,.day-card--speed .day-card__miles{color:#fff}.day-card--marathon{background:linear-gradient(135deg,#db2777,#ec4899,#6366f1);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--marathon .day-card__day,.day-card--marathon .day-card__date,.day-card--marathon .day-card__session,.day-card--marathon .day-card__miles{color:#fff}.day-card--long-workout{background:linear-gradient(135deg,#22c55e,#0d9488,#3b82f6);border-color:transparent;background-size:100% 100%;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}.day-card--long-workout .day-card__day,.day-card--long-workout .day-card__date,.day-card--long-workout .day-card__session,.day-card--long-workout .day-card__miles{color:#fff}@media(hover:hover){.day-card--double-threshold:hover,.day-card--long-run:hover,.day-card--workout:hover,.day-card--vo2max:hover,.day-card--hill:hover,.day-card--tuneup:hover,.day-card--marathon:hover,.day-card--long-workout:hover{background-size:200% 200%;animation:gradient-shift 3s ease-in-out infinite,bg-pulse 2.5s ease-in-out infinite}.day-card--race-day:hover{animation:race-day-shimmer 2s ease-in-out infinite}}.day-card--double-threshold:active,.day-card--long-run:active,.day-card--workout:active,.day-card--vo2max:active,.day-card--hill:active,.day-card--tuneup:active,.day-card--marathon:active,.day-card--long-workout:active{filter:brightness(1.15);transition:none}.day-card--warning{outline:2px solid var(--color-red);outline-offset:-1px}.day-card--off{opacity:.5;cursor:default}@media(hover:hover){.day-card--off:hover{transform:none;box-shadow:none}}.day-card--plan-over{opacity:.35;filter:grayscale(1);cursor:default}@media(hover:hover){.day-card--plan-over:hover{transform:none;box-shadow:none;opacity:.45}}.zone-tag--plan-over{background:#7878781f;color:var(--color-text-muted);font-weight:500;letter-spacing:.02em}.day-card--race-day{background:linear-gradient(135deg,#d97706,#f59e0b,#fbbf24);background-size:200% 200%;border-color:transparent;overflow:hidden;animation:race-day-shimmer 4s ease-in-out infinite;box-shadow:0 0 12px #f59e0b4d}@media(hover:hover){.day-card--race-day:hover{transform:translateY(-3px);box-shadow:0 6px 20px #f59e0b66}}.day-card--race-day .day-card__day,.day-card--race-day .day-card__date,.day-card--race-day .day-card__session,.day-card--race-day .day-card__miles{color:#fff}.day-card__race-label{font-size:.85rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.375rem;text-shadow:0 1px 3px rgba(0,0,0,.2)}.day-card--compact .day-card__race-label{font-size:.7rem;margin-bottom:.25rem}.firework{position:absolute;width:3px;height:3px;border-radius:50%;pointer-events:none;z-index:2;opacity:0}.firework--1{top:20%;left:20%;background:#fbbf24}.firework--2{top:30%;right:15%;background:#f472b6}.firework--3{bottom:25%;left:40%;background:#60a5fa}@media(hover:hover){.day-card--race-day:hover .firework--1{animation:firework-burst-1 1s ease-out infinite}.day-card--race-day:hover .firework--2{animation:firework-burst-2 1s ease-out .35s infinite}.day-card--race-day:hover .firework--3{animation:firework-burst-3 1s ease-out .7s infinite}}@keyframes race-day-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes firework-burst-1{0%{opacity:1;box-shadow:0 0 2px 1px #fbbf24,0 0 #fb923c,0 0 #f87171,0 0 #c084fc,0 0 #60a5fa,0 0 #34d399,0 0 #fde68a,0 0 #fca5a5}20%{opacity:1}to{opacity:0;box-shadow:0 0 2px #fbbf2400,-14px -22px #fb923c,12px -20px #f87171,22px -2px #c084fc,14px 18px #60a5fa,-6px 22px #34d399,-20px 10px #fde68a,-18px -10px #fca5a5}}@keyframes firework-burst-2{0%{opacity:1;box-shadow:0 0 2px 1px #f472b6,0 0 #a78bfa,0 0 #38bdf8,0 0 #4ade80,0 0 #fbbf24,0 0 #f87171,0 0 #e879f9,0 0 #67e8f9}20%{opacity:1}to{opacity:0;box-shadow:0 0 2px #f472b600,16px -18px #a78bfa,22px 6px #38bdf8,8px 22px #4ade80,-12px 18px #fbbf24,-22px 0 #f87171,-16px -16px #e879f9,2px -24px #67e8f9}}@keyframes firework-burst-3{0%{opacity:1;box-shadow:0 0 2px 1px #60a5fa,0 0 #34d399,0 0 #fbbf24,0 0 #f472b6,0 0 #a78bfa,0 0 #fb923c,0 0 #38bdf8,0 0 #4ade80}20%{opacity:1}to{opacity:0;box-shadow:0 0 2px #60a5fa00,-18px -16px #34d399,10px -22px #fbbf24,24px 4px #f472b6,12px 20px #a78bfa,-8px 24px #fb923c,-24px 6px #38bdf8,-14px -14px #4ade80}}.modal-race-badge{display:inline-block;background:linear-gradient(135deg,#dc2626,#f59e0b);color:#fff;font-size:.8rem;font-weight:700;padding:.25rem .75rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.day-card__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.day-card__date-group{display:inline-flex;align-items:center;gap:.25rem}.day-card__edit-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:2px;line-height:0;opacity:0;transition:opacity .15s,color .15s;border-radius:3px;display:inline-flex;align-items:center;justify-content:center}@media(hover:hover){.day-card:hover .day-card__edit-btn{opacity:.6}.day-card__edit-btn:hover{opacity:1!important;color:var(--color-primary)}}.day-card:active .day-card__edit-btn,.day-card--pressed .day-card__edit-btn{opacity:.6}.day-card__edit-btn:active,.day-card__edit-btn.day-card__edit-btn--pressed{opacity:1!important;color:var(--color-primary);transition:none}.day-card__rest-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:2px;line-height:0;opacity:0;transition:opacity .15s,color .15s}@media(hover:hover){.day-card:hover .day-card__rest-btn{opacity:.6}.day-card__rest-btn:hover{opacity:1!important;color:#7c3aed}}.day-card:active .day-card__rest-btn,.day-card--pressed .day-card__rest-btn{opacity:.6}.day-card__rest-btn:active,.day-card__rest-btn.day-card__rest-btn--pressed{opacity:1!important;color:#7c3aed;transition:none}.rest-confirm-overlay{position:relative;z-index:10;background:var(--color-surface);border:2px solid #7c3aed;border-radius:var(--radius);padding:1rem .75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.625rem;animation:rest-confirm-in .2s ease-out;box-shadow:0 8px 24px #7c3aed26,var(--shadow-md)}@keyframes rest-confirm-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.rest-confirm__icon{color:#7c3aed;line-height:0}.rest-confirm__label{font-size:.8rem;font-weight:600;color:var(--color-text)}.rest-confirm__actions{display:flex;gap:.5rem;width:100%}.rest-confirm__cancel{flex:1;background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.35rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.72rem;font-family:inherit;font-weight:500;transition:background .15s,border-color .15s}@media(hover:hover){.rest-confirm__cancel:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.rest-confirm__cancel:active,.rest-confirm__cancel.rest-confirm__cancel--pressed{background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.rest-confirm__btn{flex:1;background:#7c3aed;border:none;color:#fff;padding:.35rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.72rem;font-family:inherit;font-weight:600;transition:filter .15s}@media(hover:hover){.rest-confirm__btn:hover{filter:brightness(1.12)}}.rest-confirm__btn:active,.rest-confirm__btn.rest-confirm__btn--pressed{filter:brightness(1.12);transition:none}.day-card__day{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.day-card__date{font-size:.7rem;color:var(--color-text-muted)}.day-card__sessions{display:flex;flex-direction:column;gap:.25rem;flex:1}.day-card__session{font-size:.8rem;color:var(--color-text)}.day-card__session--full{display:flex;flex-direction:column;gap:.125rem;padding:.25rem .5rem;border-left:3px solid var(--color-border);border-radius:2px}.day-card__session--full+.day-card__session--full{margin-top:.125rem}.day-card__session-header{display:flex;align-items:baseline;gap:.375rem}.day-card__session-prefix{font-size:.75rem;font-weight:600;opacity:.7}.day-card__session-miles{font-family:var(--font-mono);font-size:.75rem;font-weight:600;opacity:.7;font-variant-numeric:tabular-nums;margin-left:auto}.day-card__session-pace{font-size:.75rem;color:var(--color-text-secondary)}.day-card__session-breakdown{font-size:.7rem;color:var(--color-text-muted)}.day-card__session--full.day-card__session--easy{border-left-color:#22c55e}.day-card__session--full.day-card__session--long{border-left-color:#10b981}.day-card__session--full.day-card__session--lt2,.day-card__session--full.day-card__session--threshold{border-left-color:#3b82f6}.day-card__session--full.day-card__session--lt1{border-left-color:#8b5cf6}.day-card__session--full.day-card__session--vo2max{border-left-color:#f59e0b}.day-card__session--full.day-card__session--hill{border-left-color:#84cc16}.day-card__session--full.day-card__session--speed{border-left-color:#ef4444}.day-card__session--full.day-card__session--tuneup{border-left-color:#8b5cf6}.day-card__session--full.day-card__session--marathon{border-left-color:#ec4899}.day-card__session--full.day-card__session--long-workout{border-left-color:#10b981}.day-card--double-threshold .day-card__session--full,.day-card--long-run .day-card__session--full,.day-card--workout .day-card__session--full,.day-card--vo2max .day-card__session--full,.day-card--hill .day-card__session--full,.day-card--tuneup .day-card__session--full,.day-card--speed .day-card__session--full,.day-card--marathon .day-card__session--full,.day-card--long-workout .day-card__session--full,.day-card--race-day .day-card__session--full{border-left-color:#ffffff59}.day-card--double-threshold .day-card__session-pace,.day-card--double-threshold .day-card__session-breakdown,.day-card--double-threshold .day-card__session-miles,.day-card--double-threshold .day-card__session-prefix,.day-card--long-run .day-card__session-pace,.day-card--long-run .day-card__session-breakdown,.day-card--long-run .day-card__session-miles,.day-card--long-run .day-card__session-prefix,.day-card--workout .day-card__session-pace,.day-card--workout .day-card__session-breakdown,.day-card--workout .day-card__session-miles,.day-card--workout .day-card__session-prefix,.day-card--vo2max .day-card__session-pace,.day-card--vo2max .day-card__session-breakdown,.day-card--vo2max .day-card__session-miles,.day-card--vo2max .day-card__session-prefix,.day-card--hill .day-card__session-pace,.day-card--hill .day-card__session-breakdown,.day-card--hill .day-card__session-miles,.day-card--hill .day-card__session-prefix,.day-card--tuneup .day-card__session-pace,.day-card--tuneup .day-card__session-breakdown,.day-card--tuneup .day-card__session-miles,.day-card--tuneup .day-card__session-prefix,.day-card--speed .day-card__session-pace,.day-card--speed .day-card__session-breakdown,.day-card--speed .day-card__session-miles,.day-card--speed .day-card__session-prefix,.day-card--marathon .day-card__session-pace,.day-card--marathon .day-card__session-breakdown,.day-card--marathon .day-card__session-miles,.day-card--marathon .day-card__session-prefix,.day-card--long-workout .day-card__session-pace,.day-card--long-workout .day-card__session-breakdown,.day-card--long-workout .day-card__session-miles,.day-card--long-workout .day-card__session-prefix,.day-card--race-day .day-card__session-pace,.day-card--race-day .day-card__session-breakdown,.day-card--race-day .day-card__session-miles,.day-card--race-day .day-card__session-prefix{color:#ffffffb3}.zone-tag{font-size:.7rem;font-weight:600;padding:.0625rem .375rem;border-radius:999px;display:inline-block;margin-right:.25rem}.zone-tag--easy{background:#22c55e26;color:#16a34a}.zone-tag--threshold,.zone-tag--lt2{background:#3b82f626;color:#2563eb}.zone-tag--lt1{background:#8b5cf626;color:#7c3aed}.zone-tag--interval{background:#f59e0b26;color:#d97706}.zone-tag--long{background:#10b98126;color:#059669}.zone-tag--hill{background:#84cc1626;color:#65a30d}.zone-tag--tuneup{background:#8b5cf626;color:#7c3aed}.zone-tag--speed{background:#ef444426;color:#dc2626}.zone-tag--marathon{background:#ec489926;color:#db2777}.zone-tag--long-workout{background:#10b98126;color:#059669}.zone-tag--strides{background:#a855f71f;color:#9333ea}.zone-tag--strength{background:#f59e0b24;color:#b45309;display:inline-flex;align-items:center;gap:4px}.zone-tag--strength svg{color:#d97706}[data-theme=dark] .zone-tag--strength{color:#fbbf24;background:#f59e0b2e}[data-theme=dark] .zone-tag--strength svg{color:#fbbf24}.day-card--compact .zone-tag--strength{font-size:.5rem}.strength-block{margin-top:.75rem;border-radius:14px;background:linear-gradient(180deg,#f59e0b14,#f59e0b00),var(--color-surface);border:1px solid rgba(245,158,11,.45);box-shadow:0 2px 10px #0f172a14}[data-theme=dark] .strength-block{background:linear-gradient(180deg,#f59e0b1a,#f59e0b00),var(--color-surface);border-color:#f59e0b80;box-shadow:0 2px 10px #00000059}.strength-block__head{display:flex;align-items:center;justify-content:flex-start;gap:.6rem;padding:12px 14px;background:transparent;border:none;width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .15s}@media(hover:hover){.strength-block__head:hover{background:#f59e0b0d}}.strength-block__head:active{background:#f59e0b14;transition:none}.strength-block__chev{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--color-amber, #d97706);background:#f59e0b24;flex-shrink:0;transition:transform .25s cubic-bezier(.18,1.1,.3,1.05),background .2s}.strength-block__chev--open{transform:rotate(90deg);background:#f59e0b3d}[data-theme=dark] .strength-block__chev{color:#fbbf24;background:#f59e0b2e}[data-theme=dark] .strength-block__chev--open{background:#f59e0b47}.strength-block__title{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-heading, var(--font));font-size:1.02rem;font-weight:800;letter-spacing:-.01em;color:#b45309;flex:0 0 auto;min-width:0}.strength-block--open .strength-block__title{flex:1}.strength-block__title svg{color:#d97706}[data-theme=dark] .strength-block__title{color:#fbbf24}[data-theme=dark] .strength-block__title svg{color:#fbbf24}.strength-block__preview{flex:1;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .5rem;font-size:.74rem;font-weight:500;color:var(--color-text-secondary);font-style:italic}[data-theme=dark] .strength-block__preview{color:#cbd5e1d9}.strength-block__preview--compact,.strength-block__title-compact{display:none}@media(max-width:480px){.strength-block__preview--full{display:none}.strength-block__preview--compact{display:block}.strength-block__title-full{display:none}.strength-block__title-compact{display:inline}}.strength-block--compact .strength-block__preview--full{display:none}.strength-block--compact .strength-block__preview--compact{display:block}.strength-block--compact .strength-block__title-full{display:none}.strength-block--compact .strength-block__title-compact{display:inline}.strength-block__meta{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:#d97706;letter-spacing:.04em;white-space:nowrap;flex-shrink:0;margin-left:auto}[data-theme=dark] .strength-block__meta{color:#fbbf24}.strength-block__body{padding:2px 14px 12px;animation:strength-slide-down .28s cubic-bezier(.18,1.1,.3,1.05)}@keyframes strength-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.strength-section{margin-top:12px}.strength-section:first-of-type{margin-top:0}.strength-section__name{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#b45309;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}.strength-section__name>span:first-child{display:inline-flex;align-items:center;gap:6px}.strength-section__name>span:first-child:before{content:"";width:4px;height:4px;border-radius:50%;background:#d97706}.strength-section__sets{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.06em;color:#d97706;background:#f59e0b24;border:1px solid rgba(245,158,11,.28);padding:1px 7px 2px;border-radius:999px;text-transform:lowercase;letter-spacing:.02em}[data-theme=dark] .strength-section__name{color:#fbbf24}[data-theme=dark] .strength-section__name>span:first-child:before{background:#fbbf24}[data-theme=dark] .strength-section__sets{color:#fbbf24;background:#f59e0b2e;border-color:#f59e0b59}.strength-section__list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.strength-row{position:relative;display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:8px;background:#f59e0b0d;border:1px solid rgba(245,158,11,.2);font-size:.82rem;gap:8px;cursor:default;outline:none;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}@media(hover:hover){.strength-row:hover{background:#f59e0b14;border-color:#f59e0b59}}.strength-row:active,.strength-row:focus-visible{background:#f59e0b1f;border-color:#f59e0b73;transition:none}[data-theme=dark] .strength-row{background:#0000002e;border-color:#f59e0b40}[data-theme=dark] .strength-row:hover{background:#f59e0b24;border-color:#f59e0b66}[data-theme=dark] .strength-row:active,[data-theme=dark] .strength-row:focus-visible{background:#f59e0b2e;border-color:#f59e0b80}.strength-row__name{color:var(--color-text);font-weight:500;display:inline-flex;align-items:center;gap:6px;min-width:0}.strength-row__reps{font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-secondary);font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.strength-row__downhill{font-family:var(--font-mono);font-size:.54rem;text-transform:uppercase;letter-spacing:.1em;color:#d97706;background:#f59e0b29;padding:1px 5px;border-radius:3px;font-weight:700}.strength-row__equipment{font-family:var(--font-mono);font-size:.54rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);background:#94a3b82e;padding:1px 5px;border-radius:3px;font-weight:700;border:1px solid rgba(148,163,184,.22);white-space:nowrap;flex-shrink:0}.strength-row__equipment--optional{background:transparent;border-style:dashed;opacity:.85;transition:background .15s,border-color .15s,color .15s,opacity .15s}@media(hover:hover){.strength-row__equipment--optional:hover{background:#f59e0b29;border-color:#f59e0b80;color:#b45309;opacity:1}}.strength-row__equipment--optional:active{background:#f59e0b3d;border-color:#f59e0b99;color:#b45309;opacity:1;transition:none}[data-theme=dark] .strength-row__equipment{color:#cbd5e1d9;background:#94a3b829;border-color:#94a3b840}[data-theme=dark] .strength-row__equipment--optional{background:transparent}[data-theme=dark] .strength-row__equipment--optional:hover,[data-theme=dark] .strength-row__equipment--optional:active{background:#f59e0b33;border-color:#f59e0b80;color:#fbbf24;opacity:1}[data-theme=dark] .strength-row__downhill{color:#fbbf24;background:#f59e0b38}.strength-row__desc{display:none}@media(hover:hover){.strength-row__desc{display:flex;align-items:center;justify-content:space-between;gap:8px;position:absolute;inset:0;padding:7px 10px;font-size:.78rem;line-height:1.35;color:var(--color-text);opacity:0;pointer-events:none;transition:opacity .15s}.strength-row__desc-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strength-row__name,.strength-row__reps{transition:opacity .15s}.strength-row:hover .strength-row__name,.strength-row:hover .strength-row__reps,.strength-row:focus-visible .strength-row__name,.strength-row:focus-visible .strength-row__reps{opacity:0}.strength-row:hover .strength-row__desc,.strength-row:focus-visible .strength-row__desc{opacity:1;pointer-events:auto}}.strength-row__equipment--optional{position:relative;cursor:pointer}.strength-row__equipment--optional[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);right:0;background:linear-gradient(135deg,#f59e0b24,#d9770614),color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text);border:1px solid rgba(245,158,11,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;font-style:normal;text-transform:none;letter-spacing:-.005em;line-height:1.45;padding:.5rem .65rem;border-radius:8px;width:max-content;max-width:min(190px,calc(100vw - 56px));text-align:left;box-shadow:0 4px 16px #d9770629;z-index:20;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s,visibility .12s;white-space:normal}@media(hover:hover){.strength-row__equipment--optional[data-tip]:hover:after{opacity:1;visibility:visible}}.strength-row__equipment--optional[data-tip]:focus:after{opacity:1;visibility:visible}[data-theme=dark] .strength-row__equipment--optional[data-tip]:after{background:linear-gradient(135deg,#f59e0b29,#d977061a),#0f172aeb;border-color:#f59e0b66}@media(hover:none){.strength-row[data-tip]:focus:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:0;right:0;background:linear-gradient(135deg,#f59e0b24,#d9770614),color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text);border:1px solid rgba(245,158,11,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font);font-size:.78rem;font-weight:500;line-height:1.45;letter-spacing:-.005em;padding:.55rem .7rem;border-radius:9px;text-align:left;box-shadow:0 4px 16px #d9770629;z-index:10;white-space:normal;pointer-events:none}[data-theme=dark] .strength-row[data-tip]:focus:after{background:linear-gradient(135deg,#f59e0b29,#d977061a),#0f172aeb;border-color:#f59e0b66}}.day-card__footer{display:flex;align-items:center;gap:.375rem;margin-top:.5rem}.day-card__checkbox{width:16px;height:16px;min-width:16px;border-radius:50%;border:1.5px solid var(--color-text-muted);background:transparent;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;color:transparent;flex-shrink:0}@media(hover:hover){.day-card__checkbox:hover{border-color:#22c55e}}.day-card__checkbox:active{border-color:#22c55e;transition:none}.day-card__checkbox--checked{background:#22c55e;border-color:#22c55e;color:#fff;animation:check-bounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes check-bounce{0%{transform:scale(.5)}50%{transform:scale(1.3)}to{transform:scale(1)}}.day-card--completed:not(.day-card--compact){border-left:3px solid #22c55e}.day-card--completed:not(.day-card--compact).day-card--today{border-left:3px solid #22c55e}.day-card--completed .day-card__checkbox{opacity:1}.day-card--compact.day-card--completed{border-left:3px solid #22c55e;box-shadow:inset 0 0 0 1px #22c55e33,0 0 8px #22c55e40}.day-card--compact.day-card--completed.day-card--today{border-left:3px solid #22c55e;outline-color:#22c55e}.day-card--compact.day-card--partial{border-left:3px solid #eab308;box-shadow:inset 0 0 0 1px #eab30826}.day-card--compact.day-card--partial.day-card--today{border-left:3px solid #eab308;outline-color:#eab308}.day-card--double-threshold .day-card__checkbox,.day-card--long-run .day-card__checkbox,.day-card--workout .day-card__checkbox,.day-card--vo2max .day-card__checkbox,.day-card--hill .day-card__checkbox,.day-card--tuneup .day-card__checkbox,.day-card--speed .day-card__checkbox,.day-card--marathon .day-card__checkbox,.day-card--long-workout .day-card__checkbox,.day-card--race-day .day-card__checkbox{border-color:#fff9}@media(hover:hover){.day-card--double-threshold .day-card__checkbox:hover,.day-card--long-run .day-card__checkbox:hover,.day-card--workout .day-card__checkbox:hover,.day-card--vo2max .day-card__checkbox:hover,.day-card--hill .day-card__checkbox:hover,.day-card--tuneup .day-card__checkbox:hover,.day-card--speed .day-card__checkbox:hover,.day-card--marathon .day-card__checkbox:hover,.day-card--long-workout .day-card__checkbox:hover,.day-card--race-day .day-card__checkbox:hover{border-color:#22c55e}}.day-card__miles{font-family:var(--font-mono);font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text);white-space:nowrap}.day-card__miles-actual{font-weight:700}.day-card__miles-sep{opacity:.5;margin:0 .125rem}.day-card__miles-delta{font-size:.65rem;font-weight:700;padding:.0625rem .25rem;border-radius:999px;margin-left:.25rem;vertical-align:middle}.day-card__miles-delta--over{background:#22c55e26;color:#22c55e}.day-card__miles-delta--under{background:#ef444426;color:#ef4444}.day-card--double-threshold .day-card__miles-delta--over,.day-card--long-run .day-card__miles-delta--over,.day-card--workout .day-card__miles-delta--over,.day-card--vo2max .day-card__miles-delta--over,.day-card--hill .day-card__miles-delta--over,.day-card--tuneup .day-card__miles-delta--over,.day-card--speed .day-card__miles-delta--over,.day-card--marathon .day-card__miles-delta--over,.day-card--long-workout .day-card__miles-delta--over{background:#22c55e4d;color:#bbf7d0}.day-card--double-threshold .day-card__miles-delta--under,.day-card--long-run .day-card__miles-delta--under,.day-card--workout .day-card__miles-delta--under,.day-card--vo2max .day-card__miles-delta--under,.day-card--hill .day-card__miles-delta--under,.day-card--tuneup .day-card__miles-delta--under,.day-card--speed .day-card__miles-delta--under,.day-card--marathon .day-card__miles-delta--under,.day-card--long-workout .day-card__miles-delta--under{background:#ef44444d;color:#fecaca}.day-card--compact .day-card__miles-delta{font-size:.55rem;padding:0 .125rem;margin-left:.125rem}.day-card__miles--clickable{cursor:pointer}.day-card__particle{position:absolute;width:5px;height:5px;border-radius:50%;pointer-events:none;z-index:3;will-change:transform,opacity}.day-card__particle--compact{width:3px;height:3px}.day-card__particle--dt{background:#bed2ffe6;box-shadow:0 0 4px #bed2ff99}.day-card__particle--long{background:#c8ffe6e6;box-shadow:0 0 4px #c8ffe699}.day-card__particle--vo2{background:#ffc8dce6;box-shadow:0 0 4px #ffc8dc99}.day-card__particle--hill{background:#fff0c8e6;box-shadow:0 0 4px #fff0c899}.day-card__particle--speed{background:#ffd2aae6;box-shadow:0 0 4px #ffd2aa99}.day-card__particle--tuneup{background:#ffd2f0e6;box-shadow:0 0 4px #ffd2f099}.day-card__particle--marathon{background:#ffb4dce6;box-shadow:0 0 4px #ffb4dc99}.day-card__particle--race{background:#fff096f2;box-shadow:0 0 5px #fff096b3}.day-card__particle--workout{background:#c8e6ffe6;box-shadow:0 0 4px #c8e6ff99}.day-card__particle--easy{background:#94a3b880;box-shadow:0 0 3px #94a3b84d}.day-card--compact{padding:.5rem;min-height:80px}.day-card--compact .day-card__day{font-size:.65rem}.day-card--compact .day-card__session{font-size:.7rem}.day-card--compact .day-card__miles{font-size:.75rem}.day-card--compact .day-card__footer{gap:.25rem;margin-top:.375rem;white-space:nowrap;flex-wrap:wrap}.day-card--compact .day-card__checkbox{width:14px;height:14px;min-width:14px}.mileage-warning{background:var(--color-red-light);border:1px solid var(--color-red);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:#991b1b;display:flex;align-items:center;gap:.5rem}.mileage-warning strong{font-weight:600}.short-block-warning{background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:#92400e;display:flex;align-items:center;gap:.5rem}.short-block-warning strong{font-weight:600}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-family:var(--font-symbols);font-size:1.25rem;color:var(--color-text-muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}@media(hover:hover){.modal-close:hover{background:var(--color-bg);color:var(--color-text)}}.modal-close:active{background:var(--color-bg);color:var(--color-text);transition:none}.modal-nav-wrapper{position:relative;max-width:480px;width:100%}.modal-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff8c;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;z-index:2;padding:0;transition:color .15s,background .15s}@media(hover:hover){.modal-nav-btn:hover{color:#fff;background:#ffffff1a}}.modal-nav-btn:active{color:#fff;background:#ffffff1a;transition:none}.modal-nav-btn--prev{left:-48px}.modal-nav-btn--next{right:-48px}@media(max-width:600px){.modal-nav-wrapper{max-width:100%;height:100%;overflow:hidden}.modal-nav-btn--prev{left:8px}.modal-nav-btn--next{right:8px}.modal-nav-btn{color:#ffffffb3;background:#00000040}@media(hover:hover){.modal-nav-btn:hover{background:#0006}}}.session-actions{margin-left:auto;display:inline-flex;align-items:center;align-self:center;gap:0;flex-shrink:0}.session-actions>button+button{margin-left:-2px}.session-edit-btn,.session-undo-btn,.session-check-btn,.session-watch-btn{background:none;border:none;font-size:.95rem;line-height:1;padding:0;color:var(--color-text-muted);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;opacity:.5;transition:opacity .15s,background .15s,color .15s}@media(hover:hover){.session-edit-btn:hover,.session-watch-btn:hover{opacity:1;background:var(--color-bg);color:var(--color-primary)}.session-undo-btn:hover{opacity:1;background:#fef2f2;color:#dc2626}}.session-check-btn{opacity:1;font-family:var(--font-symbols);color:#16a34a}@media(hover:hover){.session-check-btn:hover{background:#f0fdf4;color:#15803d}}.session-check-btn:active,.session-check-btn.session-check-btn--pressed{background:#f0fdf4;color:#15803d;transition:none}.session-delete-btn{background:none;border:none;font-size:.8rem;line-height:1;padding:0;color:var(--color-text-muted);width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;opacity:.5;transition:opacity .15s,background .15s,color .15s}@media(hover:hover){.session-delete-btn:hover{opacity:1;background:#fef2f2;color:#dc2626}}.session-confirm-delete-btn{background:#dc2626;border:none;color:#fff;font-size:.7rem;font-family:inherit;font-weight:600;padding:.2rem .5rem;border-radius:var(--radius);cursor:pointer;transition:background .15s}@media(hover:hover){.session-confirm-delete-btn:hover{background:#b91c1c}}.session-confirm-delete-btn:active,.session-confirm-delete-btn.session-confirm-delete-btn--pressed{background:#b91c1c;transition:none}.session-cancel-btn{background:none;border:none;font-size:.85rem;line-height:1;padding:0;color:var(--color-text-muted);width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;opacity:.5;transition:opacity .15s,background .15s}@media(hover:hover){.session-cancel-btn:hover{opacity:1;background:var(--color-bg)}}.session-cancel-btn:active,.session-cancel-btn.session-cancel-btn--pressed{opacity:1;background:var(--color-bg);transition:none}.delete-session-confirm{position:absolute;inset:0;border-radius:inherit;display:flex;align-items:center;justify-content:center;background:#0f172a80;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:20;padding:1.25rem;animation:delete-confirm-backdrop-in .15s ease-out}@keyframes delete-confirm-backdrop-in{0%{opacity:0}to{opacity:1}}.delete-session-confirm__card{background:var(--color-surface);border-radius:var(--radius);padding:1.25rem 1.125rem;width:100%;display:flex;flex-direction:column;align-items:center;gap:.625rem;box-shadow:0 12px 40px #00000038;border:1px solid rgba(220,38,38,.18);animation:delete-confirm-card-in .2s cubic-bezier(.34,1.56,.64,1)}@keyframes delete-confirm-card-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.delete-session-confirm__icon{color:var(--color-red);line-height:0;background:var(--color-red-light);border-radius:50%;padding:.55rem;margin-bottom:.125rem}.delete-session-confirm__title{font-size:.875rem;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.01em}.delete-session-confirm__sub{font-size:.72rem;color:var(--color-text-muted);margin:0}.delete-session-confirm__actions{display:flex;gap:.5rem;width:100%;margin-top:.25rem}.delete-session-confirm__cancel{flex:1;background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.4rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-family:inherit;font-weight:500;transition:background .15s,border-color .15s}@media(hover:hover){.delete-session-confirm__cancel:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.delete-session-confirm__cancel:active,.delete-session-confirm__cancel.delete-session-confirm__cancel--pressed{background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.delete-session-confirm__delete{flex:1;background:#dc2626;border:none;color:#fff;padding:.4rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-family:inherit;font-weight:600;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:.375rem}@media(hover:hover){.delete-session-confirm__delete:hover{background:#b91c1c}}.delete-session-confirm__delete:active,.delete-session-confirm__delete.delete-session-confirm__delete--pressed{background:#b91c1c;transition:none}.delete-session-confirm__delete.is-loading{opacity:.7;cursor:default}.modal-content--dark .delete-session-confirm{background:#0009}.modal-content--dark .delete-session-confirm__card{background:#1e2536;border-color:#dc262640}.modal-content--dark .delete-session-confirm__title{color:#f1f5f9}.modal-content--dark .delete-session-confirm__sub{color:#64748b}.modal-content--dark .delete-session-confirm__cancel{border-color:#ffffff1f;color:#94a3b8}.modal-content--dark .delete-session-confirm__cancel:active,.modal-content--dark .delete-session-confirm__cancel.delete-session-confirm__cancel--pressed{background:#ffffff0f;transition:none}[data-theme=dark] .delete-session-confirm__card{background:var(--color-surface);border-color:#dc262633}[data-theme=dark] .delete-session-confirm__cancel{border-color:var(--color-border);color:var(--color-text-secondary)}.rest-day-confirm{margin-top:.75rem;padding:.875rem;border:1.5px solid #7c3aed;border-radius:var(--radius);background:#faf5ff;display:flex;flex-direction:column;gap:.625rem;animation:rest-confirm-in .2s ease-out}.rest-day-confirm__header{display:flex;align-items:center;gap:.5rem;color:#7c3aed;font-size:.85rem;font-weight:600}.rest-day-confirm__actions{display:flex;gap:.5rem}.rest-day-confirm__cancel{flex:1;background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.4rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-family:inherit;font-weight:500;transition:background .15s,border-color .15s}@media(hover:hover){.rest-day-confirm__cancel:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.rest-day-confirm__btn{flex:1;background:#7c3aed;border:none;color:#fff;padding:.4rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-family:inherit;font-weight:600;transition:filter .15s}@media(hover:hover){.rest-day-confirm__btn:hover{filter:brightness(1.12)}}.rest-day-confirm__btn--easy{background:#059669}@media(hover:hover){.rest-day-confirm__btn--easy:hover{filter:brightness(1.15)}}.session-check-btn.is-loading,.session-confirm-delete-btn.is-loading,.rest-day-confirm__btn.is-loading,.today-view__modal-confirm.is-loading,.today-view__modal-option.is-loading,.week-nav-undo-btn.is-loading,.month-view__week-undo.is-loading,.modal-revert-btn.is-loading{opacity:.7}.week-nav-undo-btn{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;gap:.3rem;padding:0 .65rem;border:1px solid rgba(220,38,38,.35);border-radius:999px;background:#fee2e2b3;color:#b91c1c;font-family:inherit;font-size:.68rem;font-weight:600;line-height:1;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .15s ease,box-shadow .18s ease}.week-nav-undo-btn__icon{flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}@media(hover:hover){.week-nav-undo-btn:hover{background:#fee2e2;border-color:#dc262680;color:#991b1b;box-shadow:0 2px 6px #dc262629}.week-nav-undo-btn:hover .week-nav-undo-btn__icon{transform:rotate(-18deg)}}.week-nav-undo-btn:active{background:#fecaca;border-color:#dc262699;transition-duration:0s}.week-nav-today-btn{display:inline-flex;align-items:center;padding:.25rem .75rem;border:1.5px solid var(--color-primary);border-radius:999px;background:var(--color-primary-light);color:var(--color-primary);font-family:var(--font-heading);font-size:.72rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease;animation:jump-today-enter .3s cubic-bezier(.34,1.56,.64,1) both}@media(hover:hover){.week-nav-today-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px)}}.week-nav-today-btn:active{transform:translateY(.5px);background:var(--color-primary);color:#fff;transition:none}[data-theme=dark] .week-nav-today-btn{background:#3b82f61f;border-color:#3b82f666;color:#93bbfd}@media(hover:hover){[data-theme=dark] .week-nav-today-btn:hover{background:var(--color-primary);color:#fff}}@media(prefers-reduced-motion:reduce){.week-nav-today-btn{animation:none}}.month-view__week-undo{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;gap:.3rem;padding:0 .55rem;border:1px solid rgba(220,38,38,.35);border-radius:999px;background:#fee2e2b3;color:#b91c1c;font-family:inherit;font-size:.68rem;font-weight:600;line-height:1;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .15s ease,box-shadow .18s ease}.month-view__week-undo-icon{flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}@media(hover:hover){.month-view__week-undo:hover{background:#fee2e2;border-color:#dc262680;color:#991b1b;box-shadow:0 2px 6px #dc262629}.month-view__week-undo:hover .month-view__week-undo-icon{transform:rotate(-18deg)}}.month-view__week-undo:active{background:#fecaca;border-color:#dc262699;transition-duration:0s}.mileage-input{width:3ch;text-align:center;font-size:inherit;font-family:inherit;font-weight:600;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.125rem .25rem;background:var(--color-surface);color:var(--color-text);-moz-appearance:textfield;appearance:textfield}.mileage-input::-webkit-outer-spin-button,.mileage-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mileage-input:focus{outline:none;border-color:transparent}.modal-content.modal-content--double-threshold{background:linear-gradient(135deg,#3b82f6,#8b5cf6);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--long-run{background:linear-gradient(135deg,#22c55e,#06b6d4);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--workout{background:linear-gradient(135deg,#60a5fa,#a78bfa);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--vo2max{background:linear-gradient(135deg,#166534,#db2777);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--hill{background:linear-gradient(135deg,#22c55e,#ca8a04);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--speed{background:linear-gradient(135deg,#b91c1c,#ef4444,#f87171);background-size:200% 200%;background-position:0% 50%;transition:background-position .6s ease,filter .3s ease}.modal-content.modal-content--tuneup{background:linear-gradient(135deg,#8b5cf6,#ec4899);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--marathon{background:linear-gradient(135deg,#db2777,#ec4899,#6366f1);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--long-workout{background:linear-gradient(135deg,#22c55e,#0d9488,#3b82f6);background-size:100% 100%;transition:background-size .3s ease,filter .3s ease}.modal-content.modal-content--race-day{background:linear-gradient(135deg,#d97706,#f59e0b,#fbbf24);background-size:200% 200%;animation:race-day-shimmer 4s ease-in-out infinite}.modal-content--dark,.modal-content--workout{animation:scale-in .35s cubic-bezier(.34,1.56,.64,1)}.modal-content--double-threshold,.modal-content--long-run,.modal-content--workout,.modal-content--vo2max,.modal-content--hill,.modal-content--tuneup,.modal-content--speed,.modal-content--marathon,.modal-content--long-workout{transition:filter .6s ease,background-size .6s ease}@media(hover:hover){.modal-content--double-threshold:has(.modal-session:hover),.modal-content--long-run:has(.modal-session:hover),.modal-content--workout:has(.modal-session:hover),.modal-content--vo2max:has(.modal-session:hover),.modal-content--hill:has(.modal-session:hover),.modal-content--tuneup:has(.modal-session:hover),.modal-content--marathon:has(.modal-session:hover),.modal-content--long-workout:has(.modal-session:hover){background-size:200% 200%;filter:brightness(1.15)}.modal-content--speed:has(.modal-session:hover){background-size:200% 200%;filter:brightness(1.15)}.modal-content--race-day:has(.modal-session:hover){filter:brightness(1.15)}}.modal-content--dark{color:#fff;box-shadow:var(--shadow-lg),0 0 80px #00000040,inset 0 0 0 1px #ffffff14,inset 0 -120px 200px #080c1c47}.modal-content--dark .modal-close{color:#ffffffb3}@media(hover:hover){.modal-content--dark .modal-close:hover{background:#ffffff26;color:#fff}}.modal-content--dark .modal-session{border-color:#ffffff2e;background:linear-gradient(180deg,#0a0e2052,#0a0e206b);box-shadow:inset 0 1px #ffffff24,0 1px 2px #0000002e;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.modal-content--dark .modal-session h4,.modal-content--dark .modal-session__pace{color:#fff}.modal-content--dark .modal-session__detail{color:#fffc}.modal-content--dark .modal-total{border-top-color:#fff3;color:#fff}.modal-content--dark .zone-tag{background:#00000073;color:#fff}.modal-content--dark .modal-revert-btn,.modal-content--dark .modal-rest-btn{border-color:#fff3;color:#fffc}@media(hover:hover){.modal-content--dark .modal-revert-btn:hover{background:#ffffff26;color:#fff;border-color:#fff6}.modal-content--dark .modal-rest-btn:hover{background:#a78bfa40;color:#c4b5fd;border-color:#a78bfa80}}.modal-content--dark .session-edit-btn,.modal-content--dark .session-delete-btn,.modal-content--dark .session-watch-btn{color:#fff9}.modal-content--dark .day-menu__trigger{color:#fff9;opacity:1}.modal-content--dark .day-menu__trigger[aria-expanded=true]{color:#fff;background:#ffffff26}@media(hover:hover){.modal-content--dark .session-edit-btn:hover,.modal-content--dark .session-delete-btn:hover,.modal-content--dark .session-watch-btn:hover,.modal-content--dark .day-menu__trigger:hover{opacity:1;background:#ffffff26;color:#fff}}.modal-content--dark .rest-day-confirm{background:#1e1b2e;border-color:#a78bfa80}.modal-content--dark .rest-day-confirm__header{color:#c4b5fd}.modal-content--dark .rest-day-confirm__cancel{border-color:#fff3;color:#fffc}@media(hover:hover){.modal-content--dark .rest-day-confirm__cancel:hover{background:#ffffff1a;border-color:#fff6}}.modal-content--dark .rest-day-confirm__btn{background:#7c3aed}@media(hover:hover){.modal-content--dark .rest-day-confirm__btn:hover{filter:brightness(1.2)}}.modal-content--dark .rest-day-confirm__btn--easy{background:#059669}@media(hover:hover){.modal-content--dark .rest-day-confirm__btn--easy:hover{filter:brightness(1.25)}}.modal-content--dark .session-check-btn{color:#a7f3d0}@media(hover:hover){.modal-content--dark .session-check-btn:hover{background:#ffffff26;color:#6ee7b7}}.modal-content--dark .strava-actual--extra,.modal-content--dark .strava-actual--unmatched{background:linear-gradient(180deg,#0a0e2052,#0a0e206b);box-shadow:inset 0 1px #ffffff24,0 1px 2px #0000002e;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-left-color:#ff6a35}.modal-content--dark .strava-unmatched{border-top-color:#ffffff2e}.modal-content--dark .strava-unmatched__title{color:#ffffffd9}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__label{color:#ffffffbf}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__location{color:#fff9}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__desc{color:#ffffffd9}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__stats{color:#ffffffe0}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort{color:#ffffffb3}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort strong{color:#fff}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort--easy strong{color:#93c5fd}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort--moderate strong{color:#86efac}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort--threshold strong{color:#fde047}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__effort--hard strong{color:#fca5a5}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__intervals-toggle{color:#ffffffd9}.modal-content--dark :is(.strava-actual--extra,.strava-actual--unmatched) .strava-actual__link{color:#ff8a5c}.modal-content--dark .day-modified-dot,.modal-content--dark .session-modified-dot{background:#fff}.modal-content--dark .mileage-stepper__field{background:#080c1c8c;border-color:#ffffff38;box-shadow:inset 0 1px #ffffff14,0 1px #00000026}.modal-content--dark .mileage-stepper__field:focus-within{border-color:#ffffffd9;box-shadow:0 0 0 1px #fff9,inset 0 1px #ffffff1f}.modal-content--dark .mileage-stepper__btn{border-color:#fff3;color:#ffffffc7}@media(hover:hover){.modal-content--dark .mileage-stepper__btn:hover:not(:disabled){background:#ffffff29;color:#fff}}.modal-content--dark .mileage-input{background:transparent;border-color:transparent;color:#fff;font-variant-numeric:tabular-nums;font-weight:600}.modal-content--dark .redistribute-toggle{border-color:#ffffff40}.modal-content--dark .redistribute-toggle__btn{background:#ffffff14;border-color:#fff3;color:#ffffff8c}.modal-content--dark .redistribute-toggle__btn--active{background:#ffffff59;color:#fff;font-weight:600;border-color:#ffffff80}@media(hover:hover){.modal-content--dark .redistribute-toggle__btn:not(.redistribute-toggle__btn--active):hover{background:#ffffff2e;color:#fffc}}.modal-content--dark .mileage-warning,.modal-content--dark .low-mileage-dt-info{background:#ffffff26;border-color:#ffffff4d;color:#fff}.modal-content--dark .strides-note{color:#fffc}.modal-content--dark .btn-remove-race{border-color:#ffffff4d;color:#fff}@media(hover:hover){.modal-content--dark .btn-remove-race:hover{background:#ffffff26;border-color:#ffffff80}}.modal-content--dark .session-confirm-delete-btn{background:#ffffffe6;color:#dc2626}.modal-content--dark .session-cancel-btn{color:#fff9}@media(hover:hover){.modal-content--dark .session-cancel-btn:hover{background:#ffffff26;color:#fff}}.modal-content--dark .session-cancel-btn:active,.modal-content--dark .session-cancel-btn.session-cancel-btn--pressed{background:#ffffff26;color:#fff}.modal-header{margin-bottom:1.25rem}.modal-header .zone-tag{font-size:.85rem}.modal-header__title-row{display:flex;align-items:center;gap:.75rem}.modal-header h3{font-size:1.25rem;font-weight:600}.modal-header__date-link{cursor:pointer;border-radius:6px;padding:.1rem .4rem;margin:-.1rem -.4rem;transition:background-color .15s ease,color .15s ease}@media(hover:hover){.modal-header__date-link:hover{background-color:#ffffff1a;text-decoration:underline;text-underline-offset:3px}}.modal-header__date-link:active,.modal-header__date-link.modal-header__date-link--pressed{background-color:#ffffff1a;text-decoration:underline;text-underline-offset:3px;transition:none}.modal-revert-btn{display:inline-flex;align-items:center;gap:.35rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:.25rem .6rem;font-size:.75rem;font-family:inherit;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}@media(hover:hover){.modal-revert-btn:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}}.modal-rest-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:50%;width:28px;height:28px;padding:0;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s;line-height:0}@media(hover:hover){.modal-rest-btn:hover{background:#f5f3ff;color:#7c3aed;border-color:#c4b5fd}}.modal-adj-strip{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:-.5rem 0 .75rem;padding:.375rem .5rem;background:var(--color-surface, rgba(0, 0, 0, .03));border:1px solid var(--color-border);border-radius:var(--radius);font-size:.75rem;animation:session-enter .3s cubic-bezier(.34,1.56,.64,1) backwards}[data-theme=dark] .modal-adj-strip{background:#ffffff0a}.modal-content--dark .modal-adj-strip{border-color:#ffffff1f;background:#ffffff0f}.modal-adj-strip__location-group{display:flex;align-items:center;gap:.25rem;min-width:0}.modal-adj-strip__location{display:flex;align-items:center;gap:.3rem;color:var(--color-text-secondary, #666);min-width:0;background:none;border:none;padding:0;font:inherit;font-size:.75rem;cursor:pointer;border-radius:3px;transition:color .15s}.modal-content--dark .modal-adj-strip__location{color:#fff9}@media(hover:hover){.modal-adj-strip__location:hover{color:var(--color-text, #333)}.modal-content--dark .modal-adj-strip__location:hover{color:#ffffffe6}}.modal-adj-strip__location:active{color:var(--color-text, #333);transition:none}.modal-content--dark .modal-adj-strip__location:active{color:#ffffffe6}.modal-adj-strip__location svg{flex-shrink:0;opacity:.5}.modal-adj-strip__location-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-adj-strip__search{display:flex;align-items:center;gap:.375rem;width:100%;position:relative}.modal-adj-strip__locate-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg, #fff);color:var(--color-text-secondary, #888);cursor:pointer;transition:all .15s}@media(hover:hover){.modal-adj-strip__locate-btn:hover{border-color:var(--color-primary, #4a90d9);color:var(--color-primary, #4a90d9)}}.modal-adj-strip__locate-btn:active,.modal-adj-strip__locate-btn.modal-adj-strip__locate-btn--pressed{border-color:var(--color-primary, #4a90d9);color:var(--color-primary, #4a90d9);transition:none}.modal-adj-strip__locate-btn--loading{opacity:.5;cursor:wait}@keyframes locate-pulse{0%,to{opacity:.5}50%{opacity:1}}.modal-adj-strip__locate-btn--loading svg{animation:locate-pulse 1s ease-in-out infinite}.modal-content--dark .modal-adj-strip__locate-btn{background:#ffffff14;border-color:#fff3;color:#ffffff80}@media(hover:hover){.modal-content--dark .modal-adj-strip__locate-btn:hover{border-color:#ffffff80;color:#ffffffe6}}.modal-adj-strip__search-input{flex:1;min-width:0;padding:.2rem .375rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg, #fff);color:var(--color-text, #333);font:inherit;font-size:.75rem;outline:none}.modal-adj-strip__search-input:focus{border-color:var(--color-primary, #4a90d9)}.modal-content--dark .modal-adj-strip__search-input{background:#ffffff14;border-color:#fff3;color:#ffffffe6}.modal-adj-strip__search-close{background:none;border:none;padding:.125rem;cursor:pointer;color:var(--color-text-secondary, #888);display:flex;align-items:center;flex-shrink:0}.modal-content--dark .modal-adj-strip__search-close{color:#ffffff80}@media(hover:hover){.modal-adj-strip__search-close:hover{color:var(--color-text, #333)}.modal-content--dark .modal-adj-strip__search-close:hover{color:#ffffffe6}}.modal-adj-strip__search-close:active{color:var(--color-text, #333);transition:none}.modal-content--dark .modal-adj-strip__search-close:active{color:#ffffffe6}.modal-adj-strip__search-results{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--color-bg, #fff);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001f;z-index:10;max-height:180px;overflow-y:auto}.modal-content--dark .modal-adj-strip__search-results{background:#1e1e1e;border-color:#ffffff26;box-shadow:0 4px 12px #0006}.modal-adj-strip__search-result{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;width:100%;padding:.4rem .5rem;border:none;background:none;font:inherit;font-size:.75rem;color:var(--color-text, #333);cursor:pointer;text-align:left}.modal-content--dark .modal-adj-strip__search-result{color:#ffffffd9}@media(hover:hover){.modal-adj-strip__search-result:hover{background:var(--color-surface, rgba(0, 0, 0, .04))}.modal-content--dark .modal-adj-strip__search-result:hover{background:#ffffff14}}.modal-adj-strip__search-result:active{background:var(--color-surface, rgba(0, 0, 0, .04));transition:none}.modal-content--dark .modal-adj-strip__search-result:active{background:#ffffff14}.modal-adj-strip__search-result+.modal-adj-strip__search-result{border-top:1px solid var(--color-border)}.modal-content--dark .modal-adj-strip__search-result+.modal-adj-strip__search-result{border-top-color:#ffffff14}.modal-adj-strip__search-result-name{font-weight:500}.modal-adj-strip__search-result-region{color:var(--color-text-secondary, #888);font-size:.6875rem;white-space:nowrap}.modal-content--dark .modal-adj-strip__search-result-region{color:#ffffff73}.modal-adj-strip__search-loading{padding:.375rem .5rem;font-size:.6875rem;color:var(--color-text-secondary, #888);position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--color-bg, #fff);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001f;z-index:10}.modal-content--dark .modal-adj-strip__search-loading{background:#1e1e1e;border-color:#ffffff26;color:#ffffff80}.modal-adj-strip__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;border:none;background:none;color:var(--color-text-secondary, #aaa);cursor:pointer;opacity:.5;transition:opacity .15s,color .15s}.modal-content--dark .modal-adj-strip__clear{color:#ffffff59}@media(hover:hover){.modal-adj-strip__clear:hover{opacity:1;color:var(--color-text, #333)}.modal-content--dark .modal-adj-strip__clear:hover{color:#fffc}}.modal-adj-strip__clear:active{opacity:1;color:var(--color-text, #333);transition:none}.modal-content--dark .modal-adj-strip__clear:active{color:#fffc}.modal-adj-strip__toggles{display:flex;gap:.375rem;flex-shrink:0}.modal-adj-strip__pill{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary, #888);font-size:.6875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}@media(hover:hover){.modal-adj-strip__pill:hover{border-color:var(--color-text-secondary, #999);color:var(--color-text, #333)}}.modal-adj-strip__pill:active:not(.modal-adj-strip__pill--on),.modal-adj-strip__pill.modal-adj-strip__pill--pressed:not(.modal-adj-strip__pill--on){border-color:var(--color-text-secondary, #999);color:var(--color-text, #333);transition:none}.modal-adj-strip__pill--on.modal-adj-strip__pill--heat{background:#dc32321f;border-color:#dc323266;color:#c53030}[data-theme=dark] .modal-adj-strip__pill--on.modal-adj-strip__pill--heat,.modal-content--dark .modal-adj-strip__pill--on.modal-adj-strip__pill--heat{background:#dc323233;border-color:#dc323280;color:#fc8181}.modal-adj-strip__pill--on.modal-adj-strip__pill--altitude{background:#2864dc1f;border-color:#2864dc66;color:#2b6cb0}[data-theme=dark] .modal-adj-strip__pill--on.modal-adj-strip__pill--altitude,.modal-content--dark .modal-adj-strip__pill--on.modal-adj-strip__pill--altitude{background:#2864dc33;border-color:#2864dc80;color:#63b3ed}.modal-adj-strip__pill--on.modal-adj-strip__pill--wind{background:#06b6d41f;border-color:#06b6d473;color:#0e7490}[data-theme=dark] .modal-adj-strip__pill--on.modal-adj-strip__pill--wind,.modal-content--dark .modal-adj-strip__pill--on.modal-adj-strip__pill--wind{background:#22d3ee33;border-color:#22d3ee80;color:#67e8f9}.modal-content--dark .modal-adj-strip__pill{border-color:#ffffff26;color:#ffffff80}@media(hover:hover){.modal-content--dark .modal-adj-strip__pill:hover{border-color:#ffffff4d;color:#fffc}}.modal-adj-strip__pill svg{flex-shrink:0;opacity:.7}.modal-adj-strip__pill--on svg{opacity:1}@keyframes session-enter{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-session{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem;animation:session-enter .4s cubic-bezier(.34,1.56,.64,1) backwards}.modal-session:nth-child(1){animation-delay:.08s}.modal-session:nth-child(2){animation-delay:.16s}.modal-session:nth-child(3){animation-delay:.24s}.modal-session:nth-child(4){animation-delay:.32s}.modal-session__workout-detail{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.34,1.56,.64,1)}.modal-session__workout-detail--collapsed{grid-template-rows:0fr}.modal-session__workout-inner{overflow:hidden}.modal-session__toggle{background:none;border:none;padding:0;margin-left:.25rem;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:inherit;opacity:.5;border-radius:50%;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .15s,background .15s;flex-shrink:0}@media(hover:hover){.modal-session__toggle:hover{opacity:.8;background:#8080801f}}.modal-session__toggle:active,.modal-session__toggle.modal-session__toggle--pressed{opacity:.8;background:#8080801f;transition:none}.modal-session__toggle--collapsed{transform:rotate(-90deg)}@keyframes swipe-hint-pulse{0%,to{opacity:0}50%{opacity:.6}}.modal-swipe-indicator{position:absolute;top:50%;transform:translateY(-50%);width:4px;height:60px;border-radius:2px;background:#fff6;pointer-events:none;opacity:0;transition:opacity .15s ease}.modal-swipe-indicator--left{left:4px}.modal-swipe-indicator--right{right:4px}.modal-swipe-indicator--active{opacity:1}@media(prefers-reduced-motion:reduce){.modal-session{animation:none}.modal-session__workout-detail,.modal-session__toggle{transition:none}}.modal-session .zone-tag{font-size:.85rem}.modal-session h4{font-size:.9rem;font-weight:600;margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;min-height:34px}.modal-session h4 .redistribute-toggle--inline,.modal-session h4 .redistribute-toggle--past{flex-basis:100%;margin-top:.125rem}.modal-session__miles-actual{font-weight:700}.modal-session__miles-sep{margin:0 .1rem;opacity:.5}.modal-session__detail{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.25rem;margin-top:.5rem}.modal-session__pace{font-family:var(--font-mono);font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-primary);margin-top:.5rem}.modal-session__heat-adj{display:flex;align-items:center;gap:.375rem;font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:#fff;margin-top:.25rem;padding:.25rem .5rem;background:#dc3232bf;border-radius:4px;width:fit-content;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-theme=dark] .modal-session__heat-adj{background:#dc3232b3}.modal-session__heat-adj--altitude{color:#fff;background:#2864dcbf}[data-theme=dark] .modal-session__heat-adj--altitude{background:#2864dcb3}.modal-session__heat-adj--multiple{color:#fff;background:#8a46dcbf}[data-theme=dark] .modal-session__heat-adj--multiple{background:#8a46dcb3}.modal-session__heat-adj--wind{color:#fff;background:#06b6d4c7}[data-theme=dark] .modal-session__heat-adj--wind{background:#22d3eeb3}.modal-session__heat-adj svg{flex-shrink:0;opacity:.9}.modal-session__heat-pct{opacity:.6;font-size:.6875rem}.heat-pace{text-decoration:underline dotted;text-decoration-color:var(--color-red, #ef4444);text-underline-offset:3px;text-decoration-thickness:1.5px;cursor:default;border-radius:2px;transition:background .1s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media(hover:hover){.heat-pace:hover{background:#ef44441f}[data-theme=dark] .heat-pace:hover{background:#ef44442e}}.heat-pace--altitude{text-decoration-color:var(--color-blue, #3b82f6)}@media(hover:hover){.heat-pace--altitude:hover{background:#3b82f61f}[data-theme=dark] .heat-pace--altitude:hover{background:#3b82f62e}}.heat-pace--combined{text-decoration-color:#a855f7}@media(hover:hover){.heat-pace--combined:hover{background:#a855f71f}[data-theme=dark] .heat-pace--combined:hover{background:#a855f72e}}.heat-pace--pressed{background:#ef44441f}.heat-pace--pressed.heat-pace--altitude{background:#3b82f61f}.heat-pace--pressed.heat-pace--combined{background:#a855f71f}[data-theme=dark] .heat-pace--pressed{background:#ef44442e}[data-theme=dark] .heat-pace--pressed.heat-pace--altitude{background:#3b82f62e}[data-theme=dark] .heat-pace--pressed.heat-pace--combined{background:#a855f72e}.heat-pace--pressed[data-tooltip]:after{opacity:1}.heat-pace__touch-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;line-height:1.4;letter-spacing:-.008em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:nowrap;pointer-events:none;z-index:100}.heat-pace[data-tooltip]:after{transition:opacity .1s 0s}.workout-pace{position:relative;cursor:default;border-radius:2px;text-decoration:underline dotted;text-decoration-color:#94a3b852;text-underline-offset:3px;text-decoration-thickness:1.5px;transition:background .1s,text-decoration-color .1s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-theme=dark] .workout-pace,.modal-content--dark .workout-pace{text-decoration-color:#ffffff47}@media(hover:hover){.workout-pace:hover{background:#94a3b824;text-decoration-color:var(--color-text-secondary)}[data-theme=dark] .workout-pace:hover,.modal-content--dark .workout-pace:hover{background:#ffffff14;text-decoration-color:#fff9}}.workout-pace--pressed{background:#94a3b829;text-decoration-color:var(--color-text-secondary)}[data-theme=dark] .workout-pace--pressed,.modal-content--dark .workout-pace--pressed{background:#ffffff1a}.workout-pace--adjusted.workout-pace--heat{text-decoration-color:#dc3232d9;text-decoration-thickness:2px}.workout-pace--adjusted.workout-pace--altitude{text-decoration-color:#2864dcd9;text-decoration-thickness:2px}.workout-pace--adjusted.workout-pace--wind{text-decoration-color:#22d3eee6;text-decoration-thickness:2px}.workout-pace--adjusted.workout-pace--multiple{text-decoration-color:#a855f7e6;text-decoration-thickness:2px}@media(hover:hover){.workout-pace--adjusted.workout-pace--heat:hover{background:#dc32322e}.workout-pace--adjusted.workout-pace--altitude:hover{background:#2864dc2e}.workout-pace--adjusted.workout-pace--wind:hover{background:#22d3ee2e}.workout-pace--adjusted.workout-pace--multiple:hover{background:#a855f72e}}.workout-pace--pressed.workout-pace--heat{background:#dc323233}.workout-pace--pressed.workout-pace--altitude{background:#2864dc33}.workout-pace--pressed.workout-pace--wind{background:#22d3ee33}.workout-pace--pressed.workout-pace--multiple{background:#a855f738}.workout-pace__touch-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.4;letter-spacing:-.008em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:nowrap;pointer-events:none;z-index:100}.workout-pace__hover-tip{position:fixed;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.4;letter-spacing:-.008em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:nowrap;pointer-events:none;z-index:9999;animation:workout-pace-tip-in .18s cubic-bezier(.18,1.1,.3,1.05) both}.workout-pace__hover-tip--below{animation-name:workout-pace-tip-in-below}.workout-pace__rich-tip{position:fixed;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.5rem .7rem;border-radius:9px;box-shadow:0 6px 22px #0f172a52;display:grid;grid-template-columns:auto auto;column-gap:.55rem;row-gap:.12rem;align-items:baseline;font-family:var(--font);font-size:.72rem;font-weight:500;line-height:1.35;letter-spacing:-.008em;white-space:nowrap;pointer-events:none;z-index:9999;animation:workout-pace-tip-in .18s cubic-bezier(.18,1.1,.3,1.05) both}@keyframes workout-pace-tip-in{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.workout-pace__rich-tip--below{animation-name:workout-pace-tip-in-below}@keyframes workout-pace-tip-in-below{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.workout-pace__rich-row{display:contents}.workout-pace__rich-head{grid-column:1 / -1;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;padding-bottom:.28rem;margin-bottom:.18rem;border-bottom:1px solid rgba(148,163,184,.2);color:var(--color-text-secondary)}.workout-pace--heat .workout-pace__rich-head,.workout-pace__rich-tip.workout-pace--heat .workout-pace__rich-head{color:#dc3232f2;border-bottom-color:#dc323247}.workout-pace--altitude .workout-pace__rich-head,.workout-pace__rich-tip.workout-pace--altitude .workout-pace__rich-head{color:#2864dcf2;border-bottom-color:#2864dc47}.workout-pace--wind .workout-pace__rich-head,.workout-pace__rich-tip.workout-pace--wind .workout-pace__rich-head{color:#06b6d4f2;border-bottom-color:#22d3ee4d}.workout-pace--multiple .workout-pace__rich-head,.workout-pace__rich-tip.workout-pace--multiple .workout-pace__rich-head{color:#8a46dcf2;border-bottom-color:#a855f74d}[data-theme=dark] .workout-pace__rich-tip.workout-pace--heat .workout-pace__rich-head{color:#f87171f2;border-bottom-color:#f8717152}[data-theme=dark] .workout-pace__rich-tip.workout-pace--altitude .workout-pace__rich-head{color:#60a5faf2;border-bottom-color:#60a5fa52}[data-theme=dark] .workout-pace__rich-tip.workout-pace--wind .workout-pace__rich-head{color:#67e8f9fa;border-bottom-color:#67e8f957}[data-theme=dark] .workout-pace__rich-tip.workout-pace--multiple .workout-pace__rich-head{color:#c084fcfa;border-bottom-color:#c084fc52}.workout-pace__rich-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.workout-pace__rich-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.74rem;color:var(--color-text);display:inline-flex;align-items:baseline;gap:.3rem}.workout-pace__rich-orig{font-size:.62rem;font-weight:500;opacity:.55;letter-spacing:0}.workout-pace__rich-value strong{font-weight:700}.workout-pace__rich-arrow{font-family:var(--font);opacity:.5;font-weight:500}[data-theme=dark] .workout-pace__rich-tip{background:linear-gradient(135deg,#6366f138,#ec48991f),#0f172af0;color:#fff;border-color:#ffffff38;box-shadow:0 6px 22px #0000006b}[data-theme=dark] .workout-pace__rich-tip .workout-pace__rich-label{color:#ffffffa6}[data-theme=dark] .workout-pace__rich-tip .workout-pace__rich-value,[data-theme=dark] .workout-pace__rich-tip .workout-pace__rich-value strong{color:#fff}.modal-total{display:flex;align-items:center;justify-content:center;gap:.4rem;padding-top:.75rem;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.dt-warning-badge{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;margin-bottom:1.5rem;border-radius:var(--radius);font-size:.84rem;line-height:1.5;font-weight:450;color:#92400e;background:linear-gradient(135deg,#fbbf241f,#f59e0b2e);border:1px solid rgba(245,158,11,.3);border-left:3px solid #f59e0b;box-shadow:0 1px 3px #f59e0b14,inset 0 1px #ffffff80;transition:box-shadow .3s ease,border-color .3s ease}@media(hover:hover){.dt-warning-badge:hover{box-shadow:0 2px 8px #f59e0b26,inset 0 1px #ffffff80;border-color:#f59e0b73}}.dt-warning-badge__icon{flex-shrink:0;color:#d97706;margin-top:1px}.dt-warning-badge__text strong{font-weight:650;color:#78350f}.dt-warning-badge__sub{display:block;margin-top:.2rem;opacity:.75;font-size:.8rem}[data-theme=dark] .dt-warning-badge{color:#fcd34d;background:linear-gradient(135deg,#fbbf2414,#f59e0b1f);border-color:#fbbf2433;border-left-color:#fbbf24;box-shadow:0 1px 3px #0000004d,inset 0 1px #fbbf240f}[data-theme=dark] .dt-warning-badge__text strong{color:#fde68a}[data-theme=dark] .dt-warning-badge__icon{color:#fbbf24}@media(hover:hover){[data-theme=dark] .dt-warning-badge:hover{box-shadow:0 2px 10px #fbbf241f,inset 0 1px #fbbf240f;border-color:#fbbf2459}}.low-mileage-dt-badge{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;color:#fff;background:linear-gradient(135deg,#8b5cf6,#ec4899);background-size:200% 200%;animation:low-mileage-dt-drift 4s ease-in-out infinite;box-shadow:0 1px 3px #8b5cf640;transition:box-shadow .3s ease,transform .3s ease;cursor:default}@media(hover:hover){.low-mileage-dt-badge:hover{animation:low-mileage-dt-pulse 1.5s ease-in-out infinite;box-shadow:0 4px 16px #ec489966;transform:scale(1.01)}}.low-mileage-dt-badge strong{font-weight:700}.low-mileage-dt-badge__icon{font-family:var(--font-symbols);font-size:1.1rem;flex-shrink:0}@keyframes low-mileage-dt-drift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes low-mileage-dt-pulse{0%,to{background-position:0% 50%;transform:scale(1);box-shadow:0 4px 16px #ec489966}50%{background-position:100% 50%;transform:scale(1.02);box-shadow:0 6px 20px #8b5cf680}}.low-mileage-plan-badge{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;margin-bottom:1.5rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;color:#f0fdf4;background:linear-gradient(135deg,#0d9488,#2563eb);background-size:200% 200%;animation:low-mileage-plan-drift 5s ease-in-out infinite;box-shadow:0 1px 4px #0d948840;transition:box-shadow .3s ease,transform .2s ease;cursor:default}@media(hover:hover){.low-mileage-plan-badge:hover{box-shadow:0 4px 14px #0d948859;transform:scale(1.005)}}.low-mileage-plan-badge strong{font-weight:700}.low-mileage-plan-badge__icon{flex-shrink:0;color:#bbf7d0}@keyframes low-mileage-plan-drift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.compressed-plan-badge{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;color:#fff7ed;background:linear-gradient(135deg,#c2410c,#b45309);background-size:200% 200%;animation:compressed-plan-drift 5s ease-in-out infinite;box-shadow:0 1px 4px #c2410c40;transition:box-shadow .3s ease,transform .2s ease;cursor:default}@media(hover:hover){.compressed-plan-badge:hover{box-shadow:0 4px 14px #c2410c59;transform:scale(1.005)}}.compressed-plan-badge strong{font-weight:700}.compressed-plan-badge__icon{flex-shrink:0;color:#fed7aa;font-size:1.1rem;line-height:1}@keyframes compressed-plan-drift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.share-spinner{animation:share-spin .8s linear infinite}@keyframes share-spin{to{transform:rotate(360deg)}}.shared-plan-badge{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;color:#f0fdfa;background:linear-gradient(135deg,#0d9488,#0284c7);background-size:200% 200%;animation:shared-badge-drift 4s ease-in-out infinite;box-shadow:0 1px 3px #0d948840;cursor:default}@media(hover:hover){.shared-plan-badge:hover{box-shadow:0 4px 16px #0284c759}}.shared-plan-badge strong{font-weight:700}.shared-plan-badge__icon{flex-shrink:0;display:flex;align-items:center}@keyframes shared-badge-drift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.coached-plan-badge{display:flex;align-items:center;gap:.625rem;padding:.625rem 1rem;margin-bottom:1rem;border-radius:var(--radius);font-size:.8125rem;font-weight:500;color:var(--color-purple);background:#8b5cf61a;border:1px solid rgba(139,92,246,.2);cursor:default}.coached-plan-badge strong{font-weight:700}.coached-plan-badge__icon{flex-shrink:0;display:flex;align-items:center}.low-mileage-dt-info{background:linear-gradient(135deg,#8b5cf61a,#ec48991a);border:1px solid rgba(139,92,246,.3);border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem;color:#7c3aed}.low-mileage-dt-info strong{font-weight:600}.strides-note{background:#fdf4ff;border:1px solid rgba(134,25,143,.25);border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem;color:#86198f}.strides-note strong{font-weight:600}.strides-note--done{border-color:#22c55e73}.strides-note__check{color:#22c55e;font-weight:600;margin-left:.35rem;white-space:nowrap}@media(max-width:768px){.cal-controls__btn--refresh{display:none}.plan-header{display:flex;width:fit-content;max-width:100%;margin:0 auto;gap:0;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1875rem;align-items:center}.plan-header__left{background:none;border:none;padding:0;display:inline-flex;align-items:center}.plan-header__left .cal-controls{border:none;background:none;padding:0;border-radius:0}.plan-header__left .plan-actions:after{content:"";width:1px;height:20px;background:var(--color-border);margin:0 .1875rem;flex-shrink:0}.plan-header__left .plan-actions>.add-menu-dropdown~.cal-controls__divider{display:none}.plan-header__nav-mobile{display:inline-flex;align-items:center;gap:0;background:none;border:none;padding:0;border-radius:0}.plan-header__nav-mobile .cal-controls,.plan-header__nav-mobile .history-toolbar{border:none;background:none;padding:0;border-radius:0;box-shadow:none;height:auto}.plan-header__right,.cal-controls__btn--nav-arrow,.cal-controls__divider--nav{display:none}.week-nav__arrow--mobile{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:color .15s}.week-nav__arrow--mobile:active:not(:disabled){color:var(--color-text);background:var(--color-bg);transition:none}.week-nav__arrow--mobile:disabled{opacity:.2;cursor:not-allowed}.plan-info-dropdown--desktop{display:none}.plan-header__info-mobile{display:contents}.paces-dropdown--desktop{display:none}.plan-header__paces-mobile{display:contents}.add-menu-dropdown .add-menu-panel{display:none}.plan-info-panel{position:fixed;inset:auto 0 0;border-radius:var(--radius) var(--radius) 0 0;min-width:unset}.month-view__week-grid,.month-view__day-headers{gap:.25rem}.day-card--compact{padding:.25rem;min-height:60px}.day-card--compact .day-card__header{margin-bottom:.25rem}.day-card--compact .day-card__date-month,.day-card--compact .day-card__edit-btn,.day-card--compact .day-card__rest-btn{display:none}.day-card--compact .day-card__session{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-card--compact .day-card__footer{gap:.125rem;margin-top:.25rem}.day-card--compact .day-card__checkbox{width:12px;height:12px;min-width:12px;min-height:12px}.modal-content{padding:1.25rem}.week-nav-info h3{font-size:.95rem}.cal-controls__btn{width:40px;height:40px}}.add-menu-dropdown{position:relative}.add-menu-panel{position:absolute;top:calc(100% + .375rem);left:0;z-index:50;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);border:1px solid rgba(139,92,246,.25);border-radius:var(--radius);box-shadow:0 4px 16px #8b5cf61f;padding:.25rem 0;min-width:180px;white-space:nowrap;animation:fade-in .1s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.add-menu-panel__item{display:block;width:100%;text-align:left;padding:.5rem 1rem;font-size:.85rem;background:none;border:none;color:var(--color-text);cursor:pointer;font-family:inherit}@media(hover:hover){.add-menu-panel__item:hover{background:#8b5cf61a}}.add-menu-panel__item:active{background:#8b5cf61a;transition:none}@media(max-width:480px){.plan-toolbar{padding-left:.375rem;padding-right:.375rem}.cal-controls__btn{width:30px;height:30px}.cal-controls__btn svg{width:14px;height:14px}.plan-header__left{max-width:100%}.week-nav-info h3{font-size:.85rem}.week-nav-subtitle{font-size:.7rem;padding:.2rem .625rem}.week-nav-subtitle-row{gap:5px}.week-nav-undo-btn{padding:0 .55rem;font-size:.65rem}.week-nav-undo-btn__icon{width:10px;height:10px}.month-view__week-undo{padding:0 .5rem;font-size:.65rem}.month-view__week-undo-icon{width:10px;height:10px}.week-nav-badge{font-size:.6rem;padding:.1rem .375rem}.month-view__week-grid,.month-view__day-headers{gap:2px}.day-card--compact{padding:2px;min-height:48px;border-radius:var(--radius-sm)}.day-card--compact .day-card__header{margin-bottom:1px}.day-card--compact .day-card__day{font-size:.55rem}.day-card--compact .day-card__session{font-size:.6rem}.day-card--compact .zone-tag{font-size:.55rem;padding:0 .25rem;margin-right:.125rem}.day-card--compact .day-card__miles{font-size:.6rem}.day-card--compact .day-card__footer{margin-top:.125rem}.month-header{font-size:.6rem}.month-view__week-label{padding:.125rem 0}.month-view__week-num{font-size:.65rem}.month-view__week-mileage{font-size:.6rem}.modal-session{padding:.75rem}.mileage-stepper__btn{width:32px;height:32px;font-size:1rem}.mileage-stepper__field{height:32px}.paces-panel{position:fixed;inset:auto 0 0;z-index:200;border-radius:16px 16px 0 0;min-width:unset;max-height:50vh;overflow-y:auto;box-shadow:0 -4px 20px #00000026}.context-menu{left:0!important;right:0;bottom:0!important;top:auto!important;width:100%;border-radius:16px 16px 0 0;min-width:unset;box-shadow:0 -4px 20px #00000026;animation:slide-up .2s ease}.context-menu__item{padding:.875rem 1.25rem;font-size:1rem}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.plan-info-panel--sheet,.paces-panel--sheet,.add-menu-panel--sheet,.plan-info-panel__handle{display:none}@media(max-width:768px){.plan-info-panel--inline,.paces-panel--inline{display:none}.plan-info-panel--sheet .plan-info-panel__handle{display:block;position:relative;height:18px;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.plan-info-panel--sheet .plan-info-panel__handle:before{content:"";position:absolute;top:7px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:2px;background:var(--color-border)}.plan-info-panel--sheet{display:block;position:fixed;inset:auto 0 0;z-index:200;border-radius:16px 16px 0 0;min-width:unset;box-shadow:0 -4px 20px #00000026;animation:slide-up .2s ease}.paces-panel--sheet{display:block;position:fixed;inset:auto 0 0;z-index:200;border-radius:16px 16px 0 0;min-width:unset;max-height:50vh;overflow-y:auto;box-shadow:0 -4px 20px #00000026;animation:slide-up .2s ease}.add-menu-panel--sheet{display:block;position:fixed;inset:auto 0 0;z-index:200;border-radius:16px 16px 0 0;min-width:unset;box-shadow:0 -4px 20px #00000026;animation:slide-up .2s ease}.add-menu-panel--sheet .add-menu-panel__item{padding:.875rem 1.25rem;font-size:1rem}}@media(pointer:coarse){.day-card__edit-btn,.day-card__rest-btn{opacity:.6}.day-card__checkbox{width:20px;height:20px;min-width:20px;min-height:20px}.day-card__particle,.firework{display:none}@media(hover:hover){.day-card--double-threshold:hover,.day-card--long-run:hover,.day-card--workout:hover,.day-card--vo2max:hover,.day-card--hill:hover,.day-card--tuneup:hover,.day-card--marathon:hover,.day-card--long-workout:hover{animation:none;background-size:100% 100%}.day-card--speed:hover,.day-card--race-day:hover .firework--1,.day-card--race-day:hover .firework--2,.day-card--race-day:hover .firework--3{animation:none}}.session-edit-btn,.session-undo-btn,.session-check-btn,.session-delete-btn,.session-watch-btn{width:36px;height:36px;min-height:36px;opacity:.7}[data-tooltip]:after{display:none}.adjacent-hard-warning--inline[data-tooltip]:after{display:block}.modal-content.modal-content--double-threshold,.modal-content.modal-content--long-run,.modal-content.modal-content--workout,.modal-content.modal-content--vo2max,.modal-content.modal-content--hill,.modal-content.modal-content--tuneup,.modal-content.modal-content--marathon,.modal-content.modal-content--long-workout{background-size:200% 200%;animation:gradient-shift 3s ease-in-out infinite,bg-pulse 2.5s ease-in-out infinite}.modal-content.modal-content--speed{background-size:200% 200%;animation:speed-gradient-sweep 2s ease-in-out infinite}.week-grid--dragging{touch-action:none}.cal-controls__btn{width:40px;height:40px;min-height:40px}}.context-menu{position:fixed;z-index:300;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:.25rem 0;min-width:150px;animation:fade-in .1s ease}.context-menu__item{display:block;width:100%;text-align:left;padding:.5rem 1rem;font-size:.85rem;background:none;border:none;color:var(--color-text);cursor:pointer;font-family:inherit}@media(hover:hover){.context-menu__item:hover{background:var(--color-bg)}}.context-menu__item:active{background:var(--color-bg);transition:none}.context-menu__item--danger{color:#dc2626}@media(hover:hover){.context-menu__item--danger:hover{background:#fef2f2}}.add-race-modal .modal-header{margin-bottom:1rem}.add-race-modal__form{display:flex;flex-direction:column;gap:1.25rem}.add-race-modal__group{display:flex;flex-direction:column;gap:.375rem}.add-race-modal__group>label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.add-race-modal__group input[type=date],.add-race-modal__group input[type=text],.add-race-modal__group select{width:100%;padding:.5rem .75rem;font-size:.9rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:inherit}.add-race-modal__hint{font-size:.8rem;color:var(--color-text-muted);font-style:italic;margin-top:.25rem}.add-race-modal__computed-time{display:inline-block;background:linear-gradient(135deg,#6366f126,#ec489926);padding:.375rem .75rem;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--color-text);margin-top:.25rem}.add-race-modal__toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.add-race-modal__toggle--full{display:flex;width:100%}.add-race-modal__toggle--full button{flex:1}.add-race-modal__toggle button{border-radius:0;padding:.375rem .75rem;font-size:.8rem;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-right:1px solid var(--color-border);cursor:pointer;font-family:inherit}.add-race-modal__toggle button:last-child{border-right:none}.add-race-modal__toggle button.active{background:var(--color-primary);color:#fff}.add-race-modal__error{font-size:.85rem;color:#dc2626;font-weight:500}.add-race-modal__submit{width:100%;padding:.625rem;font-size:.9rem;font-weight:600;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:background .15s}@media(hover:hover){.add-race-modal__submit:hover{background:var(--color-primary-hover)}}.add-race-modal__submit:active{background:var(--color-primary-hover);transition:none}.day-card--additional-race{background:linear-gradient(135deg,#0891b2,#6366f1);border-color:transparent;background-size:100% 100%;overflow:hidden;transition:transform var(--transition),box-shadow var(--transition),background-size .3s ease}@media(hover:hover){.day-card--additional-race:hover{background-size:200% 200%;animation:gradient-shift 3s ease-in-out infinite,bg-pulse 2.5s ease-in-out infinite;box-shadow:0 4px 16px #6366f14d}}.day-card--additional-race .day-card__day,.day-card--additional-race .day-card__date,.day-card--additional-race .day-card__session,.day-card--additional-race .day-card__miles,.day-card--additional-race .day-card__race-label{color:#fff}.day-card--additional-race .zone-tag{background:#00000073;color:#fff}.mileage-stepper{display:inline-flex;align-items:center;gap:.375rem}.mileage-stepper__field{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);height:26px}.mileage-stepper__field:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.mileage-stepper__field .mileage-input{border:none;border-radius:0;padding:0;width:3ch;height:100%;line-height:1}.mileage-stepper__field .mileage-input:focus{outline:none;border-color:transparent;box-shadow:none}.mileage-stepper__btn{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;font-size:.8rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s;padding:0;line-height:1}@media(hover:hover){.mileage-stepper__btn:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary)}}.mileage-stepper__btn:active:not(:disabled){background:var(--color-primary-light);color:var(--color-primary);transition:none}.mileage-stepper__btn:disabled{opacity:.3;cursor:not-allowed}.session-modified-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f59e0b;margin-left:.35rem;vertical-align:middle}.wc-edit-inline{display:flex;flex-direction:column;gap:.45rem;align-items:stretch}.wc-edit-row{display:grid;grid-template-columns:5.25rem 1fr;align-items:center;column-gap:.5rem;row-gap:.25rem}.wc-edit-row__label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);text-align:left;white-space:nowrap}.modal-content--dark .wc-edit-row__label{color:#ffffff8c}.wc-edit-row__content{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;min-width:0}.wc-edit-row__unit{opacity:.75}.wc-edit-row__sep{opacity:.55;margin:0 .05rem 0 -.1rem}.wc-edit-inline .mileage-stepper__field{height:24px}.wc-edit-inline .mileage-stepper__btn{width:20px;height:20px;font-size:.75rem}@media(max-width:420px){.wc-edit-row{grid-template-columns:4.5rem 1fr;column-gap:.4rem}}.wc-value{display:inline-flex;align-items:center;justify-content:center;min-width:2.5ch;text-align:center;font-size:.8rem;font-weight:500;padding:0 .15rem}.wc-inline-text{font-size:.8rem;white-space:nowrap}.wc-edit-btn{background:none;border:none;font-size:.8rem;line-height:1;padding:0;color:var(--color-text-muted);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;opacity:.6;margin-left:.375rem;vertical-align:middle}@media(hover:hover){.wc-edit-btn:hover{opacity:1;background:var(--color-bg);color:var(--color-primary)}}.modal-content--dark .wc-edit-btn{color:#fff9}@media(hover:hover){.modal-content--dark .wc-edit-btn:hover{opacity:1;background:#ffffff26;color:#fff}}.modal-content--dark .wc-value{color:#fff;font-weight:600;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(0,0,0,.25)}.modal-content--dark .wc-inline-text{color:#ffffffd1}.wc-seg-label{font-weight:500;letter-spacing:.01em}.wc-edit-delta{font-size:.75rem;font-weight:600;padding:.1rem .3rem;border-radius:4px;white-space:nowrap;margin-left:.15rem}.wc-edit-delta--over{color:#059669;background:#0596691a}.wc-edit-delta--under{color:#dc2626;background:#dc26261a}.modal-content--dark .wc-edit-delta--over{color:#34d399;background:#34d3991f}.modal-content--dark .wc-edit-delta--under{color:#f87171;background:#f871711f}[data-theme=dark] .wc-edit-delta--over{color:#34d399;background:#34d3991f}[data-theme=dark] .wc-edit-delta--under{color:#f87171;background:#f871711f}.day-modified-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f59e0b;margin-left:.4rem;vertical-align:middle}.redistribute-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius);margin-top:.75rem}.redistribute-toggle--inline{margin-top:0;height:26px}.redistribute-toggle--inline .redistribute-toggle__btn{padding:0 .5rem;font-size:.7rem;line-height:1}.redistribute-toggle--no-targets{font-size:.65rem;color:var(--color-text-muted);font-style:italic;padding:0 .5rem;display:flex;align-items:center;white-space:nowrap;border:1px solid var(--color-border);border-radius:var(--radius);height:26px;opacity:.7}.redistribute-toggle__btn{flex:1;padding:.375rem .75rem;font-size:.75rem;font-family:inherit;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s}.redistribute-toggle__btn:first-child{border-right:1px solid var(--color-border);border-radius:var(--radius) 0 0 var(--radius)}.redistribute-toggle__btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.redistribute-toggle__btn--active{background:var(--color-primary);color:#fff}@media(hover:hover){.redistribute-toggle__btn:not(.redistribute-toggle__btn--active):hover{background:var(--color-bg)}}.redistribute-toggle__btn--disabled{opacity:.4;cursor:not-allowed}.redistribute-toggle--past{flex-wrap:wrap;gap:0}.redistribute-toggle--past .redistribute-toggle__btn{border-right:1px solid var(--color-border);border-radius:0}.redistribute-toggle--past .redistribute-toggle__btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.redistribute-toggle--past .redistribute-toggle__btn:last-of-type{border-right:none;border-radius:0 var(--radius) var(--radius) 0}.redistribute-toggle__warning{width:100%;font-size:.65rem;color:var(--color-warning, #d97706);padding:.25rem .5rem 0;line-height:1.3}.day-card__rest-btn--disabled,.modal-rest-btn--disabled{opacity:.3;cursor:not-allowed;pointer-events:auto}[data-tooltip]{position:relative}[data-tooltip]:after{--tip-tx: -50%;--tip-ty-init: 4px;--tip-ty-rest: 0;--tip-scale-init: .94;content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(var(--tip-tx),var(--tip-ty-init)) scale(var(--tip-scale-init));transform-origin:50% calc(100% + 6px);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;line-height:1.4;letter-spacing:-.008em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:normal;width:max-content;max-width:240px;text-align:center;pointer-events:none;opacity:0;transition:opacity .18s ease .11s,transform .28s cubic-bezier(.18,1.1,.3,1.05) .11s;z-index:100}@media(hover:hover){[data-tooltip]:hover:after{opacity:1;transform:translate(var(--tip-tx),var(--tip-ty-rest)) scale(1)}}.modal-revert-btn[data-tooltip]:after,.modal-rest-btn[data-tooltip]:after,.cal-controls__btn[data-tooltip]:after,.modal-content .redistribute-toggle__btn[data-tooltip]:after{bottom:auto;top:calc(100% + 8px);--tip-ty-init: -3px}.cal-controls__btn:last-child[data-tooltip]:after,.modal-content .redistribute-toggle__btn:last-of-type[data-tooltip]:after,.session-watch-btn[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}.modal-content .redistribute-toggle__btn:first-child[data-tooltip]:after{left:0;--tip-tx: 0}.day-card__modified-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f59e0b;margin-left:.25rem;vertical-align:1px}.day-card--vo2max .day-card__modified-dot,.day-card--race-day .day-card__modified-dot{background:#fff}.modal-additional-race-badge{display:inline-block;background:linear-gradient(135deg,#0891b2,#6366f1);color:#fff;font-size:.8rem;font-weight:700;padding:.25rem .75rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.btn-remove-race{display:block;width:100%;margin-top:1rem;padding:.5rem;font-size:.85rem;font-weight:600;background:none;border:1.5px solid #dc2626;border-radius:var(--radius-sm);color:#dc2626;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}@media(hover:hover){.btn-remove-race:hover{background:#dc2626;color:#fff}}.btn-remove-race:active{background:#dc2626;color:#fff;transition:none}.modal-day-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.modal-day-actions__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .6rem;font-family:var(--font);font-size:.78rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}@media(hover:hover){.modal-day-actions__btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:#3b82f60a}}.modal-day-actions__btn:active,.modal-day-actions__btn.modal-day-actions__btn--pressed{color:var(--color-accent);border-color:var(--color-accent);background:#3b82f60a;transition:none}.modal-content--dark .modal-day-actions{border-top-color:#ffffff14}.modal-content--dark .modal-day-actions__btn{background:#ffffff0a;border-color:#ffffff1a;color:#fff9}@media(hover:hover){.modal-content--dark .modal-day-actions__btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:#3b82f614}}.modal-content--dark .modal-day-actions__btn:active,.modal-content--dark .modal-day-actions__btn.modal-day-actions__btn--pressed{color:var(--color-accent);border-color:var(--color-accent);background:#3b82f614}.week-grid--holding,.week-grid--dragging{-webkit-user-select:none;user-select:none;touch-action:none}.week-grid--dragging .day-card,.month-view__week-grid.week-grid--dragging .day-card{transition:transform .2s cubic-bezier(.2,0,0,1)}.day-card--dragging{position:fixed;z-index:1000;opacity:.92;transform:scale(1.04);box-shadow:0 16px 40px #0003;pointer-events:none;cursor:grabbing}.day-card.day-card--holding{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #0000001f;z-index:2;transition:transform .15s ease,box-shadow .15s ease;overflow:visible}.day-card--holding:after{content:"";position:absolute;inset:2px;border-radius:inherit;background:radial-gradient(ellipse at 50% 60%,rgba(59,130,246,.06) 0%,rgba(139,92,246,.03) 50%,transparent 80%);pointer-events:none;animation:hold-shimmer 1.2s ease-in-out infinite}@keyframes hold-shimmer{0%,to{opacity:.4}50%{opacity:1}}.day-card.day-card--drop-zone{background:repeating-linear-gradient(0deg,transparent,transparent 11px,rgba(59,130,246,.08) 11px,rgba(59,130,246,.08) 12px),repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(59,130,246,.08) 11px,rgba(59,130,246,.08) 12px),#eff6ffd9;border-color:transparent;outline:2px dashed rgba(59,130,246,.35);outline-offset:-2px;box-shadow:inset 0 0 24px #3b82f60f;animation:drop-zone-pulse 1.5s ease-in-out infinite;overflow:visible}.day-card--drop-zone>*{opacity:0}@media(hover:hover){.day-card--drop-zone:hover,.day-card.day-card--drop-zone:hover{transform:none;box-shadow:inset 0 0 24px #3b82f60f}}.day-card--drop-zone:before{content:"";position:absolute;inset:-5px;border-radius:calc(var(--radius) + 5px);border:2px solid rgba(59,130,246,.2);animation:portal-ring 2s ease-in-out infinite;pointer-events:none}.day-card--drop-zone:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 50%,rgba(59,130,246,.08) 0%,rgba(139,92,246,.04) 40%,transparent 70%);animation:portal-shimmer 2s ease-in-out infinite;pointer-events:none}@keyframes drop-zone-pulse{0%,to{outline-color:#3b82f640;box-shadow:inset 0 0 20px #3b82f60a}50%{outline-color:#3b82f680;box-shadow:inset 0 0 30px #3b82f61a,0 0 12px #3b82f60f}}@keyframes portal-ring{0%,to{transform:scale(1);opacity:.3;border-color:#3b82f633}50%{transform:scale(1.02);opacity:.8;border-color:#6366f166}}@keyframes portal-shimmer{0%,to{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.02)}}.adjacent-hard-warning{background:var(--color-red-light);border:1px solid var(--color-red);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:#991b1b;display:flex;align-items:center;gap:.5rem}.adjacent-hard-warning--inline{position:absolute;right:0;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:.35rem;padding:.125rem .625rem;margin:0;font-family:inherit;font-size:.7rem;border-radius:999px;white-space:nowrap;cursor:default;-webkit-tap-highlight-color:transparent}.adjacent-hard-warning--inline:focus{outline:none}.adjacent-hard-warning--inline:active:not(:disabled){transform:translateY(-50%) scale(.97);transition:none}.adjacent-hard-warning__icon{font-family:var(--font-symbols);font-size:.85em;line-height:1}@media(max-width:768px){.adjacent-hard-warning--inline{padding:.2rem .45rem;cursor:pointer}.adjacent-hard-warning--inline .adjacent-hard-warning__text{display:none}.adjacent-hard-warning--inline .adjacent-hard-warning__icon{font-size:.95em}}.adjacent-hard-warning--inline[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}.adjacent-hard-warning--inline.is-tipped:after{opacity:1;transform:translate(var(--tip-tx),var(--tip-ty-rest)) scale(1)}.hard-group-outline{position:absolute;inset:0;outline:2px solid var(--color-red);outline-offset:3px;border-radius:var(--radius);pointer-events:none;z-index:0}.day-card.day-card--drop-zone--warning{background:repeating-linear-gradient(0deg,transparent,transparent 11px,rgba(239,68,68,.08) 11px,rgba(239,68,68,.08) 12px),repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(239,68,68,.08) 11px,rgba(239,68,68,.08) 12px),#fef2f2d9;outline-color:#ef444459;animation:drop-zone-pulse-warning 1.5s ease-in-out infinite}.day-card--drop-zone--warning:before{border-color:#ef444433;animation:portal-ring-warning 2s ease-in-out infinite}.day-card--drop-zone--warning:after{background:radial-gradient(ellipse at 50% 50%,rgba(239,68,68,.08) 0%,rgba(239,68,68,.04) 40%,transparent 70%)}@keyframes drop-zone-pulse-warning{0%,to{outline-color:#ef444440;box-shadow:inset 0 0 20px #ef44440a}50%{outline-color:#ef444480;box-shadow:inset 0 0 30px #ef44441a,0 0 12px #ef44440f}}@keyframes portal-ring-warning{0%,to{transform:scale(1);opacity:.3;border-color:#ef444433}50%{transform:scale(1.02);opacity:.8;border-color:#ef444466}}@media(min-width:769px){.week-grid .day-card:not(.day-card--off),.month-view__week-grid .day-card:not(.day-card--off){cursor:default}.week-grid--holding .day-card:not(.day-card--off),.month-view__week-grid.week-grid--holding .day-card:not(.day-card--off){cursor:grab}.week-grid--dragging .day-card:not(.day-card--off),.month-view__week-grid.week-grid--dragging .day-card:not(.day-card--off){cursor:grabbing}}.strava-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.375rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.75rem;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}@media(hover:hover){.strava-btn:hover{border-color:#fc4c02;color:#fc4c02}.strava-btn--connect:hover{background:#fc4c0214}}.strava-btn:active,.strava-btn.strava-btn--pressed{border-color:#fc4c02;color:#fc4c02;transition:none}.strava-btn--connect:active,.strava-btn--connect.strava-btn--pressed{background:#fc4c0214}.strava-btn--disconnect{color:var(--color-text-secondary)}@media(hover:hover){.strava-btn--disconnect:hover{color:#e74c3c;border-color:#e74c3c}}.strava-btn--disconnect:active,.strava-btn--disconnect.strava-btn--pressed{color:#e74c3c;border-color:#e74c3c}.strava-sync-status{display:flex;align-items:center;justify-content:center;gap:.375rem;color:var(--color-text-secondary);font-size:.675rem;font-weight:500;opacity:.7;padding:.125rem 0}.strava-sync__spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.day-card--off .day-card__footer{justify-content:flex-start;min-height:14px;padding:0 0 .25rem .25rem}.day-card__strava-icon,.day-card__unplanned-workout-icon,.day-card__easy-on-workout-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;flex-shrink:0;font-size:0}.day-card__strava-icon svg,.day-card__unplanned-workout-icon svg,.day-card__easy-on-workout-icon svg{width:9px;height:9px}.day-card--compact .day-card__strava-icon,.day-card--compact .day-card__unplanned-workout-icon,.day-card--compact .day-card__easy-on-workout-icon{width:12px;height:12px}.day-card--compact .day-card__strava-icon svg,.day-card--compact .day-card__unplanned-workout-icon svg,.day-card--compact .day-card__easy-on-workout-icon svg{width:7px;height:7px}.day-card__strava-icon--matched{background:#22c55e26;color:#22c55e}.day-card__strava-icon--unmatched,.day-card__unplanned-workout-icon,.day-card__easy-on-workout-icon{background:#f59e0b2e;color:#f59e0b}.day-card--double-threshold .day-card__strava-icon,.day-card--long-run .day-card__strava-icon,.day-card--workout .day-card__strava-icon,.day-card--vo2max .day-card__strava-icon,.day-card--hill .day-card__strava-icon,.day-card--tuneup .day-card__strava-icon,.day-card--speed .day-card__strava-icon,.day-card--marathon .day-card__strava-icon,.day-card--long-workout .day-card__strava-icon,.day-card--race-day .day-card__strava-icon,.day-card--double-threshold .day-card__unplanned-workout-icon,.day-card--long-run .day-card__unplanned-workout-icon,.day-card--workout .day-card__unplanned-workout-icon,.day-card--vo2max .day-card__unplanned-workout-icon,.day-card--hill .day-card__unplanned-workout-icon,.day-card--tuneup .day-card__unplanned-workout-icon,.day-card--speed .day-card__unplanned-workout-icon,.day-card--marathon .day-card__unplanned-workout-icon,.day-card--long-workout .day-card__unplanned-workout-icon,.day-card--race-day .day-card__unplanned-workout-icon,.day-card--double-threshold .day-card__easy-on-workout-icon,.day-card--long-run .day-card__easy-on-workout-icon,.day-card--workout .day-card__easy-on-workout-icon,.day-card--vo2max .day-card__easy-on-workout-icon,.day-card--hill .day-card__easy-on-workout-icon,.day-card--tuneup .day-card__easy-on-workout-icon,.day-card--speed .day-card__easy-on-workout-icon,.day-card--marathon .day-card__easy-on-workout-icon,.day-card--long-workout .day-card__easy-on-workout-icon,.day-card--race-day .day-card__easy-on-workout-icon{background:#0006;color:#fff}.day-card__checkbox--strava.day-card__checkbox--checked{border-color:#fc4c02;background:#fc4c02}.strava-actual{margin-top:.5rem;padding:.5rem .75rem;border-radius:6px;font-size:.8rem;border-left:3px solid}.strava-actual--matched{background:#f1fdf5;border-left-color:#22c55e}.strava-actual--unmatched{background:#fefaf2;border-left-color:#f59e0b}.strava-actual__header{display:flex;align-items:center;gap:.35rem;margin-bottom:.25rem}.strava-actual__label{font-weight:600;color:var(--color-text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.strava-actual__check{font-family:var(--font-symbols);color:#22c55e;font-weight:700}.strava-actual__location{display:inline-flex;align-items:center;gap:.2rem;font-size:.65rem;color:var(--color-text-tertiary, #999);margin-left:auto;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.strava-actual__location svg{flex-shrink:0;opacity:.7}.strava-actual__location-abbr{display:none}@media(max-width:480px){.strava-actual__location-full{display:none}.strava-actual__location-abbr{display:inline}}.strava-actual__desc{margin:.15rem 0;color:var(--color-text)}.strava-actual__stats{margin:.15rem 0;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums}.strava-actual__effort{color:var(--color-text-secondary)}.strava-actual__effort strong{color:var(--color-text);font-weight:600}.strava-actual__effort--easy strong{color:#60a5fa}.strava-actual__effort--moderate strong{color:#4ade80}.strava-actual__effort--threshold strong{color:#facc15}.strava-actual__effort--hard strong{color:#f87171}.strava-actual__intervals-toggle{display:flex;align-items:center;gap:.3rem;margin:.15rem 0;padding:0;background:none;border:none;font-size:.8rem;color:var(--color-text);cursor:pointer;font-family:inherit;line-height:1.4;text-align:left}@media(hover:hover){.strava-actual__intervals-toggle:hover{color:var(--color-text-secondary)}}.strava-actual__intervals-chevron{flex-shrink:0;transition:transform .2s ease}.strava-actual__intervals-chevron--open{transform:rotate(90deg)}.strava-actual__intervals{margin:.25rem 0;padding:.3rem 0;font-size:.7rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.strava-actual__interval-row{display:grid;grid-template-columns:4.5rem 3rem 2.5rem 1fr;gap:.4rem;padding:.15rem 0;align-items:baseline;color:var(--color-text)}.strava-actual__interval-row--warmup{color:var(--color-text-secondary)}.strava-actual__interval-label{font-family:var(--font-sans, inherit);font-size:.6rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary, var(--color-text-secondary))}.strava-actual__interval-dist{text-align:right}.strava-actual__interval-time{text-align:right;color:var(--color-text-secondary)}.strava-actual__interval-pace{color:var(--color-text-secondary)}.strava-actual__effort-eq{display:inline-flex;align-items:center;gap:.3rem;margin:0;font-size:.7rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.strava-actual__effort-eq--heat{color:#c53030}.strava-actual__effort-eq--altitude{color:#2563eb}.strava-actual__effort-eq--combined,.strava-actual__effort-eq--multiple{color:#7c3aed}.strava-actual__effort-eq--wind{color:#0e7490}.strava-actual__effort-eq svg{flex-shrink:0;opacity:.8}.strava-actual__effort-eq-pace{font-weight:600}.strava-actual__effort-eq-label{font-family:var(--font-sans, inherit);font-size:.6rem;text-transform:uppercase;letter-spacing:.03em;opacity:.65}.strava-actual__interval-adj{font-size:.65rem;margin-left:.3rem;opacity:.75}.strava-actual__interval-adj:before{content:"≈";margin-right:.1rem}.strava-actual__interval-adj--heat{color:#c53030}.strava-actual__interval-adj--altitude{color:#2563eb}.strava-actual__interval-adj--combined{color:#7c3aed}.strava-actual__link{display:flex;align-items:center;color:#fc4c02;font-size:.7rem;text-decoration:none;margin-top:.25rem}@media(hover:hover){.strava-actual__link:hover{text-decoration:underline}}.strava-actual__footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.strava-actual__delete-btn{background:none;border:none;padding:.2rem;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;opacity:0;margin-left:auto;transition:opacity .15s,background .15s,color .15s}.strava-actual__delete-btn[data-tooltip]:after{left:auto;right:0;--tip-tx: 0}@media(hover:hover){.strava-actual:hover .strava-actual__delete-btn{opacity:.5}.strava-actual__delete-btn:hover{opacity:1!important;background:var(--color-red-light);color:var(--color-red)}}.strava-actual__delete-btn:active,.strava-actual__delete-btn.strava-actual__delete-btn--pressed{opacity:1!important;background:var(--color-red-light);color:var(--color-red);transition:none}@media(hover:none){.strava-actual__delete-btn{opacity:.35}}.strava-actual__delete-confirm{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;margin-left:auto}.strava-actual__delete-cancel,.strava-actual__delete-go{background:none;border:1px solid var(--color-border);border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:600;cursor:pointer}.strava-actual__delete-cancel{color:var(--color-text-secondary)}@media(hover:hover){.strava-actual__delete-cancel:hover{background:var(--color-bg)}}.strava-actual__delete-cancel:active,.strava-actual__delete-cancel.strava-actual__delete-cancel--pressed{background:var(--color-bg);transition:none}.strava-actual__delete-go{color:var(--color-red);border-color:var(--color-red)}@media(hover:hover){.strava-actual__delete-go:hover{background:var(--color-red);color:#fff}}.strava-actual__delete-go:active,.strava-actual__delete-go.strava-actual__delete-go--pressed{background:var(--color-red);color:#fff;transition:none}.strava-actual__delete-cancel:disabled,.strava-actual__delete-go:disabled{opacity:.6;cursor:not-allowed}@media(hover:hover){.strava-actual__delete-go:disabled:hover{background:none;color:var(--color-red)}[data-theme=dark] .strava-actual__delete-btn:hover{background:#dc262626;color:#f87171}}@media(hover:hover){[data-theme=dark] .strava-actual__delete-go:hover{background:var(--color-red);color:#fff}}.strava-actual--extra{background:#fc4c020a;border-left-color:#fc4c02}.strava-unmatched{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.strava-unmatched__title{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:.5rem}.strava-unmatched .strava-actual+.strava-actual{margin-top:.5rem}.strava-actual__components{margin-top:.35rem;display:flex;flex-direction:column;gap:.3rem}.strava-actual__component{padding:.25rem 0;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;font-size:.7rem}.strava-actual__component:first-child{border-top:none}.strava-actual__component-stats{font-weight:600;color:var(--color-text-primary)}.strava-actual__component-desc{color:var(--color-text-secondary)}[data-theme=dark] .zone-tag--easy{color:#4ade80}[data-theme=dark] .zone-tag--threshold,[data-theme=dark] .zone-tag--lt2{color:#60a5fa}[data-theme=dark] .zone-tag--lt1{color:#a78bfa}[data-theme=dark] .zone-tag--interval{color:#fbbf24}[data-theme=dark] .zone-tag--long{color:#34d399}[data-theme=dark] .zone-tag--hill{color:#a3e635}[data-theme=dark] .zone-tag--tuneup{color:#a78bfa}[data-theme=dark] .zone-tag--speed{color:#f87171}[data-theme=dark] .zone-tag--marathon{color:#f472b6}[data-theme=dark] .zone-tag--long-workout{color:#34d399}[data-theme=dark] .zone-tag--strides{color:#c084fc}[data-theme=dark] .week-nav-badge--build{background:#3b82f626;color:#93c5fd}[data-theme=dark] .week-nav-badge--peak{background:#f59e0b26;color:#fcd34d}[data-theme=dark] .week-nav-badge--marathon{background:#ec489926;color:#f9a8d4}[data-theme=dark] .week-nav-badge--marathon-lr{background:#22c55e26;color:#86efac}[data-theme=dark] .week-nav-badge--race-week{background:#ec489926;color:#f9a8d4}[data-theme=dark] .mileage-warning{background:#f871711a;border-color:#f871714d;color:#fca5a5}[data-theme=dark] .short-block-warning{background:#fbbf241a;border-color:#fbbf244d;color:#fde68a}[data-theme=dark] .adjacent-hard-warning{background:#f871711a;border-color:#f871714d;color:#fca5a5}[data-theme=dark] .adjacent-hard-warning--inline{background:#f8717126;color:#fca5a5}[data-theme=dark] .rest-confirm-overlay{background:var(--color-surface);border-color:#7c3aed;box-shadow:0 8px 24px #7c3aed33,var(--shadow-md)}[data-theme=dark] .rest-day-confirm{background:#7c3aed1a;border-color:#a78bfa4d}[data-theme=dark] .modal-content--dark .rest-day-confirm{background:#1e1b2e;border-color:#a78bfa80}@media(hover:hover){[data-theme=dark] .modal-close:hover{background:#ffffff14}}@media(hover:hover){[data-theme=dark] .session-edit-btn:hover,[data-theme=dark] .session-watch-btn:hover{background:#60a5fa1f}[data-theme=dark] .session-undo-btn:hover{background:#f871711f;color:#fca5a5}[data-theme=dark] .session-check-btn:hover{background:#4ade801f}[data-theme=dark] .session-delete-btn:hover{background:#f871711f;color:#fca5a5}}[data-theme=dark] .session-confirm-delete-btn{background:#dc2626}@media(hover:hover){[data-theme=dark] .session-confirm-delete-btn:hover{background:#ef4444}}@media(hover:hover){[data-theme=dark] .modal-revert-btn:hover{background:#f871711f;border-color:#f871714d;color:#fca5a5}[data-theme=dark] .modal-rest-btn:hover{background:#7c3aed26;border-color:#a78bfa66;color:#c4b5fd}}[data-theme=dark] .strides-note{background:#86198f1a;border-color:#a855f740;color:#e879f9}[data-theme=dark] .low-mileage-dt-info{background:#8b5cf614;border-color:#8b5cf640;color:#c4b5fd}@media(hover:hover){[data-theme=dark] .context-menu__item:hover{background:#ffffff0d}}[data-theme=dark] .context-menu__item--danger{color:#fca5a5}@media(hover:hover){[data-theme=dark] .context-menu__item--danger:hover{background:#f871711f}}@media(hover:hover){[data-theme=dark] .add-menu-panel__item:hover{background:#ffffff0d}}@media(hover:hover){[data-theme=dark] .mileage-stepper__btn:hover:not(:disabled){background:#60a5fa26}}[data-theme=dark] .week-nav-undo-btn{background:#f8717124;border-color:#f8717166;color:#fca5a5}@media(hover:hover){[data-theme=dark] .week-nav-undo-btn:hover{background:#f871713d;border-color:#f8717199;color:#fecaca;box-shadow:0 2px 8px #f8717133}}[data-theme=dark] .week-nav-undo-btn:active{background:#f8717152;border-color:#f87171b3}[data-theme=dark] .month-view__week-undo{background:#f8717124;border-color:#f8717166;color:#fca5a5}@media(hover:hover){[data-theme=dark] .month-view__week-undo:hover{background:#f871713d;border-color:#f8717199;color:#fecaca;box-shadow:0 2px 8px #f8717133}}[data-theme=dark] .month-view__week-undo:active{background:#f8717152;border-color:#f87171b3}@media(hover:hover){[data-theme=dark] .redistribute-toggle__btn:not(.redistribute-toggle__btn--active):hover{background:#ffffff0d}}[data-theme=dark] .redistribute-toggle__btn--disabled{opacity:.35}[data-theme=dark] .day-card.day-card--drop-zone{background:repeating-linear-gradient(0deg,transparent,transparent 11px,rgba(96,165,250,.06) 11px,rgba(96,165,250,.06) 12px),repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(96,165,250,.06) 11px,rgba(96,165,250,.06) 12px),#0f172ad9;box-shadow:inset 0 0 24px #60a5fa0a}[data-theme=dark] .day-card.day-card--drop-zone--warning{background:repeating-linear-gradient(0deg,transparent,transparent 11px,rgba(248,113,113,.06) 11px,rgba(248,113,113,.06) 12px),repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(248,113,113,.06) 11px,rgba(248,113,113,.06) 12px),#0f172ad9}.modal-content--dark .strava-actual--matched{background:#051e0fcc}.modal-content--dark .strava-actual--unmatched{background:#231905cc}[data-theme=dark] .strava-actual--matched{background:#0f1f15}[data-theme=dark] .strava-actual--unmatched{background:#1f1a0f}[data-theme=dark] .strava-actual--extra{background:#fc4c020f}[data-theme=dark] .strava-actual__effort-eq--heat{color:#ef5454}[data-theme=dark] .strava-actual__effort-eq--altitude{color:#60a5fa}[data-theme=dark] .strava-actual__effort-eq--combined,[data-theme=dark] .strava-actual__effort-eq--multiple{color:#a78bfa}[data-theme=dark] .strava-actual__effort-eq--wind{color:#67e8f9}[data-theme=dark] .strava-actual__interval-adj--heat{color:#ef5454}[data-theme=dark] .strava-actual__interval-adj--altitude{color:#60a5fa}[data-theme=dark] .strava-actual__interval-adj--combined{color:#a78bfa}@media(hover:hover){[data-theme=dark] .day-card:hover{box-shadow:0 4px 12px #0006,0 0 1px #ffffff0d}}@media(hover:hover){[data-theme=dark] .day-card--double-threshold:hover{box-shadow:0 6px 20px #3b82f659}[data-theme=dark] .day-card--long-run:hover{box-shadow:0 6px 20px #22c55e4d}[data-theme=dark] .day-card--workout:hover{box-shadow:0 6px 20px #a78bfa4d}[data-theme=dark] .day-card--vo2max:hover{box-shadow:0 6px 20px #db27774d}[data-theme=dark] .day-card--hill:hover{box-shadow:0 6px 20px #ca8a044d}[data-theme=dark] .day-card--tuneup:hover{box-shadow:0 6px 20px #ec48994d}[data-theme=dark] .day-card--speed:hover{box-shadow:0 6px 20px #ef444459}[data-theme=dark] .day-card--marathon:hover{box-shadow:0 6px 20px #ec48994d}[data-theme=dark] .day-card--long-workout:hover{box-shadow:0 6px 20px #0d94884d}[data-theme=dark] .day-card--race-day:hover{box-shadow:0 6px 20px #f59e0b66}[data-theme=dark] .day-card--additional-race:hover{box-shadow:0 6px 20px #6366f159}}@media(hover:hover){[data-theme=dark] .wc-edit-btn:hover{background:#60a5fa1f}}[data-theme=dark] .btn-remove-race{border-color:#f87171;color:#f87171}@media(hover:hover){[data-theme=dark] .btn-remove-race:hover{background:#ef4444;color:#fff}}[data-theme=dark] .hard-group-outline{outline-color:#f87171}[data-theme=dark] .add-race-modal__error{color:#fca5a5}[data-theme=dark] .month-view__phase-divider--base .month-view__phase-divider-label{color:#6ee7b7;background:#34d3991a;border-color:#34d39940}[data-theme=dark] .month-view__phase-divider--build .month-view__phase-divider-label{color:#fdba74;background:#fb923c1a;border-color:#fb923c40}[data-theme=dark] .month-view__phase-divider--peak .month-view__phase-divider-label{color:#fca5a5;background:#f871711a;border-color:#f8717140}[data-theme=dark] .month-view__phase-divider--taper .month-view__phase-divider-label{color:#fde68a;background:#fbbf241a;border-color:#fbbf2440}[data-theme=dark] .month-view__phase-divider--race .month-view__phase-divider-label{color:#fcd34d;background:#f59e0b1a;border-color:#f59e0b40}.jump-to-today{position:fixed;bottom:1.5rem;right:1.5rem;z-index:90;display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem .5rem .75rem;border:none;border-radius:999px;background:var(--color-primary);color:#fff;font-family:var(--font-heading);font-size:.8rem;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 2px 8px #3b82f659,0 0 #3b82f600;animation:jump-today-enter .3s cubic-bezier(.34,1.56,.64,1) both;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}@media(hover:hover){.jump-to-today:hover{transform:translateY(-1px);background:var(--color-primary-hover);box-shadow:0 4px 14px #3b82f666,0 0 0 3px #3b82f61a}}.jump-to-today:active{transform:translateY(.5px);box-shadow:0 1px 4px #3b82f64d,0 0 #3b82f600;transition:none}.jump-to-today__arrow{display:inline-flex;font-size:.9rem;line-height:1;transition:transform .2s ease}.jump-to-today--up .jump-to-today__arrow{animation:arrow-bounce-up 1.4s ease-in-out infinite}.jump-to-today--down .jump-to-today__arrow{animation:arrow-bounce-down 1.4s ease-in-out infinite}.jump-to-today__label{line-height:1}@keyframes jump-today-enter{0%{opacity:0;transform:translateY(12px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes arrow-bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes arrow-bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@media(max-width:768px){.jump-to-today{bottom:1rem;right:1rem}}[data-theme=dark] .jump-to-today{box-shadow:0 2px 10px #3b82f64d,0 0 0 1px #3b82f626}@media(hover:hover){[data-theme=dark] .jump-to-today:hover{box-shadow:0 4px 16px #3b82f666,0 0 0 3px #3b82f61f}}@media(prefers-reduced-motion:reduce){.jump-to-today,.jump-to-today--up .jump-to-today__arrow,.jump-to-today--down .jump-to-today__arrow{animation:none}}.plan-view-busy-overlay{position:fixed;inset:0;background:#00000026;display:flex;justify-content:center;align-items:center;z-index:1000;animation:plan-view-busy-fade-in .15s ease}@keyframes plan-view-busy-fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.month-view__section{margin-top:1rem}.month-view__month-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:500;letter-spacing:-.01em;color:var(--color-text);margin-bottom:.25rem}.month-view__week-grid{grid-auto-rows:auto;align-items:start;gap:.125rem}.month-view__week{margin-bottom:.25rem;background:var(--color-surface);border-radius:14px;padding:.375rem .25rem .25rem;border:none;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.month-view__week:has(.day-card__miles-delta--footer){padding-bottom:1.75rem}.month-view__day-headers{gap:.125rem;margin-bottom:0}.month-header{font-size:.6rem;font-weight:500;padding-bottom:.125rem;opacity:.55;letter-spacing:.08em}.month-view__phase-divider{margin:.375rem 0 .125rem;gap:.5rem}.month-view__phase-divider-line{opacity:.35}.month-view__phase-divider-label{font-size:.55rem;letter-spacing:.12em;padding:.0625rem .5rem}.month-view__week-label{padding:.125rem .25rem;margin-bottom:.125rem;align-items:center;gap:.25rem .5rem;min-height:26px}.month-view__week-num{font-size:.65rem;font-weight:500;opacity:.5}.month-view__week-mileage{font-size:.6rem;font-weight:600;padding:.0625rem .375rem;border-radius:999px}.month-view__week-undo{font-size:.65rem}.day-card--compact:not(.day-card--dragging){width:48px;height:48px;border-radius:50%;padding:0;min-height:unset;margin:14px auto 20px;display:flex;align-items:center;justify-content:center;overflow:visible;position:relative;border:none;transition:transform .15s ease,box-shadow .25s ease;box-shadow:0 1px 6px #0000001f,inset 0 0 0 1px #ffffff26}.day-card--compact:not(.day-card--off):not(.day-card--double-threshold):not(.day-card--long-run):not(.day-card--workout):not(.day-card--vo2max):not(.day-card--hill):not(.day-card--tuneup):not(.day-card--speed):not(.day-card--marathon):not(.day-card--long-workout):not(.day-card--race-day){background:linear-gradient(145deg,#6ee7b7,#34d399,#10b981);box-shadow:0 1px 6px #10b98140,inset 0 0 0 1px #ffffff2e}.day-card--compact.day-card--double-threshold{box-shadow:0 1px 8px #3b82f659,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--long-run{box-shadow:0 1px 8px #22c55e4d,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--workout{box-shadow:0 1px 8px #a78bfa4d,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--vo2max{box-shadow:0 1px 8px #db27774d,inset 0 0 0 1px #ffffff1f}.day-card--compact.day-card--hill{box-shadow:0 1px 8px #ca8a044d,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--speed{box-shadow:0 1px 8px #ef444459,inset 0 0 0 1px #ffffff1f}.day-card--compact.day-card--tuneup{box-shadow:0 1px 8px #8b5cf64d,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--marathon{box-shadow:0 1px 8px #ec48994d,inset 0 0 0 1px #ffffff1f}.day-card--compact.day-card--long-workout{box-shadow:0 1px 8px #0d94884d,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--race-day{box-shadow:0 1px 10px #f59e0b66,inset 0 0 0 1px #fff3}.day-card--compact .day-card__header{position:absolute;top:-14px;left:50%;transform:translate(-50%);margin:0;display:flex;align-items:center;justify-content:center}.day-card--compact .day-card__day,.day-card--compact .day-card__rest-btn{display:none}.day-card--compact .day-card__date-group{display:flex;align-items:center}.day-card--compact .day-card__date{font-size:.6rem;font-weight:600;color:var(--color-text-muted);line-height:1;font-variant-numeric:tabular-nums}.day-card--compact .day-card__date-month{display:none}.day-card--compact .day-card__sessions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;overflow:visible}.day-card--compact .day-card__session{display:flex;align-items:center;justify-content:center;overflow:visible;white-space:nowrap}.day-card--compact .day-card__session:nth-child(n+2){display:none}.day-card--compact .day-card__mismatch-badge{position:absolute;bottom:-3px;right:-3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706);border-radius:50%;border:2px solid var(--color-bg);color:#fff;z-index:1;box-shadow:0 1px 4px #f59e0b80,inset 0 1px #ffffff40}.day-card--compact .day-card__mismatch-badge svg{width:9px;height:9px}.day-card--compact .day-card__session--strides{display:flex!important;position:absolute;bottom:-3px;left:-3px;width:18px;height:18px;box-sizing:border-box;align-items:center;justify-content:center;background:linear-gradient(135deg,#c084fc,#a855f7,#7c3aed);border-radius:50%;border:2px solid var(--color-bg);z-index:1;overflow:hidden;white-space:nowrap;box-shadow:0 1px 4px #a855f780,inset 0 1px #ffffff40}.day-card--compact .day-card__session--strides .zone-tag{all:unset;font-size:7px;font-weight:800;font-family:inherit;color:#fff;line-height:1;text-shadow:0 .5px 1px rgba(0,0,0,.3)}.day-card--compact .day-card__session--strength{display:flex!important;position:absolute;bottom:-3px;right:-3px;width:18px;height:18px;box-sizing:border-box;align-items:center;justify-content:center;background:linear-gradient(135deg,#fcd34d,#f59e0b,#d97706);border-radius:50%;border:2px solid var(--color-bg);z-index:1;overflow:hidden;box-shadow:0 1px 4px #f59e0b8c,inset 0 1px #ffffff47}.day-card--compact .day-card__session--strength .zone-tag{all:unset;color:#fff;line-height:0;display:inline-flex;align-items:center;justify-content:center}.day-card--compact .day-card__session--strength svg{width:9px;height:9px;color:#fff;filter:drop-shadow(0 .5px .5px rgba(120,53,15,.4))}.day-card--compact .day-card__session-detail{display:none}.day-card--compact .zone-tag{font-size:.625rem;font-weight:700;padding:0;background:none!important;color:#fff;margin:0;line-height:1;letter-spacing:.03em;text-shadow:0 .5px 1px rgba(0,0,0,.15)}.day-card--compact .zone-tag--strides{font-size:.5rem}.day-card--compact.day-card--race-day .day-card__race-label{font-size:.5rem;margin:0;letter-spacing:.05em;line-height:1.2;text-align:center}.day-card--compact.day-card--race-day .day-card__sessions,.day-card--compact .firework{display:none}.day-card--compact .day-card__footer{position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%);margin:0;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:1px 3px;white-space:nowrap}.day-card--compact .day-card__miles{font-size:.55rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.day-card--compact .day-card__checkbox{display:none}.day-card--compact .day-card__miles-delta--footer{flex-basis:100%;font-size:.5rem;padding:0 .125rem;text-align:center}.day-card--compact .day-card__particle{display:none}.day-card--compact.day-card--multi:before{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:#ffffffd9;border:1.5px solid rgba(0,0,0,.15);z-index:1}.day-card--compact.day-card--today{box-shadow:0 0 0 2.5px #fbbf24,0 0 12px #fbbf2459,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--completed{opacity:1;border-left:none;overflow:visible}.day-card--compact.day-card--completed:after{content:"";position:absolute;top:-3px;right:-3px;width:14px;height:14px;background:#22c55e url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8.5L6.5 12L13 4'/%3E%3C/svg%3E") center/8px no-repeat;border-radius:50%;border:2px solid var(--color-surface);z-index:1}.day-card--compact.day-card--completed.day-card--modified:after{background:#eab308 url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 13 Q 8 6 12 13 T 20 13'/%3E%3C/svg%3E") center/10px no-repeat}.day-card--compact.day-card--partial{border-left:none;overflow:visible}.day-card--compact.day-card--partial:after{content:"";position:absolute;top:-3px;right:-3px;width:14px;height:14px;background:#eab308 url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 8.5h8'/%3E%3C/svg%3E") center/8px no-repeat;border-radius:50%;border:2px solid var(--color-surface);z-index:1}.day-card--compact.day-card--off{background:transparent;border:none;outline:1.5px dashed var(--color-border);outline-offset:-1.5px;box-shadow:none}.day-card--compact.day-card--off .zone-tag{color:var(--color-text-muted);font-weight:500;opacity:.6;text-shadow:none}.day-card--compact.day-card--off .day-card__footer{padding:0;min-height:unset}.day-card--compact:hover{transform:none}.day-card--compact:active{transform:scale(.92);filter:brightness(1.12);transition:none}.month-view__week-grid .hard-group-outline{outline:2px solid var(--color-red);outline-offset:0px;border-radius:999px;inset:14px 2px 22px}.day-card--compact.day-card--holding{transform:scale(.9);box-shadow:0 1px 4px #0003,inset 0 0 0 1px #ffffff26}.day-card--compact.day-card--holding:after{display:none}.day-card--compact.day-card--drop-zone:before,.day-card--compact.day-card--drop-zone:after{content:none}.day-card--compact.day-card--drop-zone .day-card__session--strides,.day-card--compact.day-card--drop-zone .day-card__mismatch-badge{display:none}.day-card--compact.day-card--dragging{border-radius:50%;padding:0;min-height:unset;overflow:visible;border:none;margin:0;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px #0000004d,0 2px 8px #00000026,inset 0 0 0 1px #fff3;transform:scale(1.15);pointer-events:none}}@media(max-width:480px){.day-card--compact:not(.day-card--dragging){width:42px;height:42px;margin:13px auto 20px}.day-card--compact .day-card__date{font-size:.5rem}.day-card--compact .day-card__header{top:-12px}.day-card--compact .zone-tag,.day-card--compact .day-card__miles{font-size:.55rem}.day-card--compact .day-card__footer{top:calc(100% + 1px)}.day-card--compact .day-card__strava-icon,.day-card--compact .day-card__unplanned-workout-icon,.day-card--compact .day-card__easy-on-workout-icon{width:11px;height:11px}.day-card--compact .day-card__strava-icon svg,.day-card--compact .day-card__unplanned-workout-icon svg,.day-card--compact .day-card__easy-on-workout-icon svg{width:7px;height:7px}.day-card--compact.day-card--multi:before{width:6px;height:6px;top:1px;left:1px;border-width:1px}.day-card--compact.day-card--completed:after{width:12px;height:12px;top:-2px;right:-2px;background-size:7px;border-width:1.5px}.day-card--compact.day-card--completed.day-card--modified:after{background-size:8px}.day-card--compact .day-card__session--strides{width:14px;height:14px;bottom:-2px;left:-2px;border-width:1.5px}.day-card--compact .day-card__session--strides .zone-tag{font-size:5.5px}.day-card--compact .day-card__mismatch-badge{width:14px;height:14px;bottom:-2px;right:-2px;border-width:1.5px}.day-card--compact .day-card__mismatch-badge svg{width:7px;height:7px}.day-card--compact .day-card__race-label{font-size:.4rem}.month-view__week{padding:.25rem .125rem .125rem}.month-view__week:has(.day-card__miles-delta--footer){padding-bottom:1.5rem}.month-view__month-title{font-size:1.1rem}}@media(max-width:768px){[data-theme=dark] .month-view__week{background:#ffffff08;box-shadow:0 1px 3px #0003,inset 0 1px #ffffff08}[data-theme=dark] .month-view__week-mileage{color:var(--color-text-muted)}[data-theme=dark] .day-card--compact:not(.day-card--off):not(.day-card--double-threshold):not(.day-card--long-run):not(.day-card--workout):not(.day-card--vo2max):not(.day-card--hill):not(.day-card--tuneup):not(.day-card--speed):not(.day-card--marathon):not(.day-card--long-workout):not(.day-card--race-day){background:linear-gradient(145deg,#059669,#047857,#065f46);box-shadow:0 1px 8px #05966959,inset 0 0 0 1px #ffffff14}[data-theme=dark] .day-card--compact.day-card--double-threshold{box-shadow:0 1px 12px #3b82f673,inset 0 0 0 1px #ffffff14}[data-theme=dark] .day-card--compact.day-card--speed{box-shadow:0 1px 12px #ef444473,inset 0 0 0 1px #ffffff14}[data-theme=dark] .day-card--compact.day-card--race-day{box-shadow:0 1px 12px #f59e0b80,inset 0 0 0 1px #ffffff1a}[data-theme=dark] .day-card--compact.day-card--off{background:transparent;outline-color:#ffffff1a;box-shadow:none}[data-theme=dark] .day-card--compact .day-card__miles{color:var(--color-text-muted)}[data-theme=dark] .day-card--compact.day-card--multi:before{background:#ffffffb3;border-color:#0006}[data-theme=dark] .day-card--compact.day-card--today{box-shadow:0 0 0 2.5px #fbbf24,0 0 16px #fbbf244d,inset 0 0 0 1px #ffffff14}[data-theme=dark] .day-card--compact.day-card--completed:after{border-color:var(--color-surface)}[data-theme=dark] .day-card--compact .day-card__session--strides,[data-theme=dark] .day-card--compact .day-card__mismatch-badge{border-color:var(--color-surface)}}.plan-view__coach-banner{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem .75rem;margin:0 1rem .5rem;font-size:.75rem;font-weight:600;color:var(--color-purple, #8b5cf6);background:#8b5cf614;border-radius:8px;max-width:1200px;margin-left:auto;margin-right:auto}[data-theme=dark] .plan-view__coach-banner{background:#8b5cf61f}.modal-coach-note{margin:.75rem 0 .25rem}.modal-unplanned-workout{display:flex;align-items:flex-start;gap:.5rem;margin:.75rem 0 .25rem;padding:.6rem .75rem;background:#fefaf2;border:1px solid rgba(245,158,11,.35);border-left:3px solid #f59e0b;border-radius:8px;color:var(--color-text)}.modal-unplanned-workout>svg{flex:none;margin-top:.15rem;color:#f59e0b}.modal-unplanned-workout__text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.modal-unplanned-workout__title{font-size:.78rem;font-weight:600;color:#b45309}.modal-unplanned-workout__desc{font-size:.78rem;line-height:1.4;color:#78350f}[data-theme=dark] .modal-unplanned-workout{background:#1f1a0f;border-color:#f59e0b66;border-left-color:#f59e0b}[data-theme=dark] .modal-unplanned-workout__title{color:#fbbf24}[data-theme=dark] .modal-unplanned-workout__desc{color:#ffffffd9}.modal-unplanned-workout__btn{align-self:flex-start;margin-top:.4rem;padding:.35rem .75rem;font-family:var(--font);font-size:.78rem;font-weight:600;color:#fff;background:#f59e0b;border:1px solid #d97706;border-radius:var(--radius-sm);cursor:pointer;transition:none}.modal-unplanned-workout__btn--pressed,.modal-unplanned-workout__btn:active{background:#d97706;transition:none}@media(hover:hover){.modal-unplanned-workout__btn:hover{background:#d97706}}.modal-unplanned-workout__btn-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.modal-unplanned-workout__btn-row .modal-unplanned-workout__btn{margin-top:0}.modal-unplanned-workout__btn--secondary{color:#b45309;background:transparent;border:1px solid rgba(245,158,11,.5)}.modal-unplanned-workout__btn--secondary:active,.modal-unplanned-workout__btn--secondary.modal-unplanned-workout__btn--pressed{background:#f59e0b26}@media(hover:hover){.modal-unplanned-workout__btn--secondary:hover{background:#f59e0b26}}[data-theme=dark] .modal-unplanned-workout__btn--secondary{color:#fbbf24;border-color:#f59e0b80}.modal-auto-adjust-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;margin-top:.45rem;padding:.25rem .55rem .25rem .5rem;font-family:var(--font);font-size:.7rem;font-weight:600;letter-spacing:.01em;color:#b45309;background:transparent;border:1px dashed rgba(245,158,11,.45);border-radius:999px;cursor:pointer;transition:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.modal-auto-adjust-cta>svg:first-of-type{color:#d97706;opacity:.9}.modal-auto-adjust-cta__arrow{opacity:.65;transition:transform .15s ease}.modal-auto-adjust-cta--pressed,.modal-auto-adjust-cta:active{background:#f59e0b26;border-style:solid;transition:none}.modal-auto-adjust-cta--pressed .modal-auto-adjust-cta__arrow,.modal-auto-adjust-cta:active .modal-auto-adjust-cta__arrow{transform:translate(1px)}@media(hover:hover){.modal-auto-adjust-cta:hover{background:#f59e0b1a;border-style:solid}.modal-auto-adjust-cta:hover .modal-auto-adjust-cta__arrow{transform:translate(1px)}}[data-theme=dark] .modal-auto-adjust-cta{color:#fbbf24;border-color:#f59e0b66}[data-theme=dark] .modal-auto-adjust-cta>svg:first-of-type{color:#fbbf24}.modal-coach-note__display{padding:.6rem .75rem;background:#8b5cf60f;border:1px solid rgba(139,92,246,.15);border-radius:var(--radius-sm);cursor:default}.modal-coach-note__display[onClick]{cursor:pointer}.modal-coach-note__header{display:flex;align-items:center;gap:.35rem;color:#8b5cf6cc;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.modal-coach-note__edit-icon{margin-left:auto;opacity:0;transition:opacity .15s ease}@media(hover:hover){.modal-coach-note__display:hover .modal-coach-note__edit-icon{opacity:.6}}.modal-coach-note__display:active .modal-coach-note__edit-icon{opacity:.6}.modal-coach-note__text{margin:0;font-size:.82rem;line-height:1.45;color:var(--color-text);white-space:pre-wrap}.modal-coach-note__add{display:flex;align-items:center;gap:.35rem;width:100%;padding:.5rem .6rem;font-family:var(--font);font-size:.78rem;font-weight:500;color:#8b5cf699;background:transparent;border:1px dashed rgba(139,92,246,.2);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}@media(hover:hover){.modal-coach-note__add:hover{color:#8b5cf6e6;border-color:#8b5cf666;background:#8b5cf60a}}.modal-coach-note__add:active,.modal-coach-note__add.modal-coach-note__add--pressed{color:#8b5cf6e6;border-color:#8b5cf666;background:#8b5cf60a;transition:none}.modal-coach-note__edit{display:flex;flex-direction:column;gap:.4rem}.modal-coach-note__textarea{width:100%;padding:.5rem .6rem;font-family:var(--font);font-size:.82rem;line-height:1.45;color:var(--color-text);background:var(--color-surface);border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-sm);resize:vertical;min-height:3.5rem;outline:none;box-sizing:border-box}.modal-coach-note__textarea:focus{border-color:#8b5cf699;box-shadow:0 0 0 2px #8b5cf61a}.modal-coach-note__actions{display:flex;gap:.35rem;justify-content:flex-end}.modal-coach-note__btn{padding:.3rem .7rem;font-family:var(--font);font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .15s ease}.modal-coach-note__btn--save{background:#8b5cf6d9;color:#fff}@media(hover:hover){.modal-coach-note__btn--save:hover{background:#8b5cf6}}.modal-coach-note__btn--save:active,.modal-coach-note__btn--save.modal-coach-note__btn--pressed{background:#8b5cf6;transition:none}.modal-coach-note__btn--cancel{background:transparent;color:var(--color-text-secondary)}@media(hover:hover){.modal-coach-note__btn--cancel:hover{background:var(--color-surface-hover)}}.modal-coach-note__btn--cancel:active,.modal-coach-note__btn--cancel.modal-coach-note__btn--pressed{background:var(--color-surface-hover);transition:none}.modal-content--dark .modal-coach-note__display{background:#8b5cf61a;border-color:#8b5cf633}.modal-content--dark .modal-coach-note__text{color:#ffffffe6}.modal-content--dark .modal-coach-note__display{background:#ffffff14;border-color:#ffffff26}.modal-content--dark .modal-coach-note__header{color:#ffffff8c}.modal-content--dark .modal-coach-note__add{color:#ffffffb3;border-color:#ffffff4d;background:#ffffff0f}@media(hover:hover){.modal-content--dark .modal-coach-note__add:hover{color:#ffffffe6;border-color:#ffffff73;background:#ffffff1f}}.modal-content--dark .modal-coach-note__textarea{background:#ffffff14;border-color:#fff3;color:#ffffffe6}.modal-content--dark .modal-coach-note__textarea:focus{border-color:#fff6;box-shadow:0 0 0 2px #ffffff14}.modal-content--dark .modal-coach-note__btn--save{background:#fff3;color:#fff}@media(hover:hover){.modal-content--dark .modal-coach-note__btn--save:hover{background:#ffffff4d}}.modal-content--dark .modal-coach-note__btn--cancel{color:#ffffff80}@media(hover:hover){.modal-content--dark .modal-coach-note__btn--cancel:hover{background:#ffffff14}}.day-card__coach-note-indicator{position:absolute;top:.3rem;right:.3rem;color:#8b5cf699;line-height:1}.day-card--compact .day-card__coach-note-indicator{top:.2rem;right:.2rem}.day-card--unplanned-workout,.day-card--easy-on-workout,.day-card--unplanned-workout.day-card--easy-on-workout{box-shadow:inset 0 0 0 1px #f59e0b80}.adv{margin-top:1.25rem;border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(180deg,#f8fafc99,#f8fafc00);transition:border-color .2s,background .2s}@media(hover:hover){.adv:hover{border-color:#8b5cf659}}.adv--open{border-color:#8b5cf666;background:transparent}.adv--invalid{border-color:#dc262680}.adv-error{font-size:.78rem;line-height:1.5;color:#991b1b;background:#fee2e28c;border:1px solid rgba(220,38,38,.35);border-radius:10px;padding:10px 12px}.adv-error strong{color:#7f1d1d}[data-theme=dark] .adv-error{color:#fecaca;background:#7f1d1d40;border-color:#dc262673}[data-theme=dark] .adv-error strong{color:#fee2e2}.adv__header{display:flex;align-items:center;gap:.5rem;padding-right:.75rem}.adv__summary{display:flex;align-items:center;flex:1;min-width:0;background:transparent;border:none;cursor:pointer;padding:.85rem 1rem;gap:.75rem;font:inherit;color:var(--color-text);text-align:left;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(hover:hover){.adv__header:hover{background:#8b5cf608}}.adv__header:has(.adv__summary:active),.adv__header:has(.adv__summary.adv__summary--pressed){background:#8b5cf60d;transition:none}.adv__chev{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--color-purple);background:#8b5cf61a;transition:transform .25s cubic-bezier(.18,1.1,.3,1.05),background .2s;flex-shrink:0}.adv__chev--open{transform:rotate(90deg);background:#8b5cf62e}.adv__title{font-size:.9rem;font-weight:700;letter-spacing:-.005em;display:flex;align-items:baseline;gap:.55rem}.adv__hint{margin-left:auto;font-size:.72rem;color:var(--color-text-muted);font-weight:500;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.adv__reset-all,.str__reset-all{display:inline-flex;align-items:center;flex-shrink:0;font:inherit;font-size:.7rem;font-weight:600;height:24px;padding:0 10px;border-radius:999px;border:1px solid transparent;cursor:pointer;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;transition:background .15s}.adv__reset-all{color:var(--color-purple);background:#8b5cf614;border-color:#8b5cf62e}@media(hover:hover){.adv__reset-all:hover{background:#8b5cf624}}.adv__reset-all:active{background:#8b5cf624;transition:none}.adv__body{padding:.25rem 1.1rem 1.1rem;display:grid;gap:1.05rem;animation:adv-slide-down .32s cubic-bezier(.18,1.1,.3,1.05)}.adv__body--note{padding:.5rem 1.1rem 1rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.5}@keyframes adv-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.adv-field{display:grid;gap:.5rem}.adv-field__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.adv-field__label{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--color-text);letter-spacing:-.005em;transition:color .15s,text-decoration-color .15s;text-decoration:underline dotted rgba(139,92,246,.55);text-decoration-thickness:1.5px;text-underline-offset:4px}@media(hover:hover){.adv-field__label[data-tip]:hover{color:var(--color-purple);text-decoration-color:var(--color-purple)}}.adv-field__label[data-tip]:focus-visible{outline:none;color:var(--color-purple);text-decoration-color:var(--color-purple)}.adv-field__label[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px) scale(.98);transform-origin:0 -8px;background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 85%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;line-height:1.45;letter-spacing:-.005em;padding:.5rem .7rem;border-radius:9px;width:max-content;max-width:260px;text-align:left;box-shadow:0 4px 16px #8b5cf61f;opacity:0;pointer-events:none;transition:opacity .18s ease .11s,transform .28s cubic-bezier(.18,1.1,.3,1.05) .11s;z-index:10}@media(hover:hover){.adv-field__label[data-tip]:hover:after,.adv-field__label[data-tip]:focus:after{opacity:1;transform:translateY(0) scale(1)}}@media(hover:none){.adv-field__label[data-tip]:focus:after{opacity:1;transform:translateY(0) scale(1)}}.recommend-tag{font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--color-purple);background:#8b5cf614;border:1px solid rgba(139,92,246,.16);padding:1px 7px 2px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}.recommend-tag:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--color-purple);margin-right:5px;vertical-align:1px}.stepper-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.adv .ui-stepper__input:focus,.adv .ui-stepper__input:focus-visible,[data-theme=dark] .adv .ui-stepper__input:focus,[data-theme=dark] .adv .ui-stepper__input:focus-visible,.str .ui-stepper__input:focus,.str .ui-stepper__input:focus-visible,[data-theme=dark] .str .ui-stepper__input:focus,[data-theme=dark] .str .ui-stepper__input:focus-visible{box-shadow:none;border-color:transparent}.stepper-meta{font-size:.76rem;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.stepper-meta strong{color:var(--color-text-secondary);font-weight:600}.day-row{display:flex;gap:6px;flex-wrap:wrap}.day-chip{--ring: var(--color-primary, #3b82f6);--ring-bg: var(--color-primary-light, #dbeafe);position:relative;appearance:none;font:inherit;font-family:var(--font-mono);font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .18s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(hover:hover){.day-chip:hover:not(:disabled):not(.day-chip--on){border-color:var(--ring);color:var(--color-text)}}.day-chip:active:not(:disabled):not(.day-chip--on),.day-chip.day-chip--pressed:not(:disabled):not(.day-chip--on){border-color:var(--ring);color:var(--color-text);background:color-mix(in srgb,var(--ring-bg) 50%,var(--color-surface));transition:none}.day-chip--on{background:var(--ring-bg);border-color:var(--ring);color:var(--ring);box-shadow:inset 0 0 0 1px var(--ring),0 1px #3b82f614}.day-chip--disabled{opacity:.4;cursor:not-allowed}.day-row--long .day-chip{--ring: #ea580c;--ring-bg: rgba(234, 88, 12, .1);border-radius:999px}.day-row--long .day-chip--on{box-shadow:inset 0 0 0 1px var(--ring),0 1px #ea580c1a}.chip-status{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.74rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap}.chip-status strong{color:var(--color-text-secondary);font-weight:600}.chip-status__reset{font:inherit;font-size:.72rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:6px;-webkit-tap-highlight-color:transparent}@media(hover:hover){.chip-status__reset:hover{color:var(--color-text);background:var(--color-bg)}}.chip-status__reset:active,.chip-status__reset.chip-status__reset--pressed{color:var(--color-text);background:var(--color-bg);transition:none}.chip-status__reset--hidden{visibility:hidden;pointer-events:none}.adv-field__note{font-size:.72rem;color:var(--color-text-muted);line-height:1.5;margin:-.1rem 0 0;font-style:italic}.adv-field__note--warn{color:var(--color-warning, #d69e2e);font-style:normal;padding:6px 10px;border-radius:8px;background:#eab3080f;border:1px dashed rgba(234,179,8,.3)}.adv-segmented{display:inline-flex;align-items:stretch;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;padding:3px;gap:2px;width:fit-content;-webkit-tap-highlight-color:transparent}.adv-segmented__btn{font:inherit;font-size:.78rem;font-weight:600;color:var(--color-text-secondary);background:transparent;border:none;padding:.45rem .85rem;border-radius:999px;cursor:pointer;letter-spacing:-.005em;transition:background .15s,color .15s;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(hover:hover){.adv-segmented__btn:hover:not(.adv-segmented__btn--on){color:var(--color-text);background:#00000008}}.adv-segmented__btn:active:not(.adv-segmented__btn--on){color:var(--color-text);background:#00000008;transition:none}.adv-segmented__btn--on{background:var(--color-surface);color:var(--color-purple);box-shadow:0 1px 3px #0000000f,inset 0 0 0 1px #8b5cf64d}[data-theme=dark] .adv-segmented{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .adv-segmented__btn--on{background:#8b5cf62e;color:#c4b5fd;box-shadow:0 1px 3px #00000040,inset 0 0 0 1px #8b5cf666}@media(hover:hover){[data-theme=dark] .adv-segmented__btn:hover:not(.adv-segmented__btn--on){background:#ffffff0a}}.preview-strip{margin-top:.55rem;display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:linear-gradient(135deg,#8b5cf60d,#06b6d40a);border:1px dashed rgba(139,92,246,.25);font-size:.72rem;color:var(--color-text-secondary);line-height:1.45}.preview-strip svg{color:var(--color-purple);flex-shrink:0;margin-top:2px}.preview-strip__text strong{color:var(--color-text)}.preview-strip__week{display:inline-block;font-family:var(--font-mono);font-size:.68rem;background:#94a3b826;padding:1px 6px;border-radius:4px;margin-left:4px;color:var(--color-text-secondary);border:1px solid rgba(148,163,184,.2);white-space:normal;word-break:break-word;line-height:1.6}.dow-key{display:flex;gap:6px;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);padding-left:2px}.dow-key span{width:42px;text-align:center}.adv-footnote{font-size:.72rem;color:var(--color-text-muted);line-height:1.55;border-top:1px dashed var(--color-border);padding-top:.75rem;margin-top:-.25rem;margin-bottom:0}@media(max-width:480px){.adv__summary{padding:.75rem .85rem}.adv__body{padding:.25rem .85rem 1rem}.day-chip{width:38px;height:38px;font-size:.72rem}.dow-key span{width:38px}.adv__hint{display:none}}[data-theme=dark] .adv{background:#ffffff05;border-color:#ffffff14}[data-theme=dark] .adv--open{border-color:#8b5cf673;background:#8b5cf60a}[data-theme=dark] .stepper,[data-theme=dark] .day-chip{background:#ffffff0a;border-color:#ffffff1a}[data-theme=dark] .day-chip--on{background:#3b82f62e}[data-theme=dark] .day-row--long .day-chip--on{background:#ea580c38}[data-theme=dark] .recommend-tag{background:#8b5cf629;border-color:#8b5cf652;color:#c4b5fd}[data-theme=dark] .preview-strip{background:linear-gradient(135deg,#8b5cf61a,#06b6d40f)}[data-theme=dark] .preview-strip__week{background:#ffffff0f;border-color:#ffffff14;color:var(--color-text-secondary)}.str{margin-top:1rem;border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(180deg,#fef3c740,#fef3c700);transition:border-color .2s,background .2s}@media(hover:hover){.str:hover{border-color:#f59e0b59}}.str--enabled{border-color:#f59e0b66;background:transparent}.str__header{display:flex;align-items:center;gap:.5rem;padding-right:.75rem;transition:background .15s}@media(hover:hover){.str__header:has(.str__summary:hover:not(:disabled)){background:#f59e0b0a}}.str__header:has(.str__summary:active:not(:disabled)),.str__header:has(.str__summary.str__summary--pressed:not(:disabled)){background:#f59e0b0f;transition:none}.str__summary{display:flex;align-items:center;flex:1;min-width:0;background:transparent;border:none;cursor:pointer;padding:.85rem 1rem;gap:.75rem;font:inherit;color:var(--color-text);text-align:left;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.str__summary:disabled{cursor:default}.str__chev{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--color-amber, #d97706);background:#f59e0b1f;transition:transform .25s cubic-bezier(.18,1.1,.3,1.05),background .2s;flex-shrink:0}.str__chev--open{transform:rotate(90deg);background:#f59e0b38}.str__chev--disabled{color:var(--color-text-muted);background:#94a3b824;opacity:.55}[data-theme=dark] .str__chev--disabled{background:#94a3b81f;color:var(--color-text-muted)}.str__title{font-size:.9rem;font-weight:700;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text)}.str__title em{font-family:var(--font-mono);font-size:.62rem;font-weight:700;font-style:normal;text-transform:uppercase;letter-spacing:.14em;color:var(--color-amber, #d97706);background:#f59e0b24;padding:2px 6px;border-radius:4px;line-height:1}.str__title-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-amber, #d97706);flex-shrink:0}.str__hint{margin-left:auto;font-size:.72rem;color:var(--color-text-muted);font-weight:500;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.str__reset-all{color:var(--color-amber, #d97706);background:#f59e0b1a;border-color:#f59e0b38}@media(hover:hover){.str__reset-all:hover{background:#f59e0b2e}}.str__reset-all:active{background:#f59e0b2e;transition:none}.str-switch{--w: 44px;--h: 24px;--pad: 3px;position:relative;display:inline-block;width:var(--w);height:var(--h);flex-shrink:0;cursor:pointer;padding:0;margin:0;border:none;background:transparent;vertical-align:middle;-webkit-tap-highlight-color:transparent}.str-switch__track{position:absolute;inset:0;border-radius:999px;background:var(--color-border);transition:background .2s cubic-bezier(.18,1.1,.3,1.05);pointer-events:none}.str-switch__thumb{position:absolute;top:var(--pad);left:var(--pad);width:calc(var(--h) - var(--pad) * 2);height:calc(var(--h) - var(--pad) * 2);border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a2e,0 1px 3px #0f172a14;transition:transform .22s cubic-bezier(.18,1.1,.3,1.05);pointer-events:none}.str-switch[aria-checked=true] .str-switch__track{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:inset 0 1px 2px #b4530940}.str-switch[aria-checked=true] .str-switch__thumb{transform:translate(calc(var(--w) - var(--h)))}.str-switch:focus-visible .str-switch__track{outline:2px solid var(--color-amber, #d97706);outline-offset:2px}.str__body{padding:.25rem 1.1rem 1.1rem;display:grid;gap:1.05rem;animation:str-slide-down .32s cubic-bezier(.18,1.1,.3,1.05)}@keyframes str-slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.recommend-tag--strength{color:var(--color-amber, #d97706);background:#f59e0b1a;border-color:#f59e0b33}.recommend-tag--strength:before{background:var(--color-amber, #d97706)}[data-theme=dark] .recommend-tag--strength{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b4d}[data-theme=dark] .recommend-tag--strength:before{background:#fbbf24}.str__body .adv-field__label{text-decoration-color:#f59e0b8c}@media(hover:hover){.str__body .adv-field__label[data-tip]:hover{color:var(--color-amber, #d97706);text-decoration-color:var(--color-amber, #d97706)}}.day-row--strength .day-chip{--ring: #d97706;--ring-bg: rgba(245, 158, 11, .12)}.day-row--strength .day-chip--on{background:var(--ring-bg);border-color:var(--ring);color:var(--ring);box-shadow:inset 0 0 0 1px var(--ring),0 1px #d9770614}.day-row--strength .day-chip--warn{border-style:dashed}.day-row--strength .day-chip--warn.day-chip--on{background:#fee2e28c;border-color:#dc26268c;color:#b91c1c;box-shadow:inset 0 0 0 1px #dc262666}[data-theme=dark] .day-row--strength .day-chip{--ring: #fbbf24;--ring-bg: rgba(245, 158, 11, .18)}.str-meta-warn{font-size:.7rem;color:var(--color-warning, #b45309);background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);padding:2px 8px;border-radius:999px;font-weight:600}.str-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.str-check-grid--equipment{grid-template-columns:repeat(3,minmax(0,1fr))}.str-check{position:relative;display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:10px;cursor:pointer;background:var(--color-surface);font-size:.83rem;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}@media(hover:hover){.str-check:hover:not(.str-check--locked){border-color:#f59e0b59}}.str-check--on{border-color:var(--color-amber, #d97706);background:#f59e0b14}.str-check--locked{background:linear-gradient(135deg,#f59e0b24,#f59e0b0a);border-color:var(--color-amber, #d97706);cursor:default}.str-check input{position:absolute;opacity:0;pointer-events:none}.str-check__box{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--color-border);background:var(--color-surface);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background .15s,border-color .15s}.str-check--on .str-check__box,.str-check--locked .str-check__box,.str-hilly--on .str-check__box{background:var(--color-amber, #d97706);border-color:var(--color-amber, #d97706)}.str-check__box svg{opacity:0;transition:opacity .15s}.str-check--on .str-check__box svg,.str-check--locked .str-check__box svg,.str-hilly--on .str-check__box svg{opacity:1}.str-check__label{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.str-check__name{font-weight:600;color:var(--color-text);display:inline-flex;align-items:center;gap:5px;font-size:.83rem}.str-check__name em{font-family:var(--font-mono);font-size:.56rem;font-style:normal;font-weight:600;letter-spacing:.1em;color:var(--color-amber, #d97706);background:#f59e0b29;padding:1px 5px;border-radius:4px;text-transform:uppercase}.str-check__warn{font-size:.68rem;color:var(--color-warning, #b45309);font-weight:500;margin-top:2px}.str-check[data-tip]:after,.str-hilly[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:linear-gradient(135deg,#f59e0b24,#d9770614),color-mix(in srgb,var(--color-surface) 86%,transparent);color:var(--color-text);border:1px solid rgba(245,158,11,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font);font-size:.74rem;font-weight:500;font-style:normal;line-height:1.45;letter-spacing:-.005em;padding:.55rem .7rem;border-radius:9px;width:max-content;max-width:260px;text-align:left;box-shadow:0 4px 16px #d9770629;z-index:20;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s,visibility .12s}@media(hover:hover){.str-check[data-tip]:hover:after,.str-hilly[data-tip]:hover:after{opacity:1;visibility:visible}}[data-theme=dark] .str-check[data-tip]:after,[data-theme=dark] .str-hilly[data-tip]:after{background:linear-gradient(135deg,#f59e0b29,#d977061a),#0f172aeb;border-color:#f59e0b66}.str-check__info{display:none}@media(max-width:480px){.str-check__info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#94a3b833;color:var(--color-text-muted);border:none;cursor:pointer;font-family:var(--font);font-size:.74rem;font-weight:700;font-style:normal;flex-shrink:0;padding:0;margin-left:.4rem;line-height:1;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s}.str-check__info--open{background:#f59e0b3d;color:var(--color-amber, #d97706)}.str-check__info[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);right:-6px;background:linear-gradient(135deg,#f59e0b24,#d9770614),color-mix(in srgb,var(--color-surface) 86%,transparent);color:var(--color-text);border:1px solid rgba(245,158,11,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font);font-size:.74rem;font-weight:500;font-style:normal;line-height:1.45;letter-spacing:-.005em;padding:.55rem .7rem;border-radius:9px;width:max-content;max-width:240px;text-align:left;box-shadow:0 4px 16px #d9770629;z-index:30;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s,visibility .12s;white-space:normal}.str-check__info--open[data-tip]:after{opacity:1;visibility:visible}[data-theme=dark] .str-check__info{background:#94a3b829}[data-theme=dark] .str-check__info--open{background:#f59e0b3d;color:#fbbf24}[data-theme=dark] .str-check__info[data-tip]:after{background:linear-gradient(135deg,#f59e0b29,#d977061a),#0f172aeb;border-color:#f59e0b66}}.str-hilly{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:10px;background:linear-gradient(135deg,#d977060d,#fed7aa14);border:1px dashed rgba(245,158,11,.35);cursor:pointer;font-size:.82rem;position:relative;-webkit-user-select:none;user-select:none}@media(hover:hover){.str-hilly:hover{border-color:#f59e0b8c}}.str-hilly input{position:absolute;opacity:0;pointer-events:none}.str-hilly__label{flex:1;display:flex;flex-direction:row;align-items:baseline;gap:.5rem;flex-wrap:wrap;min-width:0}.str-hilly__label strong{color:var(--color-text);font-weight:600}.str-hilly__hint{color:var(--color-text-muted);font-size:.74rem;line-height:1.3}.str-preview{margin-top:.4rem;display:flex;gap:8px;align-items:center;padding:7px 10px;border-radius:10px;background:linear-gradient(135deg,#f59e0b12,#d977060a);border:1px dashed rgba(245,158,11,.35);min-width:0}.str-preview__icon{color:var(--color-amber, #d97706);flex-shrink:0;width:22px;height:22px;border-radius:6px;background:#f59e0b24;display:inline-flex;align-items:center;justify-content:center}.str-preview__stats{display:flex;gap:6px;align-items:baseline;font-size:.78rem;color:var(--color-text-secondary);flex-wrap:nowrap;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.str-preview__stats strong{font-family:var(--font-mono);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);margin-right:1px}.str-preview__sep{color:var(--color-text-muted);opacity:.55;font-weight:600}[data-theme=dark] .str{background:linear-gradient(180deg,rgba(120,53,15,.15) 0%,transparent 100%)}[data-theme=dark] .str__chev{background:#f59e0b29;color:#fbbf24}[data-theme=dark] .str__title em,[data-theme=dark] .str__title-icon{color:#fbbf24}[data-theme=dark] .str__title em{background:#f59e0b2e}[data-theme=dark] .str__reset-all{color:#fbbf24;background:#f59e0b24;border-color:#f59e0b4d}[data-theme=dark] .str-check{background:var(--color-surface)}[data-theme=dark] .str-check--on{background:#f59e0b1f}[data-theme=dark] .str-preview__icon,[data-theme=dark] .str-preview{border-color:#f59e0b66}[data-theme=dark] .str-meta-warn{color:#fbbf24;background:#f59e0b24;border-color:#f59e0b4d}[data-theme=dark] .str-check__warn{color:#fbbf24}@media(max-width:480px){.str-check-grid{grid-template-columns:1fr}.str-check-grid--equipment{grid-template-columns:1fr 1fr 1fr}.str__body{padding:.25rem .65rem .85rem}.str__summary{padding:.75rem;gap:.55rem}.str__header{padding-right:.55rem}.str-preview{padding:6px 8px;gap:6px}.str-preview__stats{font-size:.74rem;gap:4px;white-space:normal}.str-hilly{padding:.55rem .6rem}.str-check{padding:.5rem .55rem}.str-check__name{font-size:.8rem}}@media(max-width:480px){.day-chip{width:38px;height:38px;font-size:.72rem}.dow-key span{width:38px}.day-row,.dow-key{gap:4px}}@media(max-width:360px){.day-chip{width:34px;height:34px;font-size:.68rem}.dow-key span{width:34px;font-size:.55rem}}.match-pick{max-width:460px;width:100%;padding:1.5rem 1.4rem 1.25rem;display:flex;flex-direction:column;gap:1rem;max-height:80vh}.match-pick__header{display:flex;flex-direction:column;gap:.25rem}.match-pick__eyebrow{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-cyan, #06b6d4);font-weight:600}.match-pick__header h3{margin:0;font-size:1.2rem;letter-spacing:-.01em;color:var(--color-text)}.match-pick__header p{margin:0;font-size:.82rem;color:var(--color-text-muted);line-height:1.45}.match-pick__tabs{display:flex;gap:4px;padding:3px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px}.match-pick__tab{flex:1;background:transparent;border:none;outline:none;border-radius:7px;padding:.45rem .6rem;font:inherit;font-size:.85rem;font-weight:600;letter-spacing:-.005em;color:var(--color-text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.match-pick__tab--active{background:#06b6d424;color:var(--color-cyan, #06b6d4);box-shadow:inset 0 0 0 1px #06b6d459}@media(hover:hover){.match-pick__tab:not(.match-pick__tab--active):hover{color:var(--color-text);background:#94a3b814}}.match-pick__tab:active:not(.match-pick__tab--active),.match-pick__tab.match-pick__tab--pressed:not(.match-pick__tab--active){background:#06b6d414;color:var(--color-text);transition:none}.match-pick__tab:focus-visible{box-shadow:0 0 0 2px #06b6d48c}[data-theme=dark] .match-pick__tabs{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .match-pick__tab--active{background:#06b6d42e;color:#67e8f9;box-shadow:inset 0 0 0 1px #06b6d466}.match-pick__search{display:flex;align-items:center;gap:.5rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:.5rem .75rem;transition:border-color .15s,background .15s}.match-pick__search:focus-within{border-color:#06b6d473;background:var(--color-surface)}.match-pick__search svg{color:var(--color-text-muted);flex-shrink:0}.match-pick__search input{flex:1;background:transparent;border:none;outline:none;font:inherit;font-size:.92rem;color:var(--color-text)}.match-pick__list{flex:1;overflow-y:auto;margin:0 -.4rem;padding:0 .4rem;display:flex;flex-direction:column;gap:4px}.match-pick__loading,.match-pick__empty,.match-pick__error{padding:1.2rem .5rem;text-align:center;font-size:.84rem;color:var(--color-text-muted);line-height:1.5}.match-pick__error{color:#b91c1c}.match-pick__row{display:flex;align-items:center;gap:.75rem;background:transparent;border:1px solid transparent;border-radius:12px;padding:.5rem .7rem;font:inherit;text-align:left;cursor:pointer;color:var(--color-text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s}@media(hover:hover){.match-pick__row:not(:disabled):hover{background:#06b6d40d;border-color:#06b6d42e}}.match-pick__row:active:not(:disabled),.match-pick__row.match-pick__row--pressed:not(:disabled){background:#06b6d41a;border-color:#06b6d44d;transition:none}.match-pick__row--selected{opacity:.55;cursor:default;background:#06b6d40f}.match-pick__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.match-pick__avatar--placeholder{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#06b6d42e,#6366f11f);color:var(--color-text-secondary);font-weight:700;font-size:.95rem;letter-spacing:-.01em}.match-pick__identity{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.match-pick__nameline{display:flex;align-items:baseline;gap:.5rem;min-width:0}.match-pick__name{font-weight:600;font-size:.92rem;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.match-pick__handle{font-family:var(--font-mono);font-size:.74rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.match-pick__sub{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.match-pick__check,.match-pick__add{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;flex-shrink:0}.match-pick__check{color:var(--color-cyan, #06b6d4);background:#06b6d424}.match-pick__add{color:var(--color-text-muted);background:#94a3b81f;transition:background .15s,color .15s}.match-pick__row:hover .match-pick__add{color:var(--color-cyan, #06b6d4);background:#06b6d429}[data-theme=dark] .match-pick__search{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .match-pick__search:focus-within{background:#ffffff0f}[data-theme=dark] .match-pick__avatar--placeholder{background:linear-gradient(135deg,#06b6d440,#6366f12e)}.match{margin-top:1.25rem;border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(180deg,#cffafe40,#cffafe00);transition:border-color .2s,background .2s}@media(hover:hover){.match:hover{border-color:#06b6d459}}.match--open{border-color:#06b6d466;background:transparent}.match--invalid{border-color:#dc262680}.match__header{display:flex;align-items:center;gap:.5rem;padding-right:.75rem}.match__summary{display:flex;align-items:center;flex:1;min-width:0;background:transparent;border:none;cursor:pointer;padding:.85rem 1rem;gap:.75rem;font:inherit;color:var(--color-text);text-align:left;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media(hover:hover){.match__header:hover{background:#06b6d408}}.match__header:has(.match__summary:active),.match__header:has(.match__summary.match__summary--pressed){background:#06b6d40f;transition:none}.match__chev{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--color-cyan, #06b6d4);background:#06b6d41f;transition:transform .25s cubic-bezier(.18,1.1,.3,1.05),background .2s;flex-shrink:0}.match__chev--open{transform:rotate(90deg);background:#06b6d438}.match__title{font-size:.9rem;font-weight:700;letter-spacing:-.005em}.match__hint{margin-left:auto;font-size:.72rem;color:var(--color-text-muted);font-weight:500;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.match__reset-all{display:inline-flex;align-items:center;flex-shrink:0;font:inherit;font-size:.7rem;font-weight:600;height:24px;padding:0 10px;border-radius:999px;border:1px solid rgba(6,182,212,.18);background:#06b6d414;color:var(--color-cyan, #06b6d4);cursor:pointer;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;transition:background .15s}@media(hover:hover){.match__reset-all:hover{background:#06b6d424}}.match__reset-all:active{background:#06b6d424;transition:none}.match__body{padding:.4rem 1.1rem 1.1rem;display:grid;gap:.9rem;animation:adv-slide-down .32s cubic-bezier(.18,1.1,.3,1.05)}.match__body--note{padding:.5rem 1.1rem 1rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.5;display:block}.match__intro{font-size:.78rem;color:var(--color-text-secondary);line-height:1.5;margin:0}.match__intro strong{color:var(--color-text)}.match__footnote{font-size:.72rem;color:var(--color-text-muted);line-height:1.55;border-top:1px dashed var(--color-border);padding-top:.75rem;margin:-.25rem 0 0}.match-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.match-row{display:flex;align-items:center;gap:.7rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:.55rem .75rem .55rem .55rem;font-size:.85rem;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:pan-y;transition:transform .18s cubic-bezier(.18,1.1,.3,1.05),box-shadow .18s,border-color .18s,background .15s;position:relative}.match-row--dragging{z-index:10;box-shadow:0 8px 24px #06b6d42e;border-color:#06b6d48c;background:var(--color-surface);transition:none;cursor:grabbing}.match-row--hover:before{content:"";position:absolute;left:0;right:0;top:-4px;height:2px;background:var(--color-cyan, #06b6d4);border-radius:2px;opacity:.6}.match-row__priority{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:linear-gradient(135deg,#06b6d429,#6366f114);color:var(--color-cyan, #06b6d4);font-family:var(--font-mono);font-weight:700;font-size:.72rem;flex-shrink:0}.match-row__handle{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:grab;padding:4px 2px;opacity:.65;flex-shrink:0;transition:opacity .15s,color .15s}@media(hover:hover){.match-row:hover .match-row__handle{opacity:1;color:var(--color-cyan, #06b6d4)}}.match-row__handle:active{cursor:grabbing;opacity:1}.match-row__identity{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.match-row__name{font-weight:600;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text)}.match-row__meta{font-size:.72rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.match-row__loading{font-style:italic}.match-row__actions{display:flex;gap:2px;flex-shrink:0}.match-row__btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;transition:background .12s,color .12s,border-color .12s}.match-row__btn svg{display:block;flex-shrink:0;pointer-events:none}.match-row__btn:disabled{opacity:.3;cursor:not-allowed}.match-row__btn--remove{color:#b91c1c;background:#ef444414;border-color:#ef44442e}[data-theme=dark] .match-row__btn--remove{color:#fca5a5;background:#ef44441f;border-color:#ef444447}@media(hover:hover){.match-row__btn:hover:not(:disabled){background:#06b6d41f;color:var(--color-cyan, #06b6d4)}.match-row__btn--remove:hover:not(:disabled){background:#ef44442e;color:#dc2626;border-color:#ef444473}[data-theme=dark] .match-row__btn--remove:hover:not(:disabled){color:#fecaca;background:#ef444438;border-color:#ef444480}}.match-row__btn:active:not(:disabled){background:#06b6d42e;color:var(--color-cyan, #06b6d4);transition:none}.match-row__btn--remove:active:not(:disabled){background:#ef444438;color:#dc2626;border-color:#ef444480;transition:none}.match__add{display:flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:600;font-size:.84rem;color:var(--color-cyan, #06b6d4);background:#06b6d40f;border:1px dashed rgba(6,182,212,.4);border-radius:12px;padding:.7rem 1rem;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;letter-spacing:-.005em;transition:background .15s,border-color .15s,color .15s}.match__add--empty{padding:1.1rem 1rem;font-size:.92rem;background:linear-gradient(135deg,#06b6d412,#6366f10a)}.match__add-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#06b6d429}@media(hover:hover){.match__add:hover{background:#06b6d41a;border-color:#06b6d499;border-style:solid}}.match__add:active,.match__add.match__add--pressed{background:#06b6d424;border-color:#06b6d499;border-style:solid;transition:none}.match-banner{font-size:.76rem;line-height:1.5;padding:.55rem .8rem;border-radius:10px}.match-banner strong{font-weight:700;margin-right:.25rem}.match-banner--blocker{color:#991b1b;background:#fee2e28c;border:1px solid rgba(220,38,38,.35)}.match-banner--blocker strong{color:#7f1d1d}.match-banner--warn{color:#92400e;background:#fef3c78c;border:1px dashed rgba(245,158,11,.45)}.match-banner--warn strong{color:#78350f}[data-theme=dark] .match-banner--blocker{color:#fecaca;background:#7f1d1d40;border-color:#dc262673}[data-theme=dark] .match-banner--blocker strong{color:#fee2e2}[data-theme=dark] .match-banner--warn{color:#fde68a;background:#78350f2e}[data-theme=dark] .match-banner--warn strong{color:#fef3c7}.match-options{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.match-options:disabled{opacity:.55}.match-options__legend{font-size:.78rem;font-weight:700;color:var(--color-text);letter-spacing:-.005em;padding:0;margin:0 0 4px}.match-option{display:flex;align-items:flex-start;gap:.65rem;background:transparent;border:1px solid transparent;border-radius:10px;padding:.55rem .7rem;font:inherit;cursor:pointer;text-align:left;color:var(--color-text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s}.match-option:disabled{cursor:not-allowed;opacity:.6}@media(hover:hover){.match-option:not(:disabled):hover{background:#06b6d40a}}.match-option:active:not(:disabled),.match-option.match-option--pressed:not(:disabled){background:#06b6d414;transition:none}.match-option__box{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--color-border);background:var(--color-surface);color:transparent;flex-shrink:0;margin-top:1px;transition:background .15s,border-color .15s,color .15s}.match-option--on .match-option__box{background:var(--color-cyan, #06b6d4);border-color:var(--color-cyan, #06b6d4);color:#fff}.match-option__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.match-option__label{font-size:.85rem;font-weight:600;letter-spacing:-.005em}.match-option__desc{font-size:.72rem;color:var(--color-text-muted);line-height:1.4}.match-option--on .match-option__label{color:var(--color-cyan, #06b6d4)}.adv-field__note--matched{font-size:.72rem;color:var(--color-cyan, #06b6d4);background:#06b6d40f;border:1px solid rgba(6,182,212,.2);border-radius:8px;padding:6px 10px;line-height:1.5;font-style:normal;display:flex;align-items:center;gap:6px}.adv-field__note--matched:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-cyan, #06b6d4);flex-shrink:0}.adv-field__note--matched strong{color:var(--color-text);font-weight:600}@media(max-width:480px){.match__summary{padding:.75rem .85rem}.match__body{padding:.3rem .85rem 1rem}.match__hint{display:none}.match-row{padding:.5rem .6rem .5rem .45rem;gap:.55rem}.match-row__btn{width:24px;height:24px}.match-row__meta{font-size:.68rem}}[data-theme=dark] .match{background:#06b6d40a;border-color:#ffffff14}[data-theme=dark] .match--open{border-color:#06b6d473;background:#06b6d40d}[data-theme=dark] .match-row{background:#ffffff0a;border-color:#ffffff1a}[data-theme=dark] .match-row__priority{background:linear-gradient(135deg,#06b6d447,#6366f12e)}[data-theme=dark] .match-empty{background:linear-gradient(135deg,#06b6d414,#6366f10d);border-color:#06b6d466}[data-theme=dark] .match-option__box{background:#ffffff0a;border-color:#ffffff2e}[data-theme=dark] .adv-field__note--matched{background:#06b6d414;border-color:#06b6d44d;color:#67e8f9}.input-form{max-width:520px;margin:0 auto;animation:fade-in .3s ease}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;padding:2rem;box-shadow:0 4px 24px #0000000d;position:relative;overflow:hidden}.form-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,#3b82f6,#06b6d4,#8b5cf6);z-index:1}.form-card h2{font-size:1.375rem;font-weight:800;letter-spacing:-.02em;margin-bottom:1.25rem;display:flex;align-items:baseline;flex-wrap:wrap;gap:.625rem}.form-card__h2-optional{display:inline-block;font-family:var(--font-heading);font-size:.625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);background:var(--color-primary-light);padding:.18rem .5rem;border-radius:999px;transform:translateY(-.15rem)}.form-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.25rem}.form-step-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:all .3s cubic-bezier(.16,1,.3,1)}.form-step-dot.active{width:24px;border-radius:4px;background:linear-gradient(135deg,#3b82f6,#06b6d4)}.form-step-dot.done{background:var(--color-green)}.form-step-connector{width:24px;height:2px;background:var(--color-border);border-radius:1px}.form-group{margin-bottom:1rem}.form-row{display:flex;gap:1rem;align-items:flex-start}.form-row>*{flex:1;min-width:0}.toggle-group{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;overflow:hidden;margin-bottom:.5rem;background:var(--color-bg);padding:3px;gap:2px}.toggle-group button{border-radius:999px;padding:.375rem .75rem;font-size:.8rem;background:transparent;color:var(--color-text-secondary);border:none;transition:all .2s ease}.toggle-group button.active{background:var(--color-primary);color:#fff;box-shadow:0 1px 4px #3b82f64d}.pace-preview{font-family:var(--font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--color-text-muted);margin-top:.25rem}.vdot-preview{background:linear-gradient(135deg,var(--color-primary-light),rgba(6,182,212,.06));border:1px solid rgba(59,130,246,.15);border-radius:14px;padding:.875rem 1rem;margin:1rem 0 .5rem;animation:fade-in .3s ease}.vdot-preview h3{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:.5rem}.vdot-preview__caption{font-size:.625rem;font-weight:600;letter-spacing:.08em;color:var(--color-text-muted)}.pace-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:1.25rem;row-gap:.25rem}.pace-grid--dual{grid-template-columns:1fr}.pace-item{display:flex;justify-content:space-between;font-size:.8125rem;line-height:1.4}.pace-item .zone-name{color:var(--color-text-secondary)}.pace-item .zone-pace{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums}.current-fitness__toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer;color:var(--color-text-secondary)}.current-fitness__toggle input[type=checkbox]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.current-fitness__fields{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem;align-items:center}.current-fitness__warning{grid-column:1 / -1;font-size:.8rem;color:var(--color-danger, #e53e3e)}.field-optional{font-weight:400;font-size:.75rem;color:var(--color-text-muted, #888);white-space:nowrap}.goal-mileage-label{display:flex;align-items:baseline;gap:.35rem}.suggest-btn{display:inline-flex;align-items:center;position:relative;font-family:var(--font);font-size:.7rem;font-weight:600;color:var(--color-primary);background:var(--color-primary-light);padding:.1rem .4rem;border-radius:999px;border:1px solid transparent;cursor:pointer;margin-left:auto;flex-shrink:0;transition:border-color .15s,background-color .15s;white-space:nowrap}@media(hover:hover){.suggest-btn:hover{border-color:var(--color-primary)}}.suggest-btn:active{border-color:var(--color-primary);transition:none}.suggest-btn--active{cursor:default;font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media(hover:hover){.suggest-btn--active:hover{border-color:transparent}}.suggest-btn--loading{opacity:.7}.suggest-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 12px);top:auto;right:0;left:auto;transform:translateY(4px) scale(.94);transform-origin:right calc(100% + 8px);background:linear-gradient(135deg,#6366f11f,#ec489914),color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid rgba(139,92,246,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-family:var(--font);font-size:.72rem;font-weight:500;line-height:1.4;letter-spacing:-.008em;padding:.45rem .7rem;border-radius:9px;box-shadow:0 4px 16px #8b5cf61f;white-space:normal;width:max-content;max-width:220px;text-align:left;pointer-events:none;opacity:0;transition:opacity .18s ease .11s,transform .28s cubic-bezier(.18,1.1,.3,1.05) .11s;z-index:100}.suggest-btn[data-tooltip]:before{content:"";position:absolute;bottom:calc(100% + 7px);right:14px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid rgba(139,92,246,.35);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .18s ease .11s,transform .28s cubic-bezier(.18,1.1,.3,1.05) .11s;z-index:100}@media(hover:hover){.suggest-btn[data-tooltip]:hover:after{opacity:1;transform:translateY(0) scale(1)}.suggest-btn[data-tooltip]:hover:before{opacity:1;transform:translateY(0)}}.field-hint{display:block;font-size:.8rem;color:var(--color-text-secondary, #718096);margin-top:.25rem}.plan-length{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin:-.5rem 0 1rem;padding:.375rem .75rem;font-size:.78rem;letter-spacing:.04em;color:var(--color-text-secondary, #718096)}.plan-length__label{text-transform:uppercase;font-size:.6875rem;font-weight:600;letter-spacing:.12em;color:var(--color-text-muted, #94a3b8)}.plan-length__value{display:inline-flex;align-items:baseline;gap:.3rem;font-variant-numeric:tabular-nums;color:var(--color-text, inherit)}.plan-length__num{font-family:var(--font-mono);font-size:1rem;font-weight:700;background:linear-gradient(135deg,#2563eb,#0ea5e9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.field-hint.error{color:var(--color-danger, #e53e3e)}.field-hint.warning{color:var(--color-warning, #d69e2e)}.ai-toggle{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;margin:1rem 0 0;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;flex-wrap:wrap}.ai-toggle input[type=checkbox]{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem;accent-color:var(--color-primary);cursor:pointer}.ai-toggle__label{font-size:.9rem;font-weight:600;color:var(--color-primary)}.ai-toggle__desc{width:100%;font-size:.8rem;color:var(--color-text-secondary);padding-left:1.5rem}.form-actions{margin-top:1.25rem;display:flex;gap:.75rem}.form-actions .btn-primary{flex:1;border-radius:999px;background:linear-gradient(135deg,#2563eb,#0ea5e9);background-size:200% auto}@media(hover:hover){.form-actions .btn-primary:hover:not(:disabled){background-position:100% 50%}}.form-actions .btn-primary:active:not(:disabled){background-position:100% 50%;transition:none}.form-actions .btn-primary.is-loading{opacity:.85}.form-actions .btn-secondary{border-radius:999px}.btn-cancel{display:inline-flex;align-items:center;gap:.25rem;background:transparent;border:none;color:var(--color-text-secondary);padding:.5rem .75rem;border-radius:999px;cursor:pointer;font-family:var(--font);font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s}@media(hover:hover){.btn-cancel:hover{background:var(--color-bg);color:var(--color-text)}}.btn-cancel:active{background:var(--color-bg);color:var(--color-text);transition:none}.btn-cancel svg{flex-shrink:0}@media(max-width:768px){.form-card{padding:1.25rem}.form-row{flex-direction:column;gap:0;align-items:stretch}.vdot-preview{padding:.75rem .875rem;margin:.875rem 0 .5rem}.vdot-preview h3{margin-bottom:.5rem}.pace-grid{grid-template-columns:1fr 1fr;column-gap:.875rem}.pace-grid--dual{grid-template-columns:1fr}.pace-item{font-size:.75rem}.suggest-btn[data-tooltip]:after{right:0;left:auto;max-width:180px}.suggest-btn[data-tooltip]:before{right:14px}}@media(hover:none){.suggest-btn[data-tooltip]:after,.suggest-btn[data-tooltip]:before{display:none}}@media(max-width:480px){.form-card{padding:1rem}}[data-theme=dark] .form-card{background:#1e293b99;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:#ffffff14;box-shadow:0 8px 32px #00000040}[data-theme=dark] .vdot-preview{background:linear-gradient(135deg,#3b82f614,#06b6d40a);border-color:#60a5fa33}[data-theme=dark] .current-fitness__warning,[data-theme=dark] .field-hint.error{color:#fca5a5}.edit-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.5rem;padding:.375rem;background:var(--color-bg-subtle, rgba(0, 0, 0, .03));border:1px solid var(--color-border);border-radius:12px}.edit-mode-toggle__btn{display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.625rem .5rem;background:transparent;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}@media(hover:hover){.edit-mode-toggle__btn:hover:not(.is-active){color:var(--color-text);background:#00000005}}.edit-mode-toggle__btn:active:not(.is-active),.edit-mode-toggle__btn.edit-mode-toggle__btn--pressed:not(.is-active){color:var(--color-text);background:#00000005;transition:none}.edit-mode-toggle__btn.is-active{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:0 1px 3px #0000000f}.edit-mode-toggle__hint{font-size:.6875rem;font-weight:400;color:var(--color-text-muted);letter-spacing:0}[data-theme=dark] .edit-mode-toggle{background:#ffffff0a;border-color:#ffffff14}@media(hover:hover){[data-theme=dark] .edit-mode-toggle__btn:hover:not(.is-active){background:#ffffff0a}}[data-theme=dark] .edit-mode-toggle__btn.is-active{background:#ffffff0f;border-color:#ffffff1a}.patch-blocker{margin-top:.875rem;padding:.75rem 1rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:.875rem;color:#b45309;line-height:1.4}[data-theme=dark] .patch-blocker{background:#f59e0b1f;border-color:#f59e0b59;color:#fcd34d}.confetti-container{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden}.confetti-particle{position:absolute;left:50%;top:35%;width:var(--size);height:var(--size);background:var(--color);border-radius:2px;opacity:0;animation:confetti-burst 1.8s cubic-bezier(.25,.46,.45,.94) var(--delay) forwards}@keyframes confetti-burst{0%{transform:translate(0) rotate(0) scale(1);opacity:1}70%{opacity:1}to{transform:translate(var(--dx),calc(var(--dy) + 250px)) rotate(var(--spin)) scale(.4);opacity:0}}@media(prefers-reduced-motion:reduce){.confetti-particle{animation:none}}.offline-notice{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;margin:1.5rem 0 .75rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.3);color:#92400e;border-radius:999px;font-size:.78rem;font-weight:500;letter-spacing:-.005em}.offline-notice svg{flex-shrink:0;color:#d97706}[data-theme=dark] .offline-notice{background:#f59e0b1f;border-color:#f59e0b59;color:#fbbf24}[data-theme=dark] .offline-notice svg{color:#fbbf24}.plans-page{animation:fade-in .3s ease}.plans-signin{text-align:center;padding:3rem 1rem}.plans-signin h2{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.plans-signin p{color:var(--color-text-secondary);margin-bottom:1.5rem}.plans-signin .btn-primary{display:inline-flex;align-items:center;gap:.5rem}.plans-signin__icon{flex-shrink:0}.plans-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.plans-header h2{font-size:1.5rem;font-weight:700}.plans-header__actions{display:flex;align-items:center;gap:.5rem}.plans-add-btn{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:1.5rem;font-weight:300;display:flex;align-items:center;justify-content:center;line-height:1;padding:0 0 2px}.plans-add-btn--wide{width:auto;border-radius:var(--radius);padding:.5rem 1.25rem;font-size:1rem;font-weight:600;line-height:1.6}@media(hover:hover){.plans-add-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}}.plans-add-btn:active,.plans-add-btn.plans-add-btn--pressed{background:var(--color-primary-hover);box-shadow:var(--shadow-md);transition:none}.plans-sort{display:flex;align-items:center;gap:.625rem;margin-bottom:1.25rem}.plans-sort>span{font-size:.8125rem;color:var(--color-text-muted);font-weight:500}.plans-sort__pill{display:inline-flex;align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1875rem;gap:.125rem}.plans-sort__btn{padding:.3rem .75rem;font-size:.75rem;font-weight:500;border-radius:999px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);white-space:nowrap}@media(hover:hover){.plans-sort__btn:hover:not(.plans-sort__btn--active){color:var(--color-text);background:var(--color-bg)}}.plans-sort__btn:active:not(.plans-sort__btn--active),.plans-sort__btn.plans-sort__btn--pressed:not(.plans-sort__btn--active){color:var(--color-text);background:var(--color-bg);transition:none}.plans-sort__btn--active{background:var(--color-primary);color:#fff;font-weight:600}.plans-new-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.46rem .95rem .46rem .78rem;border:none;border-radius:999px;font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:-.005em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,var(--color-primary) 55%,#06b6d4 100%);box-shadow:0 1px 1px #0f172a1a,0 6px 14px -6px color-mix(in srgb,var(--color-primary) 60%,transparent),inset 0 1px #fff3;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow var(--transition),filter var(--transition);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none;white-space:nowrap}.plans-new-btn__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#ffffff38;flex-shrink:0}.plans-new-btn__label{line-height:1;margin-bottom:1px}@media(hover:hover){.plans-new-btn:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 1px 1px #0f172a1a,0 10px 22px -8px color-mix(in srgb,var(--color-primary) 70%,transparent),inset 0 1px #fff3}}.plans-new-btn:active,.plans-new-btn--pressed{transform:scale(.97);box-shadow:0 1px 1px #0f172a1a,0 3px 8px -4px color-mix(in srgb,var(--color-primary) 55%,transparent),inset 0 1px #fff3;transition:none}[data-theme=dark] .plans-new-btn{background:linear-gradient(135deg,#6366f1,#60a5fa 55%,#22d3ee);box-shadow:0 1px 1px #0000004d,0 6px 16px -6px color-mix(in srgb,#6366f1 60%,transparent),inset 0 1px #ffffff2e}.plans-list{display:flex;flex-direction:column;gap:.4rem}.plans-list__divider{display:flex;align-items:center;gap:.65rem;margin:.15rem 0;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:0;animation:plan-card-in .4s ease .1s forwards}.plans-list__divider-rule{flex:1;height:1px;background:linear-gradient(to right,transparent,var(--color-border) 20%,var(--color-border) 80%,transparent)}.plans-list__divider-label{font-family:var(--font);font-size:.575rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-muted);white-space:nowrap}.plan-toggle{--accent-from: #3b82f6;--accent-to: #06b6d4;flex-shrink:0;align-self:center;position:relative;z-index:1;width:28px;height:28px;margin:0 .5rem 0 .55rem;border-radius:50%;border:none;background:transparent;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:transform .18s cubic-bezier(.34,1.56,.64,1),color var(--transition)}.plan-toggle[data-accent=speed]{--accent-from: #f97316;--accent-to: #ef4444}.plan-toggle[data-accent=short]{--accent-from: #f59e0b;--accent-to: #f97316}.plan-toggle[data-accent=mid]{--accent-from: #22c55e;--accent-to: #06b6d4}.plan-toggle[data-accent=half]{--accent-from: #06b6d4;--accent-to: #3b82f6}.plan-toggle[data-accent=marathon]{--accent-from: #6366f1;--accent-to: #8b5cf6}.plan-toggle__ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surface);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}.plan-toggle__check{position:relative;z-index:1;opacity:0;transform:scale(.6);transition:opacity .18s ease,transform .22s cubic-bezier(.34,1.56,.64,1);pointer-events:none}@media(hover:hover){.plan-toggle:hover .plan-toggle__ring{border-color:color-mix(in srgb,var(--accent-from) 55%,var(--color-border));background:color-mix(in srgb,var(--accent-from) 6%,var(--color-surface))}.plan-toggle:hover .plan-toggle__check{opacity:.4;transform:scale(1);color:var(--accent-from)}.plan-toggle--active:hover .plan-toggle__check{opacity:1;color:#fff}}.plan-toggle:active .plan-toggle__ring,.plan-toggle.plan-toggle--pressed .plan-toggle__ring{border-color:color-mix(in srgb,var(--accent-from) 55%,var(--color-border));background:color-mix(in srgb,var(--accent-from) 6%,var(--color-surface));transition:none}.plan-toggle:active .plan-toggle__check,.plan-toggle.plan-toggle--pressed .plan-toggle__check{opacity:.4;transform:scale(1);color:var(--accent-from);transition:none}.plan-toggle--active:active .plan-toggle__check,.plan-toggle--active.plan-toggle--pressed .plan-toggle__check{opacity:1;color:#fff;transition:none}.plan-toggle:not(.plan-toggle--active):active .plan-toggle__ring,.plan-toggle:not(.plan-toggle--active).plan-toggle--pressed .plan-toggle__ring{transform:scale(.94)}.plan-toggle--active{color:#fff}.plan-toggle--active .plan-toggle__ring{border-color:var(--accent-from);background:linear-gradient(135deg,var(--accent-from),var(--accent-to));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-from) 14%,transparent),0 1px 6px color-mix(in srgb,var(--accent-from) 30%,transparent)}.plan-toggle--active .plan-toggle__check{opacity:1;transform:scale(1);animation:plan-toggle-check-in .36s cubic-bezier(.34,1.56,.64,1)}@keyframes plan-toggle-check-in{0%{opacity:0;transform:scale(.4) rotate(-12deg)}60%{opacity:1;transform:scale(1.15) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(max-width:600px){.plan-toggle{width:26px;height:26px;margin:0 .4rem 0 .45rem}.plan-toggle__check{width:12px;height:12px}}@media(pointer:coarse){.plan-toggle{width:30px;height:30px}}.plan-card{--accent-from: #3b82f6;--accent-to: #06b6d4;--accent-soft: rgba(59, 130, 246, .08);position:relative;display:flex;align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition),background var(--transition);box-shadow:var(--shadow-sm);opacity:0;animation:plan-card-in .4s ease forwards;touch-action:manipulation;user-select:none;-webkit-user-select:none}.plan-card__main{flex:1;min-width:0}.plan-card[data-accent=speed]{--accent-from: #f97316;--accent-to: #ef4444;--accent-soft: rgba(249, 115, 22, .1)}.plan-card[data-accent=short]{--accent-from: #f59e0b;--accent-to: #f97316;--accent-soft: rgba(245, 158, 11, .1)}.plan-card[data-accent=mid]{--accent-from: #22c55e;--accent-to: #06b6d4;--accent-soft: rgba(34, 197, 94, .1)}.plan-card[data-accent=half]{--accent-from: #06b6d4;--accent-to: #3b82f6;--accent-soft: rgba(6, 182, 212, .1)}.plan-card[data-accent=marathon]{--accent-from: #6366f1;--accent-to: #8b5cf6;--accent-soft: rgba(99, 102, 241, .1)}.plan-card__rail{position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(to bottom,var(--accent-from),var(--accent-to));opacity:.55;transition:opacity var(--transition),width var(--transition)}@media(hover:hover){.plan-card:hover{border-color:color-mix(in srgb,var(--accent-from) 45%,var(--color-border));box-shadow:var(--shadow-md);transform:translateY(-1px)}.plan-card:hover .plan-card__rail{opacity:1;width:4px}}.plan-card:active,.plan-card.plan-card--pressed{background:color-mix(in srgb,var(--accent-from) 5%,var(--color-surface));transition:none}.plan-card:active .plan-card__rail,.plan-card.plan-card--pressed .plan-card__rail{opacity:1;transition:none}@keyframes plan-card-in{0%{opacity:0}to{opacity:1}}.plan-card__main{position:relative;padding:.6rem .7rem .55rem 0;display:flex;flex-direction:column;gap:.25rem}.plan-card__row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.plan-card__title{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;min-width:0;row-gap:.15rem}.plan-card__distance{font-family:var(--font-heading);font-size:1.075rem;font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--color-text)}.plan-card__goal-time{font-family:var(--font-mono);font-size:.95rem;font-weight:700;letter-spacing:-.025em;color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1.15}.plan-card__coach-badge{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font);font-size:.575rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:#8b5cf61f;color:var(--color-purple);padding:.12rem .4rem;border-radius:999px;white-space:nowrap;align-self:center}.plan-card__coach-badge svg{flex-shrink:0;opacity:.85}.plan-card__countdown{display:inline-flex;align-items:baseline;gap:.25rem;font-family:var(--font);padding:.2rem .55rem;border-radius:999px;white-space:nowrap;flex-shrink:0}.plan-card__countdown-num{font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:-.015em;font-variant-numeric:tabular-nums;line-height:1}.plan-card__countdown-unit{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.75;line-height:1}.plan-card__countdown--far{background:#6366f11a;color:#4f46e5}.plan-card__countdown--near{background:#22c55e1f;color:#16a34a}.plan-card__countdown--imminent{background:#f59e0b24;color:#d97706}.plan-card__countdown--past{background:#94a3b824;color:var(--color-text-muted)}.plan-card__meta{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;min-width:0;font-family:var(--font);color:var(--color-text-secondary)}.plan-card__meta-item{display:inline-flex;align-items:baseline;gap:.22rem;font-size:.75rem;white-space:nowrap}.plan-card__meta-item strong{font-family:var(--font-heading);font-weight:700;letter-spacing:-.01em;color:var(--color-text);font-variant-numeric:tabular-nums}.plan-card__meta-item--date strong{font-family:var(--font-mono);font-weight:600}.plan-card__meta-unit{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.plan-card__meta-sep{color:var(--color-text-muted);opacity:.5;font-size:.7rem;line-height:1}.plan-card__dates{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem;font-family:var(--font-mono);font-size:.65rem;font-weight:500;color:var(--color-text-muted);letter-spacing:-.005em;font-variant-numeric:tabular-nums;margin-top:.05rem;opacity:.75}.plan-card__dates .plan-card__meta-sep{font-family:var(--font);font-size:.65rem}.plan-card__actions{flex-shrink:0;display:inline-flex;align-items:center}.plan-card--active{z-index:1;border-color:var(--accent-from);border-width:1.5px;box-shadow:inset 3px 0 0 0 var(--accent-from),0 0 0 1px color-mix(in srgb,var(--accent-from) 22%,transparent),0 6px 18px -10px color-mix(in srgb,var(--accent-from) 50%,transparent),var(--shadow-sm)}.plan-card--active .plan-card__rail{display:none}.plan-card--active:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 0% 50%,color-mix(in srgb,var(--accent-from) 9%,transparent) 0%,transparent 40%),radial-gradient(circle at 100% 50%,color-mix(in srgb,var(--accent-to) 5%,transparent) 0%,transparent 50%)}@media(hover:hover){.plan-card--active:hover{border-color:var(--accent-from);box-shadow:inset 3px 0 0 0 var(--accent-from),0 0 0 1px color-mix(in srgb,var(--accent-from) 30%,transparent),0 8px 22px -10px color-mix(in srgb,var(--accent-from) 60%,transparent),var(--shadow-md)}}.plan-card--active:active,.plan-card--active.plan-card--pressed{background:color-mix(in srgb,var(--accent-from) 7%,var(--color-surface));transition:none}.delete-modal{max-width:340px;text-align:center;padding:1.75rem 1.5rem 1.5rem}.delete-modal__icon{width:48px;height:48px;border-radius:50%;background:var(--color-red-light);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.25rem;color:var(--color-red)}.delete-modal h3{font-family:var(--font-heading);font-size:1.0625rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.5rem}.delete-modal p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:.25rem}.delete-modal__warning{color:var(--color-text-muted);font-size:.75rem;margin-bottom:1.25rem}.delete-modal__actions{display:flex;gap:.5rem}.delete-modal__actions .btn-secondary,.delete-modal__actions .btn-danger{flex:1;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;border-radius:999px}.btn-danger{background:var(--color-red);color:#fff;padding:.5rem 1.25rem;font-weight:600;border-radius:var(--radius-sm)}@media(hover:hover){.btn-danger:hover{background:#dc2626}}.btn-danger:active,.btn-danger.btn-danger--pressed{background:#dc2626;transition:none}@media(max-width:600px){.plan-card__main{padding:.55rem .6rem .5rem 0;gap:.2rem}.plan-card__distance{font-size:1rem}.plan-card__goal-time{font-size:.9rem}.plan-card__title{gap:.45rem}.plan-card__meta-item{font-size:.7rem}.plan-card__meta-unit{font-size:.575rem}.plan-card__meta{gap:.3rem}}@media(max-width:380px){.plan-card__row--head{flex-wrap:wrap}.plan-card__countdown-unit{display:none}.plan-card__countdown{padding:.18rem .45rem}}@media(pointer:coarse){.plan-card__actions .cal-controls__btn{width:32px;height:32px;min-height:32px;min-width:32px}}[data-theme=dark] .plan-card{--accent-soft: rgba(96, 165, 250, .08)}[data-theme=dark] .plan-card[data-accent=speed]{--accent-from: #fb923c;--accent-to: #f87171;--accent-soft: rgba(251, 146, 60, .1)}[data-theme=dark] .plan-card[data-accent=short]{--accent-from: #fbbf24;--accent-to: #fb923c;--accent-soft: rgba(251, 191, 36, .1)}[data-theme=dark] .plan-card[data-accent=mid]{--accent-from: #4ade80;--accent-to: #22d3ee;--accent-soft: rgba(74, 222, 128, .1)}[data-theme=dark] .plan-card[data-accent=half]{--accent-from: #22d3ee;--accent-to: #60a5fa;--accent-soft: rgba(34, 211, 238, .1)}[data-theme=dark] .plan-card[data-accent=marathon]{--accent-from: #818cf8;--accent-to: #a78bfa;--accent-soft: rgba(129, 140, 248, .1)}[data-theme=dark] .plan-card__countdown--far{background:#818cf829;color:#a5b4fc}[data-theme=dark] .plan-card__countdown--near{background:#4ade8024;color:#86efac}[data-theme=dark] .plan-card__countdown--imminent{background:#fbbf242e;color:#fcd34d}[data-theme=dark] .plan-card__countdown--past{background:#94a3b824;color:var(--color-text-muted)}[data-theme=dark] .plan-card__coach-badge{background:#a78bfa29;color:#c4b5fd}@media(hover:hover){[data-theme=dark] .plan-card__actions .cal-controls__btn:hover{background:#ffffff14;color:var(--color-text)}[data-theme=dark] .plan-card__btn--delete:hover{background:#f8717129!important;color:#fca5a5!important}[data-theme=dark] .plan-card__share-menu button:hover{background:#ffffff0d}[data-theme=dark] .plan-card__share-menu-item--danger:hover{background:#f8717129!important;color:#fca5a5!important}}[data-theme=dark] .plan-card__share-menu-sep{background:#ffffff14}[data-theme=dark] .plan-card__share-menu-item--danger{color:#fca5a5!important}[data-theme=dark] .plan-toggle__ring{background:#ffffff08;border-color:#ffffff24}[data-theme=dark] .plan-toggle--active .plan-toggle__ring{border-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-from) 18%,transparent),0 1px 8px color-mix(in srgb,var(--accent-from) 40%,transparent)}[data-theme=dark] .plan-card--active{box-shadow:inset 3px 0 0 0 var(--accent-from),0 0 0 1px color-mix(in srgb,var(--accent-from) 30%,transparent),0 8px 22px -10px color-mix(in srgb,var(--accent-from) 65%,transparent),var(--shadow-sm)}[data-theme=dark] .btn-danger{background:#dc2626}@media(hover:hover){[data-theme=dark] .btn-danger:hover{background:#ef4444}}[data-theme=dark] .delete-modal__warning{color:var(--color-text-muted)}[data-theme=dark] .delete-modal__icon{background:#f871711f;color:#fca5a5}.mileage-chart{padding:10px 12px 6px}.mileage-chart__header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px;min-height:14px}.mileage-chart__title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.mileage-chart__tooltip{display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;justify-content:flex-end;font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);text-align:right;animation:fade-in .1s ease}.mileage-chart__tooltip-head{display:inline-flex;align-items:baseline;gap:5px;font-weight:700;color:var(--color-text)}.mileage-chart__tooltip-dates{color:var(--color-text-muted);font-weight:500;letter-spacing:.02em}.mileage-chart__tooltip-stats{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.mileage-chart__tooltip strong{color:var(--color-text);font-weight:700}.mileage-chart__svg{width:100%;height:auto;display:block;touch-action:none}.mileage-chart__grid{stroke:var(--color-border);stroke-width:.5}.mileage-chart__axis{font-family:var(--font-mono);font-size:7px;fill:var(--color-text-muted)}.mileage-chart__actual-line{stroke:var(--color-primary);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.mileage-chart__dot{fill:var(--color-primary);transition:r .15s ease}.mileage-chart__dot--current{fill:var(--color-primary);stroke:var(--color-surface);stroke-width:1.5}.mileage-chart__dot--hovered{fill:var(--color-text);stroke:var(--color-primary);stroke-width:2}.mileage-chart__hover-line{stroke:var(--color-text-muted);stroke-width:.5;stroke-dasharray:2 2;opacity:.4}.mileage-chart__effort-line{stroke:#f59e0b;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:2 3;opacity:.8}.mileage-chart__axis--effort{fill:#f59e0b;opacity:.85}.intensity-chart{padding:10px 12px}.intensity-chart__header{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;min-height:20px}.intensity-chart__title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);flex-shrink:0}.intensity-chart__tooltip{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);animation:fade-in .1s ease}.intensity-chart__tooltip strong{color:var(--color-text);font-weight:700}@media(max-width:480px){.intensity-chart__tooltip{font-size:9px}.intensity-chart__header:has(.intensity-chart__tooltip) .intensity-chart__title{display:none}}.intensity-chart__bar{display:flex;height:20px;border-radius:4px;overflow:hidden;gap:1px;touch-action:none}.intensity-chart__segment{display:flex;align-items:center;justify-content:center;min-width:0;transition:width .3s ease,opacity .15s ease;cursor:default}.intensity-chart__segment--dimmed{opacity:.35}.intensity-chart__segment-pct{font-family:var(--font-mono);font-size:9px;font-weight:700;color:#111}.intensity-chart__legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px}.intensity-chart__legend-item{display:flex;align-items:center;gap:4px}.intensity-chart__legend-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.intensity-chart__legend-label{font-size:10px;color:var(--color-text-muted)}.intensity-chart__legend-value{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--color-text)}.hr-chart{padding:10px 12px}.hr-chart__header{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;min-height:20px}.hr-chart__title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);flex-shrink:0}.hr-chart__subtitle{font-weight:400;text-transform:none;letter-spacing:0;opacity:.8}.hr-chart__max-link{font-family:var(--font-mono);font-size:inherit;font-weight:600;color:var(--color-primary);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}@media(hover:hover){.hr-chart__max-link:hover{text-decoration-style:solid}}.hr-chart__tooltip{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);animation:fade-in .1s ease}.hr-chart__tooltip strong{color:var(--color-text);font-weight:700}@media(max-width:480px){.hr-chart__tooltip{font-size:9px}.hr-chart__header:has(.hr-chart__tooltip) .hr-chart__title{display:none}}.hr-chart__bar{display:flex;height:20px;border-radius:4px;overflow:hidden;gap:1px;touch-action:none}.hr-chart__segment{display:flex;align-items:center;justify-content:center;min-width:0;transition:width .3s ease,opacity .15s ease;cursor:default}.hr-chart__segment--dimmed{opacity:.35}.hr-chart__segment-pct{font-family:var(--font-mono);font-size:9px;font-weight:700;color:#111}.hr-chart__legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px}.hr-chart__legend-item{display:flex;align-items:center;gap:4px}.hr-chart__legend-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.hr-chart__legend-label{font-size:10px;color:var(--color-text-muted)}.hr-chart__legend-value{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--color-text)}.fitness-panel-wrapper{max-width:740px;margin:0 auto 16px;padding:0 12px}.fitness-panel-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;margin-bottom:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;color:var(--color-text-muted);font-family:var(--font-mono);font-size:11px;font-weight:600;-webkit-tap-highlight-color:transparent;transition:color .15s ease,border-color .15s ease}@media(hover:hover){.fitness-panel-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}}.fitness-panel-toggle:active,.fitness-panel-toggle.fitness-panel-toggle--pressed{color:var(--color-text);border-color:var(--color-text-muted);transition:none}.fitness-panel-toggle--active{color:var(--color-primary)}.fitness-panel-toggle__chevron{margin-left:auto;transition:transform .2s ease;opacity:.5}.fitness-panel-toggle__chevron--open{transform:rotate(180deg)}.fitness-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden;animation:slide-down .3s ease both}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fitness-panel__divider{height:1px;background:var(--color-border);margin:0 12px}.fitness-panel__trends{padding:10px 12px}.fitness-panel__trends-title{display:block;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:6px}.fitness-panel__trend{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12px;color:var(--color-text)}.fitness-panel__trend-icon{font-family:var(--font-symbols);font-size:14px;width:18px;text-align:center;flex-shrink:0}.fitness-panel__trend--faster .fitness-panel__trend-icon{color:#22c55e}.fitness-panel__trend--slower .fitness-panel__trend-icon{color:#ef4444}.fitness-panel__trend--stable .fitness-panel__trend-icon,.fitness-panel__trend-message{color:var(--color-text-muted)}[data-theme=dark] .fitness-panel__trend--faster .fitness-panel__trend-icon{color:#4ade80}[data-theme=dark] .fitness-panel__trend--slower .fitness-panel__trend-icon{color:#f87171}.quality-chart{padding:10px 12px}.quality-chart__header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:14px}.quality-chart__title{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.quality-chart__readout{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:18px;margin-top:6px;padding:4px 0 6px;font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);letter-spacing:.02em}.quality-chart__readout-head{display:inline-flex;align-items:baseline;gap:6px;flex-shrink:0}.quality-chart__readout-head strong{color:var(--color-text);font-weight:700;font-size:11px;letter-spacing:.04em}.quality-chart__readout-dates{color:var(--color-text-muted);font-size:10px;font-weight:500;letter-spacing:.02em}.quality-chart__readout-items{display:inline-flex;align-items:baseline;gap:10px;justify-content:flex-end;flex-shrink:0}.quality-chart__tooltip-item{display:inline-flex;align-items:baseline;gap:3px;text-transform:uppercase;font-size:9px;letter-spacing:.06em}.quality-chart__tooltip-item strong{font-weight:700;font-size:11px;letter-spacing:0;text-transform:none}.quality-chart__tooltip-item--quality strong{color:var(--color-primary)}.quality-chart__tooltip-item--lt2 strong{color:#ef4444}.quality-chart__tooltip-item--lt1 strong{color:#f59e0b}.quality-chart__svg{width:100%;height:auto;display:block;touch-action:none}.quality-chart__grid{stroke:var(--color-border);stroke-width:.5}.quality-chart__axis{font-family:var(--font-mono);font-size:7px;fill:var(--color-text-muted)}.quality-chart__area{fill:color-mix(in srgb,var(--color-primary) 14%,transparent)}.quality-chart__line{stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.quality-chart__line--quality{stroke:var(--color-primary);stroke-width:2}.quality-chart__line--lt2{stroke:#ef4444;stroke-dasharray:3 2;opacity:.9}.quality-chart__line--lt1{stroke:#f59e0b;stroke-dasharray:2 3;opacity:.85}.quality-chart__dot{fill:var(--color-primary);transition:r .15s ease}.quality-chart__dot--current{fill:var(--color-primary);stroke:var(--color-surface);stroke-width:1.5}.quality-chart__dot--hovered{fill:var(--color-text);stroke:var(--color-primary);stroke-width:2}.quality-chart__hover-line{stroke:var(--color-text-muted);stroke-width:.5;stroke-dasharray:2 2;opacity:.4}.quality-chart__legend{display:flex;gap:14px;margin-top:8px;padding-top:8px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.quality-chart__legend-item{display:inline-flex;align-items:center;gap:6px}.quality-chart__swatch{width:14px;height:2px;border-radius:2px;flex-shrink:0}.quality-chart__swatch--quality{background:var(--color-primary);height:2.5px}.quality-chart__swatch--lt2{background:repeating-linear-gradient(90deg,#ef4444 0 3px,transparent 3px 5px)}.quality-chart__swatch--lt1{background:repeating-linear-gradient(90deg,#f59e0b 0 2px,transparent 2px 5px)}.env-pace{padding:14px 14px 10px;--env-heat: #c53030;--env-rose: #f43f5e;--env-elev: #2563eb;--env-both: #7c3aed}.env-pace__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:62px;padding-bottom:6px}.env-pace__titles{display:flex;flex-direction:column;gap:2px;flex-shrink:0;min-width:0}.env-pace__eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);line-height:1.2}.env-pace__lede{font-family:var(--font);font-size:11px;font-weight:400;color:var(--color-text-muted);letter-spacing:.01em;line-height:1.3;max-width:18ch}.env-pace__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:1;min-width:0;position:relative}.env-pace__range{display:inline-flex;gap:0;background:var(--color-border);border-radius:6px;padding:2px;flex-shrink:0}.env-pace__range-btn{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;color:var(--color-text-muted);background:transparent;border:none;padding:3.5px 8px;border-radius:4px;cursor:pointer;transition:background .14s ease,color .14s ease;line-height:1}@media(hover:hover){.env-pace__range-btn:hover{color:var(--color-text)}}.env-pace__range-btn:active:not(.env-pace__range-btn--active),.env-pace__range-btn.env-pace__range-btn--pressed:not(.env-pace__range-btn--active){color:var(--color-text);transition:none}.env-pace__range-btn--active{background:var(--color-surface);color:var(--color-text);font-weight:700;box-shadow:0 1px 2px #0000000f}.env-pace__readout-dock{position:relative;min-height:58px;width:100%}.env-pace__summary{position:absolute;top:0;right:0;display:inline-flex;align-items:baseline;gap:6px;font-family:var(--font-mono);font-size:10.5px;color:var(--color-text-muted);letter-spacing:.02em;white-space:nowrap;animation:env-fade .16s ease}.env-pace__summary--muted{font-size:10px;opacity:.75;text-transform:lowercase;font-style:italic;font-family:var(--font);letter-spacing:.02em}.env-pace__summary-unit{font-size:13px;font-weight:600;color:var(--color-text-secondary);line-height:1}.env-pace__summary-val{font-size:15px;font-weight:700;color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.env-pace__summary-meta{font-size:9.5px;color:var(--color-text-muted);opacity:.78}.env-pace__readout{position:absolute;top:0;right:0;display:flex;flex-direction:column;gap:4px;text-align:right;animation:env-fade .14s ease;font-family:var(--font-mono);min-width:0;max-width:100%;--env-adjust: var(--env-heat)}.env-pace__readout--heat{--env-adjust: var(--env-heat)}.env-pace__readout--elev{--env-adjust: var(--env-elev)}.env-pace__readout--both{--env-adjust: var(--env-both)}.env-pace__readout-head{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:8px}.env-pace__readout-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text)}.env-pace__readout-dist{font-size:9.5px;font-weight:600;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.env-pace__readout-paces{display:inline-flex;align-items:baseline;gap:6px;justify-content:flex-end;flex-wrap:wrap}.env-pace__readout-pair{display:inline-flex;align-items:baseline;gap:4px}.env-pace__readout-tag{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:1px 4px;border-radius:2px;line-height:1.3}.env-pace__readout-tag--actual{color:var(--color-text);background:color-mix(in srgb,var(--color-text) 8%,transparent)}.env-pace__readout-tag--adjusted{color:var(--env-adjust);background:color-mix(in srgb,var(--env-adjust) 14%,transparent)}.env-pace__readout-pace{font-size:14px;font-weight:700;color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.env-pace__readout-pace--adjusted{color:var(--env-adjust)}.env-pace__readout-sep{font-family:var(--font-symbols);font-size:11px;color:var(--color-text-muted);opacity:.6;font-weight:400}.env-pace__readout-sep--soft{margin:0 2px;opacity:.4}.env-pace__readout-meta{display:inline-flex;align-items:center;gap:4px;justify-content:flex-end;font-size:9px;color:var(--color-text-muted);letter-spacing:.04em}.env-pace__readout-drift{color:var(--env-adjust);font-weight:600}.env-pace__readout-drift--ideal{color:var(--env-elev);font-weight:600}.env-pace__readout-chip{display:inline-flex;align-items:center;padding:1px 4px;border-radius:2px;font-size:8.5px;font-weight:700;letter-spacing:.05em;line-height:1.2}.env-pace__readout-chip--heat{color:var(--env-heat);background:color-mix(in srgb,var(--env-heat) 14%,transparent)}.env-pace__readout-chip--elev{color:var(--env-elev);background:color-mix(in srgb,var(--env-elev) 14%,transparent)}.env-pace__chart-wrap{display:flex;flex-direction:column;gap:6px}.env-pace__svg{width:100%;height:auto;display:block;color:var(--color-text);animation:env-chart-in .34s ease both;touch-action:none}@keyframes env-chart-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes env-fade{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.env-pace__grid{stroke:var(--color-border);stroke-width:.5;opacity:.85}.env-pace__axis{font-family:var(--font-mono);font-size:8px;fill:var(--color-text-muted);letter-spacing:.02em}.env-pace__axis-label{font-family:var(--font-mono);font-size:7px;font-weight:700;fill:var(--color-text-muted);letter-spacing:.14em;text-transform:uppercase;opacity:.55}.env-pace__gap-tick{stroke:var(--color-border);stroke-width:.7;opacity:.5}.env-pace__bar{fill:color-mix(in srgb,var(--color-text) 55%,transparent);transition:fill .14s ease;animation:env-bar-in .52s cubic-bezier(.22,1,.36,1) both;transform-origin:bottom center}.env-pace__bar--hovered{fill:var(--color-text)}@keyframes env-bar-in{0%{transform:scaleY(0);opacity:.2}to{transform:scaleY(1);opacity:1}}.env-pace__crosshair{stroke:var(--color-text);stroke-width:.5;stroke-dasharray:2 2;opacity:.4;pointer-events:none}.env-pace__strip-base{stroke:var(--color-border);stroke-width:.6;opacity:.9}.env-pace__delta-group{animation:env-fade .36s ease .18s both}.env-pace__delta-bar{transition:opacity .14s ease,filter .14s ease;opacity:.94;rx:1}.env-pace__delta-bar--elev{fill:var(--env-elev)}.env-pace__delta-bar--heat{fill:var(--env-heat)}.env-pace__delta-bar--both{fill:var(--env-both)}.env-pace__delta-bar--hovered{opacity:1;filter:brightness(1.15)}.env-pace__legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:2px 4px 0;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.env-pace__legend-item{display:inline-flex;align-items:center;gap:5px}.env-pace__legend-sep{opacity:.5}.env-pace__legend-bar{display:inline-block;width:4px;height:11px;border-radius:1px;margin-right:1px}.env-pace__legend-bar--pace{background:color-mix(in srgb,var(--color-text) 55%,transparent)}.env-pace__legend-bar--heat{background:var(--env-heat)}.env-pace__legend-bar--elev{background:var(--env-elev)}.env-pace__legend-bar--both{background:var(--env-both)}.env-pace__legend-pending{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:8.5px;opacity:.8;text-transform:lowercase;letter-spacing:.04em}.env-pace__legend-pulse{width:6px;height:6px;border-radius:50%;background:var(--color-primary);animation:env-pulse 1.4s ease-in-out infinite}@keyframes env-pulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.env-pace__empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:24px 14px 18px;color:var(--color-text-muted)}.env-pace__empty svg{color:var(--color-text-muted);opacity:.55;margin-bottom:2px}.env-pace__empty-title{font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text)}.env-pace__empty-sub{font-size:11px;line-height:1.45;max-width:36ch}@media(max-width:520px){.env-pace__header{min-height:74px}.env-pace__lede{display:none}.env-pace__readout-paces{gap:4px}.env-pace__readout-pace{font-size:13px}.env-pace__legend{font-size:8.5px;gap:8px}}[data-theme=dark] .env-pace{--env-heat: #ef5454;--env-rose: #fb7185;--env-elev: #60a5fa;--env-both: #a78bfa}.progress-page{display:flex;flex-direction:column;gap:18px}.progress-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 0 8px}.progress-page__heading{display:flex;flex-direction:column;gap:4px;min-width:0}.progress-page__back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px 8px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}@media(hover:hover){.progress-page__back:hover{color:var(--color-text);border-color:var(--color-text-muted)}}.progress-page__back:active,.progress-page__back.progress-page__back--pressed{color:var(--color-text);border-color:var(--color-text-muted);transition:none}@media(max-width:768px){.progress-page__back{display:none}}.progress-page__title{font-family:var(--font-heading);font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text);line-height:1.05}.progress-page__sub{font-size:.85rem;color:var(--color-text-secondary);margin-top:2px}.progress-page__week-summary{margin:0}.progress-page__mileage{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.progress-page__mileage-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.progress-page__mileage-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.progress-page__mileage-pct{font-family:var(--font-mono);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);letter-spacing:-.01em}.progress-page__mileage-track{position:relative;height:8px;background:color-mix(in srgb,var(--color-border) 70%,transparent);border-radius:999px;overflow:hidden}.progress-page__mileage-fill{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--color-primary) 75%,transparent),var(--color-primary));border-radius:inherit;transition:width .48s cubic-bezier(.32,.72,.24,1)}.progress-page__mileage-fill--over{background:linear-gradient(90deg,color-mix(in srgb,var(--color-primary) 60%,transparent),#22c55e)}[data-theme=dark] .progress-page__mileage-fill--over{background:linear-gradient(90deg,color-mix(in srgb,var(--color-primary) 60%,transparent),#4ade80)}.progress-page__mileage-foot{display:flex;align-items:baseline;gap:6px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:12px;letter-spacing:.02em}.progress-page__mileage-foot strong{font-weight:700;font-size:22px;color:var(--color-text);letter-spacing:-.02em;line-height:1}.progress-page__mileage-sep{opacity:.5;font-size:16px}.progress-page__card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.progress-page__metrics{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.progress-page__metrics-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.progress-page__metrics-row--three{grid-template-columns:repeat(3,1fr)}.progress-page__metric{display:flex;flex-direction:column;gap:4px;padding:6px 2px;min-width:0}.progress-page__metric-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--color-text);line-height:1;display:inline-flex;align-items:baseline;gap:2px}.progress-page__metric-unit{font-size:13px;font-weight:600;color:var(--color-text-muted);letter-spacing:0}.progress-page__metric-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}.progress-page__metric-label--long{display:inline}.progress-page__metric-label--short{display:none}@media(max-width:480px){.progress-page__metric-label--long{display:none}.progress-page__metric-label--short{display:inline}}.progress-page__metrics-divider{height:1px;background:var(--color-border);opacity:.7}.progress-page__metrics-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.progress-page__metrics-title{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.progress-page__metrics-sub{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);opacity:.7;letter-spacing:.02em}@media(max-width:480px){.progress-page__metric-value{font-size:20px}.progress-page__metric-unit{font-size:11px}}.progress-page--loading{min-height:50vh;display:grid;place-items:center}.progress-page__loader{width:36px;height:36px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:progress-spin .7s linear infinite}@keyframes progress-spin{to{transform:rotate(360deg)}}.auth-gate{position:relative;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:calc(-1 * (var(--header-height, 7.5rem) + 1rem));margin-bottom:-2rem;min-height:100dvh;padding:calc(var(--header-height, 7.5rem) + .5rem) clamp(1.25rem,6vw,2rem) max(env(safe-area-inset-bottom,0px),1.25rem);display:grid;grid-template-rows:auto 1fr auto;align-items:stretch;gap:1.25rem;overflow:hidden;background:radial-gradient(circle,var(--color-dot-grid) 1px,transparent 1px) 0 0 / 24px 24px,var(--color-bg)}.auth-gate:before{content:"";position:absolute;inset:-10% -20% auto;height:70%;background:radial-gradient(60% 70% at 50% 30%,rgba(59,130,246,.18),transparent 70%),radial-gradient(45% 55% at 80% 10%,rgba(139,92,246,.12),transparent 70%);pointer-events:none;z-index:0;animation:auth-gate-bloom 14s ease-in-out infinite alternate}.auth-gate:after{content:"";position:absolute;inset:auto 0 0;height:50%;background:linear-gradient(180deg,transparent 0%,rgba(248,250,252,.65) 60%,var(--color-bg) 100%);pointer-events:none;z-index:0}@keyframes auth-gate-bloom{0%{transform:translate3d(-1.5%,0,0) scale(1);opacity:.85}to{transform:translate3d(1.5%,-1%,0) scale(1.04);opacity:1}}.auth-gate__horizon{position:absolute;inset:32% 0 auto;height:1px;z-index:1;pointer-events:none}.auth-gate__horizon-line{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(15,23,42,.18) 18%,rgba(15,23,42,.28) 50%,rgba(15,23,42,.18) 82%,transparent 100%)}.auth-gate__horizon-pulse{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 4px #3b82f62e,0 0 22px 4px #3b82f68c;animation:auth-gate-horizon-pulse 3.6s ease-in-out infinite}@keyframes auth-gate-horizon-pulse{0%,to{transform:scale(.85);opacity:.55}50%{transform:scale(1.25);opacity:1}}.auth-gate__top{position:relative;z-index:2;display:flex;justify-content:center;padding-top:.25rem}.auth-gate__eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.42em;text-transform:uppercase;color:var(--color-text-secondary);padding:6px 14px;border-radius:999px;border:1px solid var(--color-border);background:#ffffffa6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:auth-gate-fade-in .6s cubic-bezier(.22,1,.36,1) both}.auth-gate__hero{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem;padding:1rem 0}.auth-gate__wordmark{font-family:var(--font-heading);font-size:clamp(4.5rem,18vw,6.5rem);font-weight:700;letter-spacing:-.06em;line-height:.85;margin:0;background:linear-gradient(180deg,var(--color-text) 0%,var(--color-text) 55%,var(--color-text-secondary) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:auth-gate-mark-in .9s cubic-bezier(.22,1,.36,1) 60ms both}@keyframes auth-gate-mark-in{0%{opacity:0;transform:translateY(14px) scale(.96);letter-spacing:-.02em}to{opacity:1;transform:translateY(0) scale(1);letter-spacing:-.06em}}.auth-gate__pitch{font-family:var(--font);font-size:1rem;line-height:1.45;font-weight:500;color:var(--color-text-secondary);margin:0;max-width:28ch;animation:auth-gate-fade-up .7s cubic-bezier(.22,1,.36,1) .24s both}.auth-gate__pitch em{display:inline-block;font-style:normal;font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.05em;color:var(--color-primary);margin-top:4px;padding:1px 0;border-top:1px solid rgba(59,130,246,.25)}.auth-gate__zones{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:min(280px,80%);margin-top:.5rem}.auth-gate__zone{display:flex;flex-direction:column;align-items:center;gap:4px;opacity:0;animation:auth-gate-fade-up .7s cubic-bezier(.22,1,.36,1) forwards}.auth-gate__zone--easy{animation-delay:.38s}.auth-gate__zone--lt1{animation-delay:.46s}.auth-gate__zone--lt2{animation-delay:.54s}.auth-gate__zone--vo2{animation-delay:.62s}.auth-gate__zone-label{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--color-text-muted)}.auth-gate__zone-bar{display:block;width:100%;height:4px;border-radius:999px;background:var(--color-border);position:relative;overflow:hidden}.auth-gate__zone-bar:before{content:"";position:absolute;inset:0;border-radius:inherit;transform-origin:left center}.auth-gate__zone--easy .auth-gate__zone-bar:before{background:var(--color-green);animation:auth-gate-bar-fill .9s cubic-bezier(.22,1,.36,1) .52s both}.auth-gate__zone--lt1 .auth-gate__zone-bar:before{background:var(--color-primary);animation:auth-gate-bar-fill .9s cubic-bezier(.22,1,.36,1) .6s both}.auth-gate__zone--lt2 .auth-gate__zone-bar:before{background:var(--color-orange);animation:auth-gate-bar-fill .9s cubic-bezier(.22,1,.36,1) .68s both}.auth-gate__zone--vo2 .auth-gate__zone-bar:before{background:var(--color-red);animation:auth-gate-bar-fill .9s cubic-bezier(.22,1,.36,1) .76s both}@keyframes auth-gate-bar-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.auth-gate__props{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:0;margin:.75rem 0 0}.auth-gate__prop{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text);padding:6px 12px;border-radius:999px;background:#ffffffbf;border:1px solid var(--color-border);opacity:0;transform:translateY(6px);animation:auth-gate-fade-up .6s cubic-bezier(.22,1,.36,1) forwards}.auth-gate__link-banner,.auth-gate__error{position:relative;z-index:2;padding:12px 36px 12px 14px;border-radius:14px;font-size:.82rem;line-height:1.4;text-align:left;animation:auth-gate-fade-up .38s ease-out both}.auth-gate__link-banner{display:flex;flex-direction:column;gap:4px;background:#fef3c7eb;border:1px solid rgba(217,119,6,.4);color:#78350f}.auth-gate__link-banner strong{font-weight:700;color:#78350f}.auth-gate__link-banner-dismiss{position:absolute;top:6px;right:8px;width:22px;height:22px;border:0;background:transparent;font-size:18px;line-height:1;color:#78350f;cursor:pointer;border-radius:6px;opacity:.6}.auth-gate__link-banner-dismiss:hover{opacity:1;background:#0000000d}.auth-gate__error{background:#fee2e2f2;border:1px solid rgba(220,38,38,.4);color:#7f1d1d}.auth-gate__cta{position:relative;z-index:2;display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px;margin:0 auto}.auth-gate__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px 22px;border:0;border-radius:16px;font-family:var(--font);font-size:1rem;font-weight:600;letter-spacing:-.005em;cursor:pointer;overflow:hidden;transition:transform .18s ease,box-shadow .22s ease,opacity .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;animation:auth-gate-fade-up .6s cubic-bezier(.22,1,.36,1) .7s both}.auth-gate__btn:disabled{opacity:.7;cursor:not-allowed}.auth-gate__btn--apple{background:#000;color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 16px 32px -10px #0000008c}.auth-gate__btn--google{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px #ffffffb3 inset,0 0 0 1px var(--color-border),0 10px 22px -10px #0f172a2e;animation-delay:.78s}.auth-gate__btn-glyph{flex-shrink:0}.auth-gate__btn-glyph--apple{margin-top:-2px}.auth-gate__btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.18) 45%,transparent 60%);transform:translate(-120%);transition:transform .8s cubic-bezier(.22,1,.36,1);pointer-events:none}@media(hover:hover){.auth-gate__btn:hover{transform:translateY(-1px)}.auth-gate__btn:hover:before{transform:translate(120%)}}.auth-gate__btn:active,.auth-gate__btn.auth-gate__btn--pressed{transform:translateY(0) scale(.98);transition:none}.auth-gate__btn--apple:active,.auth-gate__btn--apple.auth-gate__btn--pressed{box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 8px 18px -8px #00000080}.auth-gate__btn--google:active,.auth-gate__btn--google.auth-gate__btn--pressed{box-shadow:0 1px #ffffffb3 inset,0 0 0 1px var(--color-text-muted),0 6px 14px -8px #0f172a33}.auth-gate__fineprint{position:relative;z-index:2;text-align:center;font-size:.75rem;color:var(--color-text-muted);margin:0;padding-top:4px;animation:auth-gate-fade-in .6s ease-out .9s both}.auth-gate__fineprint a{color:var(--color-text-secondary);text-decoration:none;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:1px}.auth-gate__fineprint a:hover{color:var(--color-primary)}@keyframes auth-gate-fade-in{0%{opacity:0}to{opacity:1}}@keyframes auth-gate-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){.auth-gate{padding-inline:2.5rem}.auth-gate__wordmark{font-size:clamp(5rem,12vw,7.5rem)}.auth-gate__pitch{font-size:1.05rem}}[data-theme=dark] .auth-gate:before{background:radial-gradient(60% 70% at 50% 30%,rgba(96,165,250,.22),transparent 70%),radial-gradient(45% 55% at 80% 10%,rgba(167,139,250,.16),transparent 70%)}[data-theme=dark] .auth-gate:after{background:linear-gradient(180deg,transparent 0%,rgba(15,23,42,.7) 60%,var(--color-bg) 100%)}[data-theme=dark] .auth-gate__horizon-line{background:linear-gradient(90deg,transparent 0%,rgba(226,232,240,.18) 18%,rgba(226,232,240,.34) 50%,rgba(226,232,240,.18) 82%,transparent 100%)}[data-theme=dark] .auth-gate__eyebrow{background:#0f172aa6;color:var(--color-text-secondary)}[data-theme=dark] .auth-gate__prop{background:#0f172aa6;color:var(--color-text)}[data-theme=dark] .auth-gate__btn--apple{background:#fff;color:#000;box-shadow:0 1px #0000000f inset,0 0 0 1px #ffffffd9,0 16px 32px -10px #000000b3}[data-theme=dark] .auth-gate__btn--google{background:#1e293bd9;color:var(--color-text);box-shadow:0 1px #ffffff0d inset,0 0 0 1px #334155b3,0 16px 32px -12px #0009}[data-theme=dark] .auth-gate__link-banner{background:#78350f73;border-color:#d9770673;color:#fde68a}[data-theme=dark] .auth-gate__link-banner strong,[data-theme=dark] .auth-gate__link-banner-dismiss{color:#fde68a}[data-theme=dark] .auth-gate__error{background:#7f1d1d73;border-color:#f8717173;color:#fecaca}@media(prefers-reduced-motion:reduce){.auth-gate:before,.auth-gate__horizon-pulse,.auth-gate__eyebrow,.auth-gate__wordmark,.auth-gate__pitch,.auth-gate__zone,.auth-gate__zone-bar:before,.auth-gate__prop,.auth-gate__btn,.auth-gate__fineprint{animation:none!important;opacity:1!important;transform:none!important}}.hero{position:relative;display:flex;flex-direction:column;align-items:center;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-top:calc(-1 * (var(--header-height, 7.5rem) + 1rem));padding-top:calc(var(--header-height, 7.5rem) + 5rem);padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0;margin-bottom:-2rem;background:radial-gradient(circle,var(--color-dot-grid) 1px,transparent 1px) 0 0 / 24px 24px,var(--color-bg)}.hero~.app-footer{display:none}.hero__footer{position:relative;z-index:1;width:100%;padding:2rem 0 1rem;text-align:center}.hero__footer .app-footer__credit{font-size:.75rem;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;opacity:.08;will-change:transform}.hero:before{width:600px;height:600px;background:#3b82f6;top:-200px;right:-150px;animation:orb-float 20s ease-in-out infinite}.hero:after{width:500px;height:500px;background:#06b6d4;bottom:-180px;left:-120px;animation:orb-float 25s ease-in-out infinite reverse}.hero__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:640px;min-height:calc(100vh - 8.5rem);min-height:calc(100dvh - 8.5rem)}.hero__title{font-family:var(--font-heading);font-size:3.5rem;font-weight:800;letter-spacing:-.04em;line-height:1.08;background:linear-gradient(135deg,#1e3a8a,#2563eb,#3b82f6,#0ea5e9,#06b6d4,#1e3a8a);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:hero-enter .7s cubic-bezier(.16,1,.3,1) both,gradient-shift 8s ease-in-out .7s infinite}.hero-vdot{display:flex;flex-direction:column;align-items:center;margin-top:2.5rem;animation:hero-enter .7s cubic-bezier(.16,1,.3,1) both;animation-delay:.1s}.hero-vdot__label{font-family:var(--font-heading);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted)}.hero-vdot__number{position:relative;font-family:var(--font-mono);font-size:4rem;font-weight:600;letter-spacing:-.01em;line-height:1.1;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#2563eb,#0ea5e9,#2563eb);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 8s ease-in-out 2.4s infinite}.hero-vdot__number:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:120px;border-radius:50%;background:radial-gradient(ellipse,rgba(37,99,235,.1),transparent 70%);z-index:-1;animation:pulse-glow 3s ease-in-out infinite}.hero-vdot__zones{display:flex;gap:.5rem;margin-top:1.25rem;flex-wrap:wrap;justify-content:center}.hero-vdot__zone{display:flex;flex-direction:column;align-items:center;padding:.5rem .875rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;position:relative;overflow:hidden;opacity:0;transform:translateY(12px) scale(.92);transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i) * 80ms)}.hero-vdot__zone:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--zone-color)}.hero-vdot__zones--visible .hero-vdot__zone{opacity:1;transform:translateY(0) scale(1)}.hero-vdot__zone-name{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.hero-vdot__zone-pace{font-family:var(--font-mono);font-size:.9375rem;font-weight:500;color:var(--color-text);font-variant-numeric:tabular-nums;margin-top:.125rem}.hero--editing{padding-top:calc(var(--header-height, 7.5rem) + 1.5rem)}.hero__cta{position:relative;display:inline-flex;align-items:center;gap:.5rem;margin-top:2.5rem;padding:1rem 2.5rem;font-size:1.125rem;font-weight:700;font-family:var(--font-heading);color:#fff;background:linear-gradient(135deg,#1e3a8a,#2563eb 40%,#0ea5e9);background-size:200% auto;border:none;border-radius:999px;cursor:pointer;box-shadow:0 4px 20px #2563eb40;transition:all .3s cubic-bezier(.16,1,.3,1);animation:hero-enter .7s cubic-bezier(.16,1,.3,1) both;animation-delay:.2s;overflow:hidden}.hero__cta:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);animation:shimmer 4s ease-in-out 1.2s infinite}@media(hover:hover){.hero__cta:hover{background-position:100% 50%;box-shadow:0 6px 30px #2563eb59,0 0 50px #06b6d41f;transform:translateY(-2px)}}.hero__cta:active{transform:translateY(0);box-shadow:0 2px 10px #2563eb4d;transition:none}.hero__form-section{position:relative;z-index:1;width:100%;max-width:520px;display:flex;flex-direction:column;scroll-margin-top:calc(var(--header-height, 7.5rem) + 1.5rem);padding-bottom:3rem;min-height:calc(100dvh - var(--header-height, 7.5rem) - 1.5rem)}.hero__form-coda{position:relative;display:flex;flex-direction:column;align-items:center;gap:.875rem;margin-top:auto;padding-top:4rem;text-align:center;pointer-events:none;animation:hero-coda-enter 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:.7s}.hero__form-coda:before{content:"";position:absolute;top:50%;left:50%;width:280px;height:280px;transform:translate(-50%,-45%);background:radial-gradient(circle,rgba(59,130,246,.08) 0%,rgba(6,182,212,.04) 35%,transparent 70%);filter:blur(8px);pointer-events:none;z-index:-1;animation:hero-coda-pulse 5s ease-in-out infinite}.hero__form-coda-line{width:56px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(59,130,246,.55) 50%,transparent 100%)}.hero__form-coda-mark{display:inline-flex;align-items:center;gap:.5rem;opacity:.85}.hero__form-coda-mark img{opacity:.7;filter:drop-shadow(0 0 6px rgba(59,130,246,.25))}.hero__form-coda-wordmark{font-family:var(--font-heading);font-size:1.0625rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#2563eb,#06b6d4 60%,#2563eb);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 8s ease-in-out infinite}.hero__form-coda-tag{font-family:var(--font-heading);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--color-text-muted)}@keyframes hero-coda-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-coda-pulse{0%,to{opacity:.85;transform:translate(-50%,-45%) scale(1)}50%{opacity:1;transform:translate(-50%,-45%) scale(1.08)}}@media(max-width:480px){.hero__form-coda{padding-top:3rem;gap:.75rem}.hero__form-coda:before{width:220px;height:220px}}@media(prefers-reduced-motion:reduce){.hero__form-coda,.hero__form-coda:before,.hero__form-coda-wordmark{animation:none!important;opacity:1;transform:none}}.sign-in-strip{cursor:pointer;position:relative;overflow:hidden;background:linear-gradient(180deg,transparent,rgba(59,130,246,.03));animation:strip-enter .5s cubic-bezier(.16,1,.3,1) .3s both;transition:background .3s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.sign-in-strip:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,#3b82f6 20%,#06b6d4 50%,#3b82f6 80%,transparent 100%);background-size:200% 100%;animation:accent-sweep 4s ease-in-out infinite}.sign-in-strip:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(105deg,transparent 40%,rgba(59,130,246,.06) 50%,transparent 60%);animation:strip-shimmer 6s ease-in-out 1s infinite;pointer-events:none}.sign-in-strip__inner{max-width:1200px;margin:0 auto;padding:.5rem 1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.sign-in-strip__cloud{color:var(--color-primary);flex-shrink:0;opacity:.7;animation:cloud-bob 3s ease-in-out infinite;transition:opacity .3s ease,color .3s ease}.sign-in-strip__msg{font-size:.8125rem;color:var(--color-text-secondary);font-weight:500}.sign-in-strip__msg strong{color:var(--color-primary);font-weight:700;font-family:var(--font-heading)}.sign-in-strip__google{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 3px #0000000f}@media(hover:hover){.sign-in-strip:hover{background:linear-gradient(180deg,transparent,rgba(59,130,246,.06))}.sign-in-strip:hover .sign-in-strip__google{border-color:var(--color-primary);box-shadow:0 2px 8px #3b82f633;transform:scale(1.1)}.sign-in-strip:hover .sign-in-strip__cloud{opacity:1;color:#0ea5e9}}.sign-in-strip:active,.sign-in-strip.sign-in-strip--pressed{background:linear-gradient(180deg,transparent,rgba(59,130,246,.06));transition:none}.sign-in-strip:active .sign-in-strip__google,.sign-in-strip.sign-in-strip--pressed .sign-in-strip__google{border-color:var(--color-primary);box-shadow:0 2px 8px #3b82f633;transform:scale(1.1);transition:none}.sign-in-strip:active .sign-in-strip__cloud,.sign-in-strip.sign-in-strip--pressed .sign-in-strip__cloud{opacity:1;color:#0ea5e9;transition:none}@keyframes hero-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes orb-float{0%,to{transform:translate(0)}33%{transform:translate(30px,-25px)}66%{transform:translate(-20px,15px)}}@keyframes pulse-glow{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.2)}}@keyframes shimmer{0%,to{left:-100%}50%{left:100%}}@keyframes strip-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes accent-sweep{0%,to{background-position:-100% 0}50%{background-position:100% 0}}@keyframes strip-shimmer{0%,to{left:-100%}50%{left:100%}}@keyframes cloud-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.hero__signin{position:relative;z-index:1;width:100%;max-width:420px;margin-top:2.5rem;display:flex;flex-direction:column;align-items:stretch;gap:1rem;animation:hero-enter .7s cubic-bezier(.16,1,.3,1) both;animation-delay:.36s}.hero__signin-divider{position:relative;display:flex;align-items:center;justify-content:center;width:100%;text-align:center}.hero__signin-divider:before,.hero__signin-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-border) 50%,transparent 100%)}.hero__signin-divider-text{flex-shrink:0;margin:0 .875rem;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-muted)}.hero__signin-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.hero__signin-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-family:var(--font-heading);font-size:.875rem;font-weight:600;letter-spacing:-.005em;border-radius:999px;cursor:pointer;overflow:hidden;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .24s ease,border-color .2s ease,opacity .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.hero__signin-btn:disabled{opacity:.65;cursor:not-allowed}.hero__signin-btn--apple{background:linear-gradient(180deg,#1a1a1a,#000);color:#fff;border:1px solid #000;box-shadow:0 1px #ffffff14 inset,0 6px 18px -8px #00000073}.hero__signin-btn--google{background:#ffffffd9;color:#0f172a;border:1px solid var(--color-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px #ffffffe6 inset,0 6px 18px -10px #0f172a2e}.hero__signin-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.18) 45%,transparent 60%);transform:translate(-120%);transition:transform .8s cubic-bezier(.22,1,.36,1);pointer-events:none}.hero__signin-btn--google:before{background:linear-gradient(120deg,transparent 0%,rgba(59,130,246,.12) 45%,transparent 60%)}.hero__signin-glyph{flex-shrink:0}.hero__signin-glyph--apple{margin-top:-2px}@media(hover:hover){.hero__signin-btn:hover:not(:disabled){transform:translateY(-1px)}.hero__signin-btn:hover:before{transform:translate(120%)}.hero__signin-btn--apple:hover:not(:disabled){box-shadow:0 1px #ffffff1f inset,0 10px 26px -10px #0000008c}.hero__signin-btn--google:hover:not(:disabled){border-color:var(--color-primary);box-shadow:0 1px #ffffffe6 inset,0 10px 26px -10px #2563eb47}}.hero__signin-btn:active,.hero__signin-btn.hero__signin-btn--pressed{transform:translateY(0) scale(.98);transition:none}.hero__signin-btn--apple:active,.hero__signin-btn--apple.hero__signin-btn--pressed{box-shadow:0 1px #ffffff14 inset,0 4px 10px -6px #0000008c}.hero__signin-btn--google:active,.hero__signin-btn--google.hero__signin-btn--pressed{border-color:var(--color-primary);box-shadow:0 1px #ffffffe6 inset,0 4px 10px -6px #2563eb4d}.hero__signin-link-banner{position:relative;display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 2.25rem .75rem .875rem;font-size:.8125rem;line-height:1.4;color:var(--color-text-secondary);background:#3b82f60f;border:1px solid rgba(59,130,246,.18);border-radius:12px;text-align:left}.hero__signin-link-banner strong{color:var(--color-primary);font-weight:700;font-family:var(--font-heading)}.hero__signin-link-dismiss{position:absolute;top:.25rem;right:.25rem;width:1.75rem;height:1.75rem;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.125rem;line-height:1;color:var(--color-text-muted);background:transparent;border:0;border-radius:50%;cursor:pointer;transition:background .18s ease,color .18s ease}@media(hover:hover){.hero__signin-link-dismiss:hover{background:#3b82f614;color:var(--color-primary)}}.hero__signin-error{margin:0;padding:.625rem .875rem;font-size:.8125rem;line-height:1.4;color:#b91c1c;background:#fee2e299;border:1px solid rgba(248,113,113,.35);border-radius:12px;text-align:left}.hero__signin-error strong{font-weight:700;font-family:var(--font-heading)}[data-theme=dark] .hero:before,[data-theme=dark] .hero:after{opacity:.2}[data-theme=dark] .hero__signin-btn--apple{background:linear-gradient(180deg,#0f0f12,#000);border-color:#ffffff14;box-shadow:0 1px #ffffff0f inset,0 8px 22px -10px #000000b3}[data-theme=dark] .hero__signin-btn--google{background:#1e293ba6;color:var(--color-text);border-color:#ffffff1a;box-shadow:0 1px #ffffff0d inset,0 8px 22px -12px #0009}[data-theme=dark] .hero__signin-btn--google:before{background:linear-gradient(120deg,transparent 0%,rgba(96,165,250,.18) 45%,transparent 60%)}[data-theme=dark] .hero__signin-divider:before,[data-theme=dark] .hero__signin-divider:after{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 50%,transparent 100%)}[data-theme=dark] .hero__signin-link-banner{background:#60a5fa1a;border-color:#60a5fa38}[data-theme=dark] .hero__signin-error{color:#fca5a5;background:#7f1d1d40;border-color:#f871714d}[data-theme=dark] .sign-in-strip{background:linear-gradient(180deg,transparent,rgba(59,130,246,.05))}[data-theme=dark] .sign-in-strip:before{background:linear-gradient(105deg,transparent 40%,rgba(59,130,246,.08) 50%,transparent 60%)}[data-theme=dark] .sign-in-strip__google{background:#1e293bcc;border-color:#ffffff1a}[data-theme=dark] .hero-vdot__zone{background:#1e293b99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:#ffffff14}[data-theme=dark] .hero__cta{box-shadow:0 4px 24px #60a5fa33}@media(hover:hover){[data-theme=dark] .hero__cta:hover{box-shadow:0 6px 30px #60a5fa59,0 0 50px #06b6d41f}}@media(max-width:768px){.hero{padding-left:1rem;padding-right:1rem}.hero__title{font-size:2.5rem}.hero-vdot__number{font-size:3.25rem}.hero__cta{padding:.875rem 2rem;font-size:1.0625rem}.hero__signin{margin-top:2rem;max-width:360px}.hero__signin-buttons{grid-template-columns:1fr;gap:.5rem}}@media(max-width:480px){.sign-in-strip__inner{padding:.375rem .75rem;gap:.375rem}.sign-in-strip__msg{font-size:.75rem}.sign-in-strip__google{width:22px;height:22px}.sign-in-strip__google svg{width:12px;height:12px}.hero{padding-left:.75rem;padding-right:.75rem}.hero__title{font-size:2rem}.hero-vdot{margin-top:2rem}.hero-vdot__number{font-size:2.5rem}.hero-vdot__number:before{width:220px;height:90px}.hero-vdot__zone{padding:.375rem .625rem}.hero-vdot__zone-pace{font-size:.8125rem}.hero__cta{padding:.875rem 1.75rem;font-size:1rem}}@media(prefers-reduced-motion:reduce){.hero:before,.hero:after{animation:none!important}.hero__title,.hero-vdot,.hero__cta{animation:none!important;opacity:1;transform:none}.hero-vdot__number:before{animation:none}.hero-vdot__zone{opacity:1;transform:none;transition:none}.hero__cta:before{animation:none;display:none}.sign-in-strip,.sign-in-strip:after,.sign-in-strip:before,.sign-in-strip__cloud{animation:none!important}.sign-in-strip{opacity:1}.sign-in-strip:before{display:none}.hero__signin{animation:none!important;opacity:1;transform:none}.hero__signin-btn:before{display:none}}.strava-health{display:flex;margin-top:.75rem;border-radius:var(--radius-sm);overflow:hidden;border:1px solid rgba(148,163,184,.2);box-shadow:inset 0 1px 3px #0000000a}[data-health=warn] .strava-health__accent{background:linear-gradient(180deg,#f59e0b,#d97706)}[data-health=err] .strava-health__accent{background:linear-gradient(180deg,#ef4444,#dc2626)}.strava-health__accent{width:3px;flex-shrink:0}.strava-health__content{flex:1;min-width:0;padding:.625rem .75rem}.strava-health__header{margin-bottom:.5rem}.strava-health__status-row{display:flex;align-items:center;gap:.4rem}.strava-health__beacon{width:6px;height:6px;border-radius:50%;flex-shrink:0}.strava-health__beacon--warn{background:#f59e0b;box-shadow:0 0 5px #f59e0b73;animation:beacon-pulse 2s ease-in-out infinite}.strava-health__beacon--err{background:#ef4444;box-shadow:0 0 5px #ef444473;animation:beacon-pulse 1.5s ease-in-out infinite}@keyframes beacon-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.strava-health__status-text{font-family:var(--font-mono);font-size:.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}[data-health=warn] .strava-health__status-text{color:#d97706}[data-health=err] .strava-health__status-text{color:#ef4444}.strava-health__webhook-note{font-size:.6875rem;line-height:1.4;color:var(--color-text-secondary);background:#f59e0b14;border-radius:4px;padding:.375rem .5rem;margin-bottom:.5rem}[data-theme=dark] .strava-health__webhook-note{background:#fbbf241a;color:var(--color-text)}.strava-health__events{display:flex;flex-direction:column;gap:1px;background:#94a3b81a;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.strava-health__event{display:flex;align-items:center;gap:.375rem;padding:.25rem .4rem;background:var(--color-surface);font-family:var(--font-mono);font-size:.6rem;line-height:1.4}.strava-health__event--err{background:#ef44440a}.strava-health__dot{width:4px;height:4px;border-radius:50%;flex-shrink:0}.strava-health__dot--err{background:#ef4444}.strava-health__event-type{font-weight:600;font-size:.5625rem;letter-spacing:.03em;color:var(--color-text-muted);flex-shrink:0;width:2.75rem}.strava-health__event-msg{color:#dc2626;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strava-health__event-meta{display:flex;align-items:center;gap:.3rem;flex-shrink:0;color:var(--color-text-muted);font-size:.5625rem}.strava-health__event-time{opacity:.7}.strava-health__stats{display:flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.5625rem;color:var(--color-text-muted)}.strava-health__stat-val{font-weight:700;color:var(--color-text-secondary)}.strava-health__stat--err,.strava-health__stat--err .strava-health__stat-val{color:#ef4444}.strava-health__stat-sep{width:2px;height:2px;border-radius:50%;background:var(--color-text-muted);opacity:.4}[data-theme=dark] .strava-health{border-color:#33415599;box-shadow:inset 0 1px 4px #0003}[data-theme=dark] .strava-health__events{background:#3341554d}[data-theme=dark] .strava-health__event{background:#1e293bb3}[data-theme=dark] .strava-health__event--err{background:#ef444414}[data-theme=dark] .strava-health__event-msg{color:#f87171}[data-theme=dark] .strava-health__stat-val{color:var(--color-text)}[data-theme=dark] .strava-health__stat--err,[data-theme=dark] .strava-health__stat--err .strava-health__stat-val{color:#f87171}[data-theme=dark] [data-health=warn] .strava-health__status-text{color:#fbbf24}[data-theme=dark] [data-health=err] .strava-health__status-text{color:#f87171}@media(max-width:480px){.strava-health__event-meta{display:none}}.settings-page{max-width:520px;margin:0 auto;animation:fade-in .3s ease}@media(max-width:480px){.settings-page{margin-top:0}}.settings-page__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 1.75rem;box-shadow:var(--shadow)}.settings-page__header{display:flex;align-items:center;gap:.625rem;padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.settings-page__back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);flex-shrink:0}@media(hover:hover){.settings-page__back:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.settings-page__back:active,.settings-page__back.settings-page__back--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.settings-page__title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;letter-spacing:-.02em}.settings-section{padding:.5rem 0;scroll-margin-top:calc(var(--header-height, 7.5rem) + 1rem)}.settings-section+.settings-section{border-top:1px solid var(--color-border)}.settings-link-row{width:100%;display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,transform .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.settings-link-row+.settings-link-row{margin-top:8px}.settings-link-row--compact{padding:10px 14px;background:transparent}.settings-link-row--compact .settings-link-row__title{font-size:.85rem;font-weight:500;color:var(--color-text-muted)}.settings-link-row--compact .settings-link-row__sub{font-size:.75rem}.settings-link-row__body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.settings-link-row__title{font-family:var(--font);font-size:.9375rem;font-weight:600;color:var(--color-text)}.settings-link-row__sub{font-size:.8125rem;color:var(--color-text-muted);line-height:1.4}.settings-link-row__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .18s ease,color .18s ease}@media(hover:hover){.settings-link-row:hover{border-color:var(--color-text-muted);background:var(--color-bg)}.settings-link-row:hover .settings-link-row__chevron{color:var(--color-text);transform:translate(2px)}}.settings-link-row:active,.settings-link-row.settings-link-row--pressed{transform:scale(.99);background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.settings-section__title{font-family:var(--font-heading);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.875rem;display:flex;align-items:center;gap:.5rem}.settings-section__title svg{opacity:.6}.settings-section__desc{font-size:.8125rem;color:var(--color-text-secondary);margin:-.375rem 0 .875rem;line-height:1.4}.settings-section__desc--warn{color:var(--color-warning, var(--color-text-secondary));margin:.75rem 0 0}.settings-connection{padding:.25rem 0}.settings-connection+.settings-connection{border-top:1px solid var(--color-border)}.settings-connection__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.settings-connection__info{display:flex;align-items:center;gap:.75rem;min-width:0}.settings-connection__icon{flex-shrink:0}.settings-connection__info>div{display:flex;flex-direction:column;min-width:0}.settings-connection__label{font-size:.875rem;font-weight:600;color:var(--color-text)}.settings-connection__status{font-size:.75rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-connection__btn{flex-shrink:0;font-size:.75rem;font-weight:600;padding:.375rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);transition:all var(--transition)}.settings-connection__btn--connect{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media(hover:hover){.settings-connection__btn--connect:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}}.settings-connection__btn--connect:active,.settings-connection__btn--connect.settings-connection__btn--pressed{background:var(--color-primary-hover);border-color:var(--color-primary-hover);transition:none}.settings-connection__btn--strava{background:#fc4c02;border-color:#fc4c02;color:#fff}@media(hover:hover){.settings-connection__btn--strava:hover{background:#e04300;border-color:#e04300}}.settings-connection__btn--strava:active,.settings-connection__btn--strava.settings-connection__btn--pressed{background:#e04300;border-color:#e04300;transition:none}.settings-connection__btn--disconnect{color:var(--color-text-muted)}@media(hover:hover){.settings-connection__btn--disconnect:hover:not(:disabled){color:var(--color-red);border-color:var(--color-red);background:var(--color-red-light)}}.settings-connection__btn--disconnect:active:not(:disabled),.settings-connection__btn--disconnect.settings-connection__btn--pressed:not(:disabled){color:var(--color-red);border-color:var(--color-red);background:var(--color-red-light);transition:none}.settings-section__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.6rem}.settings-section__head .settings-section__title{margin-bottom:0}.settings-section__head-action{padding:.3rem .6rem;font-size:.78rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:1px solid var(--color-border);border-radius:7px;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.settings-section__head-action:hover{color:var(--color-red);border-color:var(--color-red);background:var(--color-red-light)}.settings-connection__actions{display:flex;align-items:center;gap:.4rem}.settings-signin{display:flex;flex-direction:column;gap:.65rem}.settings-signin__lede{margin:0;font-size:.85rem;line-height:1.45;color:var(--color-text-secondary)}.settings-signin__providers{display:flex;flex-direction:column;gap:.5rem}.settings-signin__provider{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.7rem .95rem;font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:-.005em;border:0;border-radius:12px;cursor:pointer;transition:filter .16s ease,transform .16s ease,box-shadow .2s ease}.settings-signin__provider:hover{transform:translateY(-1px)}.settings-signin__provider--google{background:linear-gradient(180deg,#0f172a,#1e293b);color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #0f172ae6,0 10px 22px -10px #0f172a66}.settings-signin__provider--apple{background:#000;color:#fff;box-shadow:0 1px #ffffff14 inset,0 0 0 1px #000,0 10px 22px -10px #0006}[data-theme=dark] .settings-signin__provider--google{background:linear-gradient(180deg,#1e293b,#0f172a);box-shadow:0 1px #ffffff0f inset,0 0 0 1px #60a5fa40,0 12px 24px -10px #00000080}[data-theme=dark] .settings-signin__provider--apple{background:#fff;color:#000;box-shadow:0 1px #0000000d inset,0 0 0 1px #ffffffd9,0 12px 24px -10px #00000080}.settings-connection__btn--unlink{color:var(--color-text-muted);font-weight:500}.settings-connection__btn--unlink:hover:not(:disabled){color:var(--color-red);border-color:var(--color-red);background:var(--color-red-light)}.settings-section__title--danger{color:var(--color-red, #dc2626)}.settings-danger__copy{font-size:.85rem;line-height:1.5;color:var(--color-text-secondary);margin:0 0 .85rem}.settings-danger__btn{padding:.55rem .95rem;font-size:.85rem;font-weight:600;border-radius:8px;border:1px solid #dc2626;background:transparent;color:#dc2626;cursor:pointer;transition:background .16s ease,color .16s ease}.settings-danger__btn:hover{background:#dc2626;color:#fff}.settings-danger__inline-error{margin-top:.6rem;padding:.5rem .7rem;background:#dc262614;border:1px solid rgba(220,38,38,.3);border-radius:8px;color:#b91c1c;font-size:.82rem}[data-theme=dark] .settings-danger__inline-error{background:#7f1d1d66;border-color:#f8717173;color:#fecaca}.settings-connection__sync-info{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.5rem 0 0;font-size:.7rem;color:var(--color-text-muted)}.settings-connection__sync-time{font-size:.7rem;order:2}.settings-connection__sync-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;min-height:26px;border-radius:5px;border:1px solid rgba(252,76,2,.3);background:none;color:#fc4c02;font-size:.7rem;font-family:inherit;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .15s}@media(hover:hover){.settings-connection__sync-btn:hover{background:#fc4c0214}}.settings-connection__sync-btn:active:not(:disabled),.settings-connection__sync-btn.settings-connection__sync-btn--pressed:not(:disabled){background:#fc4c0214;transition:none}.settings-connection__sync-btn:disabled{opacity:.6;cursor:not-allowed}.settings-connection__sync-buttons{display:flex;gap:.4rem;order:1}.settings-connection__sync-btn--force{color:var(--color-text-secondary);border-color:var(--color-border)}.settings-connection__sync-btn--confirm{color:#fc4c02;border-color:#fc4c02}@media(hover:hover){.settings-connection__sync-btn--force:hover{background:#ffffff0a;color:var(--color-text-primary)}.settings-connection__sync-btn--confirm:hover{background:#fc4c02;color:#fff}}.settings-connection__sync-btn--force:active,.settings-connection__sync-btn--force.settings-connection__sync-btn--pressed{background:#ffffff0a;color:var(--color-text-primary);transition:none}.settings-connection__sync-btn--confirm:active,.settings-connection__sync-btn--confirm.settings-connection__sync-btn--pressed{background:#fc4c02;color:#fff;transition:none}@keyframes settings-sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.settings-sync-spinner{animation:settings-sync-spin 1s linear infinite}.settings-theme-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.settings-theme-toggle__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:0;cursor:pointer;transition:all var(--transition)}.settings-theme-toggle__btn+.settings-theme-toggle__btn{border-left:1px solid var(--color-border)}@media(hover:hover){.settings-theme-toggle__btn:hover:not(.settings-theme-toggle__btn--active){background:var(--color-bg)}}.settings-theme-toggle__btn:active:not(.settings-theme-toggle__btn--active),.settings-theme-toggle__btn.settings-theme-toggle__btn--pressed:not(.settings-theme-toggle__btn--active){background:var(--color-bg);transition:none}.settings-theme-toggle__btn--active{background:var(--color-primary);color:#fff}.settings-theme-toggle__btn--active svg{stroke:#fff}.settings-units-group{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-units-group+.settings-units-group{margin-top:.625rem}.settings-units-group__label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);flex-shrink:0}.settings-units-group .settings-theme-toggle{flex:0 1 auto;min-width:0}.settings-location{margin-bottom:1rem}.settings-location__current{display:flex;align-items:center;gap:.625rem;padding:.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.settings-location__pin{flex-shrink:0;color:var(--color-primary)}.settings-location__details{flex:1;min-width:0;display:flex;flex-direction:column}.settings-location__name{font-size:.875rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-location__elevation{font-size:.75rem;color:var(--color-text-muted)}.settings-location__remove{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:6px;color:var(--color-text-muted)}@media(hover:hover){.settings-location__remove:hover{background:var(--color-red-light);color:var(--color-red)}}.settings-location__remove:active,.settings-location__remove.settings-location__remove--pressed{background:var(--color-red-light);color:var(--color-red);transition:none}.settings-location__change{margin-top:.5rem;background:none;border:none;font-size:.75rem;font-weight:500;color:var(--color-primary);padding:.25rem 0;cursor:pointer}@media(hover:hover){.settings-location__change:hover{text-decoration:underline}}.settings-location-search{display:flex;flex-direction:column;gap:.625rem}.settings-location-search__actions{display:flex;gap:.5rem}.settings-location-search__device{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition)}@media(hover:hover){.settings-location-search__device:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}}.settings-location-search__device:active,.settings-location-search__device.settings-location-search__device--pressed{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light);transition:none}.settings-location-search__cancel{font-size:.8125rem;font-weight:500;padding:.5rem .75rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted)}@media(hover:hover){.settings-location-search__cancel:hover{color:var(--color-text-secondary);border-color:var(--color-text-muted)}}.settings-location-search__cancel:active,.settings-location-search__cancel.settings-location-search__cancel--pressed{color:var(--color-text-secondary);border-color:var(--color-text-muted);transition:none}.settings-location-search__denied{font-size:.75rem;color:var(--color-red)}.settings-location-search__input-wrap{position:relative}.settings-location-search__search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.settings-location-search__input{padding-left:2.25rem!important;font-size:.875rem!important}.settings-location-search__results{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;max-height:200px;overflow-y:auto}.settings-location-search__result{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;background:var(--color-surface);border:none;border-radius:0;text-align:left;cursor:pointer;transition:background var(--transition)}.settings-location-search__result:not(:last-child){border-bottom:1px solid var(--color-border)}@media(hover:hover){.settings-location-search__result:hover{background:var(--color-primary-light)}}.settings-location-search__result:active,.settings-location-search__result.settings-location-search__result--pressed{background:var(--color-primary-light);transition:none}.settings-location-search__result-name{font-size:.8125rem;font-weight:500;color:var(--color-text)}.settings-location-search__result-region{font-size:.75rem;color:var(--color-text-muted)}.settings-location-search__loading{font-size:.75rem;color:var(--color-text-muted);padding:.25rem 0}.settings-adjustments{display:flex;flex-direction:column;gap:.25rem;margin-top:1rem}.settings-adjustment{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem 0;cursor:pointer;margin:0}.settings-adjustment__left{display:flex;align-items:center;gap:.625rem;min-width:0}.settings-adjustment__icon{flex-shrink:0;opacity:.7}.settings-adjustment__icon--heat{color:#ea580c}.settings-adjustment__icon--altitude{color:var(--color-primary)}.settings-adjustment__icon--wind{color:var(--color-cyan)}.settings-adjustment__left>div{display:flex;flex-direction:column}.settings-adjustment__label{font-size:.8125rem;font-weight:600;color:var(--color-text)}.settings-adjustment__desc{font-size:.7rem;color:var(--color-text-muted);line-height:1.3}.settings-adjustment--sub{padding-left:1.75rem;border-top:none;padding-top:0;padding-bottom:.375rem}.settings-adjustment--sub .settings-adjustment__label{font-size:.75rem}.settings-adjustment--sub .settings-adjustment__desc{font-size:.625rem}.settings-adjustment--sub .settings-adjustment__icon{width:13px;height:13px}.settings-adjustments__heading{font-family:var(--font-heading);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:.625rem 0 .125rem 1.75rem;opacity:.75}.settings-notif-master{border-bottom:1px solid var(--color-border);margin-bottom:.35rem}.settings-adjustment--emphasis .settings-adjustment__label{font-weight:700;font-size:.92rem;letter-spacing:-.005em}.settings-notif-group{margin-top:.5rem;transition:opacity .2s ease}.settings-notif-group+.settings-notif-group{margin-top:.75rem}.settings-notif-group--dimmed{opacity:.45}.settings-notif-group__title{font-family:var(--font);font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .15rem;padding-left:.1rem}.settings-heat-hour-dropdown{width:140px;flex-shrink:0}.settings-heat-hour-dropdown .dropdown__trigger{font-size:.7rem;padding:.3rem .5rem}.settings-heat-hour-dropdown .dropdown__chevron{width:10px;height:10px}.settings-heat-hour-dropdown .dropdown__menu{left:auto;right:0;min-width:100px;max-height:150px}.settings-heat-hour-dropdown .dropdown__option{font-size:.75rem;padding:.35rem .5rem}@media(pointer:coarse){.settings-heat-hour-dropdown .dropdown__option{min-height:36px}}.settings-heat-hour-dropdown .dropdown__check{width:12px;height:12px}.settings-personal{display:flex;flex-direction:column;gap:.125rem}.settings-personal__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem 0;cursor:pointer;margin:0}.settings-personal__row+.settings-personal__row{border-top:1px solid var(--color-border)}.settings-personal__label{font-size:.8125rem;font-weight:600;color:var(--color-text)}.settings-personal__input-wrap{position:relative;display:inline-flex;align-items:baseline;gap:.375rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.375rem .625rem;transition:border-color .15s ease}.settings-personal__date-placeholder{display:none;position:absolute;left:.625rem;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-text-muted);pointer-events:none;white-space:nowrap}[data-native] .settings-personal__date-placeholder{display:block;font-size:16px}.settings-personal__input-wrap:focus-within{border-color:var(--color-primary)}.settings-personal__input{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--color-text);background:transparent;border:none;outline:none;width:3.25rem;text-align:right;padding:0;-moz-appearance:textfield;appearance:textfield}[data-native] .settings-personal__input{font-size:16px}[data-native] .settings-personal__input--date{width:9rem}.settings-personal__input--date{width:7.5rem;text-align:left}.settings-personal__input::-webkit-outer-spin-button,.settings-personal__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-personal__input::placeholder{color:var(--color-text-muted);opacity:.5}.settings-personal__unit{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;color:var(--color-text-muted);text-transform:lowercase;letter-spacing:.02em}.settings-toggle--disabled{opacity:.4;cursor:not-allowed}.settings-section__title--auto{align-items:center}.settings-section__title--auto svg{opacity:.85;color:var(--color-primary)}.settings-auto__chip{font-family:var(--font);font-size:.55rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 24%,transparent);border-radius:999px;padding:.15rem .45rem .12rem;margin-left:.1rem;line-height:1}.settings-auto{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.settings-auto__notice{display:flex;align-items:flex-start;gap:.45rem;margin:.1rem 0 .65rem;padding:.55rem .7rem;font-size:.75rem;line-height:1.4;color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-text-muted) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-text-muted) 22%,transparent);border-radius:10px}.settings-auto__notice svg{flex-shrink:0;margin-top:.1rem;color:var(--color-text-muted)}[data-theme=dark] .settings-auto__notice{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent)}.settings-auto__row{position:relative;display:flex;align-items:flex-start;gap:.75rem;padding:.7rem .85rem .7rem 1rem;margin:0;background:color-mix(in srgb,var(--color-surface) 75%,transparent);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;overflow:hidden;transition:border-color .18s ease,background .18s ease}.settings-auto__row:not(.settings-auto__row--disabled):hover{border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border))}.settings-auto__row--on{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 4%,var(--color-surface))}.settings-auto__rail{position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--color-border);transition:background .18s ease}.settings-auto__row--on .settings-auto__rail{background:linear-gradient(180deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 55%,transparent))}.settings-auto__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.settings-auto__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-auto__name{font-family:var(--font-heading);font-size:.9rem;font-weight:600;letter-spacing:-.005em;color:var(--color-text)}.settings-auto__status{font-family:var(--font);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);border-radius:999px;padding:.1rem .45rem .08rem;line-height:1.1}.settings-auto__status--on{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.settings-auto__status--soon{color:var(--color-text-muted);background:transparent;border:1px dashed color-mix(in srgb,var(--color-text-muted) 35%,transparent)}.settings-auto__desc{font-size:.78rem;line-height:1.45;color:var(--color-text-secondary);margin:0}.settings-auto__row--disabled{cursor:not-allowed;opacity:.65;background:transparent}.settings-auto__row--disabled .settings-auto__name{color:var(--color-text-secondary)}.settings-auto__lock{flex-shrink:0;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-muted);opacity:.5}.settings-auto__row .settings-toggle{align-self:center}[data-theme=dark] .settings-auto__row{background:color-mix(in srgb,var(--color-surface) 60%,transparent)}[data-theme=dark] .settings-auto__row--on{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.settings-auto__sweep-link{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;margin:.1rem 0 0 .5rem;padding:.3rem .6rem .3rem .55rem;font-family:var(--font);font-size:.72rem;font-weight:600;letter-spacing:.005em;color:var(--color-text-secondary);background:transparent;border:1px dashed color-mix(in srgb,var(--color-text-muted) 45%,transparent);border-radius:999px;cursor:pointer;transition:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.settings-auto__sweep-loading{align-self:flex-start;display:inline-flex;align-items:center;gap:.45rem;margin:.1rem 0 0 .5rem;padding:.3rem .7rem .3rem .6rem;font-family:var(--font);font-size:.72rem;font-weight:600;letter-spacing:.005em;color:var(--color-text-muted)}.settings-auto__sweep-loading .settings-spinner{width:11px;height:11px;border-width:1.5px}.settings-auto__sweep-link svg{opacity:.7}.settings-auto__sweep-link--pressed,.settings-auto__sweep-link:active{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);border-style:solid;color:var(--color-text)}@media(hover:hover){.settings-auto__sweep-link:hover{background:color-mix(in srgb,var(--color-text-muted) 8%,transparent);border-style:solid;color:var(--color-text)}}.settings-auto__sweep-confirm{margin-top:.1rem;background:color-mix(in srgb,#f59e0b 6%,var(--color-surface));border:1px solid color-mix(in srgb,#f59e0b 30%,transparent);border-radius:12px;overflow:hidden}.settings-auto__sweep-confirm-body{padding:.7rem .85rem;display:flex;flex-direction:column;gap:.45rem}.settings-auto__sweep-confirm-head{display:flex;align-items:center;gap:.45rem;color:#b45309}.settings-auto__sweep-confirm-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;letter-spacing:-.005em}.settings-auto__sweep-confirm-desc{font-size:.75rem;line-height:1.45;color:var(--color-text-secondary);margin:0}.settings-auto__sweep-confirm-actions{display:flex;gap:.4rem;margin-top:.15rem}.settings-auto__sweep-cancel,.settings-auto__sweep-apply{flex:1;font-family:var(--font);font-size:.78rem;font-weight:600;padding:.45rem .75rem;border-radius:8px;cursor:pointer;transition:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.settings-auto__sweep-cancel{color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border)}.settings-auto__sweep-cancel--pressed,.settings-auto__sweep-cancel:active{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent)}.settings-auto__sweep-apply{color:#fff;background:#d97706;border:1px solid #b45309}.settings-auto__sweep-apply:disabled{opacity:.55;cursor:default}.settings-auto__sweep-apply--pressed,.settings-auto__sweep-apply:active{background:#b45309}@media(hover:hover){.settings-auto__sweep-cancel:hover{background:color-mix(in srgb,var(--color-text-muted) 8%,transparent)}.settings-auto__sweep-apply:hover:not(:disabled){background:#b45309}}[data-theme=dark] .settings-auto__sweep-confirm{background:color-mix(in srgb,#f59e0b 10%,var(--color-surface));border-color:color-mix(in srgb,#f59e0b 35%,transparent)}[data-theme=dark] .settings-auto__sweep-confirm-head{color:#fbbf24}.settings-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}.settings-role-confirm{padding:14px;border-radius:var(--radius);background:#f8fafcb8;border:1px solid var(--color-border);text-align:center}.settings-role-confirm__msg{font-size:.9rem;font-weight:500;color:var(--color-text);margin-bottom:12px}.settings-role-confirm__actions{display:flex;gap:8px;justify-content:center}.settings-role-confirm__btn{padding:7px 18px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;font-family:var(--font);transition:all .15s ease}@media(hover:hover){.settings-role-confirm__btn:hover{background:var(--color-bg)}}.settings-role-confirm__btn:active,.settings-role-confirm__btn.settings-role-confirm__btn--pressed{background:var(--color-bg);transition:none}.settings-role-confirm__btn--yes{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media(hover:hover){.settings-role-confirm__btn--yes:hover{background:var(--color-primary-hover)}}.settings-role-confirm__btn--yes:active,.settings-role-confirm__btn--yes.settings-role-confirm__btn--pressed{background:var(--color-primary-hover);transition:none}[data-theme=dark] .settings-role-confirm{background:#0f172a8c;border-color:#3341558c}@media(max-width:600px){.settings-page__card{padding:.5rem 1.25rem;border-radius:var(--radius)}}.notifications-page{max-width:560px;margin:0 auto;animation:fade-in .3s ease}@media(max-width:480px){.notifications-page{margin-top:0}}.notifications-page__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 1.75rem 1.5rem;box-shadow:var(--shadow)}.notifications-page__header{display:flex;align-items:center;gap:.625rem;padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.notifications-page__back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);flex-shrink:0}@media(hover:hover){.notifications-page__back:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.notifications-page__back:active,.notifications-page__back.notifications-page__back--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.notifications-page__title-wrap{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.notifications-page__title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;letter-spacing:-.02em;line-height:1}.notifications-page__unread-chip{display:inline-flex;align-items:center;gap:.375rem;font-family:var(--font);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background:var(--color-primary-light);padding:.25rem .5rem .25rem .4rem;border-radius:999px;line-height:1}.notifications-page__unread-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent);animation:dot-pulse 2.4s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--color-primary) 8%,transparent)}}.notifications-page__mark-all{display:inline-flex;align-items:center;gap:.375rem;flex-shrink:0;font-family:var(--font);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.375rem .625rem;cursor:pointer;transition:all var(--transition)}@media(hover:hover){.notifications-page__mark-all:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.notifications-page__mark-all:active,.notifications-page__mark-all.notifications-page__mark-all--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.notifications-feed{padding:.75rem 0 0}.notifications-group{padding:.75rem 0 .25rem;animation:notif-group-in .45s cubic-bezier(.16,1,.3,1) both}@keyframes notif-group-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.notifications-group__header{display:flex;align-items:center;gap:.5rem;padding:0 0 .5rem .25rem}.notifications-group__label{font-family:var(--font-heading);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);white-space:nowrap}.notifications-group__rule{flex:1;height:1px;background:linear-gradient(90deg,var(--color-border),transparent 90%)}.notifications-group__count{font-family:var(--font-mono);font-size:.625rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.04em;padding:.125rem .4rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg)}.notifications-group__list{list-style:none;position:relative;padding:0;margin:0}.notifications-group__list:before{content:"";position:absolute;left:11px;top:14px;bottom:14px;width:1px;background:linear-gradient(180deg,transparent,var(--color-border) 12%,var(--color-border) 88%,transparent);pointer-events:none}.notif{position:relative;display:grid;grid-template-columns:24px 28px 1fr auto;align-items:start;gap:.625rem;padding:.875rem .625rem .875rem 0;border-radius:10px;cursor:default;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;animation:notif-in .4s cubic-bezier(.16,1,.3,1) both;transition:background var(--transition)}@keyframes notif-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.notif--clickable{cursor:pointer}@media(hover:hover){.notif--clickable:hover{background:var(--color-bg)}.notif--clickable:hover .notif__chevron{color:var(--color-text-secondary);transform:translate(2px)}}.notif--clickable:active,.notif--clickable.notif--pressed{background:var(--color-bg);transition:none}.notif__rail{position:relative;display:flex;align-items:center;justify-content:center;width:24px;align-self:stretch;padding-top:4px}.notif__dot{display:block;width:9px;height:9px;border-radius:50%;background:var(--notif-accent, var(--color-text-muted));position:relative;z-index:1;transition:all .3s ease;box-shadow:0 0 0 3px var(--color-surface),0 0 0 4px color-mix(in srgb,var(--notif-accent, var(--color-text-muted)) 50%,transparent),0 0 12px color-mix(in srgb,var(--notif-accent, var(--color-text-muted)) 70%,transparent)}.notif--read .notif__dot{background:transparent;box-shadow:0 0 0 3px var(--color-surface),inset 0 0 0 1.5px color-mix(in srgb,var(--color-text-muted) 70%,transparent)}.notif__icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--notif-accent, var(--color-text-muted)) 12%,var(--color-surface));color:var(--notif-accent, var(--color-text-muted));flex-shrink:0;margin-top:2px;transition:all var(--transition)}.notif--read .notif__icon{background:var(--color-bg);color:var(--color-text-muted)}.notif__body{min-width:0}.notif__row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.125rem}.notif__title{font-family:var(--font-heading);font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);line-height:1.3;flex:1;min-width:0}.notif--read .notif__title{font-weight:500;color:var(--color-text-secondary)}.notif__time{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.02em;white-space:nowrap;flex-shrink:0}.notif--unread .notif__time{color:color-mix(in srgb,var(--notif-accent, var(--color-text-muted)) 80%,var(--color-text-secondary))}.notif__subtitle{font-family:var(--font);font-size:.8125rem;font-weight:400;color:var(--color-text-secondary);line-height:1.45;margin:0}.notif--read .notif__subtitle{color:var(--color-text-muted)}.notif__type-tag{display:inline-block;margin-top:.5rem;font-family:var(--font-heading);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--notif-accent, var(--color-text-muted));opacity:.85}.notif--read .notif__type-tag{color:var(--color-text-muted);opacity:.6}.notif__chevron{display:flex;align-items:center;color:var(--color-text-muted);margin-top:6px;flex-shrink:0;transition:transform .2s ease,color .2s ease}.notif--unread{background:linear-gradient(180deg,color-mix(in srgb,var(--notif-accent, var(--color-text-muted)) 4%,transparent),transparent 70%)}.notifications-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem 2rem;animation:fade-in .4s ease}.notifications-empty__glyph{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);margin-bottom:1rem;position:relative}.notifications-empty__glyph:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--color-text-muted) 30%,transparent)}.notifications-empty__primary{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em;margin-bottom:.375rem}.notifications-empty__secondary{font-family:var(--font);font-size:.8125rem;color:var(--color-text-muted);max-width:32ch;line-height:1.5}[data-theme=dark] .notifications-group__count,[data-theme=dark] .notif--read .notif__icon{background:#ffffff08}@media(max-width:480px){.notifications-page__card{padding:0 1.125rem 1rem;border-radius:var(--radius)}.notifications-page__mark-all span,.notifications-page__mark-all{font-size:.6875rem}.notif{grid-template-columns:22px 26px 1fr auto;gap:.5rem;padding:.75rem .5rem .75rem 0}.notif__title{font-size:.875rem}.notif__subtitle{font-size:.75rem}}.notif__followreq-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.notif__followreq-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:.01em;border-radius:999px;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.notif__followreq-btn--accept{background:var(--color-primary);color:#fff;border:1.5px solid var(--color-primary)}.notif__followreq-btn--decline{background:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border)}.notif__followreq-btn--ghost{background:transparent;color:var(--color-text-muted);border:1.5px dashed color-mix(in srgb,var(--color-border) 80%,transparent)}@media(hover:hover){.notif__followreq-btn--accept:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.notif__followreq-btn--decline:hover:not(:disabled){background:#ef444414;color:var(--color-red);border-color:var(--color-red)}.notif__followreq-btn--ghost:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-muted)}}.notif__followreq-btn:active:not(:disabled),.notif__followreq-btn.notif__followreq-btn--pressed:not(:disabled){transform:scale(.97);transition:none}.notif__followreq-btn:disabled{opacity:.55;cursor:wait}.notif__followreq-state{margin-top:10px;font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.notif__sessions{display:flex;flex-direction:column;gap:8px;margin:4px 0 6px}.notif__session-block{display:flex;flex-direction:column;gap:2px}.notif__session-desc{font-size:.78rem;color:var(--color-text-secondary);padding-left:11px;line-height:1.35}.notif__session{display:flex;align-items:center;gap:8px;font-size:.82rem;line-height:1.35;color:var(--color-text-secondary)}.notif__session-bar{flex-shrink:0;width:3px;height:.9em;border-radius:2px}.notif__session-label{color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif__session-miles{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.notif__session-miles:before{content:"· ";margin-right:1px}.legal-page{max-width:720px;margin:0 auto;padding:0 1.5rem 4rem;color:var(--color-text);line-height:1.65;animation:fade-in .3s ease}.legal-page__back{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:.375rem 0;margin-bottom:1.25rem;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:color .15s}@media(hover:hover){.legal-page__back:hover{color:var(--color-text)}}.legal-page__back:active,.legal-page__back.legal-page__back--pressed{color:var(--color-text);transition:none}.legal-page h1{font-family:var(--font-heading);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem}.legal-page__meta{color:var(--color-text-muted);font-size:.875rem;margin-bottom:2rem}.legal-page h2{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;letter-spacing:-.015em;margin-top:2.25rem;margin-bottom:.625rem}.legal-page h3{font-size:1rem;font-weight:600;margin-top:1.25rem;margin-bottom:.375rem}.legal-page p{margin-bottom:1rem;color:var(--color-text-secondary)}.legal-page ul{margin:0 0 1rem 1.25rem;color:var(--color-text-secondary)}.legal-page li{margin-bottom:.375rem}.legal-page a{color:var(--color-accent, #3B82F6);text-decoration:underline;text-underline-offset:2px}@media(hover:hover){.legal-page a:hover{text-decoration-thickness:2px}}.legal-page a:active{text-decoration-thickness:2px}.legal-page strong{color:var(--color-text);font-weight:600}.coach-layout{margin:0 auto;animation:fade-in .3s ease}.coach-layout--narrow{max-width:720px}.coach-layout__header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.coach-layout__back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}@media(hover:hover){.coach-layout__back:hover{color:var(--color-text);border-color:var(--color-text-muted)}}.coach-layout__back:active,.coach-layout__back.coach-layout__back--pressed{color:var(--color-text);border-color:var(--color-text-muted);transition:none}.coach-layout__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:650;color:var(--color-text);letter-spacing:-.02em}.coach-layout__content{min-height:200px}.cwp-overlay{position:fixed;inset:0;z-index:220;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#0f172a8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:cwp-fade .2s ease}@media(min-width:720px){.cwp-overlay{align-items:center;padding:1.5rem}}@keyframes cwp-fade{0%{opacity:0}to{opacity:1}}.cwp{position:relative;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);animation:cwp-slide .28s cubic-bezier(.22,1,.36,1);padding:22px 20px 18px;font-family:var(--font)}@media(min-width:720px){.cwp{border-radius:var(--radius-lg);padding:26px 28px 22px;max-height:88vh}}@keyframes cwp-slide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.cwp__head{margin-bottom:16px}.cwp__chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.cwp__chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary)}.cwp__chip--type{background:var(--color-primary-light);color:var(--color-primary);border-color:transparent}.cwp__chip--zone{font-family:var(--font-mono);letter-spacing:.02em;text-transform:none;color:var(--color-text)}.cwp__chip--intensity:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px}.cwp__chip--easy{color:var(--color-green);border-color:var(--color-green-light);background:var(--color-green-light)}.cwp__chip--moderate{color:var(--color-orange);border-color:var(--color-orange-light);background:var(--color-orange-light)}.cwp__chip--threshold{color:var(--color-red);border-color:var(--color-red-light);background:var(--color-red-light)}.cwp__chip--fast,.cwp__chip--sprint{color:var(--color-purple);border-color:#8b5cf62e;background:#8b5cf61a}.cwp__title{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:clamp(1.4rem,4.5vw,1.8rem);font-weight:650;line-height:1.15;letter-spacing:-.015em;color:var(--color-text);margin:0;word-break:break-word;max-width:100%}.cwp__title--editable{cursor:pointer;padding:4px 10px 4px 8px;margin-left:-8px;border-radius:var(--radius-sm);background:var(--color-bg);border:1px dashed var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease}@media(hover:hover){.cwp__title--editable:hover{background:var(--color-primary-light);border-color:var(--color-primary)}}.cwp__title--editable:active,.cwp__title--editable.cwp__title--pressed{background:var(--color-primary-light);border-color:var(--color-primary);transition:none}.cwp__title--editable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.cwp__title-pencil{flex-shrink:0;color:var(--color-text-muted);opacity:.7;transform:translateY(1px);transition:opacity .15s ease,color .15s ease}.cwp__title--editable:focus-visible .cwp__title-pencil{opacity:1;color:var(--color-primary)}@media(hover:hover){.cwp__title--editable:hover .cwp__title-pencil{opacity:1;color:var(--color-primary)}}.cwp__title--editable:active .cwp__title-pencil,.cwp__title--editable.cwp__title--pressed .cwp__title-pencil{opacity:1;color:var(--color-primary)}.cwp__title--saving{opacity:.55;pointer-events:none}.cwp__title-input{display:block;width:100%;margin-left:-6px;padding:2px 6px;font-family:var(--font-heading);font-size:clamp(1.4rem,4.5vw,1.8rem);font-weight:650;line-height:1.15;letter-spacing:-.015em;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-primary);border-radius:var(--radius-sm);outline:none;box-shadow:0 0 0 3px var(--color-primary-light);-webkit-user-select:text;user-select:text}.cwp__rows{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.cwp-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);position:relative;animation:cwp-row-in .32s cubic-bezier(.22,1,.36,1) both}.cwp-row:nth-child(1){animation-delay:20ms}.cwp-row:nth-child(2){animation-delay:60ms}.cwp-row:nth-child(3){animation-delay:.1s}.cwp-row:nth-child(4){animation-delay:.14s}.cwp-row:nth-child(5){animation-delay:.18s}.cwp-row:nth-child(6){animation-delay:.22s}.cwp-row:nth-child(n+7){animation-delay:.24s}@keyframes cwp-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cwp-row:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--color-border)}.cwp-row[data-intensity=easy]:before{background:var(--color-green)}.cwp-row[data-intensity=moderate]:before{background:var(--color-orange)}.cwp-row[data-intensity=threshold]:before{background:var(--color-red)}.cwp-row[data-intensity=fast]:before{background:var(--color-purple)}.cwp-row[data-intensity=sprint]:before{background:var(--color-purple)}.cwp-row[data-intensity=rest]:before{background:transparent}.cwp-row__num{flex-shrink:0;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--color-bg);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.78rem;font-weight:700;border:1px solid var(--color-border)}.cwp-row__num--rest{font-family:var(--font);font-size:1.2rem;line-height:.4;color:var(--color-text-muted);border-style:dashed}.cwp-row__body{flex:1;min-width:0}.cwp-row__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.cwp-row__title{font-family:var(--font-heading);font-size:.98rem;font-weight:650;color:var(--color-text);letter-spacing:-.005em}.cwp-row__title--rest{color:var(--color-text-muted);font-style:italic;font-weight:500}.cwp-row--warmup .cwp-row__title,.cwp-row--cooldown .cwp-row__title{font-family:var(--font);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.cwp-row__measures{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text-secondary);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.cwp-row__dist{color:var(--color-text);font-weight:600}.cwp-row__sep{color:var(--color-text-muted)}.cwp-row__time{color:var(--color-text-secondary)}.cwp-row__detail{font-family:var(--font-mono);font-size:.82rem;line-height:1.5;color:var(--color-text-secondary);margin:6px 0 0;word-break:break-word}.cwp__note{margin:0 0 14px;padding:9px 12px;font-size:.8rem;font-style:italic;color:var(--color-text-secondary);background:var(--color-bg);border-left:3px solid var(--color-purple);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.cwp__total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 14px;margin:0 0 14px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg)}.cwp__total-label{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.cwp__total-value{font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:var(--color-text);line-height:1}.cwp__foot{display:flex;gap:8px;padding-top:14px;border-top:1px solid var(--color-border);margin-top:4px;justify-content:flex-end}.cwp__btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--radius-sm);font-family:var(--font);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s ease}.cwp__btn--ghost{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}@media(hover:hover){.cwp__btn--ghost:hover{background:var(--color-bg);color:var(--color-text)}}.cwp__btn--ghost:active,.cwp__btn--ghost.cwp__btn--pressed{background:var(--color-bg);color:var(--color-text);transition:none}.cwp__btn--primary{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);box-shadow:0 1px 3px #3b82f640}@media(hover:hover){.cwp__btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}}.cwp__btn--primary:active,.cwp__btn--primary.cwp__btn--pressed{background:var(--color-primary-hover);border-color:var(--color-primary-hover);transition:none}@media(prefers-reduced-motion:reduce){.cwp-overlay,.cwp,.cwp-row{animation:none!important}}.coach-dashboard{animation:fade-in .3s ease}.coach-dashboard__header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.coach-dashboard__title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text);line-height:1}.coach-dashboard__badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#8b5cf61a;color:#7c3aed;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}[data-theme=dark] .coach-dashboard__badge{background:#8b5cf626;color:#a78bfa}.coach-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.coach-metrics__item{display:flex;flex-direction:column;align-items:center;padding:14px 8px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface)}.coach-metrics__value{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;color:var(--color-text);line-height:1}.coach-metrics__label{font-size:.72rem;font-weight:600;color:var(--color-text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.coach-tabs{display:flex;gap:4px;padding:4px;border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);margin-bottom:20px}.coach-tabs__btn{flex:1;padding:9px 16px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .18s ease}@media(hover:hover){.coach-tabs__btn:hover{color:var(--color-text-secondary)}}.coach-tabs__btn:active:not(.coach-tabs__btn--active),.coach-tabs__btn.coach-tabs__btn--pressed:not(.coach-tabs__btn--active){color:var(--color-text-secondary);transition:none}.coach-tabs__btn--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow)}.coach-subtabs{display:flex;gap:2px;margin-bottom:16px}.coach-subtabs__btn{padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease}@media(hover:hover){.coach-subtabs__btn:hover{color:var(--color-text-secondary)}}.coach-subtabs__btn:active:not(.coach-subtabs__btn--active),.coach-subtabs__btn.coach-subtabs__btn--pressed:not(.coach-subtabs__btn--active){color:var(--color-text-secondary);transition:none}.coach-subtabs__btn--active{background:var(--color-primary-light);color:var(--color-primary)}.coach-empty{display:flex;flex-direction:column;align-items:center;padding:48px 20px;text-align:center}.coach-empty__icon{width:56px;height:56px;border-radius:16px;background:var(--color-bg);border:1px solid var(--color-border);display:grid;place-items:center;margin-bottom:16px;color:var(--color-text-muted)}.coach-empty__icon svg{width:28px;height:28px}.coach-empty__title{font-family:var(--font-heading);font-size:1.1rem;font-weight:650;color:var(--color-text);margin-bottom:6px}.coach-empty__desc{font-size:.88rem;color:var(--color-text-muted);max-width:28ch;line-height:1.45}.coach-template-card{padding:16px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.coach-template-card:hover{border-color:var(--color-primary);box-shadow:0 4px 16px -4px #3b82f626;transform:translateY(-1px)}}.coach-template-card:active,.coach-template-card--pressed{border-color:var(--color-primary);box-shadow:0 4px 16px -4px #3b82f626;transform:translateY(-1px);transition:none}.coach-template-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.coach-template-card--loading{opacity:.65;pointer-events:none;position:relative}.coach-template-card--loading:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,transparent 0%,rgba(124,58,237,.08) 50%,transparent 100%);background-size:200% 100%;animation:coach-card-shimmer 1.1s ease-in-out infinite;pointer-events:none}@keyframes coach-card-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.coach-template-card__name{font-family:var(--font-heading);font-size:1rem;font-weight:650;color:var(--color-text);margin-bottom:6px}.coach-template-card__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--color-text-muted)}.coach-template-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.coach-template-card__menu-wrap{position:relative;flex-shrink:0}.coach-template-card--menu-open,.coach-athlete-card--menu-open{z-index:5}.coach-template-card__dots{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}@media(hover:hover){.coach-template-card__dots:hover{background:var(--color-bg);color:var(--color-text-secondary)}}.coach-template-card__dots:active,.coach-template-card__dots.coach-template-card__dots--pressed{background:var(--color-bg);color:var(--color-text-secondary);transition:none}.coach-template-card__dropdown{position:absolute;top:100%;right:0;z-index:50;min-width:160px;margin-top:4px;padding:4px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md);animation:fade-in .15s ease}.coach-template-card__dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:var(--font);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .12s ease;text-align:left}@media(hover:hover){.coach-template-card__dropdown button:hover{background:var(--color-bg);color:var(--color-text)}.coach-template-card__dropdown-danger:hover{color:var(--color-red)!important;background:#ef44440f!important}}.coach-template-card__dropdown button:active:not(:disabled){background:var(--color-bg);color:var(--color-text);transition:none}.coach-template-card__dropdown-danger:active:not(:disabled){color:var(--color-red)!important;background:#ef44440f!important;transition:none}.coach-template-card__dropdown button:disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .coach-template-card__dropdown{background:#1e293bf7;border-color:#334155b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.coach-athlete-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.coach-athlete-card:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 4px 16px -4px #3b82f61f}}.coach-athlete-card:active,.coach-athlete-card--pressed{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 4px 16px -4px #3b82f61f;transition:none}.coach-athlete-card__avatar{width:40px;height:40px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:grid;place-items:center;font-weight:700;font-size:.9rem;flex-shrink:0;overflow:hidden}.coach-athlete-card__avatar img{width:100%;height:100%;object-fit:cover}.coach-athlete-card__info{flex:1;min-width:0}.coach-athlete-card__name{font-weight:600;font-size:.92rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-athlete-card__plan-meta{font-size:.78rem;color:var(--color-text-muted);margin-top:2px}.coach-athlete-card__status{flex-shrink:0;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.coach-athlete-card__status--active{background:#22c55e1a;color:#16a34a}.coach-athlete-card__status--upcoming{background:#3b82f61a;color:var(--color-primary)}.coach-athlete-card__status--past{background:#94a3b81a;color:var(--color-text-muted)}.coach-card-grid{display:grid;gap:12px}.coach-card-grid>*{animation:coach-card-enter .35s cubic-bezier(.16,1,.3,1) both}.coach-card-grid>*:nth-child(1){animation-delay:0ms}.coach-card-grid>*:nth-child(2){animation-delay:40ms}.coach-card-grid>*:nth-child(3){animation-delay:80ms}.coach-card-grid>*:nth-child(4){animation-delay:.12s}.coach-card-grid>*:nth-child(5){animation-delay:.16s}.coach-card-grid>*:nth-child(6){animation-delay:.2s}.coach-card-grid>*:nth-child(n+7){animation-delay:.22s}@keyframes coach-card-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.coach-loading{display:flex;align-items:center;justify-content:center;padding:4rem 0}.coach-create-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:0;border-radius:var(--radius);background:linear-gradient(180deg,#7c3aed,#6d28d9);color:#fff;font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .18s ease;box-shadow:0 2px 8px #7c3aed4d}@media(hover:hover){.coach-create-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed66}}.coach-create-btn:active,.coach-create-btn.coach-create-btn--pressed{box-shadow:0 4px 14px #7c3aed66;transition:none}.coach-create-btn svg{width:16px;height:16px}.coach-create-btn:disabled{opacity:.6;pointer-events:none}.coach-name-template{display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - var(--header-height, 120px) - 8rem);padding:1rem;animation:fade-in .3s ease}.coach-name-template__card{width:100%;max-width:440px;padding:28px 24px;border-radius:20px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);text-align:center}.coach-name-template__title{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;color:var(--color-text);margin-bottom:6px}.coach-name-template__desc{font-size:.88rem;color:var(--color-text-muted);margin-bottom:20px}.coach-name-template__input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-family:var(--font);font-size:.95rem;outline:none;transition:border-color .15s ease;box-sizing:border-box}.coach-name-template__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.coach-name-template__actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.coach-name-template__back{padding:10px 20px;border:1px solid var(--color-border);border-radius:var(--radius);background:transparent;color:var(--color-text-secondary);font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}@media(hover:hover){.coach-name-template__back:hover{background:var(--color-bg);color:var(--color-text)}}.coach-name-template__back:active,.coach-name-template__back.coach-name-template__back--pressed{background:var(--color-bg);color:var(--color-text);transition:none}.coach-template-detail__tabs{display:flex;gap:4px;padding:4px;border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);margin-bottom:20px}.coach-template-detail__tab{flex:1;padding:8px 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .18s ease}@media(hover:hover){.coach-template-detail__tab:hover{color:var(--color-text-secondary)}}.coach-template-detail__tab:active:not(.coach-template-detail__tab--active),.coach-template-detail__tab.coach-template-detail__tab--pressed:not(.coach-template-detail__tab--active){color:var(--color-text-secondary);transition:none}.coach-template-detail__tab--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow)}.coach-confirm-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fade-in .2s ease}.coach-confirm{position:relative;width:100%;max-width:360px;padding:24px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);text-align:center}.coach-confirm--wide{max-width:460px;text-align:left}.coach-confirm--wide .coach-confirm__title,.coach-confirm--wide .coach-confirm__desc{text-align:left}.coach-confirm--wide .coach-perm-list{margin-top:4px;margin-bottom:20px}.coach-confirm--wide .coach-confirm__actions{justify-content:flex-end}.coach-confirm__btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media(hover:hover){.coach-confirm__btn--primary:hover{opacity:.9;background:var(--color-primary)}}.coach-confirm__btn--primary:active,.coach-confirm__btn--primary.coach-confirm__btn--pressed{opacity:.9;background:var(--color-primary);transition:none}.coach-confirm__title{font-family:var(--font-heading);font-size:1.1rem;font-weight:650;color:var(--color-text);margin-bottom:8px}.coach-confirm__desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.45;margin-bottom:20px}.coach-confirm__input{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-input, var(--color-bg));color:var(--color-text);font-size:.95rem;margin-bottom:16px;box-sizing:border-box;outline:none}.coach-confirm__input:focus{border-color:var(--color-primary)}.coach-confirm__actions{display:flex;gap:8px;justify-content:center}.coach-confirm__btn{padding:9px 20px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s ease}@media(hover:hover){.coach-confirm__btn:hover{background:var(--color-bg)}}.coach-confirm__btn:active,.coach-confirm__btn.coach-confirm__btn--pressed{background:var(--color-bg);transition:none}.coach-confirm__btn--danger{background:var(--color-red);color:#fff;border-color:var(--color-red)}@media(hover:hover){.coach-confirm__btn--danger:hover{opacity:.9;background:var(--color-red)}}.coach-confirm__btn--danger:active,.coach-confirm__btn--danger.coach-confirm__btn--pressed{opacity:.9;background:var(--color-red);transition:none}.coach-share{display:flex;flex-direction:column;gap:24px}.coach-share__form,.coach-share__email,.coach-share__invite-users,.coach-share__list,.coach-share__perms{padding:18px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface)}.coach-perm-list{display:flex;flex-direction:column;margin-top:14px}.coach-perm{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--color-border);cursor:pointer}.coach-perm:first-child{border-top:0;padding-top:4px}.coach-perm:last-child{padding-bottom:2px}.coach-perm__text{display:flex;flex-direction:column;gap:2px;min-width:0}.coach-perm__label{font-size:.92rem;font-weight:600;color:var(--color-text);letter-spacing:-.005em}.coach-perm__desc{font-size:.78rem;color:var(--color-text-muted);line-height:1.4}.coach-share__invite-grants{font-size:.72rem;color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase}.settings-toggle{position:relative;flex-shrink:0;width:40px;height:22px;padding:0;background:var(--color-border);border:none;border-radius:11px;cursor:pointer;transition:background .2s ease}.settings-toggle--on{background:var(--color-primary)}.settings-toggle--on .settings-toggle__thumb{transform:translate(18px)}.settings-toggle__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.settings-toggle:active .settings-toggle__thumb,.settings-toggle.settings-toggle--pressed .settings-toggle__thumb{width:22px;transition:none}.settings-toggle--on:active .settings-toggle__thumb,.settings-toggle--on.settings-toggle--pressed .settings-toggle__thumb{transform:translate(14px)}.coach-share__heading{font-family:var(--font-heading);font-size:1rem;font-weight:650;color:var(--color-text);margin-bottom:6px}.coach-share__desc{font-size:.85rem;color:var(--color-text-muted);margin-bottom:14px;line-height:1.4}.coach-share__dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.coach-share__field{display:flex;flex-direction:column;gap:4px}.coach-share__field span{font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.coach-share__field input{padding:9px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-family:var(--font);font-size:.88rem;outline:none}.coach-share__field input:focus{border-color:var(--color-primary)}.coach-share__email-row{display:flex;gap:8px;margin-top:10px}.coach-share__email-row input{flex:1}.coach-share__email-result{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.4;background:#22c55e14;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.coach-share__email-result--warn{background:#f59e0b14;color:#b45309;border-color:#f59e0b33}.coach-share__invite{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--color-border)}.coach-share__invite:last-child{border-bottom:0}.coach-share__invite--revoked{opacity:.5}.coach-share__invite-info{display:flex;flex-direction:column;gap:2px}.coach-share__invite-dates{font-size:.88rem;font-weight:500;color:var(--color-text)}.coach-share__invite-uses{font-size:.75rem;color:var(--color-text-muted)}.coach-share__invite-actions{display:flex;gap:6px}[data-theme=dark] .coach-confirm{background:#1e293bf7;border:1px solid rgba(51,65,85,.7)}[data-theme=dark] .coach-share__email-result{background:#22c55e1f}[data-theme=dark] .coach-share__email-result--warn{background:#f59e0b1f;color:#f59e0b}[data-theme=dark] .coach-athlete-card__status--active{background:#22c55e26}@media(prefers-reduced-motion:reduce){.coach-card-grid>*,.coach-dashboard{animation:none!important}}@media(max-width:768px){.coach-tabs{display:none}.coach-metrics{gap:6px}.coach-metrics__item{padding:10px 4px}.coach-metrics__value{font-size:1.1rem}.coach-metrics__label{font-size:.62rem;letter-spacing:.05em}}.patch-warnings{margin:0 auto 1rem;max-width:1100px;padding:.875rem 1.125rem;background:#f59e0b14;border:1px solid rgba(245,158,11,.3);border-radius:12px;color:#92400e}.patch-warnings__header{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.875rem}.patch-warnings__dismiss{background:transparent;border:0;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;padding:0 .25rem}.patch-warnings__list{margin:.5rem 0 0;padding-left:1.25rem;font-size:.85rem;line-height:1.45}[data-theme=dark] .patch-warnings{background:#f59e0b1f;border-color:#f59e0b59;color:#fcd34d}.coach-team-search{position:relative;display:flex;align-items:center;margin:6px 0 4px}.coach-team-search__icon{position:absolute;left:14px;width:16px;height:16px;color:var(--color-text-muted);pointer-events:none}.coach-team-search__input{width:100%;padding:12px 14px 12px 38px;border:1.5px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text);font-family:var(--font);font-size:.9375rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.coach-team-search__input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 14%,transparent)}.coach-team-search__input::-webkit-search-cancel-button{-webkit-appearance:none}.coach-team-search__hint{padding:14px 4px 4px;color:var(--color-text-muted);font-size:.875rem;line-height:1.4;margin:0}.coach-team-search__results{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto;margin:10px 0 4px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.coach-team-search__row{display:flex;align-items:center;gap:12px;padding:10px 14px;color:var(--color-text)}.coach-team-search__row+.coach-team-search__row{border-top:1px solid color-mix(in srgb,var(--color-border) 60%,transparent)}.coach-team-search__avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,#7dd3fc,#3b82f6);color:#fff;font-family:var(--font-heading);font-size:1rem;font-weight:600}.coach-team-search__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.coach-team-search__name{font-size:.9375rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-team-search__meta{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-team-search__cta{flex-shrink:0;margin-left:auto;padding:7px 16px;border:1px solid var(--color-primary);border-radius:999px;background:var(--color-primary);color:#fff;cursor:pointer;font-family:var(--font);font-size:.78rem;font-weight:600;letter-spacing:.01em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease,border-color .16s ease,transform .14s ease}@media(hover:hover){.coach-team-search__cta:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 88%,black);border-color:color-mix(in srgb,var(--color-primary) 88%,black)}}.coach-team-search__cta:active:not(:disabled),.coach-team-search__cta.coach-team-search__cta--pressed:not(:disabled){transform:scale(.96);transition:none}.coach-team-search__cta:disabled{cursor:default;opacity:.7}.coach-team-search__status{flex-shrink:0;margin-left:auto;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--color-text-muted) 12%,transparent);color:var(--color-text-muted);font-family:var(--font);font-size:.75rem;font-weight:600}.coach-team-search__status--done{background:color-mix(in srgb,#22c55e 16%,transparent);color:#16a34a}[data-theme=dark] .coach-team-search__status--done{color:#4ade80;background:color-mix(in srgb,#22c55e 18%,transparent)}.coach-team-search__connection{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;font-family:var(--font);font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;line-height:1;flex-shrink:0;vertical-align:middle}.coach-team-search__connection--coached{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary)}.coach-team-search__connection--mutual,.coach-team-search__connection--following,.coach-team-search__connection--follower{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent);border-color:color-mix(in srgb,var(--color-text-muted) 28%,transparent);color:var(--color-text-muted)}.coach-team-search__cta--secondary{background:transparent;color:var(--color-primary)}@media(hover:hover){.coach-team-search__cta--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-color:var(--color-primary)}}.coach-invite-search{position:relative;width:100%}.coach-invite-search__input-wrap{position:relative;display:flex;align-items:center}.coach-invite-search__icon{position:absolute;left:14px;width:16px;height:16px;color:var(--color-text-muted);pointer-events:none}.coach-invite-search__input{width:100%;padding:12px 14px 12px 38px;border:1.5px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text);font-family:var(--font);font-size:.9375rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.coach-invite-search__input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 14%,transparent)}.coach-invite-search__input::-webkit-search-cancel-button{-webkit-appearance:none}.coach-invite-search__results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:80;max-height:360px;overflow-y:auto}.coach-invite-search__hint{padding:14px 18px;color:var(--color-text-muted);font-size:.875rem}.coach-invite-search__row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px 10px 14px;color:var(--color-text)}.coach-invite-search__row+.coach-invite-search__row{border-top:1px solid color-mix(in srgb,var(--color-border) 60%,transparent)}.coach-invite-search__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(135deg,#7dd3fc,#3b82f6);color:#fff;font-family:var(--font-heading);font-size:1rem;font-weight:600}.coach-invite-search__name{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.coach-invite-search__display-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.coach-invite-search__display{font-size:.9375rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .14s ease}.coach-invite-search__username{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted)}.coach-invite-search__badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-family:var(--font);font-size:.625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;line-height:1;flex-shrink:0}.coach-invite-search__badge--athlete{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary)}.coach-invite-search__badge--coach{background:color-mix(in srgb,#8b5cf6 14%,transparent);border-color:color-mix(in srgb,#8b5cf6 30%,transparent);color:#8b5cf6}[data-theme=dark] .coach-invite-search__badge--coach{color:#a78bfa;background:color-mix(in srgb,#a78bfa 14%,transparent);border-color:color-mix(in srgb,#a78bfa 32%,transparent)}.coach-invite-search__cta{flex-shrink:0;margin-left:auto;padding:7px 14px;border:1px solid var(--color-primary);border-radius:999px;background:var(--color-primary);color:#fff;cursor:pointer;font-family:var(--font);font-size:.78rem;font-weight:600;letter-spacing:.01em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .14s ease}@media(hover:hover){.coach-invite-search__cta:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 88%,black);border-color:color-mix(in srgb,var(--color-primary) 88%,black)}}.coach-invite-search__cta:active:not(:disabled),.coach-invite-search__cta.coach-invite-search__cta--pressed:not(:disabled){transform:scale(.96);transition:none}.coach-invite-search__cta:disabled{cursor:default}.coach-invite-search__cta--done,.coach-invite-search__cta--done:disabled{background:color-mix(in srgb,#22c55e 16%,transparent);border-color:color-mix(in srgb,#22c55e 38%,transparent);color:#16a34a}[data-theme=dark] .coach-invite-search__cta--done,[data-theme=dark] .coach-invite-search__cta--done:disabled{color:#4ade80;background:color-mix(in srgb,#22c55e 18%,transparent)}.coach-invite-search__result{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.4;background:#22c55e14;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.coach-invite-search__result--warn{background:#f59e0b14;color:#b45309;border-color:#f59e0b33}[data-theme=dark] .coach-invite-search__result{background:#22c55e1f}[data-theme=dark] .coach-invite-search__result--warn{background:#f59e0b1f;color:#f59e0b}.invite-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:1.5rem;background:var(--color-bg)}.invite-page__card{position:relative;width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:2rem 1.5rem;text-align:center;animation:invite-fade-in .4s ease}.invite-page__back{position:absolute;top:.875rem;left:.875rem;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.invite-page__back:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.invite-page__back:active,.invite-page__back.invite-page__back--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}@keyframes invite-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.invite-page__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:var(--color-primary-light);color:var(--color-primary);margin-bottom:1rem}.invite-page__icon svg{width:28px;height:28px}.invite-page__icon--success{background:#8b5cf61a;color:var(--color-purple, #8b5cf6)}.invite-page__icon--error{background:#ef44441a;color:#ef4444}.invite-page__icon--warn{background:#f59e0b1a;color:#f59e0b}.invite-page__eyebrow{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-purple, #8b5cf6);margin-bottom:.25rem}.invite-page__title{font-family:var(--font-heading);font-size:1.375rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem;color:var(--color-text)}.invite-page__desc{font-size:.875rem;color:var(--color-text-secondary);line-height:1.5;margin:0 0 1.25rem}.invite-page__details{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;padding:.75rem;background:var(--color-bg);border-radius:10px}.invite-page__detail{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.invite-page__detail-label{color:var(--color-text-secondary);font-weight:500}.invite-page__detail-value{color:var(--color-text);font-weight:600}.invite-page__error{font-size:.8125rem;color:#ef4444;margin:0 0 .75rem;padding:.5rem .75rem;background:#ef444414;border-radius:8px}.invite-page__btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}@media(hover:hover){.invite-page__btn:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.invite-page__btn:active,.invite-page__btn.invite-page__btn--pressed{background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.invite-page__btn--accept{background:var(--color-purple, #8b5cf6);color:#fff;border-color:var(--color-purple, #8b5cf6)}@media(hover:hover){.invite-page__btn--accept:hover{background:color-mix(in srgb,var(--color-purple, #8b5cf6) 90%,#000);border-color:color-mix(in srgb,var(--color-purple, #8b5cf6) 90%,#000)}}.invite-page__btn--accept:active:not(:disabled),.invite-page__btn--accept.invite-page__btn--pressed:not(:disabled){background:color-mix(in srgb,var(--color-purple, #8b5cf6) 90%,#000);border-color:color-mix(in srgb,var(--color-purple, #8b5cf6) 90%,#000);transition:none}.invite-page__btn--accept:disabled{opacity:.6;cursor:not-allowed}.invite-page__btn--secondary{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}@media(hover:hover){.invite-page__btn--secondary:hover{background:var(--color-bg)}}.invite-page__btn--secondary:active,.invite-page__btn--secondary.invite-page__btn--pressed{background:var(--color-bg);transition:none}.invite-page__loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem 0;color:var(--color-text-secondary);font-size:.875rem}.invite-page__spinner{width:28px;height:28px;border:2.5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:invite-spin .8s linear infinite}@keyframes invite-spin{to{transform:rotate(360deg)}}.report-dialog{padding:1.5rem 1.5rem 1.25rem;display:flex;flex-direction:column;gap:1.125rem}@media(min-width:601px){.report-dialog{max-width:440px}}.report-dialog__head{display:flex;flex-direction:column;gap:.375rem}.report-dialog__eyebrow{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-red);opacity:.85}.report-dialog__title{font-family:var(--font-heading);font-size:1.375rem;font-weight:600;letter-spacing:-.01em;line-height:1.15;margin:0;color:var(--color-text)}.report-dialog__subtitle{font-size:.825rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.report-dialog__reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto;margin-right:-.5rem;padding-right:.5rem;scrollbar-width:thin;scrollbar-color:transparent transparent}.report-dialog__reasons:hover{scrollbar-color:var(--color-border) transparent}.report-dialog__reasons::-webkit-scrollbar{width:6px}.report-dialog__reasons::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}.report-dialog__reasons:hover::-webkit-scrollbar-thumb{background:var(--color-border)}.report-dialog__reason{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:transparent;transition:background-color .14s ease,border-color .14s ease,transform .14s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.report-dialog__reason:hover{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 4%,transparent)}}.report-dialog__reason--checked{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.report-dialog__reason-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.report-dialog__reason-marker{grid-column:1;grid-row:1;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--color-text-muted);background:transparent;margin-top:1px;position:relative;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease;flex-shrink:0}.report-dialog__reason-marker:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--color-primary);transform:scale(0);transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.report-dialog__reason--checked .report-dialog__reason-marker{border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 12%,transparent)}.report-dialog__reason--checked .report-dialog__reason-marker:after{transform:scale(1)}.report-dialog__reason-input:focus-visible+.report-dialog__reason-marker{outline:2px solid var(--color-primary);outline-offset:3px}.report-dialog__reason-body{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:1px;min-width:0}.report-dialog__reason-label{font-size:.9rem;font-weight:600;color:var(--color-text);line-height:1.35}.report-dialog__reason-helper{font-size:.775rem;color:var(--color-text-secondary);line-height:1.4}.report-dialog__details-field{display:flex;flex-direction:column;gap:6px}.report-dialog__details-row{display:flex;align-items:baseline;justify-content:space-between}.report-dialog__details-label{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-secondary)}.report-dialog__details-optional{opacity:.65;font-weight:500}.report-dialog__details-count{font-family:var(--font-mono);font-size:.6875rem;color:var(--color-text-muted);font-feature-settings:"tnum" 1}.report-dialog__details{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;font-size:.875rem;resize:vertical;min-height:60px;max-height:160px;background:transparent;color:var(--color-text);transition:border-color .14s ease,background-color .14s ease}.report-dialog__details::placeholder{color:var(--color-text-muted)}.report-dialog__details:focus{outline:none;border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 3%,transparent)}.report-dialog__error{color:var(--color-red);font-size:.825rem;margin:0}.report-dialog__success{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:.5rem 0 1rem;text-align:center;font-size:.95rem;color:var(--color-text)}.report-dialog__success-glyph{width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--color-green) 14%,transparent);color:var(--color-green);display:inline-flex;align-items:center;justify-content:center}.report-dialog__success p{margin:0}.report-dialog__actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.25rem}.report-dialog__btn{appearance:none;font:inherit;font-weight:600;font-size:.875rem;padding:.5rem 1.125rem;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,opacity .14s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.report-dialog__btn--cancel{background:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.report-dialog__btn--cancel:hover{background:var(--color-bg);color:var(--color-text)}.report-dialog__btn--submit{background:var(--color-red);color:#fff;border-color:var(--color-red)}.report-dialog__btn--submit:hover:not(:disabled){filter:brightness(1.08)}.report-dialog__btn--submit:disabled{opacity:.45;cursor:not-allowed}.report-dialog--leaving{opacity:0;transition:opacity .22s ease}@media(max-width:600px){.report-dialog{padding:1.25rem 1.125rem 1rem;gap:1rem}.report-dialog__title{font-size:1.25rem}.report-dialog__reasons{max-height:none;overflow:visible;margin-right:0;padding-right:0}}.report-icon-btn{appearance:none;background:transparent;border:1px solid transparent;border-radius:8px;padding:5px 7px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-shrink:0}@media(hover:hover){.report-icon-btn:hover{color:var(--color-red);background:color-mix(in srgb,var(--color-red) 8%,transparent);border-color:color-mix(in srgb,var(--color-red) 22%,transparent)}}.report-icon-btn:active,.report-icon-btn--pressed{color:var(--color-red);background:color-mix(in srgb,var(--color-red) 14%,transparent);border-color:color-mix(in srgb,var(--color-red) 30%,transparent);transition:none}.report-icon-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.feed-card{position:relative;display:flex;flex-direction:column;width:100%;padding:20px 18px 16px;margin:0;border:1px solid rgba(148,163,184,.18);border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 96%,transparent) 0%,var(--color-surface) 100%);box-shadow:0 1px color-mix(in srgb,var(--color-text) 4%,transparent) inset,0 6px 14px -8px #0f172a2e;cursor:pointer;text-align:left;font-family:var(--font);color:var(--color-text);overflow:hidden;transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s ease,border-color .22s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.feed-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background:radial-gradient(320px 160px at 8% 0%,var(--feed-card-wash, transparent),transparent 70%)}.feed-card--today{--feed-card-wash: color-mix(in srgb, var(--color-primary) 16%, transparent);border-color:color-mix(in srgb,var(--color-primary) 28%,transparent);box-shadow:0 1px color-mix(in srgb,var(--color-primary) 14%,transparent) inset,0 12px 28px -16px color-mix(in srgb,var(--color-primary) 60%,transparent),0 6px 14px -8px #0f172a38}.feed-card--tomorrow{--feed-card-wash: color-mix(in srgb, var(--color-purple) 12%, transparent);border-color:color-mix(in srgb,var(--color-purple) 22%,transparent);border-style:solid;background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 94%,transparent),color-mix(in srgb,var(--color-surface) 99%,transparent))}.feed-card--tomorrow:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;pointer-events:none;background-image:linear-gradient(90deg,color-mix(in srgb,var(--color-purple) 50%,transparent) 0,color-mix(in srgb,var(--color-purple) 50%,transparent) 5px,transparent 5px,transparent 11px);background-size:11px 1px;opacity:.55}.feed-card--yesterday{--feed-card-wash: color-mix(in srgb, var(--color-green) 11%, transparent);border-color:color-mix(in srgb,var(--color-green) 18%,transparent)}@media(hover:hover){.feed-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px #0f172a38}.feed-card:hover .feed-card__arrow{opacity:1;transform:translate(2px,-2px)}.feed-card:hover .feed-card__ribbon{transform:scaleY(1.4)}}.feed-card.feed-card--pressed{transform:scale(.985);transition:none}.feed-card__ribbon-track{position:absolute;top:0;left:0;right:0;height:4px;background:#94a3b80d;overflow:hidden;display:flex}.feed-card__ribbon{height:100%;transform-origin:top;transition:transform .24s ease}.feed-card__ribbon--past{background:linear-gradient(90deg,#cbd5e1d9,#94a3b8b3)}.feed-card__ribbon--day{background:linear-gradient(90deg,#7dd3fc,#3b82f6,#8b5cf6)}.feed-card--completed .feed-card__ribbon--day{background:linear-gradient(90deg,#22c55e,#06b6d4)}.feed-card--tomorrow .feed-card__ribbon--day{background:repeating-linear-gradient(135deg,#fff0 0 4px,#ffffff2e 4px 8px),linear-gradient(90deg,#a78bfa,#22d3ee);opacity:.92}.feed-card__kindbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-height:22px}.feed-card__kindchip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;font-family:var(--font-mono);font-size:.5625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;line-height:1}.feed-card__kindchip-text{line-height:1}.feed-card__kindchip-icon{flex-shrink:0}.feed-card__kindchip--today{background:linear-gradient(100deg,color-mix(in srgb,var(--color-primary) 28%,transparent),color-mix(in srgb,var(--color-cyan) 28%,transparent));color:var(--color-text);border:1px solid color-mix(in srgb,var(--color-primary) 42%,transparent);box-shadow:0 0 16px -6px color-mix(in srgb,var(--color-primary) 60%,transparent);letter-spacing:.26em;padding-left:9px}.feed-card__kindchip-dot{width:6px;height:6px;border-radius:50%;background:var(--color-cyan);box-shadow:0 0 8px color-mix(in srgb,var(--color-cyan) 80%,transparent);animation:feed-card-livedot 2.4s ease-in-out infinite;flex-shrink:0}@keyframes feed-card-livedot{0%,to{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}@media(prefers-reduced-motion:reduce){.feed-card__kindchip-dot{animation:none;opacity:.85}}.feed-card__kindchip--tomorrow{background:color-mix(in srgb,var(--color-purple) 10%,transparent);color:var(--color-purple);border:1px dashed color-mix(in srgb,var(--color-purple) 50%,transparent)}.feed-card__kindchip--yesterday{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent);color:var(--color-text-secondary);border:1px solid color-mix(in srgb,var(--color-text-muted) 24%,transparent)}.feed-card--completed .feed-card__kindchip--yesterday{background:color-mix(in srgb,var(--color-green) 14%,transparent);color:var(--color-green);border-color:color-mix(in srgb,var(--color-green) 32%,transparent)}.feed-card__kindchip-date{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.06em;color:var(--color-text-muted)}.feed-card__head{display:flex;align-items:center;gap:12px;min-height:44px}.feed-card__profile{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:6px 8px;margin:-6px -8px;border-radius:10px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease}@media(hover:hover){.feed-card__profile:hover{background:color-mix(in srgb,var(--color-primary) 7%,transparent)}.feed-card__profile:hover .feed-card__display{color:var(--color-primary)}}.feed-card__profile:active,.feed-card__profile.feed-card__profile--pressed{background:color-mix(in srgb,var(--color-primary) 14%,transparent);transition:none}.feed-card__stamp{position:relative;width:44px;height:44px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#7dd3fc,#3b82f6);display:grid;place-items:center;color:#fff;font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;flex-shrink:0;border:2px solid var(--color-surface);box-shadow:0 4px 10px #0f172a2e}.feed-card__stamp img{width:100%;height:100%;object-fit:cover}.feed-card__head-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.feed-card__display{font-family:var(--font-heading);font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--color-text);line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-card__handle{display:inline-block;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.02em;color:var(--color-text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-card__badge{font-family:var(--font-mono);font-size:.5625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;border-radius:4px;background:#22c55e24;color:var(--color-green);flex-shrink:0}.feed-card__badge--coach{background:#8b5cf624;color:var(--color-purple)}.feed-card__arrow{font-size:1.125rem;color:var(--color-text-muted);opacity:.4;transition:opacity .22s ease,transform .22s ease;flex-shrink:0}.feed-card__more{margin-left:auto;display:inline-flex;align-items:center;flex-shrink:0}.feed-card__totals{display:flex;gap:24px;margin:12px 0 4px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--color-primary) 5%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 14%,transparent);position:relative}.feed-card--today .feed-card__totals{background:color-mix(in srgb,var(--color-primary) 8%,transparent);border-color:color-mix(in srgb,var(--color-primary) 22%,transparent)}.feed-card--tomorrow .feed-card__totals{background:color-mix(in srgb,var(--color-purple) 6%,transparent);border-color:color-mix(in srgb,var(--color-purple) 18%,transparent)}.feed-card--yesterday .feed-card__totals{background:color-mix(in srgb,var(--color-green) 5%,transparent);border-color:color-mix(in srgb,var(--color-green) 18%,transparent)}.feed-card--tomorrow .feed-card__totals-value{color:var(--color-purple)}.feed-card__totals-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.feed-card__totals-label{font-family:var(--font-mono);font-size:.5625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted)}.feed-card__totals-value{font-family:var(--font-heading);font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);line-height:1}.feed-card__totals-value--actual{color:#22c55e}.feed-card__totals-unit{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--color-text-muted);margin-left:3px}.feed-card__sessions{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.feed-card__session+.feed-card__session{padding-top:12px;border-top:1px dashed rgba(148,163,184,.22)}.feed-card__session-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.feed-card__session-label{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-text);letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-card__session-miles{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--color-primary);flex-shrink:0}.feed-card--tomorrow .feed-card__session-miles{color:var(--color-purple)}.feed-card--yesterday .feed-card__session-miles{color:var(--color-green)}.feed-card__session-desc{margin:4px 0 0;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.feed-card__synced{margin-top:8px;padding:9px 11px;border-radius:8px;background:#22c55e0f;border:1px solid rgba(34,197,94,.18)}.feed-card__synced-stats{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text)}.feed-card__synced-stats strong{font-weight:700}.feed-card__synced-sep{opacity:.4}.feed-card__synced-unit{font-size:.6875rem;font-weight:500;color:var(--color-text-muted);margin-left:2px}.feed-card__synced-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.5625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:#22c55e24;color:var(--color-green);margin-bottom:8px;max-width:max-content}.feed-card__synced-pill-sep{opacity:.55}.feed-card__synced-pill-time{font-weight:600;letter-spacing:.06em;text-transform:lowercase;color:var(--color-text)}.feed-card__synced-parsed{margin:6px 0 0;font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-mono);line-height:1.4}.feed-card__synced{position:relative;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding-right:22px}.feed-card__synced-caret{position:absolute;top:8px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;color:var(--color-text-muted);background:#22c55e14;opacity:.75;pointer-events:none;transition:transform .22s ease,opacity .22s ease,color .22s ease,background .22s ease}.feed-card__synced-caret--open{opacity:1;color:#22c55e;background:#22c55e2e;transform:rotate(180deg)}@media(hover:hover){.feed-card__synced:hover .feed-card__synced-caret{opacity:1}}.feed-card__synced--open{background:#22c55e14}.feed-card__synced-expanded{margin-top:10px;padding-top:10px;border-top:1px solid rgba(34,197,94,.18);display:flex;flex-direction:column;gap:10px}.feed-card__splits{display:grid;grid-template-columns:minmax(28px,auto) minmax(48px,1fr) minmax(80px,1fr);column-gap:14px;row-gap:2px;font-family:var(--font-mono);font-size:.75rem;color:var(--color-text)}.feed-card__splits--hr{grid-template-columns:minmax(28px,auto) minmax(48px,1fr) minmax(80px,1fr) minmax(36px,auto)}.feed-card__splits-head{display:contents;font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}.feed-card__splits-head>span{padding:6px 0 4px;border-bottom:1px dashed rgba(148,163,184,.22)}.feed-card__splits-head-hr,.feed-card__splits-hr{text-align:right}.feed-card__splits-row{display:contents}.feed-card__splits-row>span{padding:6px 0;border-bottom:1px dashed rgba(148,163,184,.14)}.feed-card__splits-row:last-child>span{border-bottom:none}.feed-card__splits-label{color:var(--color-text-secondary);font-weight:600}.feed-card__splits-time,.feed-card__splits-pace{font-weight:600;color:var(--color-text);white-space:nowrap}.feed-card__splits-hr{color:var(--color-text-secondary);white-space:nowrap}.feed-card__synced-cta{display:inline-block;align-self:flex-start;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.04em;color:var(--color-primary);padding:6px 10px;border-radius:6px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease}@media(hover:hover){.feed-card__synced-cta:hover{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}}.feed-card__synced-cta:active,.feed-card__synced-cta.feed-card__synced-cta--pressed{background:color-mix(in srgb,var(--color-primary) 28%,transparent);transition:none}@media(max-width:640px){.feed-card{padding:14px 12px 12px;border-radius:12px}.feed-card__head{gap:10px}.feed-card__stamp{width:38px;height:38px;font-size:.9375rem}.feed-card__totals{padding:10px 12px;gap:18px;margin-top:12px}.feed-card__totals-value{font-size:1.25rem}.feed-card__session-label{font-size:.9375rem}}.feed-page{max-width:720px;margin:0 auto;padding:24px 20px 60px;position:relative}.feed-page:before{content:"";position:absolute;top:-40px;left:50%;transform:translate(-50%);width:100vw;height:320px;pointer-events:none;z-index:0;background:radial-gradient(560px 240px at 30% 0%,color-mix(in srgb,var(--color-cyan) 14%,transparent),transparent 70%),radial-gradient(640px 260px at 70% 8%,color-mix(in srgb,var(--color-purple) 12%,transparent),transparent 72%);filter:blur(2px);opacity:.85}.feed-page>*{position:relative;z-index:1}@media(max-width:640px){.feed-page{padding-left:0;padding-right:0}}.feed-page__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding:0 4px}.feed-page__eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-secondary);padding:6px 11px 6px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 22%,transparent);position:relative}.feed-page__eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-cyan);box-shadow:0 0 8px color-mix(in srgb,var(--color-cyan) 70%,transparent);animation:feed-eyebrow-pulse 2.6s ease-in-out infinite}@keyframes feed-eyebrow-pulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){.feed-page__eyebrow:before{animation:none;opacity:.8}}.feed-page__title{font-family:var(--font-heading);font-size:2.25rem;font-weight:600;letter-spacing:-.02em;margin:0;color:var(--color-text)}.feed-page__status,.feed-page__gate{padding:60px 20px;text-align:center;color:var(--color-text-muted)}.feed-page__empty{padding:56px 28px;margin:0 4px;text-align:center;color:var(--color-text-secondary);border:1px dashed color-mix(in srgb,var(--color-text-muted) 32%,transparent);border-radius:18px;background:radial-gradient(280px 140px at 50% 0%,color-mix(in srgb,var(--color-primary) 6%,transparent),transparent 70%)}.feed-page__empty h2{font-family:var(--font-heading);font-size:1.375rem;font-weight:600;letter-spacing:-.015em;color:var(--color-text);margin:0 0 8px}.feed-page__empty p{margin:0 auto;font-size:.9375rem;max-width:38ch;line-height:1.55}.feed-page__list{display:flex;flex-direction:column;gap:14px}@media(max-width:640px){.feed-page{padding-top:0;margin-top:-.5rem}.feed-page__title{font-size:1.75rem}.feed-page__top{gap:12px;margin-bottom:14px}.feed-page__list{gap:12px}}.follow-btn{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:9px 18px;border-radius:999px;border:1.5px solid var(--color-primary);background:var(--color-primary);color:#fff;font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.follow-btn--compact{min-width:80px;padding:7px 14px;font-size:.8125rem}.follow-btn--active{background:transparent;color:var(--color-text);border-color:var(--color-text-muted)}.follow-btn--pending{background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary);border:1.5px dashed color-mix(in srgb,var(--color-primary) 55%,transparent)}.follow-btn__label--hover{display:none}@media(hover:hover){.follow-btn:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.follow-btn--active:hover:not(:disabled){background:#ef444414;border-color:var(--color-red);color:var(--color-red)}.follow-btn--active:hover:not(:disabled) .follow-btn__label--rest{display:none}.follow-btn--active:hover:not(:disabled) .follow-btn__label--hover{display:inline}.follow-btn--pending:hover:not(:disabled){background:#ef444414;border-color:var(--color-red);border-style:solid;color:var(--color-red)}.follow-btn--pending:hover:not(:disabled) .follow-btn__label--rest{display:none}.follow-btn--pending:hover:not(:disabled) .follow-btn__label--hover{display:inline}}.follow-btn:active:not(.follow-btn--active):not(.follow-btn--pending),.follow-btn.follow-btn--pressed:not(.follow-btn--active):not(.follow-btn--pending){transform:scale(.97);background:var(--color-primary-hover);transition:none}.follow-btn--active:active,.follow-btn--active.follow-btn--pressed,.follow-btn--pending:active,.follow-btn--pending.follow-btn--pressed{transform:scale(.97);transition:none}.follow-btn:disabled{opacity:.6;cursor:default}.more-actions{position:relative;display:inline-flex}.more-actions__trigger{background:transparent;border:1px solid var(--color-border);border-radius:8px;padding:6px 8px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:background-color .12s,color .12s,border-color .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.more-actions__trigger:hover{background:var(--color-bg);color:var(--color-text)}}.more-actions__trigger:active,.more-actions__trigger--pressed{background:var(--color-bg);color:var(--color-text);transition:none}.more-actions__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-md, 0 12px 32px rgba(0, 0, 0, .14));padding:6px;display:flex;flex-direction:column;gap:2px;z-index:80;animation:more-actions-fade .11s ease-out}@keyframes more-actions-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.more-actions__item{appearance:none;background:transparent;border:none;text-align:left;padding:8px 10px;font-size:.9rem;color:var(--color-text);border-radius:8px;cursor:pointer;transition:background-color .1s,color .1s;min-height:2.1rem;display:flex;align-items:center}.more-actions__item:hover,.more-actions__item:focus-visible{background:var(--color-bg);outline:none}.more-actions__item--destructive{color:var(--color-red)}.more-actions__item--destructive:hover{background:var(--color-red-light)}.more-actions__item:disabled{opacity:.85;cursor:default}.more-actions__item-busy{display:inline-flex;align-items:center;gap:8px;line-height:1}.profile-header{position:relative;background:var(--color-surface);border:1px solid rgba(148,163,184,.16);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 2px #0f172a0d;margin-bottom:18px}.profile-header__accent{height:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 45%,#8b5cf6)}.profile-header__body{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:22px 24px;align-items:start}.profile-header__avatar-wrap{flex-shrink:0}.profile-header__avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;background:var(--color-surface);border:1.5px solid rgba(148,163,184,.2)}.profile-header__avatar--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#7dd3fc,#3b82f6);border:0;background-clip:padding-box;color:#fff;font-family:var(--font-heading);font-size:1.875rem;font-weight:600;letter-spacing:-.02em}.profile-header__identity{display:flex;flex-direction:column;gap:4px;min-width:0}.profile-header__eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:2px;min-height:14px}.profile-header__eyebrow-label{font-family:var(--font);font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.profile-header__visibility{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-family:var(--font);font-size:.625rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1;background:color-mix(in srgb,var(--color-text) 7%,transparent);border:1px solid color-mix(in srgb,var(--color-text) 14%,transparent);color:var(--color-text-secondary)}.profile-header__visibility svg{opacity:.85}.profile-header__name-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.profile-header__name{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--color-text);margin:0;flex:1;min-width:0}.profile-header__actions{display:flex;align-items:center;gap:8px}.profile-header__blocked-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:96px;padding:9px 16px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--color-red) 60%,var(--color-border));background:color-mix(in srgb,var(--color-red) 10%,transparent);color:var(--color-red);font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:.01em;-webkit-user-select:none;user-select:none;cursor:default}.profile-header__blocked-pill svg{opacity:.85}.profile-header__actions-self{display:flex;align-items:center;gap:8px}.profile-header__edit-btn{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:9px 18px;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}@media(hover:hover){.profile-header__edit-btn:hover{border-color:var(--color-text-muted);background:var(--color-bg)}}.profile-header__edit-btn:active,.profile-header__edit-btn.profile-header__edit-btn--pressed{transform:scale(.97);border-color:var(--color-text-muted);background:var(--color-bg);transition:none}.profile-header__share-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}@media(hover:hover){.profile-header__share-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface))}}.profile-header__share-btn:active:not(:disabled),.profile-header__share-btn.profile-header__share-btn--pressed:not(:disabled){transform:scale(.93);border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));transition:none}.profile-header__share-btn:disabled{opacity:.5;cursor:not-allowed}.profile-header__bio-chip{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin:8px 0 0;padding:6px 12px;border-radius:999px;border:1.5px dashed color-mix(in srgb,var(--color-text-muted) 60%,transparent);background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:.8125rem;font-weight:500;letter-spacing:.005em;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.profile-header__bio-chip-plus{font-family:var(--font-mono);font-size:.9375rem;line-height:1;font-weight:500;color:inherit;margin-right:1px}@media(hover:hover){.profile-header__bio-chip:hover{color:var(--color-primary);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}}.profile-header__bio-chip:active,.profile-header__bio-chip.profile-header__bio-chip--pressed{transform:scale(.97);color:var(--color-primary);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);transition:none}.profile-header__username{font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-muted);margin:0;letter-spacing:-.01em}.profile-header__bio{margin:8px 0 0;color:var(--color-text-secondary);font-size:.9375rem;line-height:1.5;max-width:60ch}.profile-header__badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.profile-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-family:var(--font);font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;line-height:1}.profile-badge--self{background:color-mix(in srgb,var(--color-text) 8%,transparent);border-color:color-mix(in srgb,var(--color-text) 16%,transparent);color:var(--color-text)}.profile-badge--athlete{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary)}.profile-badge--coach{background:color-mix(in srgb,#8b5cf6 14%,transparent);border-color:color-mix(in srgb,#8b5cf6 30%,transparent);color:#8b5cf6}.profile-badge--location{background:color-mix(in srgb,var(--color-text) 6%,transparent);border-color:color-mix(in srgb,var(--color-text) 14%,transparent);color:var(--color-text-secondary);text-transform:none;letter-spacing:0;font-weight:500;font-size:.75rem}.profile-badge--location svg{opacity:.85}[data-theme=dark] .profile-badge--coach{color:#a78bfa;background:color-mix(in srgb,#a78bfa 14%,transparent);border-color:color-mix(in srgb,#a78bfa 32%,transparent)}.profile-header__meta{display:flex;align-items:center;gap:4px;font-size:.8125rem;color:var(--color-text-muted);margin:10px 0 0 -8px}.profile-header__meta-link{display:inline-flex;align-items:baseline;gap:4px;padding:4px 8px;border:0;background:transparent;border-radius:999px;color:var(--color-text-muted);font-family:var(--font);font-size:.8125rem;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease,color .16s ease}.profile-header__meta-link strong{color:var(--color-text);font-weight:600;font-family:var(--font-heading);letter-spacing:-.01em;transition:color .16s ease}@media(hover:hover){.profile-header__meta-link:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-primary)}.profile-header__meta-link:hover:not(:disabled) strong{color:var(--color-primary)}}.profile-header__meta-link:active:not(:disabled),.profile-header__meta-link.profile-header__meta-link--pressed:not(:disabled){background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary);transition:none}.profile-header__meta-link:active:not(:disabled) strong,.profile-header__meta-link.profile-header__meta-link--pressed:not(:disabled) strong{color:var(--color-primary)}.profile-header__meta-link:disabled{cursor:default}.profile-header__meta-dot{opacity:.6}@media(max-width:640px){.profile-header__body{padding:18px;gap:14px}.profile-header__avatar{width:56px;height:56px}.profile-header__avatar--placeholder{font-size:1.5rem}.profile-header__name{font-size:1.25rem}.profile-header__edit-btn{min-width:0;padding:8px 14px;font-size:.8125rem}.profile-header__share-btn{width:34px;height:34px}}.public-day-body{display:flex;flex-direction:column;gap:14px}.public-day-body__sessions,.public-day-body__session-wrap{display:block}.public-day-body__insights{animation:public-day-body-insights-in .45s cubic-bezier(.2,.7,.2,1) both}.public-day-body>.public-day-body__sessions>.public-day-body__session-wrap:first-child>.compliance-row:first-child{margin-top:0}.public-day-body__insights-skeleton{display:flex;flex-direction:column;gap:.625rem}.public-day-body__skeleton-card{height:84px;border-radius:var(--radius);background:linear-gradient(100deg,#94a3b814,#94a3b829,#94a3b814 80%);background-size:220% 100%;animation:public-day-body-shimmer 1.4s ease-in-out infinite;opacity:0;animation:public-day-body-shimmer 1.4s ease-in-out infinite,public-day-body-fade .45s ease both}.public-day-body__skeleton-card--tall{height:140px}.public-day-body--dark .public-day-body__skeleton-card{background:linear-gradient(100deg,#ffffff0d,#ffffff1f,#ffffff0d 80%);background-size:220% 100%}@keyframes public-day-body-shimmer{0%{background-position:220% 0}to{background-position:-120% 0}}@keyframes public-day-body-insights-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.public-day-body__rest{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:44px 0 28px;color:var(--color-text-secondary);animation:public-day-body-fade .45s ease both;animation-delay:80ms}.public-day-body__rest-glyph{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.public-day-body__rest-title{margin:0;font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text)}.public-day-body__rest-sub{margin:0;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;color:var(--color-text-muted)}.public-day-body--dark .public-day-body__rest-glyph{background:#ffffff0f;border-color:#ffffff29;color:#ffffffb3}.public-day-body--dark .public-day-body__rest-title{color:#fff}.public-day-body--dark .public-day-body__rest-sub{color:#ffffffa6}@keyframes public-day-body-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.public-day-modal{max-width:560px;width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:26px 28px 28px;display:flex;flex-direction:column;overflow:hidden}.public-day-modal__header{margin-bottom:18px;padding-right:36px;animation:public-day-modal-fade .5s ease both}.public-day-modal__eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:8px}.public-day-modal__week{padding-left:10px;border-left:1px solid var(--color-border);font-weight:500;letter-spacing:.14em;color:var(--color-text-muted)}.modal-content--dark .public-day-modal__week{border-left-color:#ffffff38;color:#ffffffb3}.public-day-modal__dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.public-day-modal__date{margin:0 0 6px;font-family:var(--font-heading);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);line-height:1.15}.public-day-modal__meta{margin:0;display:inline-flex;align-items:baseline;gap:6px;font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-secondary)}.public-day-modal__meta-miles{font-weight:700;font-size:1rem;color:var(--color-text);font-variant-numeric:tabular-nums}.public-day-modal__meta-unit{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.public-day-modal__meta-divider{color:var(--color-text-muted);opacity:.5;padding:0 2px}.public-day-modal__meta-sessions{font-size:.75rem;letter-spacing:.04em;color:var(--color-text-muted)}.public-day-modal__meta-rest{font-weight:600;letter-spacing:.04em;color:var(--color-text)}.public-day-modal__body{flex:1;overflow-y:auto;margin:0 -28px -28px;padding:0 28px 28px;scrollbar-width:thin}.public-day-modal__body::-webkit-scrollbar{width:6px}.public-day-modal__body::-webkit-scrollbar-track{background:transparent}.public-day-modal__body::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:3px}.modal-content--dark.public-day-modal .public-day-modal__date{color:#fff}.modal-content--dark.public-day-modal .public-day-modal__eyebrow{color:#ffffffc7}.modal-content--dark.public-day-modal .public-day-modal__dot{background:#fff;box-shadow:0 0 0 3px #ffffff2e}.modal-content--dark.public-day-modal .public-day-modal__meta{color:#ffffffc7}.modal-content--dark.public-day-modal .public-day-modal__meta-miles,.modal-content--dark.public-day-modal .public-day-modal__meta-rest{color:#fff}.modal-content--dark.public-day-modal .public-day-modal__meta-unit,.modal-content--dark.public-day-modal .public-day-modal__meta-sessions,.modal-content--dark.public-day-modal .public-day-modal__meta-divider{color:#fff9}.modal-content--dark.public-day-modal .public-day-modal__body::-webkit-scrollbar-thumb{background:#ffffff38}@media(max-width:600px){.public-day-modal{padding:22px 20px;max-height:calc(100vh - 24px)}.public-day-modal__body{margin:0 -20px -22px;padding:0 20px 22px}.public-day-modal__date{font-size:1.3rem}}@keyframes public-day-modal-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.profile-page{max-width:1200px;margin:0 auto;padding:20px 16px 60px}@media(max-width:640px){.profile-page{padding-top:0;margin-top:-.5rem;padding-left:0;padding-right:0}}.profile-page__crumb{display:inline-flex;align-items:center;gap:6px;margin:2px 4px 10px;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);animation:profile-crumb-rise .32s cubic-bezier(.22,1,.36,1) both}@keyframes profile-crumb-rise{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.profile-page__back{display:inline-flex;align-items:center;gap:5px;padding:5px 9px 5px 6px;background:transparent;border:0;border-radius:999px;color:var(--color-text-muted);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:color .16s ease,background .16s ease}.profile-page__back svg{opacity:.7;transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .16s ease}.profile-page__back-label{letter-spacing:.12em}@media(hover:hover){.profile-page__back:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.profile-page__back:hover svg{opacity:1;transform:translate(-2px)}}.profile-page__back:active,.profile-page__back.profile-page__back--pressed{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,transparent);transition:none}.profile-page__back:active svg,.profile-page__back.profile-page__back--pressed svg{opacity:1;transform:translate(-3px);transition:none}.profile-page__crumb-sep{opacity:.5;margin-top:-1px}.profile-page__crumb-here{color:var(--color-text);font-weight:700;letter-spacing:.14em}.profile-page--status{text-align:center;padding-top:80px;color:var(--color-text-muted)}.profile-page--status h1{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-text);margin:0 0 8px}.profile-page--status p{margin:0;font-size:.9375rem}.profile-page__empty{text-align:center;padding:60px 20px;background:var(--color-surface);border:1px dashed rgba(148,163,184,.3);border-radius:var(--radius-lg);margin-top:20px}.profile-page__empty h2{font-family:var(--font-heading);font-size:1.25rem;color:var(--color-text);margin:0 0 8px}.profile-page__empty p{color:var(--color-text-secondary);font-size:.9375rem;max-width:40ch;margin:0 auto}.profile-page__empty-cta{display:inline-flex;align-items:center;justify-content:center;margin-top:18px;padding:10px 22px;min-height:2.4rem;border-radius:999px;border:0;background:var(--color-primary);color:#fff;font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,transform .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.profile-page__empty-cta:hover{background:var(--color-primary-hover)}}.profile-page__empty-cta:active,.profile-page__empty-cta.profile-page__empty-cta--pressed{transform:scale(.97);background:var(--color-primary-hover);transition:none}.profile-page__empty-cta:disabled{opacity:.8;cursor:default;transform:none}.profile-page__empty-cta-busy{display:inline-flex;align-items:center;gap:8px;line-height:1}.profile-page__empty--locked{background:color-mix(in srgb,var(--color-primary) 4%,var(--color-surface));border-style:solid;border-color:color-mix(in srgb,var(--color-primary) 18%,var(--color-border))}.profile-page__lock-glyph{width:44px;height:44px;margin:0 auto 14px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary)}.plan-summary{position:relative;background:var(--color-surface);border:1px solid rgba(148,163,184,.16);border-radius:var(--radius-lg);margin-bottom:18px;overflow:hidden;box-shadow:0 1px 2px #0f172a0d}.plan-summary__accent{height:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 45%,#8b5cf6)}.plan-summary__body{padding:18px 24px 20px}.plan-summary__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.plan-summary__head-left{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-summary__eyebrow{font-family:var(--font-mono);font-size:.625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted)}.plan-summary__title{font-family:var(--font-heading);font-size:1.625rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin:0;line-height:1.15}.plan-summary__countdown{font-family:var(--font-mono);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;padding:5px 10px;border-radius:6px;background:#3b82f61a;color:var(--color-primary);white-space:nowrap;align-self:center}.plan-summary__divider{height:1px;background:#94a3b82e;margin:16px 0 14px}.plan-summary__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0}.plan-summary__stats>div{display:flex;flex-direction:column;gap:3px;min-width:0}.plan-summary__stats dt{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted);margin:0}.plan-summary__stats dd{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-text);margin:0;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-summary__stat-sub{font-family:var(--font);font-weight:500;color:var(--color-text-muted);font-size:.875rem;letter-spacing:0}@media(max-width:640px){.plan-summary__body{padding:16px 18px 18px}.plan-summary__title{font-size:1.375rem}.plan-summary__stats{grid-template-columns:1fr 1fr}.plan-summary__stats>div:last-child{grid-column:1 / -1}}.public-day-page{max-width:640px;margin:0 auto;padding:.25rem 1rem 1.5rem;position:relative}@media(max-width:480px){.public-day-page{margin-top:-1rem;padding-left:.875rem;padding-right:.875rem}}.public-day-page--status{min-height:50vh;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.public-day-page__loader{width:28px;height:28px;margin:4rem auto 0;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:public-day-spin .7s linear infinite}@keyframes public-day-spin{to{transform:rotate(360deg)}}.public-day-page__bar{display:flex;align-items:center;gap:12px;padding:6px 0 14px;animation:public-day-page-fade .45s ease both}.public-day-page__bar-meta{display:flex;align-items:baseline;gap:10px;min-width:0;flex:1}.public-day-page__bar-profile{display:inline-flex;align-items:baseline;gap:8px;min-width:0;text-decoration:none;padding:2px 6px;margin:-2px -6px;border-radius:6px;transition:background .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.public-day-page__bar-profile:hover{background:var(--color-surface)}.public-day-page__bar-profile:hover .public-day-page__bar-display{color:var(--color-primary)}.public-day-page__bar-profile:hover .public-day-page__bar-username{color:var(--color-text)}}.public-day-page__bar-profile:active,.public-day-page__bar-profile.public-day-page__bar-profile--pressed{background:var(--color-surface);transition:none}.public-day-page__bar-profile:active .public-day-page__bar-display,.public-day-page__bar-profile.public-day-page__bar-profile--pressed .public-day-page__bar-display{color:var(--color-primary);transition:none}.public-day-page__bar-profile:active .public-day-page__bar-username,.public-day-page__bar-profile.public-day-page__bar-profile--pressed .public-day-page__bar-username{color:var(--color-text);transition:none}.public-day-page__bar-display{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color .16s ease}.public-day-page__bar-username{font-family:var(--font-mono);font-size:.8125rem;font-weight:600;color:var(--color-text-muted);letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .16s ease}.public-day-page__bar-week{font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.public-day-page__hero{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--color-border);animation:public-day-page-fade .5s ease both}.public-day-page__date{margin:0;font-family:var(--font-heading);font-size:1.75rem;font-weight:600;letter-spacing:-.025em;line-height:1.1;color:var(--color-text)}@media(max-width:380px){.public-day-page__date{font-size:1.5rem}}.public-day-page__edit-link{align-self:flex-start;margin-top:6px;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;padding:4px 8px;margin-left:-8px;border-radius:6px;transition:color .16s ease,background .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(hover:hover){.public-day-page__edit-link:hover{color:var(--color-primary);background:var(--color-surface)}}.public-day-page__edit-link:active,.public-day-page__edit-link.public-day-page__edit-link--pressed{color:var(--color-primary);background:var(--color-surface);transition:none}.public-day-page__body{animation:public-day-page-fade .55s ease both}.public-day-page__empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:4rem 1rem 2rem}.public-day-page__empty h2{margin:0;font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--color-text)}.public-day-page__empty p{margin:0;color:var(--color-text-muted);font-size:.9375rem}body.has-public-day-page .app-footer{margin-top:.5rem}@keyframes public-day-page-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.user-search{position:relative;width:100%;max-width:520px}.user-search__input-wrap{position:relative;display:flex;align-items:center}.user-search__icon{position:absolute;left:14px;width:16px;height:16px;color:var(--color-text-muted);pointer-events:none}.user-search__input{width:100%;padding:12px 14px 12px 38px;border:1.5px solid rgba(148,163,184,.4);border-radius:999px;background:var(--color-surface);color:var(--color-text);font-family:var(--font);font-size:.9375rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.user-search__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.user-search__input::-webkit-search-cancel-button{-webkit-appearance:none}.user-search__results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--color-surface);border:1px solid rgba(148,163,184,.25);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:80;max-height:360px;overflow-y:auto}.user-search__hint{padding:14px 18px;color:var(--color-text-muted);font-size:.875rem}.user-search__row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--color-text);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .14s ease,transform .14s ease}@media(hover:hover){.user-search__row:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.user-search__row:hover:not(:disabled) .user-search__display{color:var(--color-primary)}}.user-search__row:active:not(:disabled){background:color-mix(in srgb,var(--color-text) 9%,transparent);transform:scale(.985);transition:none}.user-search__row:disabled{opacity:.5;cursor:not-allowed}.user-search__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(135deg,#7dd3fc,#3b82f6);color:#fff;font-family:var(--font-heading);font-size:1rem;font-weight:600}.user-search__name{display:flex;flex-direction:column;gap:2px;min-width:0}.user-search__display{font-size:.9375rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .14s ease}.user-search__username{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted)}.user-search__display-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.user-search__display-row .user-search__display{flex:0 1 auto;min-width:0;max-width:100%}.user-search__badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-family:var(--font);font-size:.625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;line-height:1;flex-shrink:0}.user-search__badge--self{background:color-mix(in srgb,var(--color-text) 8%,transparent);border-color:color-mix(in srgb,var(--color-text) 16%,transparent);color:var(--color-text)}.user-search__badge--athlete{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary)}.user-search__badge--coach{background:color-mix(in srgb,#8b5cf6 14%,transparent);border-color:color-mix(in srgb,#8b5cf6 30%,transparent);color:#8b5cf6}[data-theme=dark] .user-search__badge--coach{color:#a78bfa;background:color-mix(in srgb,#a78bfa 14%,transparent);border-color:color-mix(in srgb,#a78bfa 32%,transparent)}@media(hover:hover){.user-search__row:hover:not(:disabled) .user-search__badge--self{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}}.search-page{position:relative;max-width:640px;margin:0 auto;padding:28px 20px 80px}.search-page__ribbon{position:absolute;top:0;left:20px;right:20px;height:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 70%,#1e3a8a);border-radius:0 0 3px 3px;transform-origin:left center;animation:search-ribbon .36s cubic-bezier(.22,1,.36,1) both}@keyframes search-ribbon{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.search-page__bar{display:flex;align-items:center;gap:12px;margin:18px 0;animation:search-rise .28s ease-out both;animation-delay:60ms}.search-page__back{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.search-page__back:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.search-page__back:active,.search-page__back.search-page__back--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.search-page__eyebrow{font-family:var(--font-heading);font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--color-primary);flex:1;min-width:0}.search-page__kbd{display:inline-flex;align-items:center;gap:4px}.search-page__kbd kbd,.search-page__foot-kbd kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:5px;box-shadow:inset 0 -1px color-mix(in srgb,var(--color-border) 80%,transparent)}.search-page__title{font-family:var(--font-heading);font-size:2.4rem;font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:0 0 18px;color:var(--color-text);animation:search-rise .28s ease-out both;animation-delay:.1s}.search-page__field-row{animation:search-rise .28s ease-out both;animation-delay:.14s}.search-page__cancel{display:none}.search-page__field .user-search{max-width:100%}.search-page__field .user-search__input{font-size:1rem;padding-top:14px;padding-bottom:14px;background:var(--color-surface)}.search-page__field .user-search__input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 14%,transparent)}.search-page__foot{display:flex;align-items:center;gap:8px;margin-top:28px;padding-top:14px;border-top:1px dashed color-mix(in srgb,var(--color-border) 70%,transparent);font-family:var(--font);font-size:.75rem;color:var(--color-text-muted);animation:search-rise .28s ease-out both;animation-delay:.22s}.search-page__foot-kbd{display:inline-flex;align-items:center;gap:3px}@keyframes search-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.search-page__hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 16px 32px;color:var(--color-text-muted);text-align:center;animation:search-rise .32s ease-out both;animation-delay:.2s}.search-page__hint p{margin:0;font-size:.875rem;line-height:1.4;max-width:30ch}.search-page__hint svg{opacity:.55}@media(max-width:600px){.search-page{padding:0 14px 24px;min-height:calc(100dvh - var(--header-height, 80px));display:flex;flex-direction:column}.search-page__ribbon,.search-page__bar,.search-page__title,.search-page__foot{display:none}.search-page__field-row{display:flex;align-items:flex-start;gap:10px;position:sticky;top:0;padding:8px 0 10px;background:var(--color-bg);z-index:5;animation:none}.search-page__field{flex:1;min-width:0}.search-page__field .user-search__input{padding-top:11px;padding-bottom:11px;font-size:.9375rem;background:color-mix(in srgb,var(--color-text) 6%,transparent);border:1px solid transparent;border-radius:10px}[data-theme=dark] .search-page__field .user-search__input{background:color-mix(in srgb,var(--color-text) 10%,transparent)}.search-page__field .user-search__input:focus{background:var(--color-surface);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);box-shadow:none}.search-page__field .user-search__icon{left:11px;width:15px;height:15px}.search-page__cancel{display:inline-flex;flex-shrink:0;padding:11px 2px;background:transparent;border:0;color:var(--color-primary);font-family:var(--font);font-size:.9375rem;font-weight:500;letter-spacing:-.005em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:opacity .12s ease}.search-page__cancel:active,.search-page__cancel.search-page__cancel--pressed{opacity:.55;transition:none}.search-page .user-search__results{position:static;top:auto;background:transparent;border:0;border-radius:0;box-shadow:none;max-height:none;overflow:visible;margin-top:4px}.search-page .user-search__hint{padding:16px 4px;color:var(--color-text-muted);font-size:.875rem}.search-page .user-search__row{padding:10px 6px;border-radius:10px;transition:background .12s ease,transform .12s ease}.search-page .user-search__avatar{width:44px;height:44px}.search-page .user-search__display{font-size:.9375rem;font-weight:600}.search-page .user-search__username{font-family:var(--font);font-size:.8125rem;color:var(--color-text-muted)}.search-page__hint{padding:60px 16px 40px;flex:1;justify-content:flex-start}}.follow-list-backdrop{position:fixed;inset:0;z-index:220;display:flex;align-items:center;justify-content:center;background:#080c1680;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);animation:follow-list-fade-in .22s cubic-bezier(.22,1,.36,1) forwards;padding:24px}.follow-list-backdrop--closing{animation:follow-list-fade-out .16s ease forwards}[data-theme=dark] .follow-list-backdrop{background:#02040a9e}.follow-list{position:relative;display:flex;flex-direction:column;width:100%;max-width:460px;max-height:min(720px,86vh);background:var(--color-surface);border:1px solid rgba(148,163,184,.18);border-radius:20px;box-shadow:0 24px 70px -20px #0f172a59,0 1px #ffffff0a inset;overflow:hidden;animation:follow-list-rise .32s cubic-bezier(.34,1.4,.64,1)}.follow-list--closing{animation:follow-list-fall .16s ease forwards}[data-theme=dark] .follow-list{box-shadow:0 24px 70px -16px #0009,0 1px #ffffff0a inset}.follow-list__accent{height:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 45%,#8b5cf6);flex-shrink:0}.follow-list__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid rgba(148,163,184,.14);flex-shrink:0;min-height:48px}.follow-list__back{display:none;align-items:center;gap:4px;padding:6px 10px 6px 6px;border:0;background:transparent;border-radius:999px;color:var(--color-text-muted);font-family:var(--font);font-size:.8125rem;font-weight:500;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .14s ease,color .14s ease}.follow-list__back-label{letter-spacing:-.005em}@media(hover:hover){.follow-list__back:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent);color:var(--color-text)}}.follow-list__back:active,.follow-list__back.follow-list__back--pressed{background:color-mix(in srgb,var(--color-text) 10%,transparent);color:var(--color-text);transition:none}.follow-list__title-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;max-width:60%;pointer-events:none;text-align:center}.follow-list__eyebrow{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.06em;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.follow-list__title{font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin:0;line-height:1.1}.follow-list__close{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--color-text) 5%,transparent);color:var(--color-text-secondary);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .16s ease,color .16s ease,transform .18s ease}.follow-list__close-icon{display:block}@media(hover:hover){.follow-list__close:hover{background:color-mix(in srgb,var(--color-text) 10%,transparent);color:var(--color-text)}}.follow-list__close:active,.follow-list__close.follow-list__close--pressed{transform:scale(.92);background:color-mix(in srgb,var(--color-text) 14%,transparent);color:var(--color-text);transition:none}.follow-list__tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:10px 14px 12px;flex-shrink:0}.follow-list__tab{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:0;background:transparent;font-family:var(--font);color:var(--color-text-muted);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:color .2s ease;z-index:1}.follow-list__tab-label{font-size:.875rem;font-weight:600;letter-spacing:.005em}.follow-list__tab-count{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--color-text) 7%,transparent);color:var(--color-text-muted);line-height:1;transition:background .22s ease,color .22s ease}@media(hover:hover){.follow-list__tab:hover:not(.follow-list__tab--active){color:var(--color-text)}.follow-list__tab:hover:not(.follow-list__tab--active) .follow-list__tab-count{color:var(--color-text-secondary)}}.follow-list__tab--active{color:var(--color-text)}.follow-list__tab--active .follow-list__tab-count{background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary)}.follow-list__tab:not(.follow-list__tab--active):active,.follow-list__tab:not(.follow-list__tab--active).follow-list__tab--pressed{color:var(--color-text);transition:none}.follow-list__tab-glider{position:absolute;bottom:4px;left:14px;width:calc(50% - 14px);height:2px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 55%,#8b5cf6);border-radius:2px;transition:transform .32s cubic-bezier(.34,1.4,.64,1);pointer-events:none}.follow-list__tab-glider--followers{transform:translate(0)}.follow-list__tab-glider--following{transform:translate(calc(100% + 0px))}.follow-list__body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 8px 14px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.4) transparent}.follow-list__body::-webkit-scrollbar{width:8px}.follow-list__body::-webkit-scrollbar-thumb{background:#94a3b852;border-radius:999px}.follow-list__rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.follow-list__row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:14px;background:transparent;animation:follow-list-row-in .42s cubic-bezier(.22,1,.36,1) backwards;transition:background .14s ease}@media(hover:hover){.follow-list__row:has(.follow-list__row-main:hover:not(:disabled)){background:color-mix(in srgb,var(--color-primary) 7%,transparent)}.follow-list__row:has(.follow-list__row-main:hover:not(:disabled)) .follow-list__row-name{color:var(--color-primary)}}.follow-list__row:has(.follow-list__row-main:active:not(:disabled)),.follow-list__row:has(.follow-list__row-main.follow-list__row-main--pressed:not(:disabled)){background:color-mix(in srgb,var(--color-text) 9%,transparent);transition:none}.follow-list__row-main{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0;padding:8px 10px;border:0;background:transparent;border-radius:12px;text-align:left;cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform .14s ease}.follow-list__row-main:active:not(:disabled),.follow-list__row-main.follow-list__row-main--pressed:not(:disabled){transform:scale(.99);transition:none}.follow-list__row-main:disabled{opacity:.55;cursor:not-allowed}.follow-list__avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--color-surface);border:1.5px solid rgba(148,163,184,.2);flex-shrink:0}.follow-list__avatar--placeholder{background:linear-gradient(135deg,#7dd3fc,#3b82f6);border:0;background-clip:padding-box;color:#fff;font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}.follow-list__row-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.follow-list__row-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.follow-list__row-name{font-family:var(--font);font-size:.9375rem;font-weight:600;color:var(--color-text);letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color .14s ease}.follow-list__row-handle{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);letter-spacing:-.005em}.follow-list__chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-family:var(--font);font-size:.625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:1px solid transparent;line-height:1;flex-shrink:0}.follow-list__chip--self{background:color-mix(in srgb,var(--color-text) 8%,transparent);border-color:color-mix(in srgb,var(--color-text) 16%,transparent);color:var(--color-text)}.follow-list__chip--athlete{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary)}.follow-list__chip--coach{background:color-mix(in srgb,#8b5cf6 14%,transparent);border-color:color-mix(in srgb,#8b5cf6 30%,transparent);color:#8b5cf6}[data-theme=dark] .follow-list__chip--coach{color:#a78bfa;background:color-mix(in srgb,#a78bfa 14%,transparent);border-color:color-mix(in srgb,#a78bfa 32%,transparent)}.follow-list__row-action{flex-shrink:0;margin-right:4px}.follow-list__empty{text-align:center;padding:36px 24px 44px;display:flex;flex-direction:column;align-items:center}.follow-list__empty-glyph{width:52px;height:52px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);margin-bottom:14px}.follow-list__empty h3{font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;color:var(--color-text);margin:0 0 6px;letter-spacing:-.01em}.follow-list__empty p{margin:0;color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;max-width:32ch}.follow-list__rows--skeleton{list-style:none;margin:0;padding:0}.follow-list__row--skeleton{display:flex;align-items:center;gap:12px;padding:12px 16px;animation:none}.follow-list__skeleton-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(90deg,color-mix(in srgb,var(--color-text) 6%,transparent),color-mix(in srgb,var(--color-text) 12%,transparent),color-mix(in srgb,var(--color-text) 6%,transparent));background-size:200% 100%;animation:follow-list-shimmer 1.4s ease-in-out infinite;flex-shrink:0}.follow-list__skeleton-text{display:flex;flex-direction:column;gap:6px;flex:1}.follow-list__skeleton-line{height:10px;border-radius:4px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-text) 6%,transparent),color-mix(in srgb,var(--color-text) 12%,transparent),color-mix(in srgb,var(--color-text) 6%,transparent));background-size:200% 100%;animation:follow-list-shimmer 1.4s ease-in-out infinite}.follow-list__skeleton-line--name{width:58%}.follow-list__skeleton-line--handle{width:36%;height:8px;opacity:.7}@media(max-width:768px){.follow-list-backdrop{padding:0;background:var(--color-bg);backdrop-filter:none;-webkit-backdrop-filter:none;animation:follow-list-page-in .22s cubic-bezier(.22,1,.36,1) forwards}.follow-list-backdrop--closing{animation:follow-list-page-out .16s ease forwards}[data-theme=dark] .follow-list-backdrop{background:var(--color-bg)}.follow-list{max-width:100%;max-height:100%;height:100%;width:100%;border-radius:0;border:0;box-shadow:none;animation:follow-list-page-slide .24s cubic-bezier(.22,1,.36,1)}.follow-list--closing{animation:follow-list-page-slide-out .16s ease forwards}.follow-list__header{padding-top:max(14px,env(safe-area-inset-top,0px));grid-template-columns:auto 1fr 34px}.follow-list__title{font-size:1rem}.follow-list__back{display:inline-flex}.follow-list__back-label,.follow-list__close{display:none}.follow-list__body{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}}@keyframes follow-list-fade-in{0%{opacity:0}to{opacity:1}}@keyframes follow-list-fade-out{0%{opacity:1}to{opacity:0}}@keyframes follow-list-rise{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes follow-list-fall{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes follow-list-page-in{0%{opacity:0}to{opacity:1}}@keyframes follow-list-page-out{0%{opacity:1}to{opacity:0}}@keyframes follow-list-page-slide{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes follow-list-page-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(8px);opacity:0}}@keyframes follow-list-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes follow-list-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.follow-list-backdrop,.follow-list-backdrop--closing,.follow-list,.follow-list--closing,.follow-list__row,.follow-list__tab-glider,.follow-list__skeleton-avatar,.follow-list__skeleton-line{animation:none!important;transition:none!important}}.crop-modal{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:16px;font-family:var(--font)}.crop-modal__scrim{position:absolute;inset:0;background:#080d1a8c;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);animation:crop-modal-scrim-in .24s cubic-bezier(.22,1,.36,1)}.crop-modal__panel{position:relative;width:100%;max-width:380px;background:var(--color-surface);border-radius:22px;padding:22px 22px 18px;box-shadow:0 1px #ffffff0a inset,0 30px 80px -20px #080d1a8c,0 0 0 1px #94a3b829;animation:crop-modal-panel-in .32s cubic-bezier(.34,1.56,.64,1)}@keyframes crop-modal-scrim-in{0%{opacity:0}to{opacity:1}}@keyframes crop-modal-panel-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.crop-modal__head{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.crop-modal__eyebrow{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}.crop-modal__title{font-family:var(--font-heading);font-size:1.375rem;font-weight:600;letter-spacing:-.018em;color:var(--color-text);margin:0;line-height:1.15}.crop-modal__sub{margin:2px 0 0;font-size:.8125rem;line-height:1.4;color:var(--color-text-muted)}.crop-modal__accent{height:2px;border-radius:2px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 50%,#8b5cf6);margin:14px 0 18px;opacity:.9}.crop-modal__stage{position:relative;width:320px;max-width:100%;aspect-ratio:1 / 1;margin:0 auto;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 30% 20%,rgba(59,130,246,.18),transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(139,92,246,.16),transparent 65%),#0b1220;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;box-shadow:0 1px #ffffff0d inset,0 0 0 1px #0f172a80}.crop-modal__stage:active{cursor:grabbing}.crop-modal__stage.is-loading{cursor:default}.crop-modal__image{position:absolute;top:50%;left:50%;max-width:none;pointer-events:none;image-rendering:auto;will-change:transform}.crop-modal__mask{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.crop-modal__guides{opacity:0;transition:opacity .2s ease}.crop-modal__stage:active .crop-modal__guides{opacity:1}.crop-modal__placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#e2e8f0bf;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.crop-modal__zoom-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:18px 4px 6px}.crop-modal__zoom-icon{width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.crop-modal__zoom-meta{min-width:42px;text-align:right;font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:-.01em;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.crop-modal__zoom{appearance:none;-webkit-appearance:none;width:100%;height:22px;background:transparent;cursor:pointer;--zoom-progress: 0%}.crop-modal__zoom:disabled{cursor:not-allowed;opacity:.5}.crop-modal__zoom::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 50%,#8b5cf6) 0 / var(--zoom-progress) 100% no-repeat,#94a3b847}.crop-modal__zoom::-moz-range-track{height:4px;border-radius:3px;background:#94a3b847}.crop-modal__zoom::-moz-range-progress{height:4px;border-radius:3px;background:linear-gradient(90deg,#7dd3fc,#3b82f6 50%,#8b5cf6)}.crop-modal__zoom::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-surface);border:1.5px solid var(--color-primary);margin-top:-7px;box-shadow:0 2px 6px #0f172a38;transition:transform .14s ease}.crop-modal__zoom::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-surface);border:1.5px solid var(--color-primary);box-shadow:0 2px 6px #0f172a38}.crop-modal__zoom:active::-webkit-slider-thumb{transform:scale(1.12)}.crop-modal__zoom:active::-moz-range-thumb{transform:scale(1.12)}.crop-modal__error{margin:6px 4px 0;font-size:.8125rem;color:var(--color-red)}.crop-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.crop-modal__btn{padding:11px 16px;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:var(--font);font-size:.875rem;font-weight:600;letter-spacing:.005em;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,opacity .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.crop-modal__btn--primary{background:var(--color-text);border-color:var(--color-text);color:var(--color-surface)}@media(hover:hover){.crop-modal__btn:hover:not(:disabled){border-color:var(--color-text-muted);background:var(--color-bg)}.crop-modal__btn--primary:hover:not(:disabled){opacity:.9;background:var(--color-text)}}.crop-modal__btn:active:not(:disabled),.crop-modal__btn.crop-modal__btn--pressed:not(:disabled){transform:scale(.97);transition:none}.crop-modal__btn:disabled{opacity:.55;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.crop-modal__scrim,.crop-modal__panel{animation:none}.crop-modal__guides{transition:none}}@media(max-width:420px){.crop-modal__panel{padding:18px 16px 14px;border-radius:18px}.crop-modal__title{font-size:1.1875rem}.crop-modal__stage{width:100%;border-radius:14px}.crop-modal__zoom-row{padding-top:14px}}.edit-profile{max-width:640px;margin:0 auto;padding:8px 18px 90px}.edit-profile--status{text-align:center;padding:80px 20px;color:var(--color-text-muted)}.edit-profile__nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 22px;animation:edit-profile-rise .32s cubic-bezier(.22,1,.36,1) both}.edit-profile__back{display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 4px;background:transparent;border:0;border-radius:999px;color:var(--color-text-muted);font-family:var(--font);font-size:.8125rem;font-weight:500;letter-spacing:.005em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:color .16s ease,transform .16s ease;margin-left:-4px}.edit-profile__back svg{opacity:.7;transition:transform .2s cubic-bezier(.34,1.56,.64,1),opacity .16s ease}@media(hover:hover){.edit-profile__back:hover{color:var(--color-text)}.edit-profile__back:hover svg{opacity:1;transform:translate(-2px)}}.edit-profile__back:active,.edit-profile__back.edit-profile__back--pressed{color:var(--color-text);transform:scale(.98);transition:none}.edit-profile__back:active svg,.edit-profile__back.edit-profile__back--pressed svg{opacity:1;transform:translate(-3px);transition:none}.edit-profile__done{padding:7px 18px;border-radius:999px;border:0;background:var(--color-text);color:var(--color-surface);font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:.015em;cursor:pointer;transition:opacity .18s ease,transform .18s ease,box-shadow .22s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;box-shadow:0 1px 2px #0f172a1f}@media(hover:hover){.edit-profile__done:hover{opacity:.92;box-shadow:0 3px 10px -2px #0f172a33}}.edit-profile__done:active,.edit-profile__done.edit-profile__done--pressed{transform:scale(.96);opacity:.88;transition:none}.edit-profile__hero{display:flex;flex-direction:column;gap:4px;margin:0 0 28px;animation:edit-profile-rise .38s cubic-bezier(.22,1,.36,1) both;animation-delay:60ms}.edit-profile__hero-eyebrow{font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-muted);background:linear-gradient(90deg,#7dd3fc,#8b5cf6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;width:max-content}.edit-profile__hero-title{font-family:var(--font-heading);font-size:2rem;font-weight:600;letter-spacing:-.028em;line-height:1.05;color:var(--color-text);margin:4px 0 0}.edit-profile__hero-sub{margin:6px 0 0;font-size:.875rem;color:var(--color-text-muted);letter-spacing:-.005em}.edit-profile__hero-rule{display:block;margin-top:16px;height:2px;width:100%;border-radius:2px;background:linear-gradient(90deg,#7DD3FC 0%,#3B82F6 38%,#8B5CF6 78%,transparent 100%);transform-origin:left center;animation:edit-profile-rule-grow .6s cubic-bezier(.22,1,.36,1) both;animation-delay:.18s;opacity:.85}@keyframes edit-profile-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes edit-profile-rule-grow{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:.85}}.edit-profile__photo-section{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0 32px;margin-bottom:8px;position:relative;animation:edit-profile-rise .42s cubic-bezier(.22,1,.36,1) both;animation-delay:.12s}.edit-profile__photo-avatar-wrap{position:relative;width:132px;height:132px;display:grid;place-items:center;border-radius:50%;box-shadow:0 12px 32px -10px #0f172a52}.edit-profile__photo-avatar-wrap:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 140deg,#7dd3fc,#3b82f6 28%,#8b5cf6 58%,#7dd3fc);animation:edit-profile-ring-spin 22s linear infinite;z-index:0}@keyframes edit-profile-ring-spin{to{transform:rotate(360deg)}}.edit-profile__photo-avatar{position:relative;z-index:1;width:124px;height:124px;border-radius:50%;object-fit:cover;display:block;background:var(--color-bg);border:3px solid var(--color-bg);box-sizing:border-box}.edit-profile__photo-avatar--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#7dd3fc,#3b82f6 55%,#8b5cf6);background-clip:padding-box;color:#fff;font-family:var(--font-heading);font-size:2.75rem;font-weight:600;letter-spacing:-.02em}.edit-profile__photo-loading{position:absolute;top:50%;left:50%;width:124px;height:124px;transform:translate(-50%,-50%);z-index:2;display:grid;place-items:center;border-radius:50%;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#fff;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.edit-profile__photo-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.edit-profile__photo-btn{padding:8px 16px;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.edit-profile__photo-btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media(hover:hover){.edit-profile__photo-btn:hover:not(:disabled){border-color:var(--color-text-muted);background:var(--color-bg)}.edit-profile__photo-btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}}.edit-profile__photo-btn:active:not(:disabled),.edit-profile__photo-btn.edit-profile__photo-btn--pressed:not(:disabled){transform:scale(.97);transition:none}.edit-profile__photo-btn:disabled{opacity:.6;cursor:wait}.edit-profile__photo-hint{margin:4px 0 0;font-size:.75rem;color:var(--color-text-muted);text-align:center}.edit-profile__file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.edit-profile__row{display:flex;flex-direction:column;gap:10px;padding:22px 0;border-top:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);animation:edit-profile-rise .38s cubic-bezier(.22,1,.36,1) both;animation-delay:.22s}.edit-profile__row:nth-of-type(2){animation-delay:.26s}.edit-profile__row:nth-of-type(3){animation-delay:.3s}.edit-profile__row:nth-of-type(4){animation-delay:.34s}.edit-profile__row:nth-of-type(5){animation-delay:.38s}.edit-profile__row:first-of-type{border-top:0}.edit-profile__label{display:flex;flex-direction:column;gap:4px;min-width:0}.edit-profile__label-name{font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-secondary)}.edit-profile__label-sub{font-size:.8125rem;color:var(--color-text-muted);line-height:1.45;letter-spacing:-.005em}.edit-profile__row-error{margin:0;font-size:.8125rem;color:var(--color-red)}.edit-profile__name-value{display:flex;flex-direction:column;gap:4px;width:100%}.edit-profile__name-value input{width:100%;padding:12px 14px;border:1.5px solid color-mix(in srgb,var(--color-text) 12%,transparent);border-radius:12px;background:var(--color-surface);color:var(--color-text);font-family:var(--font-heading);font-size:1rem;font-weight:500;letter-spacing:-.01em;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.edit-profile__name-value input::placeholder{color:var(--color-text-muted);font-weight:400;letter-spacing:-.005em}.edit-profile__name-value input:hover{border-color:color-mix(in srgb,var(--color-text) 22%,transparent)}.edit-profile__name-value input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 14%,transparent)}.edit-profile__name-meta{min-height:14px;text-align:right;font-family:var(--font-mono);font-size:.6875rem;color:var(--color-text-muted)}.edit-profile__username-form{display:flex;gap:8px;align-items:stretch}.edit-profile__username-input{flex:1;display:flex;align-items:stretch;min-width:0;border:1.5px solid color-mix(in srgb,var(--color-text) 12%,transparent);border-radius:12px;overflow:hidden;background:var(--color-surface);transition:border-color .2s ease,box-shadow .2s ease}.edit-profile__username-input:hover{border-color:color-mix(in srgb,var(--color-text) 22%,transparent)}.edit-profile__username-input:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 14%,transparent)}.edit-profile__at{display:grid;place-items:center;padding:0 12px;font-family:var(--font-mono);font-size:1rem;color:var(--color-text-muted);border-right:1px solid rgba(148,163,184,.25);background:#f8fafc80;flex-shrink:0}[data-theme=dark] .edit-profile__at{background:#0f172a66;border-right-color:#33415580}.edit-profile__username-input input{flex:1;border:0;outline:0;padding:11px 12px;font-family:var(--font-mono);font-size:.9375rem;letter-spacing:-.01em;background:transparent;color:var(--color-text);min-width:0}.edit-profile__username-save{padding:0 16px;border-radius:var(--radius);border:0;background:var(--color-primary);color:#fff;font-family:var(--font);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .18s ease,transform .18s ease,opacity .18s ease;flex-shrink:0;min-width:76px}@media(hover:hover){.edit-profile__username-save:hover:not(:disabled){background:var(--color-primary-hover)}}.edit-profile__username-save:active:not(:disabled),.edit-profile__username-save.edit-profile__username-save--pressed:not(:disabled){transform:scale(.97);transition:none}.edit-profile__username-save:disabled{background:#94a3b840;color:var(--color-text-muted);cursor:not-allowed}.edit-profile__bio-value{display:flex;flex-direction:column;gap:6px;width:100%}.edit-profile__bio-value textarea{width:100%;padding:14px 16px;border:1.5px solid color-mix(in srgb,var(--color-text) 12%,transparent);border-radius:12px;background:var(--color-surface);color:var(--color-text);font-family:var(--font);font-size:.9375rem;line-height:1.55;resize:vertical;min-height:96px;transition:border-color .2s ease,box-shadow .2s ease}.edit-profile__bio-value textarea::placeholder{color:var(--color-text-muted);letter-spacing:-.005em}.edit-profile__bio-value textarea:hover{border-color:color-mix(in srgb,var(--color-text) 22%,transparent)}.edit-profile__bio-value textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 14%,transparent)}.edit-profile__bio-meta{text-align:right;font-family:var(--font-mono);font-size:.6875rem;color:var(--color-text-muted)}.edit-profile__switch{position:relative;width:50px;height:30px;flex-shrink:0;padding:0;border:0;border-radius:999px;background:#94a3b866;cursor:pointer;transition:background .22s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.edit-profile__switch.is-on{background:var(--color-primary)}.edit-profile__switch:disabled{opacity:.5;cursor:not-allowed}.edit-profile__switch-thumb{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a33;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.edit-profile__switch.is-on .edit-profile__switch-thumb{transform:translate(20px)}.edit-profile__row--privacy{flex-direction:row;align-items:center;gap:16px}.edit-profile__row--privacy .edit-profile__label{flex:1}.edit-profile__pill{display:inline-flex;padding:3px;border-radius:999px;background:#94a3b82e;flex-shrink:0}.edit-profile__pill-opt{padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--color-text-muted);font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .22s ease,color .22s ease,box-shadow .22s ease}.edit-profile__pill-opt.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0f172a1f}.edit-profile__pill-opt:disabled{cursor:wait;opacity:.6}@media(hover:hover){.edit-profile__pill-opt:not(.is-active):not(:disabled):hover{color:var(--color-text)}}.edit-profile__pill-opt:active:not(.is-active),.edit-profile__pill-opt.edit-profile__pill-opt--pressed:not(.is-active){background:#94a3b81f;transition:none}@media(max-width:640px){.edit-profile{padding:4px 16px 100px}.edit-profile__nav{padding:4px 0 18px}.edit-profile__hero{margin-bottom:24px}.edit-profile__hero-title{font-size:1.625rem}.edit-profile__hero-sub{font-size:.8125rem}.edit-profile__photo-avatar-wrap{width:116px;height:116px}.edit-profile__photo-avatar{width:108px;height:108px}.edit-profile__photo-avatar--placeholder{font-size:2.5rem}.edit-profile__photo-loading{width:108px;height:108px}.edit-profile__row{padding:20px 0}.edit-profile__row--privacy{align-items:flex-start;flex-direction:column;gap:12px}}.blocked-users-page{max-width:640px;margin:0 auto;padding:18px 16px 80px;display:flex;flex-direction:column;gap:14px}.blocked-users-page__back{appearance:none;background:transparent;border:0;display:inline-flex;align-items:center;gap:5px;padding:5px 9px 5px 6px;border-radius:999px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;align-self:flex-start;transition:color .16s ease,background .16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.blocked-users-page__back svg{opacity:.7;transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .16s ease}@media(hover:hover){.blocked-users-page__back:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.blocked-users-page__back:hover svg{opacity:1;transform:translate(-2px)}}.blocked-users-page__back:active,.blocked-users-page__back--pressed{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,transparent);transition:none}.blocked-users-page__back:active svg,.blocked-users-page__back--pressed svg{opacity:1;transform:translate(-3px);transition:none}.blocked-users-page__title{font-size:1.45rem;font-weight:700;margin:0;color:var(--color-text)}.blocked-users-page__subtitle{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 6px;line-height:1.45}.blocked-users-page__status,.blocked-users-page__empty{color:var(--color-text-secondary);font-size:.95rem;margin:16px 0}.blocked-users-page__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.blocked-users-page__row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.blocked-users-page__avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--color-bg);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;flex-shrink:0}.blocked-users-page__avatar img{width:100%;height:100%;object-fit:cover}.blocked-users-page__identity{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.blocked-users-page__name{font-size:.95rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blocked-users-page__handle{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blocked-users-page__unblock{appearance:none;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-weight:600;font-size:.85rem;padding:7px 12px;min-height:2.1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;cursor:pointer;transition:background-color .12s,border-color .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}@media(hover:hover){.blocked-users-page__unblock:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.blocked-users-page__unblock:active,.blocked-users-page__unblock--pressed{background:var(--color-bg);transition:none}.blocked-users-page__unblock:disabled{opacity:.8;cursor:default}.blocked-users-page__unblock-busy{display:inline-flex;align-items:center;gap:6px;line-height:1}:root{--color-bg: #f8fafc;--color-dot-grid: rgba(148, 163, 184, .3);--color-surface: #ffffff;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: #dbeafe;--color-green: #22c55e;--color-green-light: #dcfce7;--color-red: #ef4444;--color-red-light: #fee2e2;--color-purple: #8b5cf6;--color-orange: #f59e0b;--color-orange-light: #fef3c7;--color-cyan: #06b6d4;--color-cyan-light: #cffafe;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI Emoji", "Apple Color Emoji", sans-serif;--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI Emoji", "Apple Color Emoji", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", "Apple Color Emoji", monospace;--font-symbols: -apple-system, BlinkMacSystemFont, "Segoe UI Emoji", "Apple Color Emoji", sans-serif;--transition: .15s ease}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overflow-x:hidden;overscroll-behavior-x:none}body{font-family:var(--font);background:radial-gradient(circle,var(--color-dot-grid) 1px,transparent 1px) 0 0 / 24px 24px,var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow-x:hidden;overscroll-behavior-x:none}html{background:var(--color-bg)}#root{min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:calc(var(--header-height, calc(7.5rem + env(safe-area-inset-top, 0px)) ) + 1rem) 1rem 2rem}.app-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:max(1.5rem,env(safe-area-inset-top)) max(0px,env(safe-area-inset-right)) 1.125rem max(0px,env(safe-area-inset-left));background:#f8fafcc7;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);transition:padding .35s cubic-bezier(.4,0,.2,1),background .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1)}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.28) 18%,rgba(148,163,184,.32) 50%,rgba(148,163,184,.28) 82%,transparent 100%);pointer-events:none}.app-header__inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:center;position:relative;min-height:2.125rem}.app-header__brand{text-align:center;display:flex;flex-direction:column;align-items:center;transition:align-items 0s .15s}.app-header__wordmark{display:inline-flex;align-items:center;gap:.625rem}.app-header__mark{display:block;width:32px;height:32px;border-radius:8px;flex-shrink:0;box-shadow:0 1px 2px #0f172a2e,0 4px 10px #0f172a14;transition:width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1),border-radius .35s cubic-bezier(.4,0,.2,1)}.app-header__actions{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);z-index:70;display:flex;align-items:center;gap:.5rem}.app-header__coach-link{padding:.3rem .6rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-purple);background:#8b5cf61a;border:1px solid rgba(139,92,246,.2);border-radius:999px;cursor:pointer;transition:all var(--transition)}@media(hover:hover){.app-header__coach-link:hover{background:#8b5cf633}}.app-header__coach-link:active,.app-header__coach-link.app-header__coach-link--pressed{background:#8b5cf633;transition:none}h1,h2,h3,h4{font-family:var(--font-heading)}.app-header h1{font-size:1.875rem;font-weight:700;letter-spacing:-.035em;line-height:1;background:linear-gradient(100deg,#0f172a,#1e3a8a 35%,#3b82f6,#1e3a8a 75%,#0f172a);background-size:220% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 14s ease-in-out infinite;transition:font-size .35s cubic-bezier(.4,0,.2,1)}.app-header__subtitle{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-muted);margin-top:.5rem;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.32em;opacity:1;max-height:2rem;overflow:hidden;transition:opacity .25s ease,max-height .3s cubic-bezier(.4,0,.2,1),margin-top .3s cubic-bezier(.4,0,.2,1)}.app-header__subtitle-text{position:relative;padding:0 .875rem}.app-header__subtitle-text:before,.app-header__subtitle-text:after{content:"";position:absolute;top:50%;width:.5rem;height:1px;background:var(--color-text-muted);opacity:.55}.app-header__subtitle-text:before{right:100%}.app-header__subtitle-text:after{left:100%}.app-header__breadcrumb{display:none;align-items:center;gap:.5rem;font-size:.8125rem;font-family:var(--font);color:var(--color-text-muted);white-space:nowrap;opacity:0;transition:opacity .3s ease .1s}.app-header__breadcrumb a{color:var(--color-text-secondary);text-decoration:none;font-weight:500;transition:color var(--transition)}@media(hover:hover){.app-header__breadcrumb a:hover{color:var(--color-primary)}}.app-header__breadcrumb a:active{color:var(--color-primary);transition:none}.breadcrumb-sep{color:var(--color-border);font-size:.875rem;-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--color-text);font-weight:600}.app-header--compact{padding:.625rem 0;background:#f8fafcdb;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);box-shadow:0 1px 2px #0f172a0a,0 6px 18px #0f172a0a}.app-header--compact.app-header--slot-active:has(.plan-toolbar){padding-bottom:0;border-bottom:none;box-shadow:none}.app-header--compact .plan-toolbar{border-bottom:1px solid rgba(226,232,240,.5);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005}.app-header--compact:has(.sign-in-strip) .plan-toolbar{border-bottom:none;box-shadow:none}.app-header--compact .sign-in-strip{box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005}[data-theme=dark] .app-header--compact .plan-toolbar{border-bottom-color:#33415580}.app-header--compact .app-header__inner{gap:1.5rem}.app-header--compact .app-header__brand{flex-shrink:0;transition-delay:0s}.app-header--compact:has(.app-header__breadcrumb) .app-header__inner{justify-content:flex-start}.app-header--compact:has(.app-header__breadcrumb) .app-header__brand{text-align:left;align-items:flex-start}.app-header--compact .app-header__wordmark{gap:.5rem}.app-header--compact .app-header__mark{width:24px;height:24px;border-radius:6px}.app-header--compact h1{font-size:1.1875rem;letter-spacing:-.025em}.app-header--compact .app-header__subtitle{opacity:0;max-height:0;margin-top:0;pointer-events:none}.app-header--compact .app-header__breadcrumb{display:flex;opacity:1;position:absolute;left:50%;transform:translate(-50%)}.app-loading{text-align:center;padding:3rem;color:var(--color-text-secondary);font-size:.9375rem}body.is-page-loading .app-header,body.is-page-loading .app-header *{transition-duration:0s!important;animation-duration:0s!important}button{cursor:pointer;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:active:not(:disabled){transform:scale(.97);transition-duration:75ms}.btn-primary{background:var(--color-primary);color:#fff;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:var(--radius)}@media(hover:hover){.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}}.btn-primary:active:not(:disabled){background:var(--color-primary-hover);transition:none}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:.5rem 1rem}@media(hover:hover){.btn-secondary:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.btn-secondary:active:not(:disabled){background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.btn-secondary.active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}input,select,textarea{font-family:var(--font);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.625rem .75rem;background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition);width:100%;max-width:100%;-webkit-user-select:text;user-select:text}select{padding-right:2rem}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}@supports (-webkit-touch-callout: none){input,select,textarea{font-size:16px!important}html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:none;appearance:none;text-align:left;min-height:calc(1.6em + 1.25rem + 2px);min-width:0}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=month]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit,input[type=datetime-local]::-webkit-datetime-edit,input[type=month]::-webkit-datetime-edit{text-align:left;padding:0}input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=time]::-webkit-datetime-edit-fields-wrapper,input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper,input[type=month]::-webkit-datetime-edit-fields-wrapper{padding:0}label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.375rem}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes pulse-opacity{0%,to{opacity:.8}50%{opacity:1}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes backdrop-in{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bg-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}@keyframes speed-gradient-sweep{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.back-button{display:inline-flex;align-items:center;gap:.375rem;margin-bottom:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font-size:.9rem;font-weight:500;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;transition:background .15s,border-color .15s}@media(hover:hover){.back-button:hover{background:var(--color-bg);border-color:var(--color-text-muted)}}.back-button:active{background:var(--color-bg);border-color:var(--color-text-muted);transition:none}.modal-backdrop{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:backdrop-in .3s cubic-bezier(.22,1,.36,1) forwards;overflow:hidden;overscroll-behavior:contain}.modal-backdrop--closing{animation:backdrop-out .2s ease forwards}.modal-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:2rem;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;overscroll-behavior:contain;box-shadow:var(--shadow-lg),0 0 80px #00000026;animation:scale-in .35s cubic-bezier(.34,1.56,.64,1);position:relative}.modal-backdrop--closing .modal-nav-wrapper,.modal-backdrop--closing .modal-content{animation:scale-out .2s ease forwards}body.modal-open .app-header,body.modal-open .app{transform:scale(.98);border-radius:12px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),border-radius .4s ease}body:not(.modal-open) .app-header,body:not(.modal-open) .app{transition:transform .3s cubic-bezier(.22,1,.36,1),border-radius .3s ease}@media(prefers-reduced-motion:reduce){.modal-backdrop{animation:none;opacity:1}.modal-backdrop--closing,.modal-content,.modal-backdrop--closing .modal-nav-wrapper,.modal-backdrop--closing .modal-content{animation:none}body.modal-open .app-header,body.modal-open .app{transform:none;transition:none}}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.app-footer{margin-top:3rem;padding:1.25rem 0 .5rem;border-top:1px solid var(--color-border);text-align:center}.app-footer__credit{font-size:.75rem;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.app-footer__links{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem;font-size:.75rem;color:var(--color-text-muted)}.app-footer__links a{color:var(--color-text-muted);text-decoration:none;letter-spacing:.04em;transition:color var(--transition)}@media(hover:hover){.app-footer__links a:hover{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px}}.app-footer__links a:active{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px;transition:none}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.theme-toggle:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}}.theme-toggle:active,.theme-toggle.theme-toggle--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.theme-toggle__icon{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}@media(hover:hover){.theme-toggle:hover .theme-toggle__icon{transform:rotate(15deg)}}.theme-toggle.theme-toggle--pressed .theme-toggle__icon{transform:rotate(15deg)}.theme-toggle__icon--dark{transform:rotate(-20deg)}@media(hover:hover){.theme-toggle:hover .theme-toggle__icon--dark{transform:rotate(0)}}.theme-toggle.theme-toggle--pressed .theme-toggle__icon--dark{transform:rotate(0)}.settings-gear{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}@media(hover:hover){.settings-gear:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}.settings-gear:hover .settings-gear__icon{transform:rotate(45deg)}}.settings-gear:active,.settings-gear.settings-gear--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.settings-gear:active .settings-gear__icon,.settings-gear.settings-gear--pressed .settings-gear__icon{transform:rotate(45deg)}.settings-gear__icon{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.notifications-bell{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}.notifications-bell--active{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}@media(hover:hover){.notifications-bell:hover{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text)}.notifications-bell--active:hover{color:var(--color-primary);border-color:var(--color-primary)}.notifications-bell:hover .notifications-bell__icon{transform:rotate(-10deg)}}.notifications-bell:active,.notifications-bell.notifications-bell--pressed{background:var(--color-bg);border-color:var(--color-text-muted);color:var(--color-text);transition:none}.notifications-bell--active:active,.notifications-bell--active.notifications-bell--pressed{color:var(--color-primary);border-color:var(--color-primary)}.notifications-bell:active .notifications-bell__icon,.notifications-bell.notifications-bell--pressed .notifications-bell__icon{transform:rotate(-10deg)}.notifications-bell__icon{transition:transform .45s cubic-bezier(.34,1.56,.64,1);transform-origin:50% 30%}.notifications-bell--active:before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--radius-sm) + 2px);background:radial-gradient(circle at 70% 25%,color-mix(in srgb,var(--color-primary) 22%,transparent),transparent 65%);pointer-events:none;animation:bell-halo 3.4s ease-in-out infinite}@keyframes bell-halo{0%,to{opacity:.4}50%{opacity:.9}}.notifications-bell__badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-family:var(--font);font-size:.625rem;font-weight:700;letter-spacing:-.02em;line-height:1;border-radius:999px;border:1.5px solid var(--color-surface);box-shadow:0 1px 3px #0f172a2e;pointer-events:none}.notifications-bell__badge--wide{min-width:22px;font-size:.5625rem}[data-theme=dark] .notifications-bell__badge{border-color:#0f172a}[data-theme=dark]{--color-bg: #0f172a;--color-dot-grid: rgba(148, 163, 184, .06);--color-surface: #1e293b;--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--color-primary: #60a5fa;--color-primary-hover: #3b82f6;--color-primary-light: rgba(96, 165, 250, .12);--color-green: #4ade80;--color-green-light: rgba(74, 222, 128, .12);--color-red: #f87171;--color-red-light: rgba(248, 113, 113, .12);--color-purple: #a78bfa;--color-orange: #fbbf24;--color-orange-light: rgba(251, 191, 36, .12);--color-cyan: #22d3ee;--color-cyan-light: rgba(34, 211, 238, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5), 0 4px 6px rgba(0, 0, 0, .4);color-scheme:dark}[data-theme=dark] .app-header{background:#0f172ab8}[data-theme=dark] .app-header:after{background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.18) 18%,rgba(148,163,184,.22) 50%,rgba(148,163,184,.18) 82%,transparent 100%)}[data-theme=dark] .app-header--compact{background:#0f172adb;box-shadow:0 1px 2px #0006,0 6px 18px #00000040}[data-theme=dark] .app-header h1{background:linear-gradient(100deg,#cbd5e1,#60a5fa 35%,#93c5fd,#60a5fa 75%,#cbd5e1);background-size:220% auto;-webkit-background-clip:text;background-clip:text}[data-theme=dark] .app-header__mark{box-shadow:0 1px 2px #00000080,0 4px 12px #00000059}[data-theme=dark] input:focus,[data-theme=dark] select:focus{box-shadow:0 0 0 3px #60a5fa33}[data-theme=dark] .modal-backdrop{background:#0009}@media(hover:hover){[data-theme=dark] .theme-toggle:hover{border-color:#fbbf2466;color:#fbbf24;box-shadow:0 0 12px #fbbf2426}}@media(prefers-reduced-motion:reduce){.app-header h1{animation:none}.app-header,.app-header h1,.app-header__subtitle,.app-header__brand,.app-header__wordmark,.app-header__mark,.app-header__breadcrumb{transition-duration:0s!important}}@media(max-width:768px){.app{padding:calc(var(--header-height, calc(7rem + env(safe-area-inset-top, 0px)) ) + 1rem) .75rem 2rem}.app-header__inner{padding:0 1rem}.app-header__breadcrumb,.app-header--compact .app-header__breadcrumb{display:none}.app-header h1{font-size:1.5rem}.app-header--compact h1{font-size:1.0625rem}.strava-btn span,.auth-button__name,.auth-button>span:last-child{display:none}.strava-btn{padding:.375rem}.auth-button{padding:.4rem;gap:0}}@media(max-width:480px){.app{padding:calc(var(--header-height, calc(4rem + env(safe-area-inset-top, 0px)) ) + 1rem) .5rem 2rem}.app-header{padding:max(.5rem,env(safe-area-inset-top)) max(0px,env(safe-area-inset-right)) .5rem max(0px,env(safe-area-inset-left))}.app-header__inner{padding:0 .875rem;flex-direction:row;justify-content:space-between;gap:.75rem;min-height:34px}.app-header__brand{flex-direction:row;align-items:center;gap:0;text-align:left}.app-header__wordmark{gap:.5rem}.app-header__mark{width:22px;height:22px;border-radius:6px}.app-header h1{font-size:1.125rem;letter-spacing:-.025em}.app-header__subtitle,.app-header__breadcrumb{display:none}.app-header__actions{position:static;transform:none;margin-top:0;margin-left:auto;gap:.4rem}.app-header--compact .app-header__inner{justify-content:space-between;gap:.75rem}.app-header--compact .app-header__mark{width:22px;height:22px;border-radius:6px}}@media(max-width:600px){.modal-backdrop{padding:0;background:var(--color-surface)}.modal-content{max-width:100%;max-height:100%;height:100%;border-radius:0;animation:none}.modal-content:not(.modal-content--compact){padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}[data-theme=dark] .modal-backdrop{background:var(--color-surface)}.modal-backdrop--compact,[data-theme=dark] .modal-backdrop--compact{padding:1.5rem max(1.5rem,env(safe-area-inset-right)) 1.5rem max(1.5rem,env(safe-area-inset-left));background:#0000008c}.modal-content--compact{max-width:360px;max-height:85vh;height:auto;width:100%;border-radius:var(--radius-lg);animation:scale-in .35s cubic-bezier(.34,1.56,.64,1)}}@media(pointer:coarse){.btn-primary,.btn-secondary,.btn-danger,.form-actions button,.modal-actions button,.delete-modal__actions button,.add-race-modal__submit,.btn-remove-race{min-height:44px}}.delta-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:5px;font-family:var(--font-mono);font-size:.6rem;font-weight:700;line-height:1.3;letter-spacing:.01em;vertical-align:middle}.delta-chip.is-over{background:#4ade8033;color:var(--color-green)}.delta-chip.is-under{background:#fb923c38;color:var(--color-orange)}.delta-chip--sm{padding:1px 4px;font-size:.54rem;border-radius:4px}@media(min-width:769px){.app-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;justify-content:stretch}.app-header__brand{flex-shrink:0;text-align:left;align-items:center;flex-direction:row;gap:.625rem;justify-self:start}.app-header__subtitle{display:none}.app-header__actions{position:static;transform:none;justify-self:end}.app-header__breadcrumb,.app-header--compact .app-header__breadcrumb{display:none}.app-header--compact:has(.app-header__breadcrumb) .app-header__inner{display:grid;grid-template-columns:1fr auto 1fr;justify-content:stretch}.app-header--compact:has(.app-header__breadcrumb) .app-header__brand{text-align:left;align-items:center}}
