.install-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;animation:slide-down .2s ease}@keyframes slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.install-banner-body{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.install-banner-icon{width:36px;height:36px;border-radius:8px;flex-shrink:0}.install-banner-text{display:flex;flex-direction:column;gap:1px;min-width:0}.install-banner-text strong{font-size:13px;font-weight:650;color:var(--text)}.install-banner-text span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.install-banner-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.install-btn{border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;cursor:pointer;border:none;white-space:nowrap;min-height:32px;min-width:unset}.install-btn.primary{background:var(--accent);color:#07160f;transition:opacity .15s}.install-btn.primary:hover{opacity:.88}.install-btn.ghost{background:#ffffff0f;color:var(--muted);border:1px solid var(--border);transition:color .15s}.install-btn.ghost:hover{color:var(--text)}.dismiss-x{padding:7px 10px;font-size:14px}.support-menu-item{color:var(--muted)!important}.support-menu-item svg{flex-shrink:0}.support-inline{margin-top:1rem;padding:.9rem 1rem;border-radius:14px;border:1px solid var(--border);background:#ffffff05;display:flex;flex-direction:column;gap:.65rem}.support-inline-copy{margin:0;font-size:.88rem;color:var(--muted);line-height:1.45}.support-inline-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--border);background:#ffffff0a;color:var(--text);font-size:.88rem;font-weight:600;text-decoration:none;transition:border-color .18s ease,background .18s ease}.support-inline-btn:hover{border-color:#8df7c04d;background:#8df7c00d}.layout{display:flex;flex-direction:column;min-height:100dvh}.layout-header{position:sticky;top:0;z-index:100;height:calc(56px + var(--sat, 0px));display:flex;align-items:center;justify-content:space-between;gap:16px;padding:var(--sat, 0px) 20px 0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#090b10e6;border-bottom:1px solid var(--border)}.layout-logo{font-size:17px;font-weight:800;letter-spacing:-.04em;color:var(--text);flex-shrink:0}.layout-logo span{color:var(--accent)}.header-tabs{display:flex;align-items:center;gap:4px;background:#ffffff0a;border:1px solid var(--border);border-radius:999px;padding:4px}.header-tab{padding:5px 18px;border-radius:999px;font-size:14px;font-weight:500;color:var(--muted);transition:color .15s,background .15s}.header-tab.active{background:#8df7c01f;color:var(--accent);font-weight:600}.header-tab:hover:not(.active){color:var(--text)}.layout-menu{position:relative;flex-shrink:0}.layout-hamburger{background:none;border:1px solid var(--border);color:var(--muted);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,color .15s}.layout-hamburger:hover{border-color:#fff3;color:var(--text)}.layout-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:148px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px;z-index:200;box-shadow:0 8px 24px #0006}.dropdown-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;background:none;border:none;border-radius:7px;color:var(--muted);font-family:inherit;font-size:14px;text-decoration:none;cursor:pointer;transition:background .12s,color .12s;text-align:left}.dropdown-item:hover{background:#ffffff0f;color:var(--text)}.layout-body{flex:1;display:flex;flex-direction:column;padding-bottom:0}.layout--log{height:100dvh;overflow:hidden}.layout--log .layout-body{flex:1;min-height:0;overflow:hidden}.bottom-tabs{display:none}@media(max-width:640px){.header-tabs,.layout-footer{display:none}.bottom-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(60px + var(--sab, 0px));background:#090b10f7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:100}.layout-body{padding-bottom:calc(60px + var(--sab, 0px))}}.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:11px;font-weight:500;transition:color .15s;padding-bottom:max(var(--sab, 0px),4px);min-height:44px}.bottom-tab.active{color:var(--accent)}.bottom-tab svg{opacity:.7;transition:opacity .15s}.bottom-tab.active svg{opacity:1}.layout-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border);gap:12px}.layout-footer-disclaimer{font-size:11px;color:var(--muted);opacity:.6}.layout-footer-links{display:flex;gap:16px;flex-shrink:0}.layout-footer-links a{font-size:11px;color:var(--muted);text-decoration:none;opacity:.6;transition:opacity .15s}.layout-footer-links a:hover{opacity:1}@media(max-width:640px){.layout-footer{margin-bottom:calc(60px + var(--sab, 0px))}}.ai-notice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:24px}.ai-notice-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 24px 24px;max-width:380px;width:100%;box-shadow:0 16px 48px #00000080}.ai-notice-title{font-size:17px;font-weight:700;letter-spacing:-.02em;margin-bottom:12px}.ai-notice-body{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:24px}.ai-notice-btn{display:block;width:100%;background:var(--accent);color:#07160f;border:none;border-radius:10px;font-family:inherit;font-size:15px;font-weight:600;padding:12px;cursor:pointer;transition:opacity .15s}.ai-notice-btn:hover{opacity:.85}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-box{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:40px 36px;box-shadow:0 24px 80px #00000059}.login-logo{font-size:26px;font-weight:700;color:var(--accent);letter-spacing:-.5px;margin-bottom:6px}.login-sub{color:var(--muted);margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form label{font-size:13px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.login-form input{background:#ffffff08;border:1px solid var(--border);border-radius:14px;color:var(--text);padding:12px 14px;outline:none;transition:border-color .18s,background .18s}.login-form input:focus{border-color:#8df7c057;background:#ffffff0d}.login-form button{margin-top:4px;background:linear-gradient(135deg,var(--accent),#b7ffd7);color:#07160f;font-weight:700;border:none;border-radius:999px;padding:13px;transition:opacity .15s,transform .15s;box-shadow:0 8px 24px #8df7c024}.login-form button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-error{background:#ff5c5c1a;border:1px solid var(--danger);color:var(--danger);border-radius:8px;padding:10px 14px;font-size:14px}.login-hint{font-size:13px;color:var(--muted);text-align:center}.login-sent{text-align:center;display:flex;flex-direction:column;gap:12px}.sent-icon{font-size:40px;margin-bottom:4px}.login-sent strong{color:var(--accent)}.loading-full{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--muted)}.dashboard{display:flex;flex-direction:column}.dash-main{max-width:960px;width:100%;margin:0 auto;padding:28px 20px 80px}.dash-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.dash-title{font-size:24px;font-weight:700;letter-spacing:-.04em;margin-bottom:2px}.dash-count{color:var(--muted);font-size:13px}.log-chat-btn{display:inline-block;background:linear-gradient(135deg,var(--accent),#b7ffd7);color:#07160f;font-weight:700;font-size:13px;border-radius:999px;padding:8px 16px;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:opacity .15s,transform .15s}.log-chat-btn:hover{opacity:.88;transform:translateY(-1px)}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.stat-card{background:#ffffff08;border:1px solid var(--border);border-radius:14px;padding:14px 16px}.stat-value{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.03em;margin-bottom:3px}.stat-label{font-size:12px;color:var(--muted)}.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.filter-row{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.type-pills{display:flex;gap:6px;width:max-content}.type-pill{background:#ffffff0a;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:13px;font-weight:500;padding:6px 14px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.type-pill:hover:not(.active){border-color:#ffffff2e;color:var(--text)}.type-pill.active{background:#8df7c01a;border-color:#8df7c04d;color:var(--accent);font-weight:600}.filter-search-row{display:flex;gap:8px}.ex-search-wrap{position:relative;flex:1;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--muted);pointer-events:none}.ex-search{width:100%;background:#ffffff08;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;padding:8px 36px 8px 32px;outline:none;transition:border-color .15s,background .15s}.ex-search:focus{border-color:#8df7c047;background:#ffffff0d}.ex-search::placeholder{color:var(--muted);opacity:.7}.ex-search-clear{position:absolute;right:10px;background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 4px;transition:color .15s}.ex-search-clear:hover{color:var(--text)}.sort-select{background:#ffffff0a;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:13px;font-family:inherit;padding:8px 12px;outline:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;min-width:100px;transition:border-color .15s}.sort-select:focus{border-color:#8df7c047}.content-layout{display:flex;gap:16px;align-items:flex-start}.session-list{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.session-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;text-align:left;width:100%;cursor:pointer;transition:border-color .15s,background .15s}.session-card:hover{border-color:#ffffff24;background:#151b25}.session-card-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.session-date{font-weight:600;font-size:15px;color:#fff;margin-bottom:2px}.session-subline{font-size:12px;color:var(--muted)}.session-tags{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}.tag{background:#8df7c017;border:1px solid rgba(141,247,192,.18);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.session-note{font-size:13px;color:var(--muted);margin-bottom:10px;font-style:italic}.session-highlights{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;padding:10px 12px;background:#ffffff05;border:1px solid var(--border);border-radius:10px}.highlight-row{display:flex;align-items:center;gap:8px;font-size:13px}.highlight-exercise{background:none;border:none;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;padding:0;text-align:left;flex:1;transition:color .15s}.highlight-exercise:hover{color:var(--accent);text-decoration:underline}.highlight-value{color:var(--muted);font-size:13px;white-space:nowrap}.delta-badge{font-size:11px;font-weight:600;border-radius:999px;padding:1px 7px;white-space:nowrap}.delta-badge.up{background:#8df7c01a;color:var(--accent)}.delta-badge.down{background:#f871711a;color:var(--danger)}.delta-badge.flat{background:#ffffff0d;color:var(--muted)}.session-exercises{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:4px}.exercise-chip{background:#ffffff0a;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px;padding:2px 9px;cursor:pointer;transition:border-color .15s,color .15s}.exercise-chip:hover{border-color:#8df7c04d;color:var(--accent)}.session-summary-wrap{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.session-summary{font-size:13px;color:var(--muted);line-height:1.6;white-space:pre-wrap}.summary-toggle{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:4px 0 0;display:block}.history-overlay{display:none}.history-panel{width:280px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;position:sticky;top:72px;max-height:calc(100dvh - 100px);overflow-y:auto}.history-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.history-panel-header h3{font-size:15px;font-weight:600;color:#fff;margin-top:2px}.icon-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:18px;line-height:1;padding:3px 8px;cursor:pointer;flex-shrink:0;transition:color .15s}.icon-btn:hover{color:var(--text)}.history-empty{color:var(--muted);font-size:13px}.history-list{display:flex;flex-direction:column;gap:6px}.history-item{background:#ffffff05;border:1px solid var(--border);border-radius:10px;padding:10px 12px;text-align:left;width:100%;cursor:pointer;transition:border-color .15s,background .15s}.history-item:hover{border-color:#8df7c033;background:#8df7c008}.history-item-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:3px}.history-date{font-size:13px;font-weight:500;color:var(--text)}.history-topset{font-size:13px;color:var(--accent);font-weight:600;white-space:nowrap}.history-subline{font-size:12px;color:var(--muted)}.current-session-bar{position:fixed;bottom:0;left:0;right:0;background:#090b10f2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(141,247,192,.2);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:50}.current-session-copy{display:flex;flex-direction:column;gap:2px;font-size:14px}.current-session-copy strong{color:var(--accent)}.current-session-copy span{font-size:12px;color:var(--muted)}.current-session-actions{display:flex;gap:8px;flex-shrink:0}.ghost-btn{background:none;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:13px;padding:7px 14px;cursor:pointer;transition:border-color .15s,color .15s}.ghost-btn:hover{border-color:#fff3;color:var(--text)}.strava-logo-sm{width:20px;height:20px;flex-shrink:0}.tag-strava{background:#fc4c021a;border:1px solid rgba(252,76,2,.25);color:#fc4c02}.strava-card{cursor:default;border-left:2px solid rgba(252,76,2,.35)}.strava-card:hover{border-left-color:#fc4c0299}.strava-stats-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.strava-stat{font-size:12px;color:var(--muted)}.type-pill.strava-pill{display:inline-flex;align-items:center;gap:4px}.type-pill.strava-pill.active{background:#fc4c021a;border-color:#fc4c024d;color:#fc4c02}.dash-error{background:#ff5c5c14;border:1px solid var(--danger);color:var(--danger);border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:14px}.dash-empty{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}@media(max-width:640px){.stats-strip{grid-template-columns:repeat(2,1fr)}.type-pill{padding:8px 14px;min-height:40px}.highlight-exercise{min-height:36px;display:flex;align-items:center}.exercise-chip{padding:4px 11px;min-height:32px;display:inline-flex;align-items:center}.history-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.content-layout{flex-direction:column}.history-panel{position:fixed;bottom:60px;left:0;right:0;width:100%;max-height:72dvh;border-radius:20px 20px 0 0;border-left:none;border-right:none;border-bottom:none;overflow-y:auto;z-index:41;animation:sheet-up .22s cubic-bezier(.34,1.26,.64,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.current-session-bar{padding-bottom:calc(12px + env(safe-area-inset-bottom,0));bottom:60px}}.log-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.session-card{background:#8df7c00d;border-bottom:1px solid rgba(141,247,192,.15);flex-shrink:0}.session-card-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;-webkit-user-select:none;user-select:none}.session-card-left{display:flex;align-items:center;gap:8px;font-size:13px}.session-card-right{display:flex;align-items:center;gap:10px}.session-chevron{font-size:10px;color:var(--muted);opacity:.6}.session-exercise-list{padding:4px 20px 12px;display:flex;flex-direction:column;gap:6px}.session-ex-item{display:flex;align-items:center;gap:10px;font-size:13px}.session-ex-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}.session-ex-item.complete .session-ex-icon{color:var(--accent)}.session-ex-item.in-progress .session-ex-icon{color:#ffb84d}.session-ex-item.pending .session-ex-icon{color:var(--muted);opacity:.5}.session-ex-body{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.session-ex-name{color:var(--text)}.session-ex-prescription{font-size:11px;color:var(--muted);opacity:.8}.session-ex-item.complete .session-ex-name{opacity:.6}.session-ex-item.complete .session-ex-prescription{opacity:.4}.session-ex-meta{font-size:11px;color:var(--muted);opacity:.7}.session-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 2s ease-in-out infinite}.session-label{color:var(--accent);font-weight:600}.session-elapsed{color:var(--muted)}.session-discard{background:none;border:1px solid var(--border);color:var(--muted);font-size:12px;padding:3px 10px;border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s}.session-discard:hover{border-color:var(--danger);color:var(--danger)}.log-empty{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;text-align:center}.log-empty-icon{font-size:36px;font-weight:200;color:var(--accent);margin-bottom:16px;line-height:1;opacity:.7}.log-empty-title{font-size:22px;font-weight:700;letter-spacing:-.03em;margin-bottom:8px}.log-empty-sub{color:var(--muted);font-size:15px;margin-bottom:24px}.log-empty-sub code{font-family:SF Mono,Fira Code,monospace;font-size:.9em;background:#ffffff12;border:1px solid var(--border);border-radius:4px;padding:1px 5px}.log-examples{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:520px;margin-bottom:24px}.log-example{background:#ffffff0a;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:13px;font-family:SF Mono,Fira Code,monospace;padding:7px 14px;cursor:pointer;transition:border-color .15s,color .15s;text-align:left}.log-example:hover{border-color:#8df7c04d;color:var(--accent)}.log-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);opacity:.6;margin-bottom:8px;align-self:flex-start;width:100%;max-width:520px}.log-commands-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:520px;width:100%;margin-bottom:8px}.log-command-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:#ffffff08;border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.log-command-card:hover{border-color:#8df7c04d;background:#8df7c00a}.log-command-name{font-family:SF Mono,Fira Code,monospace;font-size:12px;font-weight:600;color:var(--accent)}.log-command-hint{font-size:11px;color:var(--muted);opacity:.7;line-height:1.3}.log-feed{flex:1;min-height:0;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.feed-row.command{display:flex;align-items:baseline;gap:8px;font-family:SF Mono,Fira Code,monospace;font-size:14px;color:var(--muted);padding:2px 0}.feed-prompt{color:var(--accent);font-weight:700;flex-shrink:0;opacity:.8}.feed-command-text{color:var(--text);opacity:.85;word-break:break-word}.feed-response{border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.55;margin-left:20px;border:1px solid transparent}.feed-response.success{background:#8df7c00f;border-color:#8df7c026;color:var(--text)}.feed-response.error{background:#ff505012;border-color:#ff505033;color:var(--danger)}.feed-response.clarification{background:#ffc83c0f;border-color:#ffc83c33;color:var(--text)}.feed-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffb84d;margin-bottom:5px}.feed-response.info{background:transparent;border-color:transparent;color:var(--muted)}.feed-response.summary,.feed-response.stats{background:var(--surface);border-color:var(--border)}.feed-pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Fira Code,monospace;font-size:13px}.feed-markdown p{margin:0 0 .5em}.feed-markdown p:last-child{margin-bottom:0}.feed-markdown ul,.feed-markdown ol{margin:.3em 0 .5em;padding-left:1.3em}.feed-markdown li{margin-bottom:.2em}.feed-markdown strong{font-weight:650;color:var(--text)}.feed-markdown code{font-family:SF Mono,Fira Code,monospace;font-size:.85em;background:#ffffff12;border:1px solid var(--border);border-radius:4px;padding:.1em .35em}.feed-markdown h1,.feed-markdown h2{font-weight:700;letter-spacing:-.02em;margin:.6em 0 .25em;font-size:1em}.feed-markdown h1:first-child,.feed-markdown h2:first-child{margin-top:0}.typing-dots{display:inline-flex;align-items:center;gap:4px;padding:2px 0}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:dot-bounce 1.2s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.feed-row.chat-user{display:flex;justify-content:flex-end;padding:2px 0}.feed-row.chat-assistant{display:flex;align-items:flex-start;gap:8px;padding:2px 0}.chat-avatar{width:28px;height:28px;border-radius:50%;background:#8df7c01a;border:1px solid rgba(141,247,192,.22);color:var(--accent);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.chat-bubble{border-radius:16px;padding:9px 13px;font-size:14px;line-height:1.55;border:1px solid var(--border);max-width:80%}.chat-bubble.user{background:#0d2330;border-color:#72b8ff26;border-bottom-right-radius:5px;color:var(--text);white-space:pre-wrap;word-break:break-word}.chat-bubble.assistant{background:var(--surface);border-bottom-left-radius:5px}.mode-toggle{display:flex;background:#ffffff0d;border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px;flex-shrink:0;align-self:flex-end;margin-bottom:1px}.mode-btn{background:none;border:none;color:var(--muted);font-size:13px;font-weight:500;padding:4px 10px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s;line-height:1}.mode-btn.active{background:#8df7c01f;color:var(--accent);font-weight:600}.mode-btn:hover:not(.active){color:var(--text)}.log-cta-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.log-cta-pill{border:none;border-radius:999px;font-family:inherit;font-size:13px;font-weight:600;padding:6px 16px;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0}.log-cta-pill:active{transform:scale(.96)}.log-cta-pill:disabled{opacity:.5;cursor:not-allowed}.log-cta-pill.session{background:var(--accent);color:#07160f}.log-cta-pill.start{background:#8df7c01f;color:var(--accent);border:1px solid rgba(141,247,192,.25)}.log-cta-cancel{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 6px;line-height:1;opacity:.6;transition:opacity .15s}.log-cta-cancel:hover{opacity:1}.log-end-prompt{display:flex;align-items:flex-end;gap:8px;flex:1;min-width:0}.log-end-note{flex:1;min-width:0;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);font-family:inherit;font-size:14px;padding:4px 2px;outline:none;transition:border-color .15s;resize:none;overflow:hidden;line-height:1.5}.log-end-note:focus{border-color:#8df7c066}.log-end-note::placeholder{color:var(--muted);opacity:.55}.log-actions-wrap{position:relative;margin-left:auto}.log-actions-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:#ffffff0a;color:var(--muted);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,color .15s,background .15s;flex-shrink:0}.log-actions-btn:hover,.log-actions-btn.open{border-color:#8df7c04d;color:var(--accent);background:#8df7c00f}.log-actions-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px;min-width:180px;box-shadow:0 8px 24px #0006;z-index:50}.log-action-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;background:none;border:none;border-radius:8px;color:var(--text);font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.log-action-item:hover{background:#ffffff0f}.log-action-item.danger{color:var(--danger)}.log-action-item.danger:hover{background:#ff505012}.log-input-area{padding:12px 16px 10px;border-top:1px solid var(--border);background:#090b1099;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0}.log-form{display:flex;align-items:flex-end;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:8px 8px 8px 14px;transition:border-color .15s}.log-form:focus-within{border-color:#8df7c047}.log-textarea{flex:1;background:none;border:none;color:var(--text);font-family:inherit;font-size:15px;line-height:1.55;resize:none;outline:none;overflow-y:hidden;max-height:140px;padding:3px 0}.log-textarea::placeholder{color:var(--muted);opacity:.6;font-family:SF Mono,Fira Code,monospace;font-size:14px}.log-textarea:disabled{opacity:.6}.log-send{width:34px;height:34px;border-radius:10px;border:none;background:var(--accent);color:#07160f;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:opacity .15s,transform .15s}.log-send:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.log-send:disabled{background:#ffffff14;color:var(--muted);cursor:not-allowed}.log-hint{font-size:12px;color:var(--muted);text-align:center;margin-top:7px;opacity:.55}@media(max-width:640px){.log-feed{padding:12px;gap:4px}.log-input-area{padding:8px 12px}.log-textarea{font-size:16px}.log-hint{display:none}.feed-response{margin-left:12px}}@media(min-width:800px){.log-feed{padding:20px calc((100% - 720px)/2 + 20px)}.log-input-area{padding:12px calc((100% - 720px)/2 + 20px) 12px}.log-empty{max-width:600px;margin:0 auto;width:100%}}.scc-card{margin:0 16px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;border-left-width:3px}.scc-card.load-high{border-left-color:#e55a5a}.scc-card.load-medium{border-left-color:#f5a623}.scc-card.load-low{border-left-color:var(--accent)}.scc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.scc-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.scc-dismiss{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px;opacity:.5;transition:opacity .15s}.scc-dismiss:hover{opacity:1}.scc-rows{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.scc-row{display:flex;gap:8px;font-size:12px}.scc-row-label{color:var(--muted);flex-shrink:0;min-width:110px}.scc-row-value{color:var(--text)}.scc-note{font-size:12px;color:var(--muted);line-height:1.5;font-style:italic;margin:0}.today-main{max-width:640px;width:100%;margin:0 auto;padding:24px 20px 120px}.week-strip{position:sticky;top:calc(56px + var(--sat, 0px));z-index:10;background:var(--bg);margin:-10px -20px 14px;padding:10px 20px 8px;border-bottom:1px solid transparent;transition:border-color .15s}.week-strip.is-stuck{border-bottom-color:var(--border)}.week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-chip{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:10px;border:1px solid var(--border);background:#ffffff08;cursor:pointer;transition:border-color .15s,background .15s}.week-chip:disabled{cursor:default;opacity:.5}.week-chip.active{border-color:#8df7c059;background:#8df7c012}.week-chip:not(:disabled):not(.active):hover{border-color:#ffffff2e}.week-chip-day{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);line-height:1}.week-chip-type{font-size:11px;font-weight:700;line-height:1;color:var(--text);white-space:nowrap}.week-chip.rest .week-chip-type{color:var(--muted);font-weight:400}.week-chip.type-push{border-color:#64a0ff40}.week-chip.type-push .week-chip-type{color:#7eb8ff}.week-chip.type-pull{border-color:#b478ff40}.week-chip.type-pull .week-chip-type{color:#c9a0ff}.week-chip.type-legs{border-color:#8df7c040}.week-chip.type-legs .week-chip-type{color:var(--accent)}.week-chip.type-upper{border-color:#ffb45040}.week-chip.type-upper .week-chip-type{color:#ffb84d}.week-chip.type-full{border-color:#ffb45033}.week-chip.type-full .week-chip-type{color:#ffb84d}.week-chip.type-cardio{border-color:#50c8ff40}.week-chip.type-cardio .week-chip-type{color:#5cc8ff}.week-detail{margin-top:8px;background:#ffffff08;border:1px solid var(--border);border-radius:12px;padding:10px 14px}.week-detail-top{display:flex;align-items:center;gap:10px;margin-bottom:4px}.week-detail-type{font-size:13px;font-weight:700}.week-detail-type.type-push{color:#7eb8ff}.week-detail-type.type-pull{color:#c9a0ff}.week-detail-type.type-legs{color:var(--accent)}.week-detail-type.type-upper,.week-detail-type.type-full{color:#ffb84d}.week-detail-type.type-cardio{color:#5cc8ff}.week-detail-type.type-other{color:var(--text)}.week-detail-meta{font-size:12px;color:var(--muted)}.week-detail-note{font-size:13px;color:#d4d8df;line-height:1.5;margin:0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.today-session-card{background:linear-gradient(180deg,#8df7c014,#ffffff05);border:1px solid rgba(141,247,192,.16);border-radius:18px;padding:18px}.today-session-skeleton{color:var(--muted);font-size:14px;padding:8px 0;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.today-session-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.today-session-title{font-size:22px;font-weight:720;letter-spacing:-.3px;margin-bottom:4px}.today-session-meta{color:var(--muted);font-size:14px;line-height:1.5}.today-refresh-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:16px;line-height:1;padding:6px 10px;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s}.today-refresh-btn:hover{color:var(--text);border-color:#fff3}.today-exercise-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.today-exercise-row{background:#ffffff09;border:1px solid var(--border);border-radius:14px;padding:12px 14px}.today-exercise-row.priority{border-color:#8df7c047;background:#8df7c00d}.today-exercise-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.today-exercise-name{font-size:15px;font-weight:680;color:var(--text)}.today-priority-badge{font-size:11px;font-weight:700;color:var(--accent);background:#8df7c01a;border:1px solid rgba(141,247,192,.18);border-radius:999px;padding:2px 8px}.today-exercise-prescription{font-size:14px;color:#d4d8df;line-height:1.5}.today-exercise-note{margin-top:4px;font-size:12px;color:var(--muted);line-height:1.5}.today-coaching-box{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.today-coaching-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.today-coaching-list{margin:0;padding-left:18px;color:#d2d6dd;font-size:13px;line-height:1.7}.today-actions-section{margin-top:14px}.today-actions{display:flex;flex-direction:column;gap:10px}.today-actions-row2{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.today-action-btn{font-family:inherit;font-size:14px;font-weight:600;border-radius:12px;padding:13px 16px;cursor:pointer;border:none;transition:opacity .15s,transform .1s;line-height:1.2}.today-action-btn:hover{opacity:.88;transform:translateY(-1px)}.today-action-btn:active{transform:translateY(0)}.today-action-btn.primary{background:var(--accent);color:#07160f;width:100%;font-size:15px;font-weight:700}.today-action-btn.secondary{background:#ffffff12;border:1px solid var(--border);color:var(--text)}.today-action-btn.ghost{background:none;border:1px solid var(--border);color:var(--muted)}.today-inline-form{background:#ffffff08;border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.today-inline-label{font-size:12px;font-weight:600;color:var(--muted);margin:0}.today-inline-textarea{background:#ffffff0a;border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:inherit;font-size:14px;line-height:1.6;padding:10px 12px;resize:none;outline:none;transition:border-color .15s}.today-inline-textarea:focus{border-color:#8df7c04d}.today-inline-textarea::placeholder{color:var(--muted);opacity:.55}.today-inline-row{display:flex;gap:8px;justify-content:flex-end}.today-inline-cancel{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:inherit;font-size:13px;font-weight:500;padding:7px 14px;cursor:pointer;transition:color .15s}.today-inline-cancel:hover{color:var(--text)}.today-inline-submit{background:var(--accent);border:none;border-radius:8px;color:#07160f;font-family:inherit;font-size:13px;font-weight:700;padding:7px 16px;cursor:pointer;transition:opacity .15s}.today-inline-submit:disabled{opacity:.4;cursor:not-allowed}.today-inline-error{font-size:12px;color:var(--danger);margin:0}.onboard-card{background:linear-gradient(180deg,#8df7c012,#ffffff05);border:1px solid rgba(141,247,192,.18);border-radius:20px;padding:32px 24px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}.onboard-logo{font-size:18px;font-weight:800;letter-spacing:-.04em;color:var(--text);margin-bottom:20px;opacity:.5}.onboard-logo span{color:var(--accent)}.onboard-title{font-size:26px;font-weight:760;letter-spacing:-.03em;margin-bottom:6px;line-height:1.15}.onboard-sub{font-size:15px;color:var(--muted);margin-bottom:24px}.onboard-features{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:10px;text-align:left;width:100%}.onboard-features li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--text);line-height:1.4}.onboard-check{color:var(--accent);font-weight:700;flex-shrink:0;margin-top:1px}.onboard-actions{display:flex;flex-direction:column;gap:10px;width:100%}.onboard-card.quiz{align-items:flex-start;text-align:left;gap:0}.onboard-quiz-progress{display:flex;gap:6px;margin-bottom:24px}.onboard-quiz-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .2s}.onboard-quiz-dot.active{background:var(--accent)}.onboard-quiz-question{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:18px;line-height:1.25}.onboard-quiz-options{display:flex;flex-direction:column;gap:10px;width:100%;margin-bottom:16px}.onboard-quiz-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:14px 16px;background:#ffffff0a;border:1px solid var(--border);border-radius:14px;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s,background .15s}.onboard-quiz-option:hover:not(:disabled){border-color:#8df7c059;background:#8df7c00f}.onboard-quiz-option:disabled{opacity:.5;cursor:not-allowed}.onboard-quiz-label{font-size:15px;font-weight:650;color:var(--text)}.onboard-quiz-hint{font-size:12px;color:var(--muted)}.onboard-back{background:none;border:none;color:var(--muted);font-family:inherit;font-size:13px;cursor:pointer;padding:4px 0;transition:color .15s}.onboard-back:hover{color:var(--text)}.onboard-generating{display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px 0;color:var(--muted);font-size:14px}.onboard-spinner{width:28px;height:28px;border:2.5px solid rgba(141,247,192,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.today-main{padding:18px 14px 120px}}.detail-page{min-height:100dvh;display:flex;flex-direction:column}.detail-header{position:sticky;top:0;background:#0a0e14e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:0 20px;height:56px;display:flex;align-items:center;justify-content:space-between;z-index:10}.back-btn{background:none;border:none;color:var(--muted);font-size:14px;padding:6px 0;cursor:pointer;transition:color .15s}.back-btn:hover{color:var(--text)}.dash-logo{font-size:18px;font-weight:800;letter-spacing:-.04em;color:var(--text)}.dash-logo span{color:var(--accent)}.detail-main{max-width:840px;width:100%;margin:0 auto;padding:24px 20px 60px}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.detail-hero{background:linear-gradient(180deg,#ffffff08,#ffffff04);border:1px solid var(--border);border-radius:20px;padding:18px;margin-bottom:18px}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.detail-title-row h1{font-size:28px;font-weight:760;letter-spacing:-.5px;line-height:1.15}.detail-overall-note{color:var(--muted);font-style:italic;font-size:14px;margin-bottom:16px;line-height:1.6}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.overview-card{background:#ffffff08;border:1px solid var(--border);border-radius:14px;padding:12px}.overview-value{font-size:20px;font-weight:760;letter-spacing:-.3px;margin-bottom:2px}.overview-label{font-size:12px;color:var(--muted)}.no-sets{color:var(--muted);padding:40px 0;text-align:center}.exercise-block{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:16px;margin-bottom:14px}.exercise-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}.exercise-header-left{flex:1;min-width:0}.exercise-header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.exercise-name-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.exercise-name{font-size:18px;font-weight:700;color:var(--text);text-transform:capitalize;letter-spacing:-.2px}.exercise-rename-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}.exercise-rename-input{flex:1;min-width:140px;background:#ffffff0f;border:1px solid rgba(141,247,192,.35);border-radius:8px;color:var(--text);font-family:inherit;font-size:15px;font-weight:700;padding:5px 10px;outline:none}.exercise-prev-line{color:var(--muted);font-size:13px;line-height:1.5}.sets-list{display:flex;flex-direction:column;gap:10px}.set-card{background:#ffffff06;border:1px solid var(--border);border-radius:14px;padding:12px}.set-card.injury{background:#ff5c5c0d;border-color:#ff5c5c29}.set-card-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.set-card-left{display:flex;flex-direction:column;gap:4px}.set-index{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.set-performance{font-size:18px;font-weight:720;letter-spacing:-.2px;color:var(--text)}.set-meta-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.meta-badge{display:inline-block;background:#ffffff12;color:#ccc;border-radius:999px;padding:4px 9px;font-size:12px}.injury-badge{background:#ff5c5c26;color:var(--danger)}.delta-badge{border-radius:999px;font-size:11px;font-weight:700;padding:4px 8px}.delta-badge.up{background:#8df7c01a;color:var(--accent);border:1px solid rgba(141,247,192,.2)}.delta-badge.flat{background:#ffffff0f;color:#d5d7dc;border:1px solid rgba(255,255,255,.1)}.delta-badge.down{background:#ff5c5c17;color:var(--danger);border:1px solid rgba(255,92,92,.16)}.set-note{font-size:13px;color:var(--muted);font-style:italic;line-height:1.5}.detail-summary{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.detail-summary h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.detail-summary p{color:#d2d6dd;font-size:14px;line-height:1.7;white-space:pre-wrap}.error-text{color:var(--danger)}.set-edit-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.set-card:hover .set-edit-btn{opacity:1}.set-edit-btn:hover{color:var(--text);background:#ffffff12}.set-card.editing{background:#ffffff0a;border-color:#8df7c033}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.edit-field{display:flex;flex-direction:column;gap:4px}.edit-field-full{margin-bottom:10px}.edit-field span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.edit-field input{background:#ffffff0f;border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:14px;padding:7px 10px;outline:none;width:100%;box-sizing:border-box;transition:border-color .15s}.edit-field input:focus{border-color:#8df7c059}.edit-injury-toggle{display:flex;align-items:center;gap:8px;margin-bottom:10px;cursor:pointer;font-size:13px;color:var(--muted)}.edit-injury-toggle input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.edit-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}.edit-actions-right{display:flex;gap:8px}.edit-btn-save,.edit-btn-cancel,.edit-btn-delete{border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;cursor:pointer;transition:opacity .15s}.edit-btn-save{background:var(--accent);color:#07160f}.edit-btn-save:disabled{opacity:.5;cursor:not-allowed}.edit-btn-cancel{background:#ffffff12;color:var(--muted)}.edit-btn-delete{background:#ff5c5c1f;color:var(--danger)}.edit-btn-save:not(:disabled):hover,.edit-btn-cancel:hover,.edit-btn-delete:hover{opacity:.8}.session-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}.tag{background:#8df7c017;border:1px solid rgba(141,247,192,.18);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:650}.tag-dim{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--muted)}.tag-editable{cursor:pointer;display:inline-flex;align-items:center;background:#8df7c017;border:1px solid rgba(141,247,192,.18);transition:background .15s,border-color .15s}.tag-editable:hover{background:#8df7c029;border-color:#8df7c059}.type-picker{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.type-option{background:#ffffff0d;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:inherit;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.type-option:hover{background:#8df7c014;border-color:#8df7c040;color:var(--accent)}.type-option.active{background:#8df7c01f;border-color:#8df7c059;color:var(--accent)}.type-cancel{background:none;border:none;color:var(--muted);font-family:inherit;font-size:13px;padding:6px 10px;cursor:pointer;opacity:.7}.type-cancel:hover{opacity:1}.ex-icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.exercise-name-row:hover .ex-icon-btn,.exercise-header:hover .ex-icon-btn{opacity:1}.ex-icon-btn:hover{color:var(--text);background:#ffffff12}.ex-delete-btn:hover,.ex-delete-btn.confirming{color:var(--danger)!important;background:#ff5c5c1a!important;opacity:1!important}.ex-delete-btn.confirming{font-size:12px;font-weight:600;padding:4px 8px}.add-set-form,.add-exercise-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.add-set-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}.add-set-btn{display:block;width:100%;margin-top:12px;padding:8px;background:none;border:1px dashed rgba(255,255,255,.1);border-radius:10px;color:var(--muted);font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s;text-align:center}.add-set-btn:hover{border-color:#8df7c04d;color:var(--accent)}.add-exercise-btn{display:block;width:100%;margin-top:6px;padding:12px;background:none;border:1px dashed rgba(255,255,255,.1);border-radius:14px;color:var(--muted);font-family:inherit;font-size:14px;cursor:pointer;transition:border-color .15s,color .15s;text-align:center}.add-exercise-btn:hover{border-color:#8df7c04d;color:var(--accent)}.add-exercise-form{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:16px;margin-top:6px}.detail-note-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;cursor:pointer}.detail-note-row .detail-overall-note{margin-bottom:0;flex:1}.note-edit-btn{opacity:0;margin-top:2px}.detail-note-row:hover .note-edit-btn{opacity:1}.note-edit-form{margin-bottom:16px}.note-edit-textarea{width:100%;box-sizing:border-box;background:#ffffff0a;border:1px solid rgba(141,247,192,.3);border-radius:10px;color:var(--text);font-family:inherit;font-size:14px;line-height:1.6;padding:10px 12px;resize:vertical;outline:none}.note-edit-textarea::placeholder{color:var(--muted);opacity:.6}.add-note-btn{background:none;border:none;color:var(--muted);font-family:inherit;font-size:13px;padding:0 0 16px;cursor:pointer;opacity:.6;transition:opacity .15s;display:block}.add-note-btn:hover{opacity:1}.overview-card-editable{cursor:pointer;transition:border-color .15s,background .15s}.overview-card-editable:hover{border-color:#8df7c040;background:#8df7c00a}.overview-unit{font-size:13px;font-weight:400;color:var(--muted)}.duration-edit{display:flex;flex-direction:column;gap:6px}.duration-input{width:100%;box-sizing:border-box;background:#ffffff0f;border:1px solid rgba(141,247,192,.35);border-radius:6px;color:var(--text);font-family:inherit;font-size:16px;font-weight:700;padding:4px 6px;outline:none}.duration-edit-actions{display:flex;gap:4px;justify-content:flex-end}.coaching-note-section{margin-top:6px;padding:14px 16px;background:#ffb84d0a;border:1px solid rgba(255,184,77,.15);border-radius:14px}.coaching-note-header{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.coaching-note-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#ffb84d}.coaching-note-hint{font-size:12px;color:var(--muted);opacity:.6}.coaching-note-row{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.coaching-note-text{flex:1;font-size:14px;color:#e8c97a;line-height:1.6;font-style:italic}.coaching-note-row .note-edit-btn{color:#ffb84d;opacity:0}.coaching-note-row:hover .note-edit-btn{opacity:.7}.coaching-note-textarea{border-color:#ffb84d4d!important}.coaching-note-textarea:focus{border-color:#ffb84d8c!important}.add-coaching-note-btn{background:none;border:none;color:#ffb84d;font-family:inherit;font-size:13px;padding:0;cursor:pointer;opacity:.55;transition:opacity .15s}.add-coaching-note-btn:hover{opacity:1}@media(max-width:760px){.detail-main{padding:18px 14px 54px}.detail-title-row h1{font-size:24px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.set-performance{font-size:17px}}.progress-page{min-height:calc(100dvh - 56px)}.progress-main{max-width:840px;width:100%;margin:0 auto;padding:28px 20px 60px}.progress-title{font-size:28px;font-weight:760;letter-spacing:-.5px;margin-bottom:20px}.ex-picker{position:relative;margin-bottom:24px}.ex-picker-box{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;cursor:text;transition:border-color .15s;min-height:44px}.ex-picker-box:focus-within{border-color:#8df7c059}.ex-picker-input{flex:1;background:none;border:none;color:var(--text);font-family:inherit;font-size:15px;outline:none}.ex-picker-input::placeholder{color:var(--muted);opacity:.7}.ex-picker-selected{flex:1;font-size:15px;font-weight:600;color:var(--text)}.ex-picker-clear{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 0 0 8px;transition:color .15s}.ex-picker-clear:hover{color:var(--text)}.ex-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#131820;border:1px solid var(--border);border-radius:12px;overflow-y:auto;max-height:260px;z-index:50;list-style:none;padding:6px;box-shadow:0 8px 32px #00000080}.ex-option{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);font-family:inherit;font-size:14px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .1s}.ex-option:hover,.ex-option.active{background:#8df7c014;color:var(--accent)}.selectors{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.pill-row{display:flex;flex-wrap:wrap;gap:6px}.pill{background:#ffffff0d;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:inherit;font-size:13px;font-weight:500;padding:5px 14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.pill:hover{background:#8df7c00f;color:var(--text)}.pill.active{background:#8df7c01f;border-color:#8df7c04d;color:var(--accent);font-weight:600}.range-row{gap:5px}.range-row .pill{padding:4px 12px;font-size:12px}.prog-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.prog-stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.prog-stat-value{font-size:20px;font-weight:760;letter-spacing:-.3px;margin-bottom:3px;color:var(--text)}.prog-stat-unit{font-size:13px;font-weight:500;color:var(--muted)}.prog-stat-label{font-size:12px;color:var(--muted)}.prog-stat.up .prog-stat-value{color:#8df7c0}.prog-stat.down .prog-stat-value{color:var(--danger)}.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px 8px 12px 4px;margin-bottom:20px}.chart-tooltip{background:#1a1f2b;border:1px solid var(--border);border-radius:10px;padding:10px 14px;pointer-events:none}.chart-tooltip-date{font-size:12px;color:var(--muted);margin-bottom:4px}.chart-tooltip-value{font-size:16px;font-weight:700;color:var(--text)}.chart-tooltip-unit{font-size:13px;font-weight:500;color:var(--muted)}.history-table{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden}.history-table-head{display:grid;grid-template-columns:1fr 60px 100px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.history-table-row{display:grid;grid-template-columns:1fr 60px 100px;padding:11px 16px;border-bottom:1px solid var(--border);align-items:center;transition:background .1s}.history-table-row:last-child{border-bottom:none}.history-table-row:hover{background:#ffffff05}.ht-date{font-size:13px;color:var(--text)}.ht-sets{font-size:13px;color:var(--muted)}.ht-value{font-size:14px;font-weight:600;color:var(--text)}.ht-unit{font-size:12px;font-weight:400;color:var(--muted)}.progress-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--muted);font-size:15px;gap:12px}.progress-empty-icon{font-size:32px;opacity:.4}.progress-loading{color:var(--muted);font-size:14px;padding:40px 0;text-align:center}@media(max-width:640px){.progress-main{padding:20px 14px 80px}.progress-title{font-size:24px}.prog-summary{grid-template-columns:repeat(2,1fr)}.history-table-head,.history-table-row{grid-template-columns:1fr 44px 80px;padding:10px 12px}.pill{font-size:12px;padding:5px 11px}}.admin-page{padding:32px 20px 80px}.admin-inner{max-width:860px;margin:0 auto}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.admin-title{font-size:22px;font-weight:700;letter-spacing:-.03em;margin-bottom:4px}.admin-sub{font-size:13px;color:var(--muted)}.add-user-form{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:24px}.add-user-title{font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}.add-user-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin-input{background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:14px;padding:8px 12px;outline:none;transition:border-color .15s;min-width:120px}.admin-input.email{flex:1;min-width:200px}.admin-input:focus{border-color:#8df7c059}.admin-input::placeholder{color:var(--muted);opacity:.6}.admin-form-error{font-size:13px;color:var(--danger);margin-top:10px}.admin-btn{border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;padding:8px 16px;cursor:pointer;transition:opacity .15s,transform .1s;white-space:nowrap}.admin-btn:disabled{opacity:.45;cursor:not-allowed}.admin-btn:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.admin-btn.primary{background:var(--accent);color:#07160f}.admin-btn.secondary{background:#ffffff14;color:var(--text);border:1px solid var(--border)}.admin-btn.danger{background:#ff50501a;color:var(--danger);border:1px solid rgba(255,80,80,.2)}.admin-btn.small{font-size:12px;padding:5px 12px}.admin-table-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--border)}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table thead th{padding:11px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--border);background:#ffffff05;white-space:nowrap}.user-row td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.user-row:last-child td{border-bottom:none}.user-row:hover td{background:#ffffff05}.user-name{font-weight:500;white-space:nowrap}.user-email{color:var(--muted);font-size:13px}.user-joined{color:var(--muted);font-size:13px;white-space:nowrap}.user-actions{text-align:right;display:flex;gap:6px;justify-content:flex-end}.status-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:3px 9px;border-radius:999px}.status-badge.active{background:#8df7c01a;color:var(--accent);border:1px solid rgba(141,247,192,.2)}.status-badge.pending{background:#ffffff0d;color:var(--muted);border:1px solid var(--border)}.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.linked-yes{font-size:12px;color:var(--accent)}.linked-no{font-size:12px;color:var(--muted);opacity:.5}.admin-loading,.admin-empty{padding:40px;text-align:center;color:var(--muted);font-size:14px}.admin-error{color:var(--danger);font-size:14px;margin-bottom:16px}.admin-forbidden{padding:80px 20px;text-align:center;color:var(--muted)}.report-date{white-space:nowrap;color:var(--muted);font-size:12px}.report-desc{max-width:320px;font-size:13px;line-height:1.5}.report-url{font-size:12px;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-category-badge{display:inline-block;border-radius:999px;font-size:11px;font-weight:700;padding:3px 9px;white-space:nowrap}.report-category-badge.danger{background:#f871711f;color:var(--danger)}.report-category-badge.accent{background:#8df7c01a;color:var(--accent)}.report-category-badge.muted{background:#ffffff0f;color:var(--muted)}@media(max-width:640px){.admin-page{padding:20px 12px 80px}.add-user-fields{flex-direction:column;align-items:stretch}.admin-input.email{min-width:unset}.user-joined,.user-linked{display:none}}.ob-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}.ob-card{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px 28px 24px}.ob-header{text-align:center;margin-bottom:28px}.ob-logo{font-size:20px;font-weight:800;letter-spacing:-.04em;color:var(--text);margin-bottom:6px}.ob-logo span{color:var(--accent)}.ob-welcome{font-size:14px;color:var(--muted)}.ob-progress{position:relative;display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding:0 2px}.ob-progress:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:2px;background:var(--border);z-index:0}.ob-progress-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:2px;background:var(--accent);z-index:1;transition:width .35s ease}.ob-progress-dot{width:10px;height:10px;border-radius:50%;background:var(--border);border:2px solid var(--bg);z-index:2;transition:background .25s;flex-shrink:0}.ob-progress-dot.done{background:var(--accent)}.ob-step-title{font-size:18px;font-weight:700;letter-spacing:-.03em;margin-bottom:6px}.ob-step-sub{font-size:14px;color:var(--muted);margin-bottom:24px;line-height:1.5}.ob-fields{display:flex;flex-direction:column;gap:20px}.ob-field-row{display:flex;flex-direction:column;gap:8px}.ob-label{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.ob-optional{font-size:11px;font-weight:400;color:var(--muted);opacity:.7;text-transform:uppercase;letter-spacing:.05em}.ob-input{background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:15px;padding:10px 12px;outline:none;transition:border-color .15s;-moz-appearance:textfield}.ob-input.short{max-width:140px}.ob-input::-webkit-outer-spin-button,.ob-input::-webkit-inner-spin-button{-webkit-appearance:none}.ob-input:focus{border-color:#8df7c066}.ob-input::placeholder{color:var(--muted);opacity:.5}.ob-textarea{background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:14px;padding:10px 12px;outline:none;resize:vertical;line-height:1.5;transition:border-color .15s}.ob-textarea:focus{border-color:#8df7c066}.ob-textarea::placeholder{color:var(--muted);opacity:.45}.ob-input-with-unit{display:flex;align-items:center;gap:6px}.ob-unit{font-size:13px;color:var(--muted);flex-shrink:0}.ob-ft-in{display:flex;gap:10px}.ob-options{display:flex;gap:8px;flex-wrap:nowrap}.ob-options.wrap{flex-wrap:wrap}.ob-option{flex:1;padding:8px 10px;background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s,background .15s;text-align:center;white-space:nowrap}.ob-option:hover{border-color:#fff3;color:var(--text)}.ob-option.selected{background:#8df7c01a;border-color:#8df7c059;color:var(--accent);font-weight:600}.ob-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:12px}.ob-btn{border:none;border-radius:10px;font-family:inherit;font-size:15px;font-weight:600;padding:11px 24px;cursor:pointer;transition:opacity .15s,transform .1s}.ob-btn:disabled{opacity:.4;cursor:not-allowed}.ob-btn:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.ob-btn.primary{background:var(--accent);color:#07160f;flex:1}.ob-btn.secondary{background:#ffffff12;color:var(--text);border:1px solid var(--border)}.ob-skip{display:block;width:100%;background:none;border:none;color:var(--muted);font-family:inherit;font-size:13px;padding:12px;cursor:pointer;opacity:.6;transition:opacity .15s;text-align:center}.ob-skip:hover{opacity:1}.ob-error{color:var(--danger);font-size:13px;text-align:center;margin-top:12px}.ob-consent-items{display:flex;flex-direction:column;gap:14px;margin-top:4px}.ob-consent-item{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--text);line-height:1.5;cursor:pointer}.ob-consent-item input[type=checkbox]{width:18px;height:18px;margin-top:1px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.ob-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}@media(max-width:480px){.ob-card{padding:24px 16px 16px;border-radius:16px}.ob-option{font-size:12px;padding:7px 8px}}.sc-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.sc-loading{font-size:13px;color:var(--muted);padding:8px 0}.sc-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sc-strava-logo{width:36px;height:36px;flex-shrink:0}.sc-athlete{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.sc-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.sc-title{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;flex-shrink:0}.sc-badge.connected{background:#8df7c01f;color:var(--accent)}.sc-badge.disconnected{background:#ffffff0d;color:var(--muted)}.sc-badge.stale{background:#ffb4001f;color:#f5a623}.sc-description{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px}.sc-sync-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.sc-sync-time{font-size:12px;color:var(--muted);opacity:.7}.sc-sync-success{font-size:12px;color:var(--accent)}.sc-error{font-size:13px;color:var(--danger);margin-bottom:10px}.sc-actions{display:flex;gap:8px;flex-wrap:wrap}.sc-btn{border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:500;padding:7px 14px;cursor:pointer;transition:opacity .15s}.sc-btn:disabled{opacity:.4;cursor:not-allowed}.sc-btn.connect{background:#fc4c02;color:#fff;font-weight:600}.sc-btn.connect:hover:not(:disabled){opacity:.85}.sc-btn.secondary{background:#ffffff12;color:var(--text);border:1px solid var(--border)}.sc-btn.secondary:hover:not(:disabled){border-color:#fff3}.sc-btn.ghost{background:none;color:var(--muted);padding:7px 10px}.sc-btn.ghost:hover:not(:disabled){color:var(--text)}.sc-btn.danger-ghost{color:var(--danger);opacity:.7}.sc-btn.danger-ghost:hover{opacity:1}.sc-btn.danger{background:var(--danger);color:#fff}.sc-confirm-text{font-size:14px;color:var(--text);margin-bottom:14px;line-height:1.5}.sc-confirm-actions{display:flex;gap:8px}.pp-page{padding:32px 20px 80px}.pp-toast{position:fixed;top:calc(64px + var(--sat, 0px));left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 18px;font-size:13px;color:var(--text);box-shadow:0 8px 24px #0006;z-index:300;white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis}.pp-inner{max-width:600px;margin:0 auto}.pp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.pp-title{font-size:22px;font-weight:700;letter-spacing:-.03em}.pp-edit-btn{background:none;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.pp-edit-btn:hover{border-color:#fff3;color:var(--text)}.pp-section{margin-bottom:24px}.pp-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:10px}.pp-cycle-meta{font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--accent);opacity:.8}.pp-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.pp-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.04)}.pp-row:last-child{border-bottom:none}.pp-row.stacked{flex-direction:column;align-items:flex-start;gap:6px}.pp-label{font-size:13px;color:var(--muted);flex-shrink:0}.pp-value{font-size:14px;color:var(--text);text-align:right;word-break:break-word}.pp-row.stacked .pp-value{text-align:left;line-height:1.5;font-size:14px}.pp-input-wrap{display:flex;align-items:center;gap:6px}.pp-input{background:#ffffff0d;border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:14px;padding:6px 10px;outline:none;width:120px;transition:border-color .15s;-moz-appearance:textfield}.pp-input::-webkit-outer-spin-button,.pp-input::-webkit-inner-spin-button{-webkit-appearance:none}.pp-input.textarea{width:100%;resize:vertical;height:auto}.pp-input:focus{border-color:#8df7c059}.pp-unit{font-size:12px;color:var(--muted)}.pp-options{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pp-option{background:#ffffff0a;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-family:inherit;font-size:12px;padding:4px 10px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.pp-option:hover{color:var(--text)}.pp-option.selected{background:#8df7c01a;border-color:#8df7c04d;color:var(--accent);font-weight:600}.pp-option.coaching{width:100%;text-align:left;padding:10px 14px;font-size:13px;border-radius:10px}.pp-goals-textarea{display:block;width:100%;box-sizing:border-box;background:none;border:none;color:var(--text);font-family:inherit;font-size:14px;line-height:1.6;padding:14px 16px;resize:vertical;outline:none}.pp-goals-textarea::placeholder{color:var(--muted);opacity:.45}.pp-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:14px}.pp-actions.inline{margin-top:10px}.pp-btn{border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;padding:8px 20px;cursor:pointer;transition:opacity .15s}.pp-btn:disabled{opacity:.4;cursor:not-allowed}.pp-btn.primary{background:var(--accent);color:#07160f}.pp-btn.primary:hover:not(:disabled){opacity:.85}.pp-btn.secondary{background:#ffffff12;color:var(--text);border:1px solid var(--border)}.pp-saved{font-size:13px;color:var(--accent);margin-right:4px}.pp-error{font-size:13px;color:var(--danger);flex:1}.pp-plan-details{margin-top:8px}.pp-plan-summary{font-size:13px;color:var(--muted);cursor:pointer;padding:4px 0;list-style:none;display:flex;align-items:center;gap:6px}.pp-plan-summary::-webkit-details-marker{display:none}.pp-plan-summary:before{content:"›";color:var(--accent);font-size:16px;transition:transform .15s;display:inline-block}details[open] .pp-plan-summary:before{transform:rotate(90deg)}.pp-plan-body{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-top:8px}.pp-markdown p{margin:0 0 .5em;font-size:14px}.pp-markdown p:last-child{margin-bottom:0}.pp-markdown ul,.pp-markdown ol{margin:.3em 0 .5em;padding-left:1.3em;font-size:14px}.pp-markdown li{margin-bottom:.2em}.pp-markdown strong{font-weight:650;color:var(--text)}.pp-markdown h1,.pp-markdown h2,.pp-markdown h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1em 0 .4em}.pp-markdown h1:first-child,.pp-markdown h2:first-child{margin-top:0}.pp-pref-note{font-size:12px;color:var(--muted);margin-top:8px;opacity:.7}.pp-loading{padding:40px;text-align:center;color:var(--muted);font-size:14px}.pp-empty{font-size:14px;color:var(--muted);padding:8px 0}.pp-inline-link{background:none;border:none;color:var(--accent);font-family:inherit;font-size:14px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}@media(max-width:640px){.pp-page{padding:20px 12px 80px}.pp-options{justify-content:flex-start}.pp-row{flex-direction:column;align-items:flex-start;gap:6px}.pp-value{text-align:left}.pp-input{width:100%}}.legal-page{min-height:100dvh;background:var(--bg);color:var(--text);font-family:inherit}.legal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#090b10f2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.legal-logo{font-size:17px;font-weight:800;letter-spacing:-.04em;color:var(--text);text-decoration:none}.legal-logo span{color:var(--accent)}.legal-back{background:none;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px;cursor:pointer;text-decoration:none;display:inline-block;transition:color .15s,border-color .15s}.legal-back:hover{color:var(--text);border-color:#fff3}.legal-body{max-width:720px;margin:0 auto;padding:48px 28px 80px}.legal-body h1{font-size:24px;font-weight:700;letter-spacing:-.03em;margin-bottom:8px}.legal-meta{font-size:13px;color:var(--muted);margin-bottom:40px}.legal-body h2{font-size:15px;font-weight:700;margin:32px 0 12px;color:var(--text)}.legal-body p{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:12px}.legal-body ul,.legal-body ol{font-size:14px;line-height:1.7;color:var(--muted);padding-left:20px;margin-bottom:12px}.legal-body li{margin-bottom:4px}.legal-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}@media(max-width:640px){.legal-body{padding:32px 16px 60px}.legal-header{padding:16px}}.landing-root{font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at top right,rgba(114,184,255,.14),transparent 28%),radial-gradient(circle at top left,rgba(141,247,192,.12),transparent 24%),#090b10;color:#f5f7fb;line-height:1.6;min-height:100dvh}.landing-root *{box-sizing:border-box}.landing-root a{color:inherit;text-decoration:none}.l-container{width:min(calc(100% - 2rem),1120px);margin:0 auto}.l-nav{position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#090b10b8;border-bottom:1px solid rgba(255,255,255,.08)}.nav-inner{width:min(calc(100% - 2rem),1120px);margin:0 auto;padding:1rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem}.nav-logo{font-weight:800;letter-spacing:-.04em;font-size:1.15rem}.nav-logo span{color:#8df7c0}.nav-links{display:flex;align-items:center;gap:1rem}.nav-link{color:#9ea7b7;font-size:.95rem}.landing-root .nav-cta,.landing-root .nav-cta:visited,.landing-root .nav-cta:active,.landing-root .btn-primary,.landing-root .btn-primary:visited,.landing-root .btn-primary:active{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;background:linear-gradient(135deg,#8df7c0,#b7ffd7);color:#09110d;font-weight:700;border-radius:999px;padding:.85rem 1.3rem;box-shadow:0 12px 34px #8df7c029;transition:transform .18s ease,opacity .18s ease;cursor:pointer;border:none;font-family:inherit;font-size:inherit}.nav-cta:hover,.btn-primary:hover{transform:translateY(-1px);opacity:.94}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.3rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);color:#f5f7fb;font-weight:600;background:#ffffff05;transition:border-color .18s ease,transform .18s ease}.btn-secondary:hover{border-color:#8df7c061;transform:translateY(-1px)}.mobile-cta{display:none}.hero{padding:5.5rem 0 4.5rem}.hero-grid{display:grid;grid-template-columns:1.2fr .95fr;gap:2.25rem;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .8rem;border-radius:999px;border:1px solid rgba(141,247,192,.22);background:#8df7c00f;color:#8df7c0;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.25rem}.landing-root h1{font-size:clamp(2.7rem,7vw,5rem);line-height:.98;letter-spacing:-.06em;margin-bottom:1rem}.hero-subtitle{font-size:clamp(1.05rem,2vw,1.28rem);color:#9ea7b7;max-width:680px;margin-bottom:1.5rem}.hero-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin:1.75rem 0 2rem}.proof-card{background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1rem}.proof-card strong{display:block;font-size:.95rem;margin-bottom:.25rem}.proof-card span{color:#9ea7b7;font-size:.9rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:.9rem}.hero-note{color:#9ea7b7;font-size:.92rem}.demo-card{background:linear-gradient(180deg,#ffffff09,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:26px;padding:1rem;box-shadow:0 24px 80px #00000059;position:relative;overflow:hidden}.demo-card:after{content:"";position:absolute;inset:auto -40px -60px auto;width:180px;height:180px;background:radial-gradient(circle,rgba(141,247,192,.18),transparent 62%);pointer-events:none}.demo-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.3rem .35rem .95rem;color:#9ea7b7;font-size:.88rem}.chat-bubble{max-width:90%;border-radius:18px;padding:.95rem 1rem;margin-bottom:.75rem;font-size:.95rem;line-height:1.5;border:1px solid rgba(255,255,255,.08)}.chat-user{background:#0d2330;margin-left:auto;border-bottom-right-radius:8px}.chat-ai{background:#11151d;margin-right:auto;border-bottom-left-radius:8px}.chat-ai strong{color:#8df7c0}.l-section{padding:4.75rem 0}.section-band{border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff05}.section-kicker{color:#8df7c0;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.8rem}.section-title{font-size:clamp(2rem,4vw,3rem);line-height:1.06;letter-spacing:-.05em;margin-bottom:1rem;max-width:760px}.section-sub{color:#9ea7b7;font-size:1.05rem;max-width:720px;margin-bottom:2.2rem}.problem-grid,.feature-grid,.reason-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.card{background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1.25rem}.card h3{font-size:1.02rem;margin-bottom:.45rem;letter-spacing:-.02em}.card p{color:#9ea7b7;font-size:.94rem}.feature-card{background:linear-gradient(180deg,#ffffff08,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:1.35rem;min-height:100%}.feature-tag{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.38rem .72rem;background:#72b8ff17;border:1px solid rgba(114,184,255,.16);color:#72b8ff;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.9rem}.feature-card h3{font-size:1.06rem;margin-bottom:.5rem;letter-spacing:-.03em}.feature-card p{color:#9ea7b7;font-size:.94rem}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:2rem}.step{background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1.25rem}.step-num{width:2.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:.9rem;font-weight:800;background:#8df7c014;border:1px solid rgba(141,247,192,.22);color:#8df7c0;margin-bottom:.9rem}.step h3{font-size:1rem;margin-bottom:.35rem}.step p{color:#9ea7b7;font-size:.92rem}.cta-panel{background:linear-gradient(180deg,#8df7c012,#72b8ff08);border:1px solid rgba(141,247,192,.16);border-radius:28px;padding:2rem;display:grid;grid-template-columns:1fr .95fr;gap:1.5rem;align-items:center}.cta-panel p{color:#9ea7b7;max-width:560px}.form-wrap{background:#090b1073;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:1rem}.form-group{display:flex;flex-direction:column;gap:.8rem}.form-wrap input{width:100%;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff08;color:#f5f7fb;padding:.95rem 1rem;font:inherit;outline:none;transition:border-color .18s ease,background .18s ease}.form-wrap input:focus{border-color:#8df7c057;background:#ffffff0d}.form-wrap input::placeholder{color:#7f899a}.form-note{margin-top:.95rem;color:#9ea7b7;font-size:.86rem}.form-note a{color:#8df7c0;text-decoration:underline}.form-success{margin-top:1rem;border-radius:16px;padding:1rem;font-weight:600;font-size:.95rem;border:1px solid rgba(141,247,192,.24);background:#8df7c014;color:#8df7c0;text-align:center}.form-error-msg{margin-top:.5rem;color:#f87171;font-size:.9rem}.bot-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:#9ea7b7}.bot-status-dot{width:7px;height:7px;border-radius:50%;background:#555;transition:background .4s ease}.bot-status.online .bot-status-dot{background:#8df7c0}.bot-status.online .bot-status-text{color:#8df7c0}.bot-status.offline .bot-status-dot{background:#f87171}.bot-status.offline .bot-status-text{color:#f87171}.strava-callout{display:flex;align-items:center;gap:1rem;margin-top:1.75rem;padding:1rem 1.25rem;border-radius:16px;border:1px solid rgba(252,76,2,.18);background:#fc4c020a}.strava-callout svg{flex-shrink:0}.strava-callout-text{display:flex;flex-direction:column;gap:.2rem}.strava-callout-title{font-size:.9rem;font-weight:700;color:#fc4c02e6;letter-spacing:-.01em}.strava-callout-sub{font-size:.85rem;color:#9ea7b7}.l-footer{border-top:1px solid rgba(255,255,255,.08);padding:2rem 0 2.5rem;color:#9ea7b7;font-size:.9rem}.l-footer .l-container{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.l-footer a{color:#f5f7fb}@media(max-width:960px){.hero-grid,.cta-panel,.steps,.problem-grid,.feature-grid,.reason-grid,.hero-proof{grid-template-columns:1fr}}@media(max-width:700px){.nav-inner{padding:.9rem 0}.nav-links{display:none}.mobile-cta{display:inline-flex}.hero{padding:4.25rem 0 3.5rem}.cta-panel,.demo-card,.card,.feature-card,.step,.form-wrap{border-radius:18px}}.bug-fab{position:fixed;bottom:80px;right:16px;z-index:300;width:38px;height:38px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background .15s;box-shadow:0 2px 12px #0006}.bug-fab:hover{color:var(--text);border-color:#ffffff2e;background:#ffffff12}@media(min-width:641px){.bug-fab{bottom:24px}}.bug-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.bug-modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:22px;width:100%;max-width:420px;box-shadow:0 24px 60px #00000080}.bug-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.bug-modal-title{font-size:17px;font-weight:720;letter-spacing:-.2px;color:var(--text)}.bug-modal-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 6px;border-radius:6px;line-height:1;transition:color .15s,background .15s}.bug-modal-close:hover{color:var(--text);background:#ffffff12}.bug-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.bug-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.bug-select,.bug-textarea{background:#ffffff0d;border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:inherit;font-size:14px;padding:9px 12px;outline:none;width:100%;box-sizing:border-box;transition:border-color .15s}.bug-select:focus,.bug-textarea:focus{border-color:#8df7c059}.bug-textarea{resize:vertical;line-height:1.55}.bug-textarea::placeholder{color:var(--muted);opacity:.55}.bug-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.bug-btn-cancel,.bug-btn-submit{border:none;border-radius:9px;font-family:inherit;font-size:13px;font-weight:600;padding:8px 16px;cursor:pointer;transition:opacity .15s}.bug-btn-cancel{background:#ffffff12;color:var(--muted)}.bug-btn-submit{background:var(--accent);color:#07160f}.bug-btn-submit:disabled,.bug-btn-cancel:disabled{opacity:.4;cursor:not-allowed}.bug-btn-cancel:not(:disabled):hover,.bug-btn-submit:not(:disabled):hover{opacity:.85}.bug-error{font-size:13px;color:var(--danger);margin-top:-4px;margin-bottom:10px}.bug-sent{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 0 16px;color:var(--accent)}.bug-sent-icon{font-size:28px;font-weight:700}.bug-sent p{font-size:15px;color:var(--text)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #090b10;--surface: #11151d;--surface-2: #151b25;--border: rgba(255,255,255,.08);--text: #f5f7fb;--muted: #9ea7b7;--accent: #8df7c0;--accent-dim: #6dd4a8;--accent-2: #72b8ff;--danger: #f87171;--radius: 14px;--font: "Inter", system-ui, sans-serif;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:radial-gradient(circle at top right,rgba(114,184,255,.1),transparent 28%),radial-gradient(circle at top left,rgba(141,247,192,.09),transparent 24%),var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;min-height:100dvh;overscroll-behavior:none;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:15px}input{font-family:inherit;font-size:15px}
