:root{--color-bg-app:#111412;--color-bg-card:#1a1f1c;--color-bg-card-alt:#222924;--color-border:#2a3130;--color-text-primary:#e1e6e2;--color-text-secondary:#71817a;--color-text-muted:#a1a8a3;--color-text-soft:#c8ceca;--color-white:#fff;--color-accent:#22c55e;--color-accent-hover:#16a34a;--color-accept-text:#06210f;--color-tweak-active:#e0a458;--color-error:#ff6b6b}html,body,#root{width:100%;min-height:100%}html{scroll-padding-top:200px}body{background:var(--color-bg-app);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.invite-qr-wrap{justify-content:center;align-items:center;min-height:240px;margin:.5rem 0;display:flex}.invite-qr-img{background:#fff;border-radius:8px;width:240px;height:240px;display:block}.share-btn{border:1px solid var(--color-border);color:var(--color-accent);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .6rem;font-family:inherit;font-size:.82rem}.share-btn:hover{border-color:var(--color-accent)}.share-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.share-modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:22rem;max-height:85vh;padding:1rem 1.1rem 1.2rem;overflow-y:auto}.share-modal-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.share-modal-header h4{color:var(--color-text-primary);margin:0}.share-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.share-note,.share-empty{color:var(--color-text-secondary);margin:.5rem 0 .75rem;font-size:.84rem}.share-friend-list,.shared-inbox-list{margin:0;padding:0;list-style:none}.share-friend-row,.shared-inbox-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.share-friend-row:last-child{border-bottom:none}.share-friend-name{color:var(--color-text-primary);font-weight:600}.share-sent{color:var(--color-text-secondary);font-size:.85rem}.share-send-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:6px;padding:.35rem .8rem;font-family:inherit;font-size:.85rem}.share-send-btn:hover{background:var(--color-accent-hover)}.share-send-btn:disabled{opacity:.6;cursor:default}.share-decline-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.85rem}.share-decline-btn:disabled{opacity:.5;cursor:default}.share-error{color:var(--color-error);margin:.6rem 0 0;font-size:.82rem}.shared-inbox{border:1px solid var(--color-accent);background:var(--color-bg-card);border-radius:10px;margin-bottom:.9rem;padding:.6rem .8rem .7rem}.shared-inbox-title{color:var(--color-accent);margin:0 0 .25rem;font-size:.9rem}.shared-inbox-info{flex-direction:column;min-width:0;display:flex}.shared-inbox-from{color:var(--color-text-secondary);font-size:.78rem}.shared-inbox-summary{color:var(--color-text-primary);font-weight:600}.shared-inbox-actions{flex-shrink:0;align-items:center;gap:.6rem;display:inline-flex}.invite-confirm-actions{align-items:center;gap:.6rem;margin-top:.75rem;display:flex}.legal-page{max-width:720px;margin:0 auto;padding:0 4px 60px}.legal-header{flex-direction:column;gap:4px;margin-bottom:18px;display:flex}.legal-back{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-bottom:6px;padding:4px 0;font-size:.9rem}.legal-back:hover{color:var(--color-text-soft)}.legal-page h2{color:var(--color-white);margin:0;font-size:1.4rem}.legal-version{color:var(--color-text-secondary);font-size:.75rem}.legal-body{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-soft);border-radius:12px;padding:20px 22px;font-size:.92rem;line-height:1.65}.legal-body h3{color:var(--color-accent);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 8px;font-size:.78rem;font-weight:600}.legal-body h3:first-child{margin-top:4px}.legal-body p{margin:0 0 12px}.legal-body strong{color:var(--color-text-primary)}.legal-body ul{margin:0 0 14px;padding-left:20px}.legal-body li{margin-bottom:6px}.auth-legal-wrap{width:100%;max-width:760px;max-height:100vh;margin:0 auto;padding:16px;overflow-y:auto}.settings-legal-links{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.auth-page{background:linear-gradient(135deg, var(--color-bg-app) 0%, #1a2a1e 50%, var(--color-bg-app) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-container{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:center;border-radius:16px;width:100%;max-width:420px;padding:40px 36px;box-shadow:0 20px 60px #0006,0 0 80px #22c55e0f}.auth-logo{color:var(--color-accent);letter-spacing:-.02em;margin-bottom:8px;font-size:2.2rem;font-weight:800}.auth-subtitle{color:#71717a;margin-bottom:32px;font-size:.9rem}.auth-container form{text-align:left;flex-direction:column;gap:16px;display:flex}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.input-group input{border:1px solid var(--color-border);color:#e1e1e6;background:#0f1210;border-radius:10px;padding:12px 14px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.input-group input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #22c55e26}.input-group input::placeholder{color:#52525b}.auth-error{color:var(--color-error);background:#ff6b6b14;border:1px solid #ff6b6b26;border-radius:8px;padding:10px 14px;font-size:.85rem}.auth-submit{background:var(--color-accent);width:100%;color:var(--color-white);border:none;border-radius:10px;margin-top:4px;padding:13px;font-size:1rem;font-weight:600;transition:background .2s,transform .1s}.auth-submit:hover{background:var(--color-accent-hover)}.auth-submit:active{transform:scale(.98)}.auth-divider{color:#52525b;align-items:center;gap:12px;margin:24px 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-toggle{color:var(--color-accent);background:0 0;padding:0;font-size:.88rem;font-weight:500}.auth-toggle:hover{background:0 0;text-decoration:underline}.auth-confirmation{padding:20px 0}.auth-confirmation-icon{width:56px;height:56px;color:var(--color-accent);background:#22c55e1f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:1.5rem;font-weight:700;display:flex}.auth-confirmation h3{color:var(--color-white);margin-bottom:8px}.auth-confirmation p{color:#a1a1aa;margin-bottom:24px;font-size:.9rem;line-height:1.5}.auth-legal-check{color:var(--color-text-soft);cursor:pointer;align-items:flex-start;gap:10px;margin:14px 0 6px;font-size:.82rem;line-height:1.5;display:flex}.auth-legal-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;margin-top:2px}.auth-legal-link{color:var(--color-accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.auth-legal-link:hover{color:var(--color-accent-hover)}.auth-optional{color:var(--color-text-muted);font-weight:400}.auth-hint{color:var(--color-text-muted);margin:.35rem 0 0;font-size:.78rem}.weight-tracker{background:var(--color-bg-card);border:1px solid var(--color-bg-card-alt);border-radius:12px;margin-top:10px;padding:14px 16px}.weight-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.weight-header h3{color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.88rem;font-weight:600}.weight-log-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:.78rem;font-weight:600}.weight-log-btn:hover{background:var(--color-accent-hover)}.weight-log-btn.secondary{border:1px solid var(--color-border);color:var(--color-text-secondary);background:0 0}.weight-log-btn.secondary:hover{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e14}.weight-empty p{color:var(--color-text-secondary);margin:0 0 10px;font-size:.85rem}.weight-empty .weight-log-btn{width:100%;padding:10px;font-size:.88rem}.weight-input-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.weight-input-row input{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;flex:1;min-width:0;padding:10px 12px;font-size:1rem}.weight-input-row input:focus{border-color:var(--color-accent);outline:none}.weight-save-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:.85rem;font-weight:600}.weight-save-btn:hover:not(:disabled){background:var(--color-accent-hover)}.weight-save-btn:disabled{opacity:.5;cursor:default}.weight-cancel-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px;font-size:.82rem}.weight-cancel-btn:hover{color:var(--color-text-muted);border-color:#3a4140}.weight-error{color:#ff9a9a;margin:4px 0 0;font-size:.78rem}.weight-current{flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:10px;display:flex}.weight-value{color:var(--color-accent);font-size:1.25rem;font-weight:700;line-height:1}.weight-unit{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.weight-deltas{gap:14px;margin-left:auto;display:flex}.weight-delta-group{align-items:baseline;gap:5px;display:flex}.weight-delta-label{color:#555;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.weight-delta{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.weight-delta.down{color:var(--color-accent)}.weight-delta.up{color:#e0b05a}.weight-chart{margin-top:8px;margin-bottom:4px}.weight-chart-body{align-items:stretch;gap:8px;display:flex}.weight-chart-yaxis{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-align:right;flex-direction:column;flex-shrink:0;justify-content:space-between;min-width:32px;padding:2px 0;font-size:.68rem;font-weight:600;display:flex}.weight-spark{border-left:1px solid var(--color-bg-card-alt);border-bottom:1px solid var(--color-bg-card-alt);flex:1;min-width:0;height:60px;display:block}.weight-chart-xaxis{color:var(--color-text-secondary);justify-content:space-between;margin-top:4px;padding-left:40px;font-size:.7rem;display:flex}.weight-stale{color:#555;margin:4px 0 0;font-size:.72rem;font-style:italic}.feedback-backdrop{z-index:9000;background:#0000008c;justify-content:center;align-items:flex-end;animation:.15s feedback-fade;display:flex;position:fixed;inset:0}@keyframes feedback-fade{0%{opacity:0}to{opacity:1}}.feedback-sheet{background:var(--color-bg-card);border-top:1px solid #2d3a31;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:85vh;animation:.2s feedback-slide;display:flex;box-shadow:0 -10px 40px #00000080}@media (width>=700px){.feedback-sheet{border-radius:16px;max-height:70vh;margin-top:auto;margin-bottom:auto}.feedback-backdrop{align-items:center}}@keyframes feedback-slide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.feedback-header{border-bottom:1px solid #2d3a31;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.feedback-title{color:#e2efe6;font-size:16px;font-weight:600}.feedback-close{color:#8aa094;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;width:32px;height:32px;font-size:26px;line-height:1}.feedback-close:active{background:#243029}.feedback-typegrid{text-align:center;padding:24px 16px 28px}.feedback-intro{color:#cfdfd5;margin:0 0 18px;font-size:15px}.feedback-typebuttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.feedback-typechip{color:#e2efe6;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#243029;border:1px solid #355043;border-radius:12px;flex-direction:column;flex:120px;justify-content:center;align-items:center;gap:8px;min-height:96px;font-size:14px;font-weight:500;transition:background .1s,transform 50ms;display:flex}.feedback-typechip:active{background:#2d3a31;transform:scale(.98)}.feedback-typechip-icon{font-size:24px}.feedback-thread{flex-direction:column;flex:1;gap:8px;min-height:200px;padding:14px 16px;display:flex;overflow-y:auto}.feedback-msg{white-space:pre-wrap;word-wrap:break-word;border-radius:10px;max-width:88%;padding:10px 12px;font-size:14px;line-height:1.4}.feedback-msg-assistant{color:#e2efe6;background:#243029;border-bottom-left-radius:2px;align-self:flex-start}.feedback-msg-user{color:var(--color-white);background:#3d8b5f;border-bottom-right-radius:2px;align-self:flex-end}.feedback-typing{opacity:.6;font-style:italic}.feedback-error{color:#f5b7b7;background:#3a1f1f;border:1px solid #5a3030;border-radius:6px;padding:8px 10px;font-size:13px}.feedback-summary{background:#1f2f25;border:1px solid #3a5a47;border-left:3px solid #5cb87a;border-radius:8px;margin:0 16px 8px;padding:12px}.feedback-summary-label{text-transform:uppercase;letter-spacing:.5px;color:#8cc9a3;margin-bottom:4px;font-size:11px;font-weight:600}.feedback-summary-text{color:#e2efe6;font-size:14px;line-height:1.4}.feedback-inputrow{border-top:1px solid #2d3a31;gap:8px;padding:8px 16px 4px;display:flex}.feedback-input{color:#e2efe6;resize:none;background:#243029;border:1px solid #355043;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:14px}.feedback-input:focus{border-color:#5cb87a}.feedback-send-msg{color:var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#3d8b5f;border:none;border-radius:8px;padding:0 16px;font-size:14px;font-weight:500}.feedback-send-msg:disabled{color:#6a7a72;cursor:not-allowed;background:#2d3a31}.feedback-actions{justify-content:flex-end;padding:8px 16px 16px;display:flex}.feedback-action-skip{color:#5cb87a;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #5cb87a;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:500}.feedback-action-skip:disabled{color:#6a7a72;cursor:not-allowed;border-color:#355043}.feedback-action-skip:not(:disabled):active{background:#1f2f25}.feedback-success{text-align:center;padding:40px 24px 32px}.feedback-success-icon{width:56px;height:56px;color:var(--color-white);background:#3d8b5f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:30px;font-weight:700;display:flex}.feedback-success-text{color:#e2efe6;margin-bottom:20px;font-size:16px}.feedback-success-close{color:#e2efe6;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#243029;border:1px solid #355043;border-radius:8px;padding:10px 28px;font-size:14px}.feedback-success-close:active{background:#2d3a31}.coach-page{height:calc(100dvh - var(--nav-height,56px));max-height:calc(100dvh - var(--nav-height,56px));height:calc(100vh - var(--nav-height,56px));height:calc(100dvh - var(--nav-height,56px));max-width:100vw;color:var(--color-text-primary);background:#0f1411;flex-direction:column;display:flex;overflow-x:hidden}.coach-page-header{border-bottom:1px solid var(--color-bg-card);background:#121815;flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.coach-back-btn{color:#d4d8d5;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.4rem}.coach-back-btn:hover{background:#ffffff0a}.coach-page-title{flex:1;align-items:center;gap:8px;display:flex}.coach-page-title h2{color:var(--color-text-primary);margin:0;font-size:1.1rem;font-weight:600}.coach-page .coach-dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #22c55e99}.coach-clear-btn{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:.8rem}.coach-clear-btn:hover{color:var(--color-text-primary);border-color:#3a4038}.coach-header-menu{position:relative}.coach-menu-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;width:36px;height:36px;font-size:1.3rem;line-height:1}.coach-menu-btn:hover{color:var(--color-text-primary);background:#ffffff0a}.coach-menu-popover{border:1px solid var(--color-border);z-index:10;background:#121815;border-radius:8px;min-width:180px;margin-top:6px;padding:4px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #0006}.coach-menu-item{width:100%;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-size:.9rem;display:block}.coach-menu-item:hover{background:#ffffff0a}.coach-menu-item.danger{color:#ef4444}.coach-menu-item:disabled{opacity:.4;cursor:not-allowed}.coach-msg-summary{border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);color:var(--color-text-secondary);background:0 0;align-self:stretch;margin:4px 0;padding:10px 12px;font-size:.85rem;font-style:italic;line-height:1.5}.coach-msg-summary-label{text-transform:uppercase;letter-spacing:.08em;color:#5a6058;margin-bottom:4px;font-size:.68rem;font-style:normal;font-weight:700}.coach-msg-summary p{margin:0}.coach-day-break{color:#5a6058;text-transform:uppercase;letter-spacing:.08em;align-self:stretch;align-items:center;gap:10px;margin:6px 0;font-size:.7rem;font-weight:700;display:flex}.coach-day-break:before,.coach-day-break:after{content:"";background:var(--color-border);flex:1;height:1px}.coach-metric-bar{border-bottom:1px solid var(--color-bg-card);background:#22c55e0a;flex-shrink:0;gap:16px;padding:10px 16px;display:flex}.coach-metric{flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.coach-metric-value{color:var(--color-text-primary);font-size:1rem;font-weight:600}.coach-metric-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.coach-metric-empty{color:var(--color-text-secondary);font-size:.85rem;font-style:italic}.coach-messages{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.coach-empty{color:var(--color-text-muted);text-align:center;padding:64px 16px 40px}.coach-empty p{margin:0}.coach-msg{border-radius:14px;max-width:90%;padding:10px 14px;font-size:.95rem;line-height:1.5}.coach-msg.user{background:var(--color-accent);color:#0f1411;border-bottom-right-radius:4px;align-self:flex-end}.coach-msg.user p{margin:0}.coach-msg.assistant{background:var(--color-bg-card);color:var(--color-text-primary);border-bottom-left-radius:4px;align-self:flex-start;max-width:95%}.coach-msg.assistant.error{background:#ef44440f;border:1px solid #ef444440}.coach-report-bug-btn{color:#ff9a9a;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ef444414;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;font-size:.78rem;font-weight:500;transition:all .15s;display:inline-flex}.coach-report-bug-btn:hover{background:#ef444426;border-color:#ef4444}.coach-msg.assistant p{margin:0 0 8px}.coach-msg.assistant p:last-child{margin-bottom:0}.coach-msg.assistant ul,.coach-msg.assistant ol{margin:6px 0;padding-left:20px}.coach-msg.assistant li{margin-bottom:4px}.coach-msg.assistant strong{color:var(--color-accent);font-weight:700}.coach-msg.assistant table{border-collapse:collapse;margin:8px 0;font-size:.85rem}.coach-msg.assistant th,.coach-msg.assistant td{border:1px solid var(--color-border);text-align:left;padding:4px 8px}.coach-msg .typing{color:var(--color-text-secondary);font-style:italic}.coach-proposal-card{background:#22c55e0f;border:1px solid #22c55e59;border-radius:12px;margin-top:10px;padding:12px 14px}.coach-proposal-card.error{background:#ef44440d;border-color:#ef444459}.coach-proposal-card.approved{background:#22c55e1a}.coach-proposal-card.declined{opacity:.6}.coach-proposal-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);margin-bottom:4px;font-size:.72rem;font-weight:700}.coach-proposal-summary{color:var(--color-text-primary);margin:0 0 4px;font-weight:600}.coach-proposal-reason{color:var(--color-text-muted);margin:0 0 10px;font-size:.85rem;font-style:italic}.coach-proposal-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.coach-proposal-approve{background:var(--color-accent);color:#0f1411;cursor:pointer;border:none;border-radius:8px;padding:7px 16px;font-size:.85rem;font-weight:700}.coach-proposal-approve:hover{background:var(--color-accent-hover)}.coach-proposal-decline{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:.85rem}.coach-proposal-decline:hover{color:var(--color-text-primary);border-color:#3a4038}.coach-proposal-status{color:var(--color-text-muted);margin:0;font-size:.85rem}.coach-proposal-status.success{color:var(--color-accent);font-weight:600}.coach-proposal-status.error{color:#ef4444}.coach-proposal-status.muted{color:var(--color-text-secondary)}.coach-suggestions{box-sizing:border-box;flex-shrink:0;grid-template-columns:1fr 1fr;gap:8px;max-width:100%;padding:10px 16px 8px;display:grid}.coach-suggestion-chip{color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;background:0 0;border-radius:16px;min-width:0;padding:8px 12px;font-size:.85rem;overflow:hidden}.coach-suggestion-chip:hover:not(:disabled){background:#22c55e14}.coach-suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.coach-input{padding:14px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-bg-card);background:#121815;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.coach-textarea-wrap{flex:1;position:relative}.coach-textarea{background:var(--color-bg-card);width:100%;color:var(--color-text-primary);border:1px solid var(--color-border);resize:none;box-sizing:border-box;border-radius:12px;min-height:90px;padding:10px 12px;font-family:inherit;font-size:.95rem;line-height:1.4}.coach-textarea:focus{border-color:var(--color-accent);outline:none}.coach-textarea.listening{border-color:var(--color-accent);box-shadow:0 0 0 2px #22c55e33}.coach-textarea-mic-dot{background:var(--color-text-secondary);border-radius:50%;width:8px;height:8px;position:absolute;top:12px;right:12px}.coach-textarea-mic-dot.active{background:var(--color-accent);box-shadow:0 0 6px #22c55ecc}.coach-input-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.coach-send-btn{background:var(--color-accent);color:#0f1411;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:inline-flex}.coach-send-btn svg{display:block}.coach-send-btn:disabled{opacity:.4;cursor:not-allowed}.dashboard-coach-cta{width:100%;color:var(--color-text-primary);cursor:pointer;text-align:left;background:linear-gradient(135deg,#22c55e1f,#22c55e0a);border:1px solid #22c55e4d;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;font-size:1rem;font-weight:600;display:flex}.dashboard-coach-cta:hover{background:linear-gradient(135deg,#22c55e29,#22c55e0f)}.dashboard-coach-cta .coach-dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #22c55e99}.dashboard-coach-cta-text{flex:1}.dashboard-coach-cta-unread{background:#ef4444;border-radius:50%;width:10px;height:10px;box-shadow:0 0 6px #ef444499}.dashboard-coach-cta-arrow{color:var(--color-accent);font-size:1.2rem}.coach-choice-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.coach-choice-chip{color:var(--color-accent);cursor:pointer;background:#22c55e1a;border:1px solid #22c55e59;border-radius:20px;padding:10px 16px;font-size:.88rem;font-weight:500;transition:all .15s}.coach-choice-chip:hover:not(:disabled){border-color:var(--color-accent);background:#22c55e33}.coach-choice-chip:disabled{opacity:.4;cursor:default}.dashboard-challenge-nudge{width:100%;color:var(--color-text-primary);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#f59e0b1f,#f59e0b0a);border:1px solid #f59e0b4d;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;font-size:1rem;font-weight:600;display:flex}.dashboard-challenge-nudge:hover{background:linear-gradient(135deg,#f59e0b29,#f59e0b0f)}.dashboard-challenge-nudge-icon{font-size:1.1rem;line-height:1}.dashboard-challenge-nudge-text{flex:1}.dashboard-challenge-nudge-cta{color:#f59e0b;font-size:.85rem;font-weight:600}.dashboard-challenge-nudge-arrow{color:#f59e0b;font-size:1.2rem}.dashboard-feedback-row{justify-content:center;margin-top:24px;display:flex}.dashboard-feedback-btn{color:#8aa094;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #355043;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.dashboard-feedback-btn:active{color:#e2efe6;background:#1f2a23;border-color:#5cb87a}@media (hover:hover){.dashboard-feedback-btn:hover{color:#e2efe6;border-color:#5cb87a}}.dashboard-feedback-icon{color:#5cb87a;font-size:14px}.food-db-compact{position:relative}.food-search{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:10px;width:100%;padding:10px 14px;font-size:.9rem}.food-suggestions{background:var(--color-bg-card);border:1px solid var(--color-border);-webkit-overflow-scrolling:touch;border-radius:10px;max-height:320px;margin-top:4px;list-style:none;overflow-y:auto}.food-suggestions li{cursor:pointer;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .15s;display:flex}.food-suggestions li:hover{background:#22c55e14}.food-suggestions li+li{border-top:1px solid var(--color-border)}.suggestion-info{flex-direction:column;gap:2px;display:flex}.suggestion-info strong{color:var(--color-text-primary);font-size:.88rem}.suggestion-brand{color:var(--color-text-secondary);font-size:.75rem}.suggestion-macros{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.no-results{color:var(--color-text-secondary);padding:8px 0;font-size:.85rem}.food-database{margin-top:24px}.food-db-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.food-db-header h3{color:var(--color-text-primary);white-space:nowrap}.food-db-header-actions{align-items:center;gap:8px;display:flex}.food-db-header .food-search{max-width:200px}.add-food-btn{background:var(--color-bg-card-alt);color:var(--color-accent);border:1px solid var(--color-border);white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:.82rem;font-weight:600}.add-food-btn:hover{border-color:var(--color-accent);background:#22c55e1a}.food-add-form{border:1px solid var(--color-border);background:#151a17;border-radius:10px;flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.recipe-toggle{color:var(--color-text-muted);cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.recipe-toggle input[type=checkbox]{width:auto;accent-color:var(--color-accent)}.empty-state{color:var(--color-text-secondary);text-align:center;padding:32px 0;font-size:.9rem}.food-section-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 8px;font-size:.72rem;font-weight:700}.food-section-label:first-of-type{margin-top:4px}.food-threshold{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:14px;font-size:.8rem;display:flex}.food-threshold input[type=number]{background:var(--color-bg-app);border:1px solid var(--color-border);width:56px;color:var(--color-text-primary);text-align:center;border-radius:8px;padding:6px 8px;font-size:.85rem}.food-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.food-item{border-radius:8px;overflow:hidden}.food-item-collapsed{background:var(--color-bg-card);border:1px solid var(--color-border)}.food-chip{cursor:pointer;align-items:center;gap:6px;min-height:0;padding:10px 12px;transition:background .15s;display:flex}.food-chip:hover{background:#22c55e0a}.food-chip-name{color:var(--color-text-soft);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;font-weight:500;overflow:hidden}.food-chip-star{color:var(--color-accent);flex-shrink:0;font-size:.72rem;line-height:1}.food-chip-badge{color:var(--color-accent);background:#22c55e1f;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-left:auto;font-size:.6rem;font-weight:700;display:flex}.food-item-expanded{background:var(--color-bg-card);border:1px solid var(--color-accent);grid-column:1/-1}.food-item-expanded .food-chip{background:#22c55e0a}.food-item-expanded .food-chip-name{color:var(--color-text-primary);font-weight:600}.food-expanded-detail{flex-direction:column;gap:4px;padding:0 12px 12px;display:flex}.food-description{color:var(--color-text-muted);font-size:.82rem;line-height:1.4}.food-brand{color:var(--color-text-secondary);font-size:.75rem}.food-serving{color:var(--color-text-secondary);font-size:.78rem}.food-macros{color:var(--color-text-muted);font-size:.82rem}.food-expanded-actions{align-items:center;gap:8px;margin-top:6px;display:flex}.food-icon-actions{gap:2px;margin-left:auto;display:inline-flex}.food-icon-btn{width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.food-icon-btn:hover{background:var(--color-bg-card-alt);color:var(--color-text-primary)}.food-icon-btn .fav-icon,.food-icon-btn svg{display:block}.food-icon-btn.fav-icon{font-size:1.2rem}.food-icon-btn.fav-icon.is-fav{color:var(--color-accent)}.food-icon-btn.food-icon-danger:hover{color:var(--color-error)}.food-add-meal-btn{background:var(--color-accent);color:var(--color-white);border-radius:6px;flex:1;padding:7px 14px;font-size:.78rem;font-weight:600}.food-add-meal-btn:hover{background:var(--color-accent-hover)}.edit-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:7px 12px;font-size:.78rem}.edit-btn:hover{color:var(--color-text-primary)}.fav-toggle-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);white-space:nowrap;border-radius:6px;padding:7px 12px;font-size:.78rem}.fav-toggle-btn.is-fav{color:var(--color-accent);background:#22c55e1a}.fav-toggle-btn:hover{color:var(--color-accent)}.food-fav-hint{color:var(--color-text-secondary);margin-top:4px;font-size:.72rem;font-style:italic}.suggestion-star{color:var(--color-accent);margin-right:4px;font-size:.78rem}.cancel-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:7px 12px;font-size:.78rem}.food-item-editing{background:var(--color-bg-card);border:1px solid var(--color-border);grid-column:1/-1;padding:14px}.food-edit-form{flex-direction:column;gap:8px;width:100%;display:flex}.edit-macros{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.edit-actions{gap:8px;display:flex}.remove-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:7px 12px;font-size:.78rem}.remove-btn:hover{color:var(--color-error);background:#ff6b6b14}@media (width<=768px){.food-grid{grid-template-columns:repeat(2,1fr);gap:5px}.food-chip{padding:9px 10px}.food-chip-name{font-size:.78rem}.food-db-header{flex-direction:column;align-items:stretch;gap:10px}.food-db-header-actions{flex-direction:column;gap:8px}.food-db-header .food-search{max-width:none}.add-food-btn{text-align:center;width:100%;padding:12px 14px}.food-add-form{gap:8px;padding:14px}.food-add-form input{padding:10px 12px}.edit-macros{grid-template-columns:repeat(2,1fr);gap:8px}.food-edit-form{gap:8px}.edit-actions{flex-direction:row}.edit-actions button{flex:1}.food-expanded-actions{flex-wrap:wrap}}.meal-builder-overlay{height:var(--mb-vvh,100%);transform:translateY(var(--mb-vtop,0px));z-index:210;background:#000000b3;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;top:0;left:0;right:0}.meal-builder{background:var(--color-bg-card);border-top:1px solid var(--color-border);border-radius:16px 16px 0 0;flex-direction:column;max-height:min(100%,90vh);display:flex;overflow:hidden}.mb-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.mb-header h3{color:var(--color-text-primary);margin:0;font-size:1.05rem}.mb-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1}.mb-close:hover{color:var(--color-text-primary)}.mb-body{-webkit-overflow-scrolling:touch;flex:1;padding:16px 20px;overflow-y:auto}.mb-items{flex-direction:column;gap:12px;display:flex}.mb-item{border:1px solid var(--color-border);background:#151a17;border-radius:10px;padding:12px}.mb-item-base{border-color:#22c55e4d}.mb-item-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.mb-item-info{flex-direction:column;gap:2px;min-width:0;display:flex}.mb-item-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.mb-item-detail{color:var(--color-text-secondary);font-size:.78rem}.mb-item-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:1.2rem;line-height:1}.mb-item-remove:hover{color:var(--color-error)}.mb-portions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.mb-portion-btn{background:var(--color-bg-card-alt);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:.82rem;font-weight:500;transition:all .15s}.mb-portion-btn:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.mb-portion-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e26;font-weight:600}.mb-portion-other{color:var(--color-text-secondary);font-size:.78rem}.mb-custom-portion{align-items:center;gap:4px;display:flex}.mb-custom-input{background:var(--color-bg-app);border:1px solid var(--color-accent);width:60px;color:var(--color-text-primary);text-align:center;border-radius:6px;padding:5px 8px;font-size:.82rem}.mb-custom-ok{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:6px;padding:5px 10px;font-size:.78rem;font-weight:600}.mb-item-macros{color:var(--color-text-muted);margin-top:6px;font-size:.8rem}.mb-suggestions{margin-top:16px}.mb-suggestions-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:500}.mb-suggestion-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.mb-suggestion-chip{color:var(--color-accent);cursor:pointer;background:#22c55e14;border:1px dashed #22c55e4d;border-radius:20px;padding:7px 14px;font-size:.82rem;font-weight:500;transition:all .15s}.mb-suggestion-chip:hover{border-color:var(--color-accent);background:#22c55e26}.mb-add-more{border:1px dashed var(--color-border);width:100%;color:var(--color-text-secondary);cursor:pointer;text-align:center;background:0 0;border-radius:8px;margin-top:12px;padding:10px;font-size:.85rem;transition:all .15s;display:block}.mb-add-more:hover{border-color:var(--color-accent);color:var(--color-accent)}.mb-food-picker{margin-top:12px}.mb-search{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;width:100%;padding:10px 14px;font-size:.9rem}.mb-search:focus{border-color:var(--color-accent);outline:none}.mb-search-results{border:1px solid var(--color-border);background:#151a17;border-radius:8px;margin:4px 0 0;padding:0;list-style:none;overflow:hidden}.mb-search-results li{cursor:pointer;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .15s;display:flex}.mb-search-results li:hover{background:#22c55e14}.mb-search-results li+li{border-top:1px solid var(--color-border)}.mb-result-name{color:var(--color-text-primary);font-size:.88rem}.mb-result-macros{color:var(--color-text-secondary);white-space:nowrap;font-size:.8rem}.mb-no-results{color:var(--color-text-secondary);padding:8px 0;font-size:.85rem}.mb-freetext-add{border:1px solid var(--color-accent);width:100%;color:var(--color-accent);cursor:pointer;text-align:left;background:#22c55e1a;border-radius:8px;margin-top:6px;padding:10px 14px;font-size:.88rem;font-weight:600;transition:all .15s;display:block}.mb-freetext-add:hover:not(:disabled){background:#22c55e2e}.mb-freetext-add:disabled{opacity:.6;cursor:progress}.mb-cancel-search{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:4px 0;font-size:.82rem;display:block}.mb-cancel-search:hover{color:var(--color-text-primary)}.mb-totals{border-top:1px solid var(--color-border);background:#151a17;flex-shrink:0;justify-content:space-around;padding:12px 20px;display:flex}.mb-total-item{flex-direction:column;align-items:center;gap:2px;display:flex}.mb-total-item span{color:var(--color-text-secondary);text-transform:uppercase;font-size:.7rem}.mb-total-item strong{color:var(--color-text-primary);font-size:.92rem}.mb-footer{padding:14px 20px;padding-bottom:max(14px, env(safe-area-inset-bottom));border-top:1px solid var(--color-border);flex-shrink:0}.mb-meal-label{color:var(--color-text-secondary);margin-bottom:8px;font-size:.78rem;display:block}.mb-meal-buttons{flex-wrap:wrap;gap:6px;display:flex}.mb-meal-btn{white-space:nowrap;background:var(--color-bg-card-alt);border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;text-align:center;border-radius:8px;flex:1;padding:10px 8px;font-size:.82rem;font-weight:600;transition:all .15s}.mb-meal-btn:hover{border-color:var(--color-accent);background:#22c55e14}.mb-meal-btn:active{background:#22c55e33}.mb-meal-btn:disabled{opacity:.45;cursor:default;border-color:var(--color-border);background:var(--color-bg-card-alt)}.mb-empty{color:var(--color-text-secondary);text-align:center;margin:.25rem 0 .75rem;font-size:.88rem}.mic-btn{box-sizing:border-box;width:42px;height:42px;color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:#1e2422;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex;position:relative}.mic-btn.compact{border-radius:8px;width:36px;height:36px}.mic-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:#22c55e14}.mic-btn:disabled{opacity:.4;cursor:default}.mic-btn.listening{background:var(--color-accent);color:var(--color-white);border-color:var(--color-accent);animation:1.2s ease-in-out infinite mic-pulse}.mic-btn.listening:hover{background:var(--color-accent-hover);color:var(--color-white)}@keyframes mic-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 6px #22c55e00}}.mic-error-tooltip{color:#ff9a9a;white-space:normal;z-index:10;pointer-events:none;background:#2a1a1a;border:1px solid #3a2020;border-radius:6px;width:max-content;max-width:min(78vw,320px);padding:6px 10px;font-size:.72rem;line-height:1.35;position:absolute;top:calc(100% + 6px);right:0}.mic-btn.listening.hearing{box-shadow:0 0 0 3px #22c55e4d,0 0 18px #22c55e99}.mic-btn.transcribing{color:var(--color-accent);border-color:var(--color-accent);background:#1e2422;animation:none}.mic-spinner{transform-origin:50%;animation:.9s linear infinite mic-spin}@keyframes mic-spin{to{transform:rotate(360deg)}}.textarea-wrap{flex:1;min-width:0;display:flex;position:relative}.textarea-wrap>textarea{width:100%}.textarea-wrap>textarea.listening::placeholder{color:var(--color-accent);font-weight:500;animation:2.4s ease-in-out infinite listening-placeholder-strobe}@keyframes listening-placeholder-strobe{0%,to{opacity:1}50%{opacity:.35}}.textarea-mic-dot{background:var(--color-accent);pointer-events:none;border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite mic-dot-pulse;position:absolute;top:10px;right:12px;box-shadow:0 0 #22c55e99}.textarea-mic-dot.active{background:#4ade80;animation-duration:.9s;box-shadow:0 0 10px #22c55eb3}@keyframes mic-dot-pulse{0%,to{opacity:1;box-shadow:0 0 #22c55e80}50%{opacity:.6;box-shadow:0 0 0 6px #22c55e00}}.date-banner{color:var(--color-text-muted);background:#22c55e14;border:1px solid #22c55e33;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 16px;font-size:.88rem;display:flex}.date-banner strong{color:var(--color-text-primary)}.date-banner span{white-space:nowrap}.back-to-today-btn{background:var(--color-bg-card-alt);color:var(--color-accent);border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:600}.back-to-today-btn:hover{background:#22c55e1f}.meal-selector h3{color:var(--color-text-primary);margin-bottom:16px}.meal-buttons{flex-wrap:wrap;gap:10px;display:flex}.meal-btn{background:var(--color-bg-card);border:1px solid var(--color-border);min-width:120px;color:var(--color-text-primary);border-radius:12px;flex:1;padding:20px 16px;font-size:1rem;font-weight:600;transition:border-color .2s,background .2s}.meal-btn:hover{border-color:var(--color-accent);background:#22c55e14}.meal-btn.recipe-btn{color:var(--color-text-secondary);border-style:dashed}.meal-btn.recipe-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e0a}.meal-btn.build-meal-btn{color:var(--color-text-secondary);border-style:dashed}.meal-btn.build-meal-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e0a}.meal-btn.my-foods-btn{color:var(--color-text-secondary);border-style:dashed}.meal-btn.my-foods-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e0a}.meal-chat{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.meal-chat-header{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:14px 16px;display:flex}.meal-chat-header h3{color:var(--color-accent);margin:0}.back-btn{color:var(--color-text-muted);background:0 0;padding:4px 10px;font-size:.9rem}.back-btn:hover{color:var(--color-text-primary);background:0 0}.saved-foods-toggle{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;margin-left:auto;padding:6px 14px;font-size:.8rem}.saved-foods-toggle:hover{color:var(--color-text-primary)}.saved-foods-toggle.active{color:var(--color-accent);background:#22c55e1f}.saved-foods-panel{border-bottom:1px solid var(--color-border);background:#151a17;padding:12px 16px}.chat-messages{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;max-height:500px;padding:16px;display:flex;overflow-y:auto}.chat-msg{border-radius:14px;max-width:85%;padding:10px 14px;font-size:.9rem;line-height:1.5}.chat-msg.user{background:var(--color-accent);color:var(--color-white);border-bottom-right-radius:4px;align-self:flex-end}.chat-msg.assistant{background:var(--color-bg-card-alt);color:var(--color-text-primary);border-bottom-left-radius:4px;align-self:flex-start}.chat-msg p{white-space:pre-wrap;word-wrap:break-word;margin:0;line-height:1.55}.chat-image{border-radius:8px;max-width:200px;max-height:200px;margin-bottom:6px;display:block}.chat-image-placeholder{background:var(--color-bg-card-alt);color:var(--color-text-secondary);border-radius:8px;margin-bottom:6px;padding:12px;font-size:.82rem}.typing{color:var(--color-text-muted);font-style:italic}.pending-entry{border-top:1px solid var(--color-border);background:#22c55e14;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.pending-info{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:.85rem;display:flex}.pending-info strong{color:var(--color-text-primary)}.pending-info span{color:var(--color-text-muted)}.pending-consistency-warning{background:#ffb0201f;border:1px solid #ffb02059;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:.85rem;line-height:1.35}.pending-consistency-warning .pcw-head{font-weight:600}.pending-consistency-warning ul{margin:4px 0 0;padding-left:18px}.pending-consistency-warning li{color:var(--color-text-muted)}.save-btn{background:var(--color-accent);color:var(--color-white);white-space:nowrap;padding:10px 20px;font-weight:600}.save-btn:hover{background:var(--color-accent-hover)}.pending-actions{align-items:center;gap:8px;display:flex}.save-to-foods-inline-btn{color:#9ca898;white-space:nowrap;cursor:pointer;background:0 0;border:1px dashed #3a4a3f;border-radius:8px;padding:8px 12px;font-size:.8rem;transition:all .15s}.save-to-foods-inline-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.reparse-btn{color:#b89570;white-space:nowrap;cursor:pointer;background:0 0;border:1px dashed #4a3d2a;border-radius:8px;padding:8px 12px;font-size:.8rem;transition:all .15s}.remember-macros-btn{color:#8fc9a8;white-space:nowrap;cursor:pointer;background:0 0;border:1px dashed #2a4a3a;border-radius:8px;padding:8px 12px;font-size:.8rem;transition:all .15s}.remember-macros-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.remember-macros-btn:disabled{opacity:.6;cursor:default}.remember-macros-saved{color:var(--color-accent);white-space:nowrap;align-self:center;font-size:.78rem}.reparse-btn:hover:not(:disabled){color:#f59e0b;border-color:#f59e0b}.reparse-btn:disabled{opacity:.5;cursor:not-allowed}.chat-input{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.chat-draft-image{background:#22c55e0f;border:1px solid #22c55e40;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.chat-draft-image-preview{object-fit:cover;border-radius:6px;flex-shrink:0;width:44px;height:44px}.chat-draft-image-meta{flex:1;min-width:0}.chat-draft-image-hint{color:var(--color-text-soft);font-size:.78rem;line-height:1.3;display:block}.chat-draft-image-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.2rem;display:flex}.chat-draft-image-remove:hover{color:var(--color-error);background:#ff6b6b1a}.chat-input-row{align-items:center;gap:8px;width:100%;display:flex}.quick-reply-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.quick-reply-chip{color:var(--color-accent);cursor:pointer;background:#22c55e1a;border:1px solid #22c55e59;border-radius:20px;padding:10px 16px;font-size:.88rem;font-weight:500;transition:all .15s}.quick-reply-chip:hover:not(:disabled){border-color:var(--color-accent);background:#22c55e33}.quick-reply-chip:disabled{opacity:.4;cursor:default}.chat-input input[type=text],.chat-input .chat-textarea{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);resize:none;box-sizing:border-box;border-radius:10px;flex:1;min-width:0;min-height:72px;max-height:200px;padding:14px 16px;font-family:inherit;font-size:1rem;line-height:1.45;transition:border-color .15s;overflow-y:auto}.chat-input .chat-textarea:focus{border-color:var(--color-accent);outline:none}.chat-input-actions{gap:8px;width:100%;display:flex}.photo-btn{color:var(--color-text-muted);background:0 0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.78rem;display:flex}.photo-btn span{font-weight:500}.photo-btn:hover{background:var(--color-bg-card-alt);color:var(--color-accent)}.send-btn{background:var(--color-accent);color:var(--color-white);flex-shrink:0;padding:12px 18px;font-weight:600}.send-btn:hover{background:var(--color-accent-hover)}.send-btn:disabled{background:var(--color-border);color:#555}.todays-entries{margin-top:28px}.todays-entries h3{color:var(--color-text-primary);margin-bottom:12px}.nutrition-entries{flex-direction:column;gap:8px;list-style:none;display:flex}.entry-block{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.entry-top{cursor:pointer;padding:14px 14px 0}.entry-meal-type{color:var(--color-text-primary);font-size:1rem;font-weight:700}.entry-macro-grid{cursor:pointer;grid-template-columns:repeat(5,1fr);gap:0;padding:10px 14px;display:grid}.entry-expanded .entry-macro-grid{border-bottom:1px solid var(--color-bg-card-alt)}.entry-macro-cell{flex-direction:column;gap:2px;display:flex}.macro-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.macro-value{color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.entry-item-row{border-bottom:1px solid #1d2320;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.entry-item-row:last-child{border-bottom:none}.entry-item-info{flex:1;min-width:0}.entry-item-name{color:var(--color-text-soft);font-size:.88rem;line-height:1.35}.entry-item-macros{color:var(--color-text-secondary);margin-top:2px;font-size:.76rem}.entry-item-actions{flex-shrink:0;gap:6px;display:flex}.entry-edit-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:5px 12px;font-size:.75rem;font-weight:500}.entry-edit-btn:hover{color:var(--color-accent);background:#22c55e14}.entry-delete-btn{color:#555;background:0 0;border-radius:6px;padding:5px 12px;font-size:.75rem}.entry-delete-btn:hover{color:var(--color-error);background:#ff6b6b0f}.entry-chip-row{border-top:1px solid var(--color-bg-card-alt);flex-wrap:wrap;gap:6px;padding:8px 14px 4px;display:flex}.entry-chip{color:#c8e7d6;white-space:nowrap;background:#6ee7b70f;border:1px solid #6ee7b733;border-radius:14px;padding:5px 10px;font-size:.78rem;font-weight:500;transition:background .12s,border-color .12s,transform 80ms}.entry-chip:hover{background:#6ee7b724;border-color:#6ee7b766}.entry-chip:active{transform:scale(.97)}.entry-chip-llm{color:#aac0d0;background:#a0b4c80d;border-color:#a0b4c82e}.entry-chip-llm:hover{background:#a0b4c81f;border-color:#a0b4c857}.chip-toast{color:#6ee7b7;background:#6ee7b71f;border:1px solid #6ee7b747;border-radius:8px;margin-bottom:10px;padding:8px 14px;font-size:.85rem;font-weight:600;animation:.18s ease-out chip-toast-in}.chip-toast-error{color:#ff8a8a;background:#ff6b6b1a;border-color:#ff6b6b47}@keyframes chip-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.entry-bottom-actions{border-top:1px solid var(--color-bg-card-alt);justify-content:space-between;align-items:center;gap:8px;padding:8px 14px 12px;display:flex}.entry-amend-btn{color:#6ee7b7;background:#6ee7b714;border:1px solid #6ee7b740;border-radius:6px;padding:6px 12px;font-size:.8rem;font-weight:600}.entry-amend-btn:hover{background:#6ee7b724;border-color:#6ee7b773}.entry-delete-all-btn{color:#555;background:0 0;border-radius:6px;margin-left:auto;padding:5px 12px;font-size:.75rem}.entry-delete-all-btn:hover{color:var(--color-error);background:#ff6b6b0f}.my-foods-section{border:1px solid var(--color-border);border-radius:12px;margin-top:28px;overflow:hidden}.my-foods-header{background:var(--color-bg-card);width:100%;color:var(--color-text-primary);cursor:pointer;border:none;border-radius:0;justify-content:space-between;align-items:center;padding:14px 16px;font-size:.95rem;font-weight:600;display:flex}.my-foods-header:hover{background:#1d2320}.my-foods-title{align-items:center;gap:8px;display:flex}.my-foods-title .expand-icon{color:var(--color-text-secondary);width:14px;font-size:.7rem}.my-foods-count{background:var(--color-bg-card-alt);color:var(--color-text-secondary);border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:500}.my-foods-hint{color:#555;font-size:.78rem;font-weight:400}.my-foods-body{border-top:1px solid var(--color-border);background:#151a17;padding:16px}.my-foods-modal-overlay{z-index:200;background:#000000b3;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.my-foods-modal{background:var(--color-bg-card);border-top:1px solid var(--color-border);border-radius:16px 16px 0 0;flex-direction:column;max-height:85vh;display:flex;overflow:hidden}.my-foods-modal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.my-foods-modal-header h3{color:var(--color-text-primary);margin:0;font-size:1.05rem}.my-foods-modal-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1}.my-foods-modal-close:hover{color:var(--color-text-primary)}.my-foods-modal-body{-webkit-overflow-scrolling:touch;flex:1;padding:16px 20px;overflow-y:auto}.quick-add-overlay{z-index:250;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.quick-add-modal{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:center;border-radius:16px;width:100%;max-width:380px;padding:28px 24px}.quick-add-modal h3{color:var(--color-text-primary);margin-bottom:16px}.quick-add-item-info{background:#151a17;border-radius:10px;flex-direction:column;gap:4px;margin-bottom:20px;padding:14px;display:flex}.quick-add-item-info strong{color:var(--color-text-primary);font-size:1rem}.quick-add-brand{color:var(--color-text-secondary);font-size:.8rem}.quick-add-macros{color:var(--color-text-muted);font-size:.85rem}.quick-add-prompt{color:var(--color-text-muted);margin-bottom:12px;font-size:.88rem}.quick-add-meals{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:16px;display:flex}.quick-add-meal-btn{background:var(--color-bg-card-alt);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:10px;min-width:90px;padding:12px 18px;font-size:.9rem;font-weight:500}.quick-add-meal-btn:hover{border-color:var(--color-accent);background:#22c55e14}.save-to-foods-actions{justify-content:center;gap:10px;display:flex}.save-to-foods-actions .save-btn{flex:1}.save-to-foods-actions .quick-add-cancel{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:10px;flex:1;padding:12px 18px}.quick-add-cancel{color:var(--color-text-secondary);background:0 0;padding:8px 16px;font-size:.85rem}.quick-add-cancel:hover{color:var(--color-text-muted);background:0 0}@media (width<=768px){.meal-buttons{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.meal-btn{min-width:unset;padding:14px 8px;font-size:.88rem}.chat-msg{max-width:90%;font-size:.88rem}.chat-messages{max-height:50vh;padding:12px}.chat-image{max-width:160px;max-height:160px}.pending-entry{flex-direction:column;align-items:stretch;gap:10px}.pending-info,.save-btn{text-align:center}.chat-input{gap:6px;padding:10px 12px}.chat-input input[type=text]{padding:10px 12px}.send-btn{padding:10px 14px;font-size:.9rem}.entry-top{padding:12px 12px 0}.entry-macro-grid{padding:8px 12px}.macro-value{font-size:.88rem}.entry-item-row{padding:8px 12px}.entry-bottom-actions{padding:6px 12px 10px}.my-foods-header{flex-direction:column;align-items:flex-start;gap:4px}.quick-add-meals{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.quick-add-modal{margin:0 8px;padding:24px 20px}.date-banner{text-align:center;flex-direction:column;gap:8px}}.inline-camera{z-index:1000;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-viewfinder{object-fit:cover;flex:1;width:100%}.camera-controls{background:#000;justify-content:space-around;align-items:center;padding:20px 30px 36px;display:flex}.camera-shutter-btn{border:4px solid var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.camera-shutter-btn:disabled{opacity:.4}.shutter-ring{background:var(--color-white);border-radius:50%;width:56px;height:56px;display:block}.camera-shutter-btn:active .shutter-ring{background:#ccc;transform:scale(.92)}.shutter-ring.capturing{background:var(--color-accent);animation:.9s ease-in-out infinite shutter-pulse}@keyframes shutter-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.85)}}.camera-close-btn,.camera-flip-btn{color:var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex}.camera-close-btn:active,.camera-flip-btn:active{background:#ffffff26}.camera-error{color:var(--color-white);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.camera-error .camera-close-btn{border:1px solid var(--color-white);border-radius:8px;width:auto;padding:10px 24px;font-size:16px}.camera-viewfinder-wrapper{flex:1;position:relative;overflow:hidden}.camera-viewfinder-wrapper .camera-viewfinder{object-fit:cover;width:100%;height:100%}.focus-indicator{border:2px solid var(--color-white);pointer-events:none;border-radius:50%;width:60px;height:60px;animation:.6s ease-out forwards focus-pulse;position:absolute}@keyframes focus-pulse{0%{opacity:.4;transform:scale(1.4)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.focus-toast{color:var(--color-white);pointer-events:none;z-index:4;background:#0009;border-radius:20px;padding:8px 18px;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.camera-refocus-pill{color:#0a0e0b;letter-spacing:.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:3;background:#22c55ef2;border:none;border-radius:24px;align-items:center;gap:6px;padding:10px 16px;font-size:.9rem;font-weight:700;transition:transform .1s,background .15s;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 2px 8px #0000004d}.camera-refocus-pill:active{background:#22c55e;transform:scale(.95)}.camera-refocus-pill svg{flex-shrink:0}.camera-lens-pill{color:var(--color-white);letter-spacing:.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:3;background:#000000a6;border:1px solid #fff3;border-radius:24px;align-items:center;gap:6px;padding:10px 14px;font-size:.85rem;font-weight:600;transition:transform .1s,background .15s;display:flex;position:absolute;top:16px;left:56px;box-shadow:0 2px 8px #0000004d}.camera-lens-pill:active{background:#000000d9;transform:scale(.95)}.camera-lens-pill svg{flex-shrink:0}.camera-debug-btn{color:#ffffffb3;cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:3;background:#00000080;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:16px;display:flex;position:absolute;top:16px;left:16px}.camera-debug-btn:active{background:#000c}.camera-debug-panel{color:#e5f5e9;z-index:4;background:#000000eb;border:1px solid #22c55e66;border-radius:8px;max-height:60vh;padding:12px;font-size:11px;line-height:1.4;position:absolute;top:56px;left:16px;right:16px;overflow-y:auto}.camera-debug-panel pre{white-space:pre-wrap;word-break:break-all;margin:0 0 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.camera-debug-panel button{color:#0a0e0b;cursor:pointer;background:#22c55ee6;border:none;border-radius:6px;padding:6px 12px;font-weight:600}.camera-right-btns{flex-direction:column;align-items:center;gap:12px;display:flex}.barcode-scanner-backdrop{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.barcode-scanner{border:1px solid var(--color-border);background:#0c0f0d;border-radius:14px;flex-direction:column;width:100%;max-width:460px;display:flex;overflow:hidden}.barcode-scanner-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.barcode-scanner-title{color:var(--color-text-primary);font-size:.95rem;font-weight:600}.barcode-scanner-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;width:32px;height:32px;font-size:1.6rem}.barcode-scanner-close:hover{color:var(--color-error);background:#ff6b6b1a}.barcode-scanner-video-wrap{aspect-ratio:4/3;background:#000;position:relative}.barcode-scanner-video{object-fit:cover;width:100%;height:100%}.barcode-scanner-finder{pointer-events:none;border:2px solid #22c55ed9;border-radius:8px;width:75%;height:28%;animation:1.6s ease-in-out infinite barcode-finder-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000073}@keyframes barcode-finder-pulse{0%,to{box-shadow:0 0 0 9999px #00000073,0 0 #22c55e66}50%{box-shadow:0 0 0 9999px #00000073,0 0 0 6px #22c55e00}}.barcode-scanner-status{text-align:center;color:var(--color-accent);margin:12px 16px 4px;font-size:.85rem;font-weight:600}.barcode-scanner-hint{text-align:center;color:var(--color-text-secondary);margin:0 16px 14px;font-size:.78rem;line-height:1.4}.barcode-scanner-error{text-align:center;padding:24px 18px}.barcode-scanner-error p{color:var(--color-text-soft);margin-bottom:16px;font-size:.9rem;line-height:1.5}.barcode-scanner-close-btn{color:var(--color-text-soft);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:8px 18px;font-size:.85rem}.recent-ingredients{border-bottom:1px solid var(--color-border);margin-bottom:8px;padding:12px 12px 4px}.recent-ingredients-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin-bottom:8px;font-size:.72rem;font-weight:600}.recent-ingredients-chips{flex-wrap:wrap;gap:6px;display:flex}.recent-ingredient-chip{color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#22c55e0f;border:1px solid #22c55e40;border-radius:999px;padding:6px 12px;font-size:.82rem;transition:background-color .12s,border-color .12s}.recent-ingredient-chip:active{background:#22c55e29;border-color:#22c55e8c}@media (hover:hover){.recent-ingredient-chip:hover{background:#22c55e1f;border-color:#22c55e73}}.portion-adjust-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.portion-adjust-modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:20px;display:flex}.portion-adjust-header{justify-content:space-between;align-items:center;display:flex}.portion-adjust-header h3{color:var(--color-text-primary);margin:0;font-size:1.05rem}.portion-adjust-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.6rem;line-height:1}.portion-adjust-subhead{color:var(--color-text-muted);margin:0;font-size:.9rem}.portion-adjust-presets{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.portion-adjust-preset{border:1px solid var(--color-border);color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff08;border-radius:8px;padding:10px 0;font-size:.92rem;font-weight:600;transition:background-color .12s,border-color .12s}.portion-adjust-preset.active{color:var(--color-accent);background:#22c55e1f;border-color:#22c55e80}.portion-adjust-custom{flex-direction:column;gap:6px;display:flex}.portion-adjust-custom label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.portion-adjust-custom input{border:1px solid var(--color-border);color:var(--color-text-primary);background:#14181a;border-radius:8px;outline:none;padding:10px 12px;font-size:1rem}.portion-adjust-custom input:focus{border-color:#22c55e80}.portion-adjust-preview{background:#22c55e0a;border:1px solid #22c55e2e;border-radius:10px;padding:10px 12px}.portion-adjust-preview-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.72rem}.portion-adjust-preview-macros{color:var(--color-text-primary);font-size:.92rem}.portion-adjust-actions{justify-content:flex-end;gap:8px;display:flex}.portion-adjust-cancel{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:10px 18px}.portion-adjust-apply{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-weight:600}.portion-adjust-apply:disabled{opacity:.5;cursor:not-allowed}.entry-portion-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:.92rem;font-weight:600}.entry-portion-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.macro-history h2{color:var(--color-text-primary);margin-bottom:24px}.history-table{border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.history-header{background:var(--color-bg-card);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:1fr 50px 70px 60px 60px 60px 50px 50px;padding:10px 18px;font-size:.75rem;font-weight:600;display:grid}.quarter-row,.month-row,.week-row,.day-row,.item-row{cursor:pointer;grid-template-columns:1fr 50px 70px 60px 60px 60px 50px 50px;align-items:center;padding:10px 18px;font-size:.88rem;transition:background .15s;display:grid}.quarter-row{border-top:1px solid var(--color-border);color:#c1ddc8;background:#15201a;font-size:.92rem;font-weight:600}.quarter-row:hover{background:#22c55e14}.quarter-block:first-child .quarter-row{border-top:none}.quarter-badge{color:#88e09c;background:#22c55e2e}.month-row:hover,.week-row:hover,.day-row:hover{background:#22c55e0a}.item-row{cursor:default}.month-row{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);background:#151a17;font-weight:600}.month-row small{color:var(--color-text-secondary);font-size:.7rem;font-weight:400}.week-row{background:var(--color-bg-card);border-bottom:1px solid var(--color-bg-card-alt);color:#c1c8c3}.week-row.current-week{border-left:3px solid var(--color-accent)}.week-row small{color:var(--color-text-secondary);font-size:.7rem;font-weight:400}.week-block.indented .week-row{padding-left:32px}.day-row{border-bottom:1px solid var(--color-bg-card-alt);color:var(--color-text-muted);background:#1d2320;padding-left:36px}.week-block.indented .day-row{padding-left:50px}.day-block.today .day-row{color:var(--color-text-primary);background:#22c55e0f}.day-label{align-items:center;gap:6px;display:flex}.day-num{color:var(--color-accent);font-size:.75rem;font-weight:600}.item-row{background:var(--color-bg-card);color:#8a918c;border-bottom:1px solid #1f2623;padding-left:54px;font-size:.82rem}.week-block.indented .item-row{padding-left:68px}.item-label{color:var(--color-text-muted);font-style:italic}.expand-icon{width:14px;color:var(--color-text-secondary);font-size:.7rem;display:inline-block}.period-badge{border-radius:4px;margin-left:8px;padding:1px 6px;font-size:.65rem;font-weight:600}.month-badge{color:var(--color-accent);background:#22c55e1f}.week-badge{background:var(--color-bg-card-alt);color:var(--color-text-secondary)}.day-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex;position:relative}.day-edit-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 6px;display:flex;position:relative}.day-edit-btn:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.day-edit-btn:hover{color:var(--color-accent);background:#22c55e14}.status-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:1rem;line-height:1}.status-btn.open{color:#555}.status-btn.open:hover{color:var(--color-accent);background:#22c55e14}.status-btn.closed{color:var(--color-accent)}.status-btn.closed:hover{color:var(--color-error);background:#ff6b6b14}.col-cal,.col-pro,.col-carb,.col-fat,.col-fib,.col-num{text-align:right}.col-status{text-align:center}.empty-state{color:var(--color-text-secondary);text-align:center;padding:40px 0}@media (width<=768px){.history-header,.quarter-row,.month-row,.week-row,.item-row{grid-template-columns:1fr 42px 34px 34px 34px 34px 48px;gap:2px;padding-left:8px;padding-right:6px;font-size:.74rem}.history-header .col-num,.quarter-row .col-num,.month-row .col-num,.week-row .col-num,.item-row .col-num{display:none}.day-row{grid-template-columns:1fr 24px 42px 34px 34px 34px 34px 48px;gap:2px;padding-left:8px;padding-right:6px;font-size:.74rem}.history-header{font-size:.65rem}.day-row{padding-left:16px}.week-block.indented .day-row,.item-row{padding-left:24px}.week-block.indented .item-row{padding-left:32px}.week-block.indented .week-row{padding-left:16px}.period-badge,.current-label{display:none}.day-edit-btn{padding:2px 4px}.status-btn{padding:2px 4px;font-size:.85rem}}.meal-block{flex-direction:column;display:flex}.component-row{color:var(--color-text-muted);background:#ffffff04;font-size:.78rem}.component-label{padding-left:12px;font-style:italic}.component-row .col-cal,.component-row .col-pro,.component-row .col-carb,.component-row .col-fat,.component-row .col-fib{color:var(--color-text-secondary)}.coach-fb{color:var(--text-secondary,#6b7280);margin-top:6px;font-size:12px}.coach-fb-row{flex-wrap:wrap;gap:6px;display:flex}.coach-fb-btn{border:1px solid var(--border-subtle,#e5e7eb);color:var(--text-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.coach-fb-btn:hover:not(:disabled){background:var(--bg-subtle,#0000000a);color:var(--text-primary,#111);border-color:var(--border,#d1d5db)}.coach-fb-btn:disabled{opacity:.5;cursor:default}.coach-fb-emoji{font-size:13px;line-height:1}.coach-fb-comment{background:var(--bg-subtle,#0000000a);border-radius:8px;flex-direction:column;gap:6px;margin-top:4px;padding:8px;display:flex}.coach-fb-comment-prompt{color:var(--text-secondary,#6b7280);font-size:12px}.coach-fb-optional{opacity:.6;font-style:italic}.coach-fb-textarea{border:1px solid var(--border,#d1d5db);background:var(--bg-input,#fff);width:100%;color:var(--text-primary,#111);resize:vertical;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.coach-fb-comment-actions{justify-content:flex-end;gap:8px;display:flex}.coach-fb-link{color:var(--text-secondary,#6b7280);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:12px;text-decoration:underline}.coach-fb-link:disabled{opacity:.5;cursor:default}.coach-fb-send{border:1px solid var(--accent,#2563eb);background:var(--accent,#2563eb);color:#fff;cursor:pointer;border-radius:6px;padding:4px 12px;font-size:12px}.coach-fb-send:disabled{opacity:.6;cursor:default}.coach-fb-state-done{color:var(--text-secondary,#6b7280);align-items:center;gap:6px;font-size:11px;display:inline-flex}.coach-fb-check{background:var(--success,#10b981);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;line-height:1;display:inline-flex}.coach-fb-state-error{color:var(--danger,#dc2626);font-size:11px}.challenges-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;margin:1rem 0;padding:.9rem 1rem 1rem}.challenges-header{justify-content:space-between;align-items:center;display:flex}.challenges-header h3{color:var(--color-text-primary);margin:0}.challenges-new-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:.35rem .8rem;font-family:inherit;font-size:.85rem}.challenges-new-btn:hover{background:var(--color-accent-hover)}.challenges-streak{color:var(--color-accent);margin:.4rem 0 0;font-size:.85rem;font-weight:600}.challenges-matches{margin:.3rem 0 0;padding:0;list-style:none}.challenges-match{color:var(--color-text-secondary);font-size:.82rem;line-height:1.5}.challenges-empty{color:var(--color-text-secondary);margin:.6rem 0 0;font-size:.88rem}.challenges-list{flex-direction:column;gap:.6rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.challenge-card{border:1px solid var(--color-border);border-radius:10px;padding:.6rem .75rem}.challenge-card.is-done{opacity:.7}.challenge-card-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.challenge-title{color:var(--color-text-primary);font-weight:600}.challenge-due{color:var(--color-text-secondary);white-space:nowrap;font-size:.78rem}.challenge-due.overdue{color:var(--color-error)}.challenge-participants{flex-wrap:wrap;gap:.35rem;margin:.45rem 0;display:flex}.challenge-pill{color:var(--color-text-secondary);background:var(--color-bg-card-alt);border-radius:999px;padding:.15rem .55rem;font-size:.78rem}.challenge-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.challenges-done-btn{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .7rem;font-family:inherit;font-size:.82rem}.challenges-done-btn:hover{background:var(--color-accent);color:var(--color-white)}.challenges-done-btn:disabled{opacity:.5;cursor:default}.challenge-you-done{color:var(--color-accent);font-size:.82rem;font-weight:600}.challenges-rematch-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .7rem;font-family:inherit;font-size:.82rem}.challenges-rematch-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.challenge-field{margin:.6rem 0;display:block}.challenge-field>span{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.82rem;display:block}.challenge-field input[type=text],.challenge-field input[type=date]{width:100%}.challenge-friend-list{max-height:11rem;margin:0;padding:0;list-style:none;overflow-y:auto}.challenge-friend-row{padding:.3rem 0}.challenge-friend-label{color:var(--color-text-primary);cursor:pointer;align-items:center;gap:.5rem;display:flex}.challenge-friend-label input[type=checkbox]{width:1.15rem;height:1.15rem;min-height:0;accent-color:var(--color-accent);border-radius:4px;flex:none;margin:0;padding:0}.challenge-friend-label span{flex:auto;min-width:0}.challenges-past{margin-top:.75rem}.challenges-past-toggle{text-align:left;width:100%;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.4rem 0;font-size:.85rem;font-weight:600}.challenges-past .challenges-list{opacity:.85;margin-top:.4rem}.fitness-tab h2,.fitness-progress h2{color:var(--color-white);margin-bottom:20px;font-size:1.3rem}.fitness-actions{flex-direction:column;gap:12px;margin-bottom:28px;display:flex}.fitness-action-card{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:left;border-radius:12px;align-items:center;gap:16px;padding:20px;transition:border-color .2s;display:flex}.fitness-action-card:hover{border-color:var(--color-accent);background:#22c55e0a}.action-icon{color:var(--color-accent);flex-shrink:0}.action-text h3{color:var(--color-text-primary);margin-bottom:4px;font-size:1rem}.action-text p{color:var(--color-text-secondary);font-size:.82rem;font-weight:400}.recent-sessions h3{color:var(--color-text-primary);margin-bottom:12px;font-size:1rem}.recent-sessions ul{flex-direction:column;gap:8px;list-style:none;display:flex}.session-item{background:var(--color-bg-card);border-radius:10px;align-items:center;gap:12px;padding:14px 16px;display:flex}.session-info{flex:1;min-width:0}.session-info strong{color:var(--color-text-primary);font-size:.9rem;display:block}.session-meta{color:var(--color-text-secondary);text-transform:capitalize;font-size:.78rem}.session-date{color:var(--color-text-secondary);font-size:.8rem}.session-extra{color:var(--color-text-secondary);font-size:.75rem;display:block}.session-status.completed{color:var(--color-accent)}.session-status.in_progress{color:#f59e0b}.strava-icon-small{width:18px;height:18px;color:var(--color-white);vertical-align:middle;background:#fc4c02;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;font-size:.65rem;font-weight:700;display:inline-flex}.today-activity-clickable{flex-direction:column;padding:0;position:relative;overflow:hidden}.today-activity-row{cursor:pointer;align-items:center;gap:10px;width:100%;padding:14px 16px;transition:background .15s;display:flex}.today-activity-row:hover{background:#1e2422}.today-activity-clickable .session-info{cursor:pointer;flex:1;min-width:0}.in-progress-pill{color:#e0b05a;text-transform:uppercase;letter-spacing:.03em;background:#e0b05a26;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-block}.abandoned-pill{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;background:#71817a2e;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-block}.today-activity-clickable .activity-drilldown{border-top:1px solid var(--color-border);margin-top:0;padding:12px 16px 14px}.today-delete-btn{color:#555;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:6px 10px;font-size:1.4rem;line-height:1}.today-delete-btn:hover{color:var(--color-error);background:#ff6b6b14}.today-delete-confirm{flex-shrink:0;gap:6px;display:flex}.today-delete-yes{background:var(--color-error);color:var(--color-white);cursor:pointer;border:none;border-radius:6px;padding:6px 10px;font-size:.78rem;font-weight:600}.today-delete-no{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:.78rem}.in-progress-banner{background:#e0b05a14;border:1px solid #e0b05a59;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:14px 16px;display:flex}.in-progress-info{flex-direction:column;gap:2px;min-width:0;display:flex}.in-progress-info strong{color:#e0b05a;text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:600}.in-progress-name{color:var(--color-text-primary);font-size:.95rem}.in-progress-actions{flex-wrap:wrap;gap:8px;display:flex}.resume-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:600}.resume-btn:hover{background:var(--color-accent-hover)}.abandon-btn-small{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:.82rem}.abandon-btn-small:hover{color:var(--color-error);border-color:var(--color-error)}.abandon-confirm-btn{background:var(--color-error);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:.82rem;font-weight:600}.abandon-cancel-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:.82rem}.error-boundary{background:var(--color-bg-card);text-align:center;border:1px solid #3a2020;border-radius:12px;margin:20px 0;padding:20px}.error-boundary h3{color:#ff9a9a;margin-bottom:10px}.error-boundary-msg{color:var(--color-text-muted);word-break:break-word;margin-bottom:16px;font-size:.85rem}.error-boundary-actions{justify-content:center;gap:8px;display:flex}.error-boundary .cancel-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:10px 18px}.strava-connect{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;margin-bottom:24px;padding:16px}.fitness-chat-header{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;margin-bottom:16px;padding:14px 0;display:flex}.fitness-chat-header h3{color:var(--color-accent);margin:0}.fitness-chat-messages{-webkit-overflow-scrolling:touch;flex-direction:column;gap:10px;max-height:450px;padding:12px 0;display:flex;overflow-y:auto}.fitness-chat-messages.compact{max-height:300px;padding:10px 0}.fitness-chat-input{align-items:center;gap:8px;padding:12px 0;display:flex}.fitness-chat-input input[type=text],.fitness-chat-input .activity-textarea{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);resize:none;box-sizing:border-box;border-radius:10px;flex:1;min-width:0;min-height:72px;max-height:180px;padding:14px 16px;font-family:inherit;font-size:1rem;line-height:1.45;overflow-y:auto}.fitness-chat-input .activity-textarea:focus{border-color:var(--color-accent);outline:none}.fitness-done{text-align:center;padding:20px 0}.picker-section{margin-top:16px}.picker-section h4{color:var(--color-text-primary);margin-bottom:14px;font-size:1rem}.picker-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.picker-btn{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:12px;padding:20px 16px;font-size:1rem;font-weight:600;transition:border-color .2s,background .2s}@media (hover:hover) and (pointer:fine){.picker-btn:hover{border-color:var(--color-accent);background:#22c55e14}}.picker-btn{-webkit-tap-highlight-color:transparent}.style-grid{grid-template-columns:1fr}.style-btn{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 20px;display:flex}.style-btn strong{font-size:1rem}.style-btn span{color:var(--color-text-secondary);font-size:.8rem;font-weight:400}.duration-grid{grid-template-columns:repeat(3,1fr)}.pre-workout-notes{background:#22c55e0a;border:1px solid #22c55e26;border-radius:10px;flex-direction:column;gap:6px;margin-bottom:14px;padding:12px;display:flex}.pre-workout-notes-label{color:#d4d8d5;font-size:.85rem;font-weight:600}.pre-workout-notes-hint{color:var(--color-text-secondary);font-weight:400}.pre-workout-notes-input{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border);resize:vertical;border-radius:8px;min-height:42px;padding:8px 10px;font-family:inherit;font-size:.9rem}.pre-workout-notes-input:focus{border-color:var(--color-accent);outline:none}.pre-workout-regen-btn{color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;padding:6px 12px;font-size:.82rem;font-weight:600}.pre-workout-regen-btn:disabled{opacity:.5;cursor:not-allowed}.pre-workout-intent{flex-direction:column;gap:14px;padding:16px;display:flex}.pre-workout-intent-lead{color:#d4d8d5;margin:0;font-size:.95rem;line-height:1.5}.pre-workout-intent-lead strong{color:var(--color-accent)}.pre-workout-intent .pre-workout-notes-input{min-height:80px;font-size:.95rem}.pre-workout-intent-skip{color:var(--color-text-secondary);text-align:center;margin:0;font-size:.8rem;font-style:italic}.pre-workout-intent-hint{color:var(--color-text-secondary);margin:4px 0 12px;font-size:.78rem;line-height:1.45}.pre-workout-gym-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pre-workout-gym-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.pre-workout-gym-select{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;padding:6px 10px;font-family:inherit;font-size:.9rem}.pre-workout-gym-select:focus{border-color:var(--color-accent);outline:none}.pre-workout-gym-missing{color:var(--color-text-muted);font-size:.78rem;font-style:italic}.pre-workout-gym-empty{color:var(--color-text-muted);background:#22c55e0a;border:1px dashed #22c55e40;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.82rem;line-height:1.45;display:flex}.pre-workout-gym-empty strong{color:var(--color-text-primary);font-weight:600}.pre-workout-gym-add-btn{color:var(--color-accent);cursor:pointer;white-space:nowrap;background:#22c55e1f;border:1px solid #22c55e66;border-radius:6px;padding:6px 12px;font-size:.82rem;font-weight:600}.pre-workout-gym-add-btn:hover{background:#22c55e2e}.pre-workout-gym-add-btn:disabled{opacity:.5;cursor:not-allowed}.pre-workout-variability{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;margin-top:12px;padding:12px}.pre-workout-variability-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.pre-workout-variability input[type=range]{width:100%}.pre-workout-variability-hint{color:var(--color-text-secondary);margin:8px 0 0;font-size:.74rem;line-height:1.45}.pre-workout-lightday{cursor:pointer;background:#22c55e0d;border:1px solid #22c55e40;border-radius:8px;align-items:flex-start;gap:10px;margin:16px 0 0;padding:12px 14px;display:flex}.pre-workout-lightday-checkbox{accent-color:#22c55e;cursor:pointer;flex-shrink:0;width:18px;height:18px;margin-top:2px}.pre-workout-lightday-text{flex-direction:column;gap:2px;display:flex}.pre-workout-lightday-title{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.pre-workout-lightday-hint{color:var(--color-text-secondary);font-size:.74rem;line-height:1.45}.exercise-complete-bonus{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.plan-display{margin-bottom:16px}.plan-phase{color:var(--color-text-muted);background:#22c55e0f;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:.85rem}.phase-label{color:var(--color-accent);margin-right:8px;font-weight:600}.plan-exercises{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.plan-exercise{background:var(--color-bg-card);border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.plan-exercise-num{background:var(--color-bg-card-alt);width:28px;height:28px;color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.plan-exercise-info{flex-direction:column;gap:2px;display:flex}.plan-exercise-info strong{color:var(--color-text-primary);font-size:.92rem}.plan-exercise-info span{color:var(--color-text-muted);font-size:.82rem}.plan-rest{color:var(--color-text-secondary)!important;font-size:.78rem!important}.plan-note{font-style:italic;color:var(--color-text-secondary)!important;font-size:.78rem!important}.plan-drop-sets{font-weight:600;color:#f59e0b!important;font-size:.78rem!important}.start-workout-btn{background:var(--color-accent);width:100%;color:var(--color-white);border-radius:12px;margin-top:8px;padding:16px;font-size:1.05rem;font-weight:700}.start-workout-btn:hover{background:var(--color-accent-hover)}.guided-workout{padding-bottom:20px}.workout-top-bar{align-items:center;gap:10px;margin-bottom:8px;padding:12px 0;display:flex}.exercise-progress{color:var(--color-text-secondary);font-size:.82rem;font-weight:500}.elapsed-time{color:var(--color-text-muted);margin-left:auto;font-size:.82rem}.overview-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:6px 12px;font-size:.78rem}.overview-btn:hover{color:var(--color-text-primary)}.abandon-btn{color:var(--color-error);background:0 0;border-radius:6px;padding:6px 14px;font-size:.82rem}.abandon-btn:hover{background:#ff6b6b14}.exercise-card{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:center;border-radius:16px;padding:24px 20px}.exercise-name-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.exercise-name{color:var(--color-text-primary);flex:1;min-width:0;margin-bottom:0;font-size:1.3rem}.ai-tip{text-align:left;background:#22c55e0f;border:1px solid #22c55e26;border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 14px;display:flex}.ai-tip-icon{flex-shrink:0;font-size:1rem}.ai-tip p{color:var(--color-text-muted);flex:1;margin:0;font-size:.82rem;line-height:1.4}.ai-tip-dismiss{color:var(--color-text-muted);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;margin:-2px -4px 0 0;padding:2px 4px;font-size:1.1rem;line-height:1}.ai-tip-dismiss:hover{opacity:1}.set-indicator{color:var(--color-accent);margin-bottom:24px;font-size:.88rem;font-weight:600}.rep-scheme{flex-wrap:wrap;gap:6px;margin:-16px 0 20px;display:flex}.rep-chip{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:999px;padding:3px 9px;font-size:.8rem;font-weight:600}.rep-chip.current{background:var(--color-accent);border-color:var(--color-accent);color:#0a0a0a}.rep-chip.climb{border-color:var(--color-accent);color:var(--color-accent)}.rep-chip.current.climb{color:#0a0a0a}.set-inputs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;display:grid}.set-input-group{flex-direction:column;gap:6px;min-width:0;display:flex}.set-input-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.set-input-group input{box-sizing:border-box;text-align:center;background:var(--color-bg-app);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);border-radius:12px;min-height:auto;padding:16px;scroll-margin-top:240px;font-size:1.5rem;font-weight:700}.set-input-group input:focus{border-color:var(--color-accent)}.target-hint{color:#555;font-size:.72rem}.set-action-buttons{gap:10px;margin-bottom:14px;display:flex}.complete-set-btn{background:var(--color-accent);color:var(--color-white);border-radius:12px;flex:1;padding:18px;font-size:1.05rem;font-weight:700}.complete-set-btn:hover{background:var(--color-accent-hover)}.complete-set-btn:disabled{background:var(--color-border);color:#555}.skip-set-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);white-space:nowrap;border-radius:12px;padding:18px 16px;font-size:.85rem}.skip-set-btn:hover{color:var(--color-text-primary)}.note-toggle-btn{width:100%;color:var(--color-text-secondary);text-align:left;background:0 0;padding:8px;font-size:.82rem}.note-toggle-btn:hover{color:var(--color-text-muted)}.inline-note{margin-top:4px}.inline-note textarea{width:100%;min-height:60px;margin-bottom:6px;font-size:.88rem}.inline-note-actions{justify-content:flex-end;gap:8px;display:flex}.inline-note-actions .save-btn{padding:6px 16px;font-size:.82rem}.inline-note-actions .cancel-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);padding:6px 16px;font-size:.82rem}.completed-sets{flex-direction:column;gap:4px;margin-top:16px;display:flex}.completed-panel{background:var(--color-bg);z-index:5;margin-top:16px;padding-top:4px;position:sticky;bottom:0}.completed-panel-toggle{background:var(--color-bg-card);border:1px solid var(--color-border);width:100%;color:var(--color-text-secondary);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;font-weight:600;display:flex}.cp-chevron{color:var(--color-text-muted)}.completed-panel-body{-webkit-overflow-scrolling:touch;flex-direction:column;gap:4px;max-height:40vh;margin-top:4px;display:flex;overflow-y:auto}.completed-panel-body .completed-set-row{gap:6px}.cp-ex{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-secondary);flex:auto;overflow:hidden}.cp-meta,.cp-val{flex-shrink:0}.completed-set-row{background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;display:flex}.completed-set-row.skipped{color:#555;text-decoration:line-through}.completed-set-row.kind-drop{background:#f59e0b0d;border-style:dashed;border-color:#f59e0b8c}.completed-set-row.kind-extra{background:#22c55e0a;border-style:dashed;border-color:#22c55e73}.completed-set-row.cp-group-start{margin-top:12px;position:relative}.completed-set-row.cp-group-start:before{content:"";background:var(--color-border,#ffffff1a);height:1px;position:absolute;top:-7px;left:8px;right:8px}.rpe-chip-row{margin:14px 0 10px}.rpe-chip-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.78rem;font-weight:600}.rpe-chip-buttons{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.rpe-chip{appearance:none;background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;outline:none;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;font-family:inherit;transition:all .15s;display:flex}.rpe-chip:hover{border-color:#3a4140}.rpe-chip-text{font-size:.85rem;font-weight:600}.rpe-chip-helper{color:var(--color-text-secondary);text-align:center;font-size:.68rem;line-height:1.2}.rpe-chip.selected{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e1f}.rpe-chip.selected .rpe-chip-helper{color:#22c55ebf}.rpe-chip-note-wrap{margin:6px 0 10px;position:relative}.rpe-chip-note{background:var(--color-bg-app);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);resize:none;box-sizing:border-box;border-radius:8px;min-height:36px;padding:8px 10px;font-family:inherit;font-size:.88rem;line-height:1.35;overflow:hidden}.rpe-chip-note:focus{border-color:#3a8060;outline:none}.rpe-chip-note::placeholder{color:#5a6661}.rpe-chip-note-saved{color:#88e09c;pointer-events:none;background:#22c55e1f;border-radius:10px;padding:2px 8px;font-size:.7rem;animation:1.2s ease-in-out rpe-saved-fade;position:absolute;bottom:8px;right:10px}@keyframes rpe-saved-fade{0%{opacity:0;transform:translateY(2px)}20%,75%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2px)}}.debrief-sheet{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:14px;margin:14px 0 10px;padding:14px}.debrief-head{color:var(--color-text-primary);align-items:center;gap:6px;margin-bottom:8px;font-size:.98rem;font-weight:700;display:flex}.debrief-check{color:var(--color-accent)}.debrief-legible{color:var(--color-text-soft);margin-bottom:12px;font-size:.9rem}.debrief-legible strong{color:var(--color-text-primary)}.debrief-target-note{color:var(--color-text-secondary)}.debrief-reco{background:#22c55e12;border:1px solid #22c55e40;border-radius:12px;margin-top:14px;padding:12px}.debrief-reco-line{color:var(--color-text-primary);margin:0 0 6px;font-size:.92rem}.debrief-reco-target{color:var(--color-text-soft);margin-bottom:10px;font-size:.86rem}.debrief-reco-target strong{color:var(--color-accent)}.debrief-capped{color:var(--color-text-secondary);font-size:.78rem}.debrief-reco-actions{align-items:center;gap:10px;display:flex}.debrief-accept{appearance:none;background:var(--color-accent);color:var(--color-accept-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;flex:1;padding:10px 14px;font-family:inherit;font-size:.9rem;font-weight:700;transition:background .15s,color .15s}.debrief-accept.accepted{color:var(--color-accent);background:#22c55e2e}.debrief-caret{appearance:none;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:6px;font-family:inherit;font-size:.82rem}.debrief-confirm-row{margin-top:14px;display:flex}.debrief-steppers{gap:16px;margin-top:12px;display:flex}.debrief-stepper{flex:1}.debrief-stepper-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:6px;font-size:.72rem;display:block}.debrief-stepper-ctrl{background:var(--color-bg-app);border:1px solid var(--color-border);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:4px;display:flex}.debrief-stepper-ctrl button{appearance:none;background:var(--color-bg-card);width:34px;height:34px;color:var(--color-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;font-size:1.2rem;font-weight:700}.debrief-stepper-value{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.debrief-skip{margin-top:14px}.debrief-skip-q{color:var(--color-text-soft);margin-bottom:8px;font-size:.82rem}.debrief-skip-chips{flex-wrap:wrap;gap:6px;display:flex}.debrief-skip-chip{appearance:none;background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;padding:7px 12px;font-family:inherit;font-size:.82rem}.debrief-skip-chip.selected{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e1f}.debrief-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.debrief-tweak,.debrief-ask-coach{appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:4px 2px;font-family:inherit;font-size:.82rem}.debrief-tweak{color:var(--color-text-secondary)}.debrief-tweak.on{color:var(--color-tweak-active);font-weight:600}.debrief-ask-coach{color:var(--color-accent);font-weight:600}.set-edit-btn{color:#555;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;flex-shrink:0;width:28px;height:28px;font-size:.95rem;transition:all .15s}@media (hover:hover){.set-edit-btn:hover{color:var(--color-accent);background:#22c55e1a}}.workout-overview{padding:16px 0}.workout-overview h3{color:var(--color-text-primary);margin-bottom:16px}.overview-exercise{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;margin-bottom:8px;padding:12px 14px}.overview-exercise.current{border-color:var(--color-accent)}.overview-exercise.done{opacity:.6}.overview-exercise-header{align-items:center;gap:10px;display:flex}.overview-num{background:var(--color-bg-card-alt);width:24px;height:24px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.overview-exercise.done .overview-num{color:var(--color-accent);background:#22c55e26}.overview-exercise-header strong{color:var(--color-text-primary);flex:1;font-size:.9rem}.overview-sets{color:var(--color-text-secondary);font-size:.78rem}.overview-set-details{flex-wrap:wrap;gap:6px;margin-top:8px;padding-left:34px;display:flex}.overview-set-chip{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:4px;padding:2px 8px;font-size:.72rem}.rest-timer{padding:20px 0}.rest-timer-bar{background:var(--color-bg-card-alt);border-radius:3px;height:6px;margin-bottom:12px;overflow:hidden}.rest-timer-fill{background:var(--color-accent);border-radius:3px;height:100%;transition:width .25s linear}.rest-timer-info{justify-content:center;align-items:center;gap:16px;display:flex}.rest-timer-label{color:var(--color-text-secondary);font-size:.88rem}.rest-timer-time{color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.rest-skip-btn{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:6px;padding:6px 16px;font-size:.82rem}.rest-skip-btn:hover{color:var(--color-text-primary)}.rest-next-set{text-align:center;color:var(--color-text-secondary);margin-top:12px;font-size:.85rem}.exercise-transition{text-align:center;padding:24px 16px}.transition-done{color:var(--color-text-muted);justify-content:center;align-items:center;gap:10px;margin-bottom:20px;font-size:.9rem;display:flex}.done-check{color:var(--color-accent);font-size:1.2rem}.exercise-notes-section{margin-bottom:20px}.exercise-note-textarea{width:100%;min-height:60px;font-size:.88rem}.exercise-ai-note{border-left:3px solid var(--color-accent,#6c8cff);background:var(--color-surface-alt,#6c8cff14);border-radius:4px;margin-bottom:8px;padding:8px 10px}.exercise-ai-note-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin-bottom:2px;font-size:.7rem;display:block}.exercise-ai-note-text{color:var(--color-text-primary);margin:0;font-size:.85rem}.next-exercise-preview{margin-bottom:16px}.next-up{color:var(--color-text-primary);margin-bottom:6px;font-size:1.2rem}.next-detail{color:var(--color-text-secondary);font-size:.88rem}.cooldown-phase{text-align:center;padding:40px 20px}.cooldown-icon{color:var(--color-accent);margin-bottom:12px;font-size:2.5rem}.cooldown-phase h3{color:var(--color-text-primary);margin-bottom:20px}.cooldown-suggestion{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:left;border-radius:12px;margin-bottom:24px;padding:16px}.cooldown-suggestion h4{color:var(--color-accent);margin-bottom:8px;font-size:.88rem}.cooldown-suggestion p{color:var(--color-text-muted);font-size:.88rem;line-height:1.5}.cooldown-actions{flex-direction:column;gap:10px;max-width:300px;margin:0 auto;display:flex}.pr-pill{text-align:left;cursor:pointer;background:#22c55e12;border:1px solid #22c55e38;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:12px;padding:10px 14px;transition:background .15s;display:flex}.pr-pill:hover{background:#22c55e1f}.pr-pill:active{transform:scale(.99)}.pr-pill-icon{background:#22c55e24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:1rem;line-height:1;display:inline-flex;position:relative}.pr-pill-dot{background:var(--color-accent);width:9px;height:9px;box-shadow:0 0 0 2px var(--color-bg-card), 0 0 6px 1px #22c55eb3;border-radius:50%;animation:1.8s infinite pulse-dot;position:absolute;top:-1px;right:-1px}@media (prefers-reduced-motion:reduce){.pr-pill-dot{animation:none}}.pr-pill-text{flex-direction:column;flex:1;min-width:0;display:flex}.pr-pill-count{color:var(--color-text);font-size:.9rem;font-weight:600;line-height:1.2}.pr-pill-hint{color:var(--color-text-soft);font-size:.76rem;line-height:1.3}.pr-pill-chevron{color:var(--color-text-soft);flex-shrink:0;font-size:1.3rem;line-height:1}.pr-sheet-backdrop{z-index:9100;cursor:pointer;background:#000000e0;justify-content:center;align-items:flex-end;animation:.15s feedback-fade;display:flex;position:fixed;inset:0}.pr-sheet{background:var(--color-bg-card);cursor:default;border-top:1px solid #2d3a31;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:88vh;animation:.2s feedback-slide;display:flex}@media (width>=700px){.pr-sheet{border-radius:16px;max-height:80vh;margin-top:auto;margin-bottom:auto}.pr-sheet-backdrop{align-items:center}}.pr-sheet-header{border-bottom:1px solid #2d3a31;flex-shrink:0;align-items:center;gap:8px;padding:14px 16px 10px;display:flex}.pr-sheet-trophy{font-size:1.1rem;line-height:1}.pr-sheet-title{color:#e2efe6;flex:1;min-width:0;margin:0;font-size:16px;font-weight:600}.pr-sheet-close{color:#8aa094;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:32px;height:32px;font-size:26px;line-height:1}.pr-sheet-close:hover{background:#ffffff0f}.pr-sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.pr-card{background:#22c55e0d;border:1px solid #22c55e47;border-radius:12px;padding:12px 14px}.pr-card-top{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.pr-card-exercise{color:var(--color-text);font-size:.95rem;font-weight:600}.pr-card-kind{letter-spacing:.03em;text-transform:uppercase;border-radius:8px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:600}.pr-card-kind-est_1rm{color:var(--color-accent);background:#22c55e24}.pr-card-kind-session_volume{color:var(--color-text-soft);background:#ffffff0f}.pr-card-figure{align-items:baseline;gap:6px;display:flex}.pr-card-value{color:var(--color-text);font-size:1.6rem;font-weight:600;line-height:1.1}.pr-card-unit{color:var(--color-text-soft);font-size:.8rem}.pr-card-delta{color:var(--color-accent);margin-left:auto;font-size:.85rem;font-weight:600}.pr-card-detail{color:var(--color-text-soft);margin:6px 0 0;font-size:.78rem}.pr-card-secondary{color:var(--color-accent);opacity:.85;margin:3px 0 0;font-size:.76rem}.ai-review{background:var(--color-bg-card);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:10px;margin-bottom:24px;padding:16px}.ai-review p{color:var(--color-text-primary);margin:0;font-size:.95rem;line-height:1.6}.review-loading{color:var(--color-text-secondary);font-style:italic}.discuss-with-coach-btn{width:100%;color:var(--color-accent);cursor:pointer;background:#22c55e1a;border:1px solid #22c55e66;border-radius:12px;margin:0 0 24px;padding:12px 16px;font-size:.95rem;font-weight:600;transition:all .15s;display:block}.discuss-with-coach-btn:hover{border-color:var(--color-accent);background:#22c55e2e}.workout-complete-msg{text-align:center;color:var(--color-text-muted);padding:60px 20px}.workout-complete-msg h3{color:var(--color-accent);margin-bottom:8px}.workout-summary{padding-bottom:20px}.summary-header{text-align:center;margin-bottom:24px}.summary-emoji{margin-bottom:8px;font-size:2.5rem;display:block}.summary-header h2{color:var(--color-accent)}.summary-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:28px;display:grid}.summary-stat{background:var(--color-bg-card);text-align:center;border-radius:12px;padding:16px}.stat-value{color:var(--color-accent);margin-bottom:4px;font-size:1.4rem;font-weight:700;display:block}.stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.summary-exercises h3{color:var(--color-text-primary);margin-bottom:12px;font-size:1rem}.summary-exercise{background:var(--color-bg-card);border-radius:10px;margin-bottom:8px;padding:14px 16px}.summary-exercise strong{color:var(--color-text-primary);margin-bottom:8px;display:block}.summary-sets{flex-direction:column;gap:4px;display:flex}.summary-set-row{align-items:center;gap:12px;font-size:.85rem;display:flex}.set-num{color:var(--color-text-secondary);min-width:40px}.set-actual{color:var(--color-text-primary)}.set-target{color:#555;font-size:.78rem}.summary-note{color:var(--color-text-secondary);margin-top:6px;font-size:.82rem;font-style:italic}.summary-note-user{color:var(--color-text-primary);font-style:normal}.today-summary{margin-top:24px}.today-summary h3{color:var(--color-text-primary);margin-bottom:8px;font-size:1rem}.today-empty{color:var(--color-text-secondary);padding:16px 0;font-size:.88rem}.today-count{color:var(--color-accent);margin-bottom:10px;font-size:.88rem;font-weight:600}.today-activities{flex-direction:column;gap:8px;list-style:none;display:flex}.session-item.clickable{cursor:pointer;flex-wrap:wrap;transition:background .15s}.session-item.clickable:hover{background:#1e2422}.expand-chevron{color:var(--color-text-secondary);flex-shrink:0;margin-left:4px;font-size:.75rem}.activity-drilldown{border-top:1px solid var(--color-border);width:100%;margin-top:10px;padding-top:10px}.drilldown-strava,.drilldown-activity{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.drilldown-stat{background:var(--color-bg-app);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.drilldown-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.drilldown-value{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.drilldown-workout{flex-direction:column;gap:8px;display:flex}.drilldown-exercise{background:var(--color-bg-app);border-radius:8px;padding:10px 12px}.drilldown-exercise strong{color:var(--color-text-primary);margin-bottom:6px;font-size:.88rem;display:block}.drilldown-sets{flex-wrap:wrap;gap:6px;display:flex}.drilldown-set-chip{background:var(--color-bg-card-alt);color:var(--color-text-muted);border-radius:5px;padding:3px 10px;font-size:.78rem;font-weight:500}.drilldown-no-sets{color:#555;font-size:.78rem}.drilldown-notes{color:var(--color-text-secondary);margin-top:6px;font-size:.78rem;font-style:italic}.drilldown-loading,.drilldown-empty{color:var(--color-text-secondary);font-size:.82rem;font-style:italic}.drilldown-strava-merge{background:#fc4c020f;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;padding:6px 10px;display:flex}.strava-merge-badge{color:#fc4c02;font-size:.72rem;font-weight:600}.strava-merge-stat{color:var(--color-text-muted);font-size:.72rem}.drilldown-actions{border-top:1px solid var(--color-bg-card-alt);justify-content:flex-end;margin-top:12px;padding-top:10px;display:flex}.delete-activity-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:.78rem;transition:all .15s}.delete-activity-btn:hover{border-color:var(--color-error);color:var(--color-error)}.delete-confirm{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.82rem;display:flex}.delete-confirm-btn{background:var(--color-error);color:var(--color-white);cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:.78rem;font-weight:600}.delete-confirm-btn:hover{background:#f44}.delete-confirm-btn:disabled{opacity:.6;cursor:default}.delete-cancel-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:.78rem}.delete-cancel-btn:hover{color:var(--color-text-muted);border-color:#3a4140}.fitness-progress{padding-bottom:20px}.progress-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:28px;display:grid}.progression-section{margin-bottom:28px}.progression-section h3{color:var(--color-text-primary);margin-bottom:12px;font-size:1rem}.progression-section select{max-width:100%;margin-bottom:16px}.progression-summary{color:var(--color-text-soft);background:#22c55e0f;border:1px solid #22c55e33;border-radius:8px;margin:4px 0 12px;padding:8px 12px;font-size:.85rem;line-height:1.4}.progression-axis-note{color:var(--color-text-secondary);margin-top:8px;font-size:.72rem;line-height:1.4}.progression-axis-note strong{color:var(--color-text-soft)}.progression-chart{-webkit-overflow-scrolling:touch;align-items:flex-end;gap:6px;height:220px;padding:12px 0 28px;display:flex;overflow:auto hidden}.progression-chart-tappable{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;transition:background-color .12s}@media (hover:hover){.progression-chart-tappable:hover{background-color:#ffffff05}}.progression-chart-tappable:focus-visible{outline-offset:2px;outline:2px solid #22c55e80}.chart-bar-container{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:50px;max-width:80px;height:100%;padding-top:4px;display:flex}.chart-label{color:var(--color-text-primary);white-space:nowrap;font-size:.78rem;font-weight:700}.chart-bar{background:linear-gradient(to top, var(--color-accent-hover), var(--color-accent));border-radius:4px 4px 0 0;width:100%;min-height:8px;transition:height .3s}.chart-bar-best{background:linear-gradient(to top, var(--color-accent), #4ade80);box-shadow:0 0 0 1px #4ade8066}.chart-sub{color:var(--color-text-secondary);white-space:nowrap;margin-top:2px;font-size:.62rem}.chart-date{color:var(--color-text-secondary);white-space:nowrap;text-align:center;text-overflow:ellipsis;max-width:80px;font-size:.6rem;overflow:hidden}.progress-coach-link{background:#22c55e0a;border:1px solid #22c55e26;border-radius:12px;flex-direction:column;align-items:flex-start;gap:10px;margin-top:28px;padding:16px;display:flex}.progress-coach-link p{color:var(--color-text-muted);margin:0;font-size:.85rem;line-height:1.45}.go-to-coach-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-size:.85rem;font-weight:600}.go-to-coach-btn:hover{background:var(--color-accent-hover)}.workout-chat{border:1px solid var(--color-border);background:#151916;border-radius:14px;margin-top:16px;overflow:hidden}.workout-chat-toggle{width:100%;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;font-weight:500;display:flex;position:relative}.workout-chat-toggle:hover{color:var(--color-text-primary)}.chat-toggle-icon{color:var(--color-accent);font-size:.65rem}.chat-unread-dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px;margin-left:auto;animation:1.5s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.workout-chat-panel{border-top:1px solid var(--color-border)}.workout-chat-messages{-webkit-overflow-scrolling:touch;flex-direction:column;gap:8px;max-height:250px;padding:10px 14px;display:flex;overflow-y:auto}.chat-empty-hint{text-align:center;color:#555;padding:16px 8px;font-size:.8rem}.wchat-msg{border-radius:10px;max-width:85%;padding:8px 12px;font-size:.85rem;line-height:1.4}.wchat-msg p{margin:0}.wchat-msg.user{background:var(--color-accent);color:var(--color-white);border-bottom-right-radius:4px;align-self:flex-end}.wchat-msg.assistant{color:var(--color-text-soft);background:#1e2422;border-bottom-left-radius:4px;align-self:flex-start}.wchat-msg .typing{color:var(--color-text-secondary);font-style:italic}.wchat-question{border:1px solid var(--color-border);background:#1e2422;flex-direction:column;gap:10px;max-width:95%;padding:12px 14px;display:flex}.wchat-question-text{font-weight:600;color:var(--color-text-primary)!important}.wchat-question-options{flex-wrap:wrap;gap:6px;display:flex}.wchat-question-option-btn{color:var(--color-text-primary);cursor:pointer;background:#232a28;border:1px solid #2f3937;border-radius:999px;padding:6px 14px;font-size:.82rem;transition:background .15s,border-color .15s,color .15s}.wchat-question-option-btn:hover:not(:disabled){background:var(--color-border);border-color:var(--color-accent);color:var(--color-white)}.wchat-question-option-btn:disabled{cursor:default;opacity:.55}.wchat-question-hint{color:var(--color-text-secondary);font-size:.74rem;font-style:italic}.workout-chat-input{border-top:1px solid var(--color-bg-card-alt);align-items:center;gap:8px;padding:10px 12px;display:flex}.workout-chat-input input[type=text]{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;flex:1;min-width:0;padding:10px 12px;font-size:.88rem}.workout-chat-input input[type=text]:focus{border-color:var(--color-accent);outline:none}.workout-chat-input .send-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:.82rem;font-weight:600}.workout-chat-input .send-btn:disabled{background:var(--color-border);color:#555;cursor:default}@media (width<=768px){.fitness-tab h2,.fitness-progress h2{margin-bottom:16px;font-size:1.15rem}.fitness-action-card{gap:12px;padding:16px}.picker-grid{grid-template-columns:repeat(2,1fr)}.duration-grid{grid-template-columns:repeat(3,1fr)}.set-input-group input{padding:14px;font-size:1.3rem}.rest-timer-time{font-size:1.6rem}.summary-stats,.progress-stats{grid-template-columns:repeat(3,1fr)}}.upcoming-glance{border:1px solid var(--color-border);background:#0f1311;border-radius:12px;margin-top:16px;padding:12px 14px}.upcoming-glance-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:8px;font-size:.72rem;font-weight:700}.upcoming-glance-list{counter-reset:ug;margin:0;padding:0;list-style:none}.upcoming-glance-list li{counter-increment:ug;border-top:1px solid #2a313080;padding:6px 0;font-size:.88rem;display:block}.upcoming-glance-list li:first-child{border-top:none}.ug-reorder-hint{color:var(--color-text-secondary);opacity:.7;font-size:.72rem;font-weight:400}.ug-row-wrap{align-items:center;gap:8px;display:flex}.ug-drag-handle{color:var(--color-text-secondary);cursor:grab;touch-action:none;background:0 0;border:none;flex-shrink:0;padding:4px 2px;font-size:1.05rem;line-height:1}.ug-drag-handle:active{cursor:grabbing}.ug-delete{color:var(--color-text-secondary);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:4px 6px;font-size:.95rem;line-height:1}.ug-delete:hover,.ug-delete:active{opacity:1}.upcoming-glance-list li.ug-dragging{background:#22c55e12;border-radius:8px}.ug-row{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.ug-row:before{content:counter(ug) ".";color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:20px}.ug-name{min-width:0;color:var(--color-text-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ug-detail{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.end-workout-backdrop{z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.end-workout-modal{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:16px;width:100%;max-width:380px;padding:24px 22px;box-shadow:0 20px 60px #00000080}.end-workout-modal h3{color:var(--color-text-primary);margin:0 0 10px;font-size:1.15rem}.end-workout-modal p{color:var(--color-text-soft);margin:0 0 18px;font-size:.92rem;line-height:1.45}.end-workout-modal p .saved-note{color:var(--color-text-secondary);margin-top:6px;font-size:.82rem;display:block}.end-workout-actions{justify-content:flex-end;gap:10px;display:flex}.end-reason-chips{flex-wrap:wrap;gap:8px;margin:10px 0 8px;display:flex}.end-reason-chip{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:500;transition:border-color .15s,background .15s,color .15s}.end-reason-chip.selected{border-color:var(--color-accent);color:#88e09c;background:#22c55e24}.end-reason-detail{background:var(--color-bg-app);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);resize:none;box-sizing:border-box;border-radius:8px;margin-bottom:12px;padding:8px 10px;font-family:inherit;font-size:.85rem}.end-reason-detail:focus{border-color:#3a8060;outline:none}.end-reason-detail::placeholder{color:#5a6661}.end-workout-cancel{border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;padding:10px 18px;font-size:.9rem;font-weight:600}.end-workout-cancel:hover{background:#c8ceca0f}.end-workout-confirm{color:var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ef4444;border:none;border-radius:10px;padding:10px 18px;font-size:.9rem;font-weight:700}.end-workout-confirm:hover{background:#dc2626}.append-set-buttons{justify-content:center;gap:8px;margin-top:12px;display:flex}.append-set-btn{border:1px dashed var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:8px;padding:8px 14px;font-size:.82rem;font-weight:600;transition:border-color .15s,color .15s}.append-set-btn:active{border-color:var(--color-accent);color:var(--color-accent)}.append-set-btn.drop:active{color:#f59e0b;border-color:#f59e0b}.defer-exercise-row{justify-content:center;margin-top:10px;display:flex}.defer-exercise-btn{color:var(--color-text-muted);cursor:pointer;text-underline-offset:3px;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;padding:6px 12px;font-size:.82rem;font-weight:600;text-decoration:underline}.defer-exercise-btn:active{color:var(--color-accent)}@media (hover:hover){.append-set-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.append-set-btn.drop:hover{color:#f59e0b;border-color:#f59e0b}}.append-set-btn.drop{color:var(--color-text-secondary)}.post-ex-feedback{background:#22c55e0f;border:1px solid #22c55e40;border-radius:12px;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;display:flex}.post-ex-feedback-icon{flex-shrink:0;font-size:1.1rem;line-height:1.2}.post-ex-feedback-text{color:var(--color-text-soft);margin:0;font-size:.9rem;line-height:1.45}.post-ex-feedback-text.loading{color:var(--color-text-secondary);font-style:italic}.exercise-card.in-group{border-left:3px solid var(--color-accent);position:relative}.group-banner{font-variant-numeric:tabular-nums;background:#22c55e14;border-radius:6px;align-items:center;gap:10px;min-width:0;margin:-8px -6px 14px;padding:6px 10px;font-size:.78rem;display:flex}.group-banner-member{background:var(--color-accent);color:#0a0e0b;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;min-width:0;padding:2px 8px;font-size:.82rem;font-weight:800;overflow:hidden}.group-banner-kind{color:var(--color-accent);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:.78rem;font-weight:700}.group-banner-round{color:var(--color-text-soft);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:.78rem;font-weight:600}.transition-card{text-align:center;padding:20px 18px 22px}.transition-card>.complete-set-btn{width:100%;display:block}.transition-next{margin:18px 0 20px}.transition-up-next-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:6px;font-size:.72rem;font-weight:700}.transition-member{color:var(--color-accent);margin-bottom:4px;font-size:1.8rem;font-weight:800;line-height:1}.transition-name{color:var(--color-text-primary);margin:0 0 6px;font-size:1.25rem}.transition-detail{color:var(--color-text-soft);margin:0;font-size:.92rem}.transition-timer-picker{margin-top:18px}.transition-timer-label{color:var(--color-text-secondary);margin-bottom:8px;font-size:.82rem}.transition-timer-buttons{justify-content:center;gap:8px;display:flex}.transition-timer-btn{border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;min-width:56px;padding:8px 14px;font-size:.88rem;font-weight:600;transition:border-color .15s,color .15s}.transition-timer-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.upcoming-glance-list li.in-group{border-left:3px solid var(--color-accent);margin-left:4px;padding-left:10px}.ug-group-pill{align-items:center;gap:6px;margin:6px 0 4px;font-size:.72rem;display:flex}.ug-group-kind{background:var(--color-accent);color:#0a0e0b;letter-spacing:.06em;border-radius:4px;padding:1px 6px;font-size:.66rem;font-weight:800}.ug-group-label{color:var(--color-accent);font-weight:700}.ug-group-rounds{color:var(--color-text-secondary);margin-left:auto;font-size:.72rem}.ug-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.overview-group-pill{background:#22c55e1a;border-radius:8px;align-items:center;gap:8px;margin:12px 0 6px;padding:6px 10px;font-size:.78rem;display:flex}.overview-group-kind{background:var(--color-accent);color:#0a0e0b;letter-spacing:.06em;border-radius:5px;padding:2px 7px;font-size:.7rem;font-weight:800}.overview-group-label{color:var(--color-accent);font-weight:700}.overview-group-rounds{color:var(--color-text-soft);font-variant-numeric:tabular-nums;margin-left:auto}.overview-exercise.in-group{border-left:3px solid var(--color-accent);margin-left:10px;padding-left:10px}.plan-group-pill{background:#22c55e1a;border-radius:8px;align-items:center;gap:8px;margin:10px 0 4px;padding:6px 10px;font-size:.78rem;display:flex}.plan-group-kind{background:var(--color-accent);color:#0a0e0b;letter-spacing:.06em;border-radius:5px;padding:2px 7px;font-size:.7rem;font-weight:800}.plan-group-label{color:var(--color-accent);font-weight:700}.plan-group-rounds{color:var(--color-text-soft);font-variant-numeric:tabular-nums;margin-left:auto}.plan-exercise.in-group{border-left:3px solid var(--color-accent);margin-left:12px;padding-left:8px}.post-ex-feedback-body{flex-direction:column;flex:1;gap:10px;display:flex}.post-ex-followup{background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.post-ex-followup-question{color:var(--color-text-soft);margin:0;font-size:.92rem;line-height:1.4}.post-ex-followup-chips{flex-wrap:wrap;gap:6px;display:flex}.post-ex-followup-chip{color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#22c55e14;border:1px solid #22c55e4d;border-radius:999px;padding:8px 14px;font-size:.86rem;font-weight:600;transition:background-color .12s,border-color .12s}.post-ex-followup-chip:active{background:#22c55e2e;border-color:#22c55e99}@media (hover:hover){.post-ex-followup-chip:hover{background:#22c55e24;border-color:#22c55e80}}.post-ex-followup-answered{color:var(--color-text-soft);background:#22c55e0d;border-color:#22c55e33;flex-direction:row;align-items:center;gap:8px;font-size:.88rem}.post-ex-followup-check{color:var(--color-accent);font-weight:700}.plan-core-finisher-divider{background:#a855f71f}.plan-core-finisher-divider .plan-group-kind{color:#0a0e0b;background:#a855f7}.core-finisher-affordance{margin:12px 0 8px}.core-finisher-toggle{color:#a855f7;cursor:pointer;background:0 0;border:1px dashed #a855f780;border-radius:8px;width:100%;padding:10px 14px;font-size:.92rem;font-weight:600}.core-finisher-toggle:hover{background:#a855f714}.core-finisher-picker{background:#a855f70d;border:1px solid #a855f74d;border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.core-finisher-picker-label{color:#c084fc;font-size:.85rem;font-weight:600}.core-finisher-picker-btns{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.core-finisher-min-btn{color:#0a0e0b;cursor:pointer;background:#a855f7;border:none;border-radius:6px;padding:8px 14px;font-weight:700}.core-finisher-min-btn:disabled{opacity:.5;cursor:not-allowed}.core-finisher-cancel-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #444;border-radius:6px;padding:8px 14px}.core-finisher-status{color:#888;font-size:.82rem;font-style:italic}.core-finisher-error{color:#ef4444;font-size:.82rem}.core-finisher-header{color:#0a0e0b;letter-spacing:.06em;text-transform:uppercase;background:#a855f7;border-radius:6px;margin-bottom:8px;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-block}.exercise-about-btn{color:#8aa094;cursor:pointer;-webkit-tap-highlight-color:transparent;vertical-align:middle;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 6px;font-size:17px;line-height:1}.exercise-about-btn:active{background:#243029}.exercise-swap-btn{color:#8aa094;cursor:pointer;-webkit-tap-highlight-color:transparent;vertical-align:middle;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 6px;font-size:17px;line-height:1}.exercise-swap-btn:active{background:#243029}.swap-sub{color:#9bb0a4;margin:0 0 12px;font-size:13px}.swap-option{text-align:left;cursor:pointer;background:#161b18;border:1px solid #2d3a31;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:8px;padding:11px 13px;transition:border-color .12s,background .12s;display:flex}.swap-option:hover,.swap-option:active{background:#1b241e;border-color:#22c55e}.swap-option-name{color:#eaf3ee;font-size:15px;font-weight:600}.swap-option-meta{color:#71817a;font-size:12px}.exercise-about-backdrop{z-index:9100;cursor:pointer;background:#000000e0;justify-content:center;align-items:flex-end;animation:.15s feedback-fade;display:flex;position:fixed;inset:0}.exercise-about-sheet{background:var(--color-bg-card);border-top:1px solid #2d3a31;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:88vh;animation:.2s feedback-slide;display:flex;overflow:hidden;box-shadow:0 -10px 40px #00000080}@media (width>=700px){.exercise-about-sheet{border-radius:16px;max-height:80vh;margin-top:auto;margin-bottom:auto}.exercise-about-backdrop{align-items:center}}.exercise-about-header{border-bottom:1px solid #2d3a31;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.exercise-about-title{color:#e2efe6;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;padding-right:8px;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden}.exercise-about-close{color:#8aa094;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:32px;height:32px;font-size:26px;line-height:1}.exercise-about-close:active{background:#243029}.exercise-about-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.exercise-about-loading,.exercise-about-unavailable{text-align:center;color:#8aa094;padding:24px 0;font-size:14px}.exercise-about-unavailable-hint{color:#71817a;margin-top:6px;font-size:13px}.exercise-about-bodymap{aspect-ratio:200/175;flex-shrink:0;width:100%;max-width:300px;margin:0 auto;display:block}.bodymap-label{fill:#71817a;text-anchor:middle;font-family:inherit;font-size:12px}.exercise-about-muscles{flex-direction:column;gap:4px;display:flex}.muscle-group{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.muscle-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;position:relative;top:1px}.muscle-label{color:#8aa094;white-space:nowrap}.muscle-names{color:#e2efe6}.exercise-about-section{flex-direction:column;gap:8px;display:flex}.exercise-about-section-title{text-transform:uppercase;letter-spacing:.5px;color:#8aa094;margin:0;font-size:12px;font-weight:600}.exercise-about-chips{flex-wrap:wrap;gap:6px;display:flex}.exercise-about-chip{color:#e2efe6;background:#243029;border:1px solid #355043;border-radius:20px;padding:4px 10px;font-size:13px;font-weight:500}.exercise-about-chip.eq-kind-free-weight{border-color:#4a7c5a}.exercise-about-chip.eq-kind-machine{border-color:#3a5a7a}.exercise-about-chip.eq-kind-cable{border-color:#5a4a7a}.exercise-about-chip.eq-kind-bodyweight{border-color:#7a5a3a}.exercise-about-steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.exercise-about-step{color:#cfdfd5;font-size:14px;line-height:1.5}.exercise-about-unverified{color:#71817a;text-align:center;border-top:1px solid #2d3a31;margin:0;padding-top:4px;font-size:12px;font-style:italic}.muscle-balance-section{background:#161b18;border:1px solid #232b25;border-radius:12px;margin:16px 0;padding:16px}.muscle-balance-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.muscle-balance-head h3{margin:0}.muscle-window-toggle{background:#11150f;border:1px solid #2d3a31;border-radius:8px;display:inline-flex;overflow:hidden}.muscle-window-btn{color:#9bb0a4;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.muscle-window-btn.active{color:#0c130e;background:#22c55e}.bodyrank-figure{aspect-ratio:210/188;width:100%;max-width:340px;margin:4px auto 0;display:block}.bodyrank-label{fill:#71817a;text-anchor:middle;font-family:inherit;font-size:11px}.bodyrank-figure rect[role=button]:focus-visible{stroke:#e5f5ec;stroke-width:2px;outline:none}.muscle-balance-readout{text-align:center;color:#cfdfd5;min-height:20px;margin:10px 0 4px;font-size:14px}.muscle-readout-split{color:#9bb0a4}.muscle-balance-hint{color:#71817a;font-size:13px}.muscle-rank-list{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.muscle-rank-row{cursor:pointer;border-radius:6px;grid-template-columns:92px 1fr 52px;align-items:center;gap:8px;padding:4px 6px;transition:background .12s;display:grid}.muscle-rank-row:hover,.muscle-rank-row.selected{background:#1f2a22}.muscle-rank-name{color:#cfdfd5;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.muscle-rank-bar-track{background:#11150f;border-radius:4px;height:8px;overflow:hidden}.muscle-rank-bar-fill{background:#22c55e;border-radius:4px;min-width:2px;height:100%;display:block}.muscle-rank-count{color:#9bb0a4;text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.muscle-coverage-note{color:#71817a;margin:10px 0 0;font-size:12px;line-height:1.4}.muscle-mode-toggle{gap:6px;margin:2px 0 4px;display:flex}.muscle-mode-btn{color:#9bb0a4;cursor:pointer;background:#11150f;border:1px solid #2d3a31;border-radius:8px;flex:1;padding:7px 10px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.muscle-mode-btn.active{color:#eaf3ee;background:#1f2a22;border-color:#22c55e}.muscle-landmark-legend{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:8px 0 2px;display:flex}.muscle-legend-item{color:#9bb0a4;align-items:center;gap:5px;font-size:12px;display:inline-flex}.muscle-legend-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.combobox{width:100%;font-family:inherit;display:inline-block;position:relative}.combobox-trigger{background-color:var(--bg-elevated,#fff);width:100%;color:var(--text-primary,#1a1a1a);border:1px solid var(--border-color,#d6d6dc);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;appearance:none;-webkit-focus-ring-color:transparent;border-radius:12px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:16px;line-height:1.3;transition:border-color .12s,box-shadow .12s;display:flex}.combobox-trigger:focus,.combobox-trigger:focus-visible,.combobox-trigger:active{background-color:var(--bg-elevated,#fff);outline:none}@media (hover:hover){.combobox-trigger:hover{border-color:var(--accent-color,#5b6ef5)}}.combobox.is-open .combobox-trigger{border-color:var(--accent-color,#5b6ef5);box-shadow:0 0 0 3px #5b6ef52e}.combobox-value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.combobox-value.is-placeholder{color:var(--text-muted,#8a8a93)}.combobox-caret{color:var(--text-muted,#8a8a93);flex-shrink:0;font-size:12px;transition:transform .15s}.combobox.is-open .combobox-caret{transform:rotate(180deg)}.combobox-popover{z-index:50;background:var(--bg-elevated,#fff);border:1px solid var(--border-color,#d6d6dc);border-radius:12px;animation:.12s ease-out combobox-pop;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f,0 2px 6px #0000000f}@keyframes combobox-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.combobox-search-row{border-bottom:1px solid var(--border-subtle,#ececef);background:var(--bg-elevated,#fff);padding:8px;position:sticky;top:0}.combobox-search{border:1px solid var(--border-color,#d6d6dc);background:var(--bg-base,#fafafb);width:100%;color:var(--text-primary,#1a1a1a);border-radius:8px;outline:none;padding:8px 10px;font-size:16px}.combobox-search:focus{border-color:var(--accent-color,#5b6ef5);box-shadow:0 0 0 2px #5b6ef526}.combobox-list{-webkit-overflow-scrolling:touch;max-height:320px;margin:0;padding:4px;list-style:none;overflow-y:auto}.combobox-option{cursor:pointer;color:var(--text-primary,#1a1a1a);-webkit-tap-highlight-color:transparent;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:15px;transition:background-color 80ms;display:flex}@media (hover:hover){.combobox-option:hover{background:var(--bg-hover,#f1f3ff)}}.combobox-option:active{background:var(--bg-hover,#f1f3ff)}.combobox-option.is-selected{background:var(--accent-soft,#5b6ef51a);color:var(--accent-strong,#3a4ad4);font-weight:600}.combobox-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.combobox-option-check{color:var(--accent-strong,#3a4ad4);font-size:14px}.combobox-empty{text-align:center;color:var(--text-muted,#8a8a93);padding:14px;font-size:14px}@media (prefers-color-scheme:dark){.combobox-trigger,.combobox-popover,.combobox-search-row{background:var(--bg-elevated,#1f2024);color:var(--text-primary,#e8e8ec);border-color:var(--border-color,#34353a)}.combobox-search{background:var(--bg-base,#16171b);color:var(--text-primary,#e8e8ec);border-color:var(--border-color,#34353a)}.combobox-option:hover{background:var(--bg-hover,#5b6ef52e)}}.tp-page{max-width:760px;margin:0 auto;padding:0 4px 60px}.tp-header{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.tp-back{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-bottom:6px;padding:4px 0;font-size:.9rem}.tp-back:hover{color:var(--color-text-soft)}.tp-page h2{color:var(--color-white);margin:0;font-size:1.4rem}.tp-meta{color:var(--color-text-secondary);font-size:.75rem}.tp-body{color:var(--color-text-soft);font-size:.92rem;line-height:1.6}.tp-intro{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;margin:0 0 18px;padding:14px 16px}.tp-section{margin:0 0 22px}.tp-section>h3{color:var(--color-accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:.78rem;font-weight:600}.tp-section>p{margin:0 0 10px}.tp-body strong{color:var(--color-text-primary)}.tp-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;margin-bottom:10px;padding:12px 14px}.tp-card-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.tp-card-head strong{color:var(--color-text-primary);font-size:.98rem}.tp-range{color:var(--color-accent);white-space:nowrap;font-size:.9rem;font-weight:600}.tp-desc{color:var(--color-text-soft);margin:0 0 4px}.tp-why{color:var(--color-text-secondary);margin:0 0 8px;font-size:.85rem}.tp-table{border-collapse:collapse;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;width:100%;font-size:.85rem;overflow:hidden}.tp-table th,.tp-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:6px 10px}.tp-table th{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.tp-table td:first-child{color:var(--color-text-primary);text-transform:capitalize}.tp-table td:not(:first-child){text-align:center;width:56px}.tp-table tr:last-child td{border-bottom:none}.tp-cites{margin:8px 0 0;padding:0;list-style:none}.tp-cites li{color:var(--color-text-secondary);margin-bottom:8px;padding-left:2px;font-size:.8rem;line-height:1.5}.tp-badge{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border-radius:999px;margin-right:6px;padding:1px 6px;font-size:.62rem;font-weight:700;display:inline-block}.tp-badge--ok{color:#22c55e;background:#22c55e29}.tp-badge--pending{color:var(--color-text-secondary);background:#94a3b829}.tp-foot{color:var(--color-text-secondary);margin:18px 0 0;font-size:.82rem;font-style:italic}.subscription-banner{z-index:100;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:.85rem;display:flex;position:sticky;top:0}.trial-banner{color:#d4b8ff;background:linear-gradient(90deg,#863bff22,#863bff44);border-bottom:1px solid #863bff55}.canceling-banner{color:#ffc078;background:linear-gradient(90deg,#ff8c0022,#ff8c0044);border-bottom:1px solid #ff8c0055}.pastdue-banner{color:#ff9898;background:linear-gradient(90deg,#ff4d4d22,#ff4d4d44);border-bottom:1px solid #ff4d4d55}.subscribe-btn-small{color:#fff;cursor:pointer;white-space:nowrap;background:#863bff;border:none;border-radius:6px;padding:4px 14px;font-size:.8rem;font-weight:600;transition:background .15s}.subscribe-btn-small:hover{background:#7530e0}.subscribe-btn-small:disabled{opacity:.6;cursor:not-allowed}.subscription-paywall{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c0bf2;justify-content:center;align-items:center;padding:20px;animation:.3s .5s both paywall-fadein;display:flex;position:fixed;inset:0}@keyframes paywall-fadein{0%{opacity:0}to{opacity:1}}.paywall-card{background:var(--color-bg-card);border:1px solid var(--color-border);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:40px 32px}.paywall-icon{margin-bottom:12px;font-size:3rem}.paywall-card h2{color:#e8e8e8;margin:0 0 8px;font-size:1.4rem}.paywall-card p{color:#9ca898;margin:0 0 24px;font-size:.95rem;line-height:1.5}.paywall-features{text-align:left;flex-direction:column;gap:8px;margin-bottom:28px;display:flex}.paywall-feature{color:#c8d0c4;padding-left:4px;font-size:.9rem}.subscribe-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#863bff,#6b20e0);border:none;border-radius:10px;width:100%;padding:14px 20px;font-size:1.05rem;font-weight:700;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 20px #863bff4d}.subscribe-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #863bff66}.subscribe-btn:active{transform:translateY(0)}.subscribe-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.manage-billing-btn{border:1px solid var(--color-border);color:#9ca898;cursor:pointer;background:0 0;border-radius:8px;width:100%;margin-top:12px;padding:10px;font-size:.85rem;transition:border-color .15s;display:block}.manage-billing-btn:hover{color:#d4b8ff;border-color:#863bff}.manage-billing-btn:disabled{opacity:.5;cursor:not-allowed}.paywall-error{color:var(--color-error);margin-top:12px;font-size:.85rem}.strava-connect{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:16px}.strava-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.strava-title{color:var(--color-text-primary);font-size:.95rem;font-weight:600}.strava-connect-btn{width:100%;color:var(--color-white);cursor:pointer;background:#fc4c02;border:none;border-radius:8px;padding:12px;font-size:.9rem;font-weight:600;transition:background .2s}.strava-connect-btn:hover{background:#e04400}.strava-connected{flex-direction:column;gap:8px;display:flex}.strava-status{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.strava-badge{color:#fc4c02;background:#fc4c021f;border-radius:6px;padding:4px 10px;font-size:.78rem;font-weight:600}.strava-sync-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:.78rem}.strava-sync-btn:hover{color:#fc4c02;border-color:#fc4c02}.strava-disconnect-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:.78rem}.strava-disconnect-btn:hover{border-color:var(--color-error);color:var(--color-error)}.strava-result{margin-top:8px;font-size:.82rem}.strava-result.success{color:var(--color-accent)}.strava-result.error{color:var(--color-error)}.strava-tip{border:1px solid var(--color-border);color:var(--color-text-muted);background:#22c55e0a;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:.78rem;line-height:1.5}.strava-tip strong{color:var(--color-text-soft)}.strava-tip em{color:var(--color-text-soft);font-style:normal;font-weight:500}.goal-setup{margin-top:4px}.goal-cards{flex-direction:column;gap:10px;display:flex}.goal-card{background:var(--color-bg-card);border:1px solid var(--color-border);width:100%;color:var(--color-text-primary);text-align:left;border-radius:12px;align-items:center;gap:14px;padding:18px 16px;transition:border-color .2s,background .2s;display:flex}.goal-card:hover{border-color:var(--color-accent);background:#22c55e0a}.goal-card-icon{width:48px;height:48px;color:var(--color-accent);background:#22c55e14;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.goal-card-content{flex:1;min-width:0}.goal-card-content h4{color:var(--color-text-primary);margin-bottom:4px;font-size:1rem;font-weight:600}.goal-placeholder{color:var(--color-text-secondary);margin:0;font-size:.82rem}.goal-summary{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.goal-type{color:var(--color-accent);text-transform:capitalize;background:#22c55e1a;border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:600}.edit-hint{color:#555;font-size:.72rem}.goal-card-arrow{color:#555;flex-shrink:0;font-size:1.4rem;font-weight:300}.goal-chat{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;min-height:400px;display:flex;overflow:hidden}.goal-chat-header{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:14px 16px;display:flex}.goal-chat-header h3{color:var(--color-accent);margin:0}.goal-chat-messages{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;max-height:450px;padding:16px;display:flex;overflow-y:auto}.goal-chat-done{border-top:1px solid var(--color-border);background:#22c55e0f;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.goal-saved-msg{color:var(--color-accent);font-size:.9rem;font-weight:600}.goal-chat-input{border-top:1px solid var(--color-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.goal-chat-input input[type=text]{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:10px;flex:1;min-width:0;padding:12px 14px}@media (width<=768px){.goal-card{gap:12px;padding:14px 12px}.goal-card-icon{width:40px;height:40px}.goal-card-icon svg{width:22px;height:22px}.goal-card-content h4{font-size:.92rem}.goal-chat-messages{max-height:55vh;padding:12px}.goal-chat-input{gap:6px;padding:10px 12px}.goal-chat-input input[type=text]{padding:10px 12px}}.objective-picker{margin-top:14px}.objective-picker-label{color:var(--color-text-secondary);margin-bottom:8px;font-size:.82rem;font-weight:600;display:block}.objective-chips{flex-wrap:wrap;gap:8px;display:flex}.objective-chip{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:.88rem;font-weight:500;transition:border-color .15s,background .15s,color .15s}.objective-chip.selected{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e1f}.objective-hint{color:var(--color-text-secondary);margin-top:8px;font-size:.78rem}.dob-locked{border:1px solid var(--color-border);box-sizing:border-box;background:#0f1311;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.dob-locked-value{color:var(--color-text-primary);font-size:1rem;font-weight:500}.dob-locked-value.empty{color:var(--color-text-secondary);font-weight:400}.dob-edit-btn{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:8px;flex-shrink:0;padding:6px 14px;font-size:.82rem;font-weight:600}.dob-edit-btn:hover{background:#22c55e14}.dob-edit{flex-direction:column;gap:10px;display:flex}.dob-edit-actions{justify-content:flex-end;display:flex}.dob-done-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;padding:8px 18px;font-size:.88rem;font-weight:600}.dob-done-btn:hover{background:var(--color-accent-hover)}.dob-wheel{border:1px solid var(--color-border);box-sizing:border-box;background:#0f1311;border-radius:12px;width:100%;display:flex;position:relative;overflow:hidden}.dob-wheel:before,.dob-wheel:after{content:"";pointer-events:none;z-index:3;height:40px;position:absolute;left:0;right:0}.dob-wheel:before{background:linear-gradient(#0f1311 20%,#0f131100);top:0}.dob-wheel:after{background:linear-gradient(#0f131100,#0f1311 80%);bottom:0}.dob-wheel-highlight{pointer-events:none;z-index:1;background:#22c55e14;border-top:1px solid #22c55e59;border-bottom:1px solid #22c55e59;height:40px;position:absolute;top:80px;left:0;right:0}.wheel-col{scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;z-index:2;flex:1 1 0;min-width:0;position:relative;overflow-y:auto}.wheel-col::-webkit-scrollbar{display:none}.wheel-item{scroll-snap-align:center;scroll-snap-stop:always;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;font-size:1rem;font-weight:500;transition:color .15s,transform .15s;display:flex}.wheel-item:hover{color:var(--color-text-soft)}.wheel-item.selected{color:var(--color-accent);font-size:1.1rem;font-weight:700}.friends-panel{position:relative}.friends-empty,.friends-note{color:var(--color-text-secondary);margin:.25rem 0;font-size:.88rem}.friends-list{margin:0;padding:0;list-style:none}.friends-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem 0;display:flex}.friends-row:last-child{border-bottom:none}.friends-name{color:var(--color-text-primary);font-weight:600}.friends-actions{gap:.85rem;display:inline-flex}.friends-link{cursor:pointer;color:var(--color-accent);background:0 0;border:none;padding:0;font-family:inherit;font-size:.85rem}.friends-link:hover{color:var(--color-accent-hover)}.friends-link--danger{color:var(--color-error)}.friends-link:disabled{opacity:.5;cursor:default}.friends-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;font-family:inherit;font-size:.9rem}.friends-btn:hover{background:var(--color-accent-hover)}.friends-btn:disabled{opacity:.6;cursor:default}.friends-btn-row,.friends-redeem-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.friends-code{letter-spacing:.15em;color:var(--color-accent);padding:.5rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.5rem;font-weight:700}.friends-redeem-input{text-transform:uppercase;letter-spacing:.05em;flex:10rem;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.friends-error{color:var(--color-error);margin:.5rem 0 0;font-size:.85rem}.friends-realname{color:var(--color-text-secondary);font-size:.8rem;font-weight:400}.friends-alias-input{flex:8rem;min-width:0;margin-right:.5rem}.settings-page{padding-bottom:40px}.settings-page h2{color:var(--color-white);margin-bottom:20px;font-size:1.3rem}.settings-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;margin-bottom:10px;overflow:hidden}.settings-section-header{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:14px 18px;display:flex}.settings-section-header:hover{background:#ffffff05}.settings-section h3{color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.95rem;font-weight:600}.settings-section-chev{color:var(--color-text-secondary);font-size:.85rem}.settings-section-body{border-top:1px solid var(--color-bg-card-alt);padding:4px 18px 18px}.settings-account-strip{margin-bottom:12px}.settings-account-row{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.settings-account-email{color:var(--color-text-soft);text-overflow:ellipsis;white-space:nowrap;margin-right:10px;font-size:.85rem;overflow:hidden}.settings-account-signout{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:.8rem;transition:all .15s}.settings-account-signout:hover{color:#ef4444;border-color:#4a2020}.settings-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;z-index:5;background:#0c0f0d;gap:6px;margin-bottom:12px;padding:4px 0;display:flex;position:sticky;top:0;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border-radius:999px;outline:none;flex-shrink:0;padding:7px 14px;font-size:.8rem;font-weight:500;transition:all .15s;position:relative}.settings-tab:hover{border-color:#3a4140}.settings-tab.active{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e1f;font-weight:600}.settings-tab-dot{vertical-align:middle;background:#f59e0b;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.settings-inline-label{flex-direction:column;flex:1;gap:4px;min-width:120px;display:flex}.settings-inline-label>span{color:var(--color-text-muted);font-size:.75rem}.settings-inline-label>select{color:var(--color-text-primary);border:1px solid var(--color-border);background-color:#1e2422;border-radius:8px;padding:7px 10px;font-size:.85rem}.settings-reset-link{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;margin-top:-6px;padding:4px 0;font-size:.75rem;text-decoration:underline}.settings-reset-link:hover{color:var(--color-text-soft)}.settings-link-btn{color:var(--color-text-soft);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:.85rem;transition:all .15s}.settings-link-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.settings-link-btn:disabled{opacity:.5;cursor:not-allowed}.settings-subsection{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px;font-size:.78rem;font-weight:600}.settings-subsection:first-of-type{margin-top:8px}.settings-row{border-bottom:1px solid var(--color-bg-card-alt);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.settings-row:last-of-type{border-bottom:none}.settings-label{color:var(--color-text-primary);font-size:.92rem;font-weight:500}.settings-sublabel{color:var(--color-text-secondary);margin-top:2px;font-size:.78rem;line-height:1.4}.settings-value{color:var(--color-text-muted);font-size:.88rem}.settings-value.mono{font-family:monospace;font-size:.8rem}.settings-danger-btn{color:#ff9a9a;cursor:pointer;background:0 0;border:1px solid #3a2020;border-radius:8px;margin-top:14px;padding:10px 16px;font-size:.88rem;font-weight:500}.settings-danger-btn:hover{border-color:var(--color-error);background:#ff6b6b14}.settings-toggle-row{border-bottom:1px solid var(--color-bg-card-alt);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.settings-toggle-row:last-of-type{border-bottom:none}.toggle-switch{flex-shrink:0;width:42px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--color-border);border-radius:12px;transition:all .25s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--color-text-primary);border-radius:50%;width:18px;height:18px;transition:all .25s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--color-accent)}.toggle-switch input:checked+.toggle-slider:before{background:#fff;transform:translate(18px)}.settings-slider-row{border-bottom:1px solid var(--color-bg-card-alt);padding:16px 0}.settings-slider-row:last-of-type{border-bottom:none}.settings-slider-header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.settings-slider-value{color:var(--color-accent);font-size:.82rem;font-weight:600}.settings-slider-row input[type=range]{appearance:none;background:var(--color-border);border-radius:2px;outline:none;width:100%;height:4px}.settings-slider-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg-app);border-radius:50%;width:18px;height:18px}.settings-slider-row input[type=range]::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg-app);border-radius:50%;width:18px;height:18px}.settings-slider-ends{color:#555;justify-content:space-between;margin-top:6px;font-size:.72rem;display:flex}.settings-integrations{margin-bottom:10px}.settings-note{color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.5}.gym-settings{flex-direction:column;gap:14px;display:flex}.gym-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gym-item{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:10px;padding:12px 14px}.gym-item.active{background:#22c55e0d;border-color:#22c55e80}.gym-item.editing{background:#111613}.gym-header{align-items:center;gap:10px;display:flex}.gym-name{color:var(--color-text-primary);font-size:.95rem}.gym-active-pill{background:var(--color-accent);color:#0f1411;text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:700}.gym-meta{color:var(--color-text-muted);margin:4px 0;font-size:.82rem}.gym-notes{color:var(--color-text-muted);margin:4px 0 6px;font-size:.8rem;font-style:italic}.gym-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.gym-action-btn{color:var(--color-text-primary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:.82rem}.gym-action-btn:hover{border-color:#3a4038}.gym-action-btn.secondary{color:var(--color-text-muted)}.gym-action-btn.danger{color:#ef4444;border-color:#ef44444d}.gym-name-input,.gym-missing-input,.gym-notes-input,.gym-add-input{box-sizing:border-box;width:100%;color:var(--color-text-primary);border:1px solid var(--color-border);background:#0f1411;border-radius:8px;margin-bottom:6px;padding:8px 10px;font-family:inherit;font-size:.9rem}.gym-name-input:focus,.gym-missing-input:focus,.gym-notes-input:focus,.gym-add-input:focus{border-color:var(--color-accent);outline:none}.gym-missing-input,.gym-notes-input{resize:vertical;min-height:40px}.gym-field-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:6px;margin-bottom:4px;font-size:.72rem;display:block}.gym-edit-actions{gap:6px;margin-top:8px;display:flex}.gym-equip-head{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.gym-equip-presets{gap:6px;display:flex}.gym-preset-btn{background:var(--color-bg-tertiary,#1a1f1c);border:1px solid var(--color-border,#2d3a31);color:var(--color-text-secondary,#9bb0a4);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:.72rem;font-weight:600}.gym-preset-btn:hover{border-color:var(--color-accent,#22c55e)}.gym-equip-groups{flex-direction:column;gap:8px;margin:4px 0 2px;display:flex}.gym-equip-group-label{color:var(--color-text-tertiary,#71817a);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;font-size:.68rem}.gym-equip-chips{flex-wrap:wrap;gap:5px;display:flex}.gym-equip-chip{border:1px solid var(--color-border,#2d3a31);color:var(--color-text-secondary,#9bb0a4);cursor:pointer;background:0 0;border-radius:999px;padding:4px 11px;font-size:.8rem;transition:background .12s,color .12s,border-color .12s}.gym-equip-chip.on{background:var(--color-accent,#22c55e);border-color:var(--color-accent,#22c55e);color:#0c130e;font-weight:600}.settings-save-btn{background:var(--color-accent);color:#0f1411;cursor:pointer;border:none;border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:600}.settings-save-btn:disabled{opacity:.5;cursor:not-allowed}.settings-cancel-btn{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:.85rem}.gym-add-row{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.gym-add-row .gym-add-input{flex:1;min-width:140px;margin-bottom:0}.gym-add-mode{color:var(--color-text-primary);border:1px solid var(--color-border);cursor:pointer;background:#1e2422;border-radius:8px;height:38px;padding:0 10px;font-size:.85rem}.gym-add-mode:focus{border-color:var(--color-accent);outline:none}.gym-mode-toggle{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.gym-mode-btn{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;text-align:left;background:#1e2422;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;transition:all .15s;display:flex}.gym-mode-btn strong{color:var(--color-text-primary);font-size:.9rem}.gym-mode-btn span{color:var(--color-text-secondary);font-size:.72rem}.gym-mode-btn:hover{border-color:#3a4140}.gym-mode-btn.selected{border-color:var(--color-accent);background:#22c55e14}.gym-mode-btn.selected strong{color:var(--color-accent)}.subscription-card{padding:10px 0}.subscription-tier{color:var(--color-text-primary);margin-bottom:6px;font-size:.92rem}.subscription-note{color:var(--color-text-secondary);margin:0;font-size:.82rem}.about-me{flex-direction:column;gap:18px;display:flex;position:relative}.about-group{border-bottom:1px solid var(--color-bg-card-alt);flex-direction:column;gap:10px;padding-bottom:12px;display:flex}.about-group:last-of-type{border-bottom:none;padding-bottom:0}.about-group h4{color:var(--color-accent);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.78rem;font-weight:600}.about-me label{color:var(--color-text-soft);flex-direction:column;gap:4px;font-size:.82rem;font-weight:500;display:flex}.about-me input,.about-me select,.about-me textarea{background:var(--color-bg-app);border:1px solid var(--color-border);color:var(--color-text-primary);box-sizing:border-box;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:.9rem}.about-me textarea{resize:vertical;min-height:48px}.about-me input:focus,.about-me select:focus,.about-me textarea:focus{border-color:var(--color-accent);outline:none}.settings-inline-label>select,.about-me select,.gym-add-mode{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a1a8a3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px;padding-right:28px}.about-row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=480px){.about-row2{grid-template-columns:1fr}}.about-chip-row{flex-wrap:wrap;gap:6px;display:flex}.about-chip{appearance:none;border:1px solid var(--color-border);color:var(--color-text-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#1e2422;border-radius:999px;outline:none;padding:6px 12px;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1.2;transition:background .15s,border-color .15s,color .15s}.about-chip:focus,.about-chip:focus-visible,.about-chip:active{box-shadow:none;outline:none}.about-chip:not(.selected){border-color:var(--color-border);color:var(--color-text-soft);background:#1e2422}.about-chip.selected{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e26;font-weight:600}.about-chip.selected:focus,.about-chip.selected:focus-visible,.about-chip.selected:active{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e26}.about-toast{color:var(--color-accent);opacity:.9;font-size:.75rem;font-weight:600;position:absolute;top:-4px;right:0}.about-me .dob-input{padding:8px 10px;font-size:.88rem}.coach-facts{flex-direction:column;gap:12px;display:flex}.coach-facts-help{color:var(--color-text-secondary);margin:0;font-size:.82rem;line-height:1.5}.coach-facts-add{gap:8px;display:flex}.coach-facts-add input{background:var(--color-bg-app);border:1px solid var(--color-border);min-width:0;color:var(--color-text-primary);border-radius:8px;flex:1;padding:10px 12px;font-size:.9rem}.coach-facts-add input:focus{border-color:var(--color-accent);outline:none}.coach-facts-add-btn{background:var(--color-accent);color:var(--color-white);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:.85rem;font-weight:600}.coach-facts-add-btn:disabled{opacity:.5;cursor:default}.coach-facts-list{flex-direction:column;gap:6px;list-style:none;display:flex}.coach-facts-list li{border:1px solid var(--color-border);color:var(--color-text-primary);background:#1e2422;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.88rem;line-height:1.4;display:flex}.coach-facts-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.coach-facts-date{color:var(--color-text-secondary);font-size:.72rem}.coach-facts-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:1.2rem}.coach-facts-remove:hover{color:var(--color-error)}.coach-facts-empty{color:#555;margin:0;font-size:.82rem;font-style:italic}.food-overrides-help{color:var(--color-text-secondary);margin:0 0 10px;font-size:.82rem;line-height:1.45}.food-overrides-error{color:var(--color-error);margin:0 0 8px;font-size:.82rem}.food-overrides-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.food-overrides-list li{border:1px solid var(--color-border);color:var(--color-text-primary);background:#1e2422;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.88rem;line-height:1.4;display:flex}.food-overrides-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.food-overrides-macros{color:var(--color-text-secondary);font-size:.74rem}.food-overrides-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:1.2rem}.food-overrides-remove:hover{color:var(--color-error)}.food-overrides-empty{color:#555;margin:0;font-size:.82rem;font-style:italic}.settings-toast{background:var(--color-accent);color:var(--color-white);z-index:10000;border-radius:999px;padding:10px 20px;font-size:.88rem;font-weight:600;animation:.2s toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #22c55e59}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.settings-version-footer{text-align:center;color:var(--color-text-secondary);letter-spacing:.02em;margin-top:32px;padding:12px 0 24px;font-size:.75rem}.settings-version-sha{color:var(--color-text-muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline}.settings-version-sha:hover,.settings-version-sha:active{color:var(--color-accent);background:0 0;transform:none}.exercise-increments{border-top:1px solid var(--color-bg-card-alt);margin-top:16px;padding-top:12px}.exercise-increment-list{flex-direction:column;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.exercise-increment-row,.exercise-increment-add{align-items:center;gap:8px;display:flex}.exercise-increment-name{text-transform:capitalize;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.exercise-increment-add input[type=text],.exercise-increment-row select,.exercise-increment-add select{flex:1;min-width:0}.exercise-increment-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex:none;padding:4px 8px;font-size:.9rem}.exercise-increment-add{margin-top:8px}.onboarding-overlay{z-index:9000;-webkit-overflow-scrolling:touch;box-sizing:border-box;background-color:#0a0c0bf5;padding:32px 12px 48px;display:block;position:fixed;inset:0;overflow:hidden auto}.onboarding-card{border:1px solid var(--color-border);box-sizing:border-box;background-color:#151a17;border-radius:18px;width:calc(100vw - 24px);max-width:540px;margin:0 auto;padding:24px 20px 28px;overflow-x:hidden;box-shadow:0 20px 60px #0000008c,inset 0 1px #ffffff08}.ob-progress-header{flex-direction:column;gap:8px;margin-bottom:22px;display:flex}.ob-step-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:600}.ob-progress{background:var(--color-bg-card-alt);border-radius:2px;height:3px;overflow:hidden}.ob-progress-bar{background:linear-gradient(90deg, var(--color-accent), #4ade80);border-radius:2px;height:100%;transition:width .35s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px #22c55e66}.ob-step{flex-direction:column;gap:18px;min-width:0;animation:.25s ob-fade;display:flex}@keyframes ob-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ob-step h2{color:var(--color-white);letter-spacing:-.01em;margin:0;font-size:1.45rem;font-weight:700}.ob-sub{color:var(--color-text-muted);margin:-8px 0 0;font-size:.88rem;line-height:1.5}.ob-intro{color:var(--color-text-soft);margin:0;font-size:.98rem;line-height:1.55}.ob-welcome-icon{font-size:2.4rem;line-height:1}.ob-field{flex-direction:column;gap:8px;min-width:0;display:flex}.ob-field-label{color:var(--color-text-soft);font-size:.85rem;font-weight:500}.ob-field input[type=text],.ob-field input[type=number],.ob-field input[type=date],.ob-field textarea{border:1px solid var(--color-border);color:var(--color-text-primary);box-sizing:border-box;background:#0f1311;border-radius:10px;width:100%;padding:12px 14px;font-family:inherit;font-size:.95rem;line-height:1.4;transition:border-color .15s,background .15s}.ob-field textarea{resize:vertical;min-height:60px}.ob-field input:focus,.ob-field textarea:focus{border-color:var(--color-accent);background:var(--color-bg-app);outline:none}.ob-row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=480px){.ob-row2{grid-template-columns:1fr}}.ob-chip-row{flex-wrap:wrap;gap:8px;display:flex}.ob-chip{box-sizing:border-box;background:var(--color-bg-card);color:var(--color-text-soft);border:1px solid var(--color-border);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;padding:10px 16px;font-family:inherit;font-size:.88rem;font-weight:500;line-height:1;transition:all .15s;display:inline-flex}.ob-chip:hover:not(.selected){background:#1e2422;border-color:#3a4140}.ob-chip:active{transform:scale(.97)}.ob-chip.selected{border-color:var(--color-accent);color:var(--color-accent);background:#22c55e2e;font-weight:600;box-shadow:0 0 0 3px #22c55e14}.ob-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ob-chip-sub{opacity:.7;font-weight:400}.ob-card-stack{flex-direction:column;gap:8px;display:flex}.ob-card{box-sizing:border-box;background:var(--color-bg-card);border:1px solid var(--color-border);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;font-family:inherit;transition:all .15s;display:flex;position:relative}.ob-card:hover:not(.selected){background:#1e2422;border-color:#3a4140}.ob-card:active{transform:scale(.99)}.ob-card.selected{border-color:var(--color-accent);background:#22c55e14;box-shadow:0 0 0 3px #22c55e14}.ob-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ob-card-emoji{text-align:center;flex-shrink:0;width:28px;font-size:1.3rem;line-height:1}.ob-card-body{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex;overflow:hidden}.ob-card-body strong{color:var(--color-text-primary);font-size:.95rem;font-weight:600;display:block}.ob-card.selected .ob-card-body strong{color:var(--color-accent)}.ob-card-body>span{color:var(--color-text-secondary);font-size:.8rem;display:block}.ob-card-check{color:var(--color-accent);text-align:center;flex-shrink:0;width:16px;font-size:1rem;font-weight:700}.ob-actions{border-top:1px solid var(--color-bg-card-alt);justify-content:space-between;gap:12px;margin-top:12px;padding-top:18px;display:flex}.ob-secondary{all:unset;box-sizing:border-box;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;padding:10px 14px;font-family:inherit;font-size:.9rem;transition:color .15s}.ob-secondary:hover{color:var(--color-text-soft)}.ob-primary{all:unset;box-sizing:border-box;background:linear-gradient(180deg, var(--color-accent), var(--color-accent-hover));color:var(--color-white);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;padding:12px 24px;font-family:inherit;font-size:.92rem;font-weight:600;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 12px #22c55e40}.ob-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e59}.ob-primary:active{transform:translateY(0)}.ob-primary:disabled{opacity:.5;cursor:default;box-shadow:none}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;overflow-x:hidden}body{color:#e1e6e2;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#111412;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}input,select,textarea,button{font-family:inherit;font-size:1rem}input,select,textarea{color:#e1e6e2;background:#1a1f1c;border:1px solid #2a3130;border-radius:10px;width:100%;padding:14px 16px;font-size:16px}input[type=checkbox],input[type=radio]{background:revert;border:revert;border-radius:revert;width:auto;min-height:0;accent-color:var(--color-accent);margin:0;padding:0}input[type=text],input[type=search],input:not([type]){min-height:52px}textarea{min-height:120px}input:focus,select:focus,textarea:focus{border-color:#22c55e;outline:none}button{cursor:pointer;color:#fff;-webkit-tap-highlight-color:transparent;background:#22c55e;border:none;border-radius:10px;padding:12px 20px;font-weight:600;transition:background .2s}@media (hover:hover){button:hover{background:#16a34a}}button:disabled{opacity:.5;cursor:not-allowed}button:active{transform:scale(.97)}.desktop-nav{background:#1a1f1c;border-bottom:1px solid #2a3130;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.nav-brand{color:#22c55e;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:1.3rem;font-weight:700}.nav-links{gap:4px;display:flex}.nav-links button{color:#a1a1aa;background:0 0;border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:500}.nav-links button:hover{color:#fff;background:#2a3130}.nav-links button.active{color:#fff;background:#22c55e}.nav-links button{position:relative}.nav-unread-dot{vertical-align:middle;background:#ef4444;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block;box-shadow:0 0 4px #ef4444b3}.nav-signout{color:#a1a1aa;background:0 0;font-size:.85rem}.nav-signout:hover{color:#ff6b6b;background:0 0}.mobile-topbar,.mobile-menu,.menu-backdrop{display:none}.app-content{max-width:900px;margin:24px auto;padding:0 24px}.app-content.app-content--full-bleed{max-width:none;margin:0;padding:0}.dashboard h2,.workout-log h2,.nutrition-log h2,.progression h2,.data-export h2,.get-workout h2{color:#fff;margin-bottom:20px;font-size:1.3rem}.dashboard-section{margin-bottom:28px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-header h3{color:#e1e6e2;font-size:1rem}.today-date{color:#71817a;font-weight:400}.section-link{color:#22c55e;cursor:pointer;background:0 0;border:1px solid #22c55e40;border-radius:6px;padding:4px 10px;font-size:.82rem;font-weight:500}.section-link:hover{background:#22c55e14;border-color:#22c55e80;text-decoration:none}.section-header-links{flex-wrap:wrap;gap:6px;display:flex}.today-activities-block{background:#1a1f1c;border:1px solid #222924;border-radius:12px;margin-top:4px;padding:14px 16px}.today-activities-header{color:#71817a;text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.8rem;font-weight:600;display:flex}.today-burned{color:#22c55e;text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:500}.today-activities-empty{color:#555;margin:0;padding:4px 0;font-size:.85rem;font-style:italic}.today-activities-list{flex-direction:column;gap:8px;list-style:none;display:flex}.today-activity-item{border-top:1px solid #222924;align-items:center;gap:10px;padding:8px 0;display:flex}.today-activity-item:first-child{border-top:none;padding-top:2px}.today-activity-info{flex:1;min-width:0}.today-activity-info strong{color:#e1e6e2;font-size:.88rem;font-weight:600;display:block}.today-activity-meta{color:#71817a;text-transform:capitalize;margin-top:2px;font-size:.78rem;display:block}.strava-icon-small{color:#fff;vertical-align:middle;background:#fc4c02;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-right:6px;font-size:.65rem;font-weight:700;display:inline-flex}.goal-target{color:#71817a;font-size:.65em;font-weight:400}.stats,.nutrition-totals{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px;display:grid}.stat-card{text-align:center;background:#1a1f1c;border-radius:12px;padding:16px 12px}.stat-card h3{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.7rem}.stat-card p{color:#22c55e;font-size:1.4rem;font-weight:700}.recent-workouts{flex-direction:column;gap:8px;list-style:none;display:flex}.recent-workouts li{background:#1a1f1c;border-radius:10px;justify-content:space-between;padding:14px 16px;display:flex}.recent-workouts li span{color:#a1a1aa;font-size:.85rem}.workout-log form,.exercises{flex-direction:column;gap:12px;display:flex}.exercise-row{align-items:center;gap:8px;display:flex}.exercise-row input{flex:1}.exercise-row input:first-child{flex:2}.remove-btn{color:#ff6b6b;white-space:nowrap;background:#ff6b6b22;padding:10px 14px;font-size:.85rem}.remove-btn:hover{background:#ff6b6b33}.add-btn{color:#22c55e;background:0 0;border:1px dashed #22c55e;align-self:flex-start}.add-btn:hover{background:#22c55e11}textarea{resize:vertical}.success{color:#4ade80;font-size:.85rem}.error{color:#ff6b6b;font-size:.85rem}.loading{text-align:center;color:#a1a1aa;padding:40px}.nutrition-log form{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.macro-inputs{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.progression select{max-width:300px;margin-bottom:24px}.progression-chart{background:#1a1f1c;border-radius:12px;align-items:flex-end;gap:8px;height:200px;margin-bottom:24px;padding:16px;display:flex;overflow-x:auto}.chart-bar-container{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:40px;height:100%;display:flex}.chart-bar{background:#22c55e;border-radius:4px 4px 0 0;justify-content:center;align-items:flex-start;width:100%;max-width:40px;min-height:4px;transition:height .3s;display:flex}.chart-label{color:#fff;font-size:.7rem;font-weight:600;transform:translateY(-18px)}.chart-date{color:#a1a1aa;margin-top:6px;font-size:.65rem}.progression-table{border-collapse:collapse;width:100%}.progression-table th,.progression-table td{text-align:left;border-bottom:1px solid #2a3130;padding:10px 14px}.progression-table th{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.export-options{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;display:grid}.export-card{background:#1a1f1c;border-radius:12px;padding:24px}.export-card h3{color:#fff;margin-bottom:16px}.export-buttons{gap:8px;display:flex}.get-workout form{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.workout-options{gap:8px;display:flex}.workout-options select{flex:1}.generated-workout{background:#1a1f1c;border-radius:12px;padding:24px}.generated-workout h3{color:#22c55e;margin-bottom:16px}.workout-section{margin-bottom:20px}.workout-section h4{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.8rem}.generated-workout table{border-collapse:collapse;width:100%}.generated-workout th,.generated-workout td{text-align:left;border-bottom:1px solid #2a3130;padding:10px 14px}.generated-workout th{color:#a1a1aa;text-transform:uppercase;font-size:.8rem}@media (width<=768px){.desktop-nav{display:none}.mobile-topbar{padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;z-index:90;background:#1a1f1c;border-bottom:1px solid #2a3130;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.mobile-topbar .nav-brand{font-size:1.15rem}.hamburger-btn{background:0 0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:8px;display:flex}.hamburger-btn:hover{background:#222924}.hamburger-btn:active{transform:none}.hamburger-line{background:#a1a8a3;border-radius:2px;width:18px;height:2px;transition:transform .25s,opacity .25s;display:block}.hamburger-btn.open .hamburger-line:first-child{transform:translateY(7px)rotate(45deg)}.hamburger-btn.open .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.open .hamburger-line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.menu-backdrop{z-index:91;background:#00000080;display:block;position:fixed;inset:0}.mobile-menu{z-index:92;width:260px;height:100%;padding:calc(60px + env(safe-area-inset-top,0px)) 0 calc(24px + env(safe-area-inset-bottom,0px));background:#1a1f1c;border-left:1px solid #2a3130;flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-menu.open{transform:translate(0)}.mobile-menu-item{color:#c1c8c3;text-align:left;background:0 0;border-radius:0;padding:16px 24px;font-size:1rem;font-weight:500;transition:background .15s}.mobile-menu-item:hover{background:#222924}.mobile-menu-item:active{background:#22c55e14;transform:none}.mobile-menu-item.active{color:#22c55e;background:#22c55e0f;border-right:3px solid #22c55e}.mobile-menu-item.signout{color:#ff6b6b;margin-top:auto}.mobile-menu-divider{background:#2a3130;height:1px;margin:8px 16px}.app-content{margin:16px auto;padding:0 16px 32px}.app-content.app-content--full-bleed{margin:0;padding:0}.dashboard h2,.workout-log h2,.nutrition-log h2,.progression h2,.data-export h2,.get-workout h2{margin-bottom:16px;font-size:1.15rem}.stats,.nutrition-totals{grid-template-columns:repeat(3,1fr);gap:8px}.stat-card{padding:14px 10px}.stat-card h3{font-size:.65rem}.stat-card p{font-size:1.2rem}.exercise-row{flex-wrap:wrap}.macro-inputs{grid-template-columns:repeat(2,1fr)}.workout-options{flex-direction:column}.export-options{grid-template-columns:1fr}}.invite-banner{color:var(--color-white);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.9rem;display:flex}.invite-banner--ok{background:var(--color-accent)}.invite-banner--err{background:var(--color-error)}.invite-banner-close{color:var(--color-white);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:1.3rem;line-height:1}
