:root{color-scheme:light;--page: #eef2f7;--surface: #ffffff;--surface-2: #f5f8fc;--ink: #1b2230;--ink-secondary: #566173;--muted: #8b95a7;--grid: #e4e9f1;--axis: #cfd7e3;--border: rgba(120, 140, 170, .18);--accent: #3d6fe0;--accent-light: #6b95ff;--accent-ink: #ffffff;--glow: rgba(120, 170, 255, .45);--danger: #d9485f;--good: #1f9d6b;--chrome: linear-gradient(180deg, #ffffff 0%, #f1f4f9 55%, #e3e8f0 100%);--glass: rgba(255, 255, 255, .72);--series-1: #3d6fe0;--series-2: #f08a4b;--series-3: #22b3a3;--series-4: #e7a92b;--series-5: #d96fa8;--phase-fat-loss: #f08a4b;--phase-building: #22b3a3;--phase-maintenance: #e7a92b;--phase-recovery: #7c6ce0;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--page);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding-bottom:calc(72px + var(--safe-bottom))}button,input{font:inherit;color:inherit}.top-bar{position:sticky;top:0;z-index:10;background:var(--page);padding:calc(12px + var(--safe-top)) 16px 8px;border-bottom:1px solid var(--border)}.top-bar h1{margin:0;font-size:22px}#screen{max-width:640px;margin:0 auto;padding:12px 16px}.tab-bar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom);z-index:10}.tab-bar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 0 10px;border:0;background:none;font-size:10.5px;color:var(--muted);cursor:pointer}.tab-bar .tab-icon{font-size:20px;line-height:1;filter:grayscale(1);opacity:.7}.tab-bar button.active{color:var(--accent);font-weight:600}.tab-bar button.active .tab-icon{filter:none;opacity:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:12px}.card h2{margin:0 0 2px;font-size:17px}.card-sub{margin:0 0 10px;color:var(--ink-secondary);font-size:13px}.muted-card{color:var(--ink-secondary);font-size:14px}.muted-card p{margin:0}.empty{text-align:center;color:var(--ink-secondary);padding:48px 16px}.chart-box{position:relative;height:240px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:12px}.card .stat-row{margin-bottom:0}.stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.stat-label{font-size:12px;color:var(--ink-secondary)}.stat-value{font-size:22px;font-weight:600}.range-picker{display:flex;gap:6px;flex-wrap:wrap}.range-picker button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.range-picker button.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.range-note{color:var(--muted);font-size:12px;margin:6px 0 10px}.card button{border:1px solid var(--axis);background:var(--surface);border-radius:10px;padding:9px 14px;cursor:pointer;margin:4px 0}.card button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.card button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.card button.danger-outline{color:var(--danger);border-color:var(--danger)}.button-row{display:flex;gap:8px;flex-wrap:wrap}.confirm-box{border:1px solid var(--danger);border-radius:10px;padding:10px 12px;margin-top:8px}.confirm-box p{margin:0 0 6px}.message{color:var(--ink-secondary);font-size:13px;min-height:1em;margin:8px 0 0}.result-list{list-style:none;padding:0;margin:10px 0 0;font-size:13px}.result-list li{display:flex;gap:8px;padding:6px 0;border-top:1px solid var(--border)}.result-icon{width:18px;text-align:center;font-weight:700}.result-list .ok .result-icon{color:var(--good)}.result-list .skipped{color:var(--ink-secondary)}.result-list .error .result-icon{color:var(--danger)}.details{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:8px 0 0}.details dt{color:var(--ink-secondary)}.details dd{margin:0}.goal-list{list-style:none;padding:0;margin:8px 0 0}.goal-list li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.goal-list label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.goal-list input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}.goal-list input:checked+span{color:var(--muted);text-decoration:line-through}.goal-date{color:var(--muted);font-size:12px;white-space:nowrap}.date-nav{display:flex;align-items:center;gap:8px}.date-nav>button{width:44px;height:44px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.date-nav>button:disabled{opacity:.35;cursor:default}.date-picker{position:relative;flex:1;text-align:center;font-weight:600;font-size:17px;padding:10px 0;background:var(--surface);border:1px solid var(--border);border-radius:12px}.date-picker input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.date-picker input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:pointer}.date-sub{display:flex;justify-content:space-between;align-items:center;margin:6px 2px 12px;min-height:22px}.link-button{border:0;background:none;color:var(--accent);padding:0;cursor:pointer;font-size:14px}.save-status{color:var(--muted);font-size:13px}.centered{text-align:center}.form-card h2{margin-bottom:8px}.field{margin:0 0 14px}.field:last-child{margin-bottom:4px}.field>label,.field-label{display:block;font-size:14px;color:var(--ink-secondary);margin-bottom:4px}.field-label small{color:var(--muted);font-size:12px;margin-left:4px}.hint{display:block;color:var(--muted);font-size:12px;margin-top:3px;min-height:1em}.form-card input[type=number],.form-card input[type=text],.auth-card input[type=email],.auth-card input[type=password],.form-card select,.form-card textarea{width:100%;padding:10px 12px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font-size:16px}.form-card textarea{resize:vertical}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.input-with-unit{display:flex;align-items:center;gap:8px}.input-with-unit input{flex:1;min-width:0}.unit{color:var(--muted);font-size:14px;min-width:36px}.hm-inputs{display:flex;align-items:center;gap:6px}.hm-inputs input{flex:1;min-width:0}.hm-inputs .unit{min-width:0;margin-right:6px}.choice-group{display:flex;gap:6px}.choice-group button{flex:1;height:42px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font-size:16px;cursor:pointer;margin:0}.choice-group.narrow{max-width:220px}.choice-group button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0 12px}.checkbox-row{display:flex;gap:10px;align-items:center;cursor:pointer;margin-top:4px}.checkbox-row input{width:20px;height:20px;accent-color:var(--accent)}.summary-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}.summary-table th,.summary-table td{padding:7px 4px;border-top:1px solid var(--border);vertical-align:top}.summary-table th{text-align:left;font-weight:500;color:var(--ink-secondary);white-space:nowrap}.summary-table .num{text-align:right;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.summary-table .note{color:var(--muted);font-size:12px;padding-left:10px}.table-scroll{overflow-x:auto;margin-top:6px}.daily-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.daily-table th{text-align:left;color:var(--muted);font-weight:500;padding:4px 6px}.daily-table td{padding:7px 6px;border-top:1px solid var(--border)}.daily-table .num{text-align:right;font-variant-numeric:tabular-nums}.tag{font-size:11px;color:var(--danger);border:1px solid currentColor;border-radius:6px;padding:0 4px;margin-left:4px}.sub-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:10px}.sub-nav button{justify-self:start;border:0;background:none;color:var(--accent);font-size:15px;padding:6px 0;cursor:pointer}.sub-nav .save-status{justify-self:end}.card button.wide{width:100%}.tap-list{list-style:none;padding:0;margin:8px 0 0}.tap-list li{border-top:1px solid var(--border)}.tap-list li button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-radius:0;background:none;padding:12px 2px;margin:0;text-align:left;cursor:pointer}.tap-list li button span{display:flex;flex-direction:column}.tap-list small{color:var(--muted);font-size:12px}.exercise-card .exercise-name{border:0;background:none;padding:0;margin:0 0 2px;font-size:17px;font-weight:600;text-align:left;cursor:pointer}.exercise-card .exercise-name span{color:var(--muted)}.set-table{width:100%;border-collapse:collapse}.set-table th{color:var(--muted);font-weight:500;font-size:12px;text-align:left;padding:2px 4px}.set-table td{padding:4px}.set-table .set-number{width:36px;color:var(--ink-secondary);font-weight:600}.set-table .last-time{color:var(--muted);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.set-table input{width:100%;padding:9px 8px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font-size:16px}.set-table input::placeholder{color:var(--muted);opacity:.6}.set-table input:focus{outline:2px solid var(--accent);outline-offset:-1px}.exercise-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px}.card button.small-button{padding:5px 10px;font-size:13px;white-space:nowrap}.how-to{white-space:pre-line;margin:8px 0}.video-link{color:var(--accent);font-weight:600;text-decoration:none}.section-tabs{margin-bottom:10px}.date-nav.spaced{margin-bottom:12px}.macro-bar{margin:8px 0 10px}.macro-bar-text{display:flex;justify-content:space-between;gap:8px;font-size:14px}.macro-bar-text small{color:var(--muted);margin-left:4px}.bar-track{height:8px;background:var(--grid);border-radius:4px;overflow:hidden;margin-top:4px}.bar-fill{height:100%;background:var(--accent);border-radius:4px}.meal-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.meal-heading small{color:var(--muted);font-size:12px}.planned{margin-top:6px}.log-list{list-style:none;padding:0;margin:6px 0}.log-list li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.log-item-name{flex:1;min-width:0;display:flex;flex-direction:column}.log-item-name small{color:var(--muted);font-size:12px}.log-amount{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:13px}.log-amount input{width:72px;padding:7px 6px;border:1px solid var(--axis);border-radius:8px;background:var(--page);font-size:16px;text-align:right}.card button.icon-button{border:0;background:none;color:var(--muted);padding:6px 8px;margin:0}.picked{border:1px solid var(--accent);border-radius:12px;padding:10px 12px;margin:10px 0;display:flex;flex-direction:column;gap:6px}.list-label{color:var(--muted);font-size:12px;padding:8px 2px 4px}.tap-list li button span small{display:block}.shop-amount{color:var(--ink-secondary);font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.plan-table th{white-space:normal}.card h3{font-size:14px;margin:14px 0 4px;color:var(--ink-secondary)}.protocol-list{list-style:none;padding:0;margin:8px 0}.protocol-list li{padding:10px 0;border-top:1px solid var(--border)}.protocol-tick{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.protocol-tick input{width:22px;height:22px;margin-top:2px;accent-color:var(--accent)}.protocol-tick span{display:flex;flex-direction:column}.protocol-tick small{color:var(--muted);font-size:12px}.protocol-list select{width:100%;margin-top:8px;padding:9px 10px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font-size:15px}.slot-heading{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.slot-heading h3{margin:6px 0 2px}.supp-reason{display:block;color:var(--muted);font-size:12px}.goal-list input:checked+span .supp-reason{text-decoration:none}.schedule-table td small{color:var(--muted);font-size:11px}.edit-list{list-style:none;padding:0;margin:8px 0}.edit-list>li{border-top:1px solid var(--border);padding:12px 0 10px}.edit-list .field{margin-bottom:10px}.field-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 8px}.form-card .tap-list{margin-top:10px}.form-card input[type=date],.form-card input[type=time],.form-card input[type=url]{width:100%;padding:10px 12px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font-size:16px}.form-card>.wide+input{margin-top:10px}.plan-item-row{display:flex;gap:8px;align-items:center}.plan-item-row .input-with-unit{flex:1}.slot-picks{display:flex;flex-wrap:wrap;gap:4px 16px;margin:4px 0 10px}.slot-picks .checkbox-row{margin:0;font-size:14px}.weekday-doses{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:4px 0 12px}.weekday-doses label{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--muted)}.weekday-doses input{width:100%;padding:8px 2px;border:1px solid var(--axis);border-radius:8px;background:var(--page);font-size:15px;text-align:center}.card button.armed{background:var(--danger);color:#fff;border-color:var(--danger)}.backup-reminder{border-color:var(--accent)}.backup-reminder p{margin:0 0 8px}.welcome p{margin:6px 0 0}.feature-list{list-style:none;padding:0;margin:6px 0 0}.feature-list li{padding:10px 0;border-top:1px solid var(--border)}.feature-list li.child{padding-left:30px;border-top:0;padding-top:0}.feature-list li.disabled{opacity:.45}.feature-list .checkbox-row{align-items:flex-start;margin:0}.feature-list .checkbox-row input{margin-top:2px;flex-shrink:0}.feature-list .checkbox-row span{display:flex;flex-direction:column}.feature-list small{color:var(--muted);font-size:12px}.summary-box{width:100%;margin-top:8px;padding:10px;border:1px solid var(--axis);border-radius:10px;background:var(--page);font:13px/1.4 ui-monospace,Consolas,monospace}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.set-table th,.set-table td{padding-left:2px;padding-right:2px}.set-table .set-number{width:28px}.set-table .last-time{font-size:12px}.set-table input{padding:9px 6px;min-width:0}.set-table input.rest-input{font-size:14px;color:var(--ink-secondary)}.card .set-table button.set-done,.card .set-table button.set-remove{margin:0;padding:0;width:36px;height:38px;border-radius:10px;font-size:17px;line-height:1}.card .set-table button.set-done{color:var(--muted)}.card .set-table button.set-remove{width:26px;border-color:transparent;background:none;color:var(--muted)}.card .set-table button.set-remove.armed{background:var(--danger);color:#fff}.card .set-table button.set-done[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.set-table tr.done td:not(:nth-last-child(-n+2)){opacity:.7}.exercise-footer .button-row{flex-wrap:nowrap}.add-row{display:flex;gap:8px;align-items:center}.add-row input{flex:1;min-width:0}.card .add-row button{margin:0;white-space:nowrap}.rest-bar{position:fixed;left:0;right:0;bottom:calc(58px + var(--safe-bottom));z-index:11;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -4px 16px #00000014}.rest-bar[hidden]{display:none}.rest-progress{height:3px;background:var(--grid)}.rest-progress span{display:block;height:100%;width:100%;background:var(--accent);transition:width .25s linear}.rest-row{max-width:640px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 16px}.rest-text{flex:1;min-width:0;display:flex;flex-direction:column}.rest-label{color:var(--ink-secondary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rest-time{font-size:24px;font-variant-numeric:tabular-nums;line-height:1.1}.rest-row button{border:1px solid var(--axis);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 10px;font-size:14px;cursor:pointer}.rest-bar.finished{background:var(--accent)}.rest-bar.finished .rest-label,.rest-bar.finished .rest-time{color:var(--accent-ink)}.rest-bar.finished .rest-row button{visibility:hidden}.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;margin:10px 0 4px;border-radius:12px;overflow:hidden;background:#000}.video-frame.tall{aspect-ratio:9 / 16;max-height:70vh;width:auto;margin-left:auto;margin-right:auto}.video-frame iframe,.video-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.video-frame.own-clip{aspect-ratio:auto}.video-frame.own-clip video{position:static;display:block;max-height:70vh}.video-note{margin:0 0 6px;font-size:12px;color:var(--muted);text-align:right}.video-note .video-link{font-weight:500}.video-missing{margin-top:8px}.my-notes{margin-top:12px}.my-notes textarea{width:100%;padding:8px 10px;border:1px solid var(--axis);border-radius:10px;background:var(--page);color:var(--ink);font:inherit;font-size:16px;resize:none}.my-notes textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.animal-line{margin:10px 0 0;font-weight:600}.finish-dialog{width:min(420px,calc(100vw - 32px));border:1px solid var(--border);border-radius:18px;padding:22px 18px 16px;background:var(--surface);color:var(--ink);text-align:center}.finish-dialog::backdrop{background:#00000073}.finish-emoji{font-size:56px;line-height:1}.finish-dialog h2{margin:8px 0 4px;font-size:20px}.finish-animal{font-size:17px;font-weight:600;margin:0 0 14px}.finish-dialog .stat-row{margin-bottom:14px;text-align:left}.finish-dialog button{width:100%;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:var(--accent-ink);padding:11px 14px;font-size:16px;cursor:pointer}.set-rests{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;margin-bottom:4px}.set-rest{display:flex;flex-direction:column;font-size:12px;color:var(--ink-secondary)}.form-card .set-rest input{margin-top:2px}body{background:radial-gradient(120% 55% at 50% -12%,#dbe7fb,#dbe7fb00 62%),radial-gradient(80% 40% at 100% 30%,#e8e2f88c,#e8e2f800 70%),linear-gradient(180deg,#f7f9fc 0%,var(--page) 100%);background-attachment:fixed;font-family:-apple-system,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:calc(96px + var(--safe-bottom))}::selection{background:#78aaff4d}.top-bar{background:#f7f9fcb8;-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-bottom:0}.top-bar:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#fff0,#fff 20%,#d6e4ff,#fff 80%,#fff0);box-shadow:0 0 12px 2px var(--glow)}.top-bar h1{font-weight:300;font-size:26px;letter-spacing:.02em}.tab-bar{left:10px;right:10px;bottom:calc(8px + var(--safe-bottom));padding:2px 4px 0;border:1px solid rgba(255,255,255,.9);border-radius:26px;background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);box-shadow:0 12px 32px #3c50782e,0 1px #fff inset}.tab-bar button{position:relative;padding:9px 0 11px;letter-spacing:.01em}.tab-bar button.active{font-weight:600}.tab-bar button.active:after{content:"";position:absolute;bottom:4px;left:50%;width:18px;height:3px;margin-left:-9px;border-radius:3px;background:var(--accent);box-shadow:0 0 10px 2px var(--glow)}.card{background:linear-gradient(180deg,#fff,#f8fafd);border:1px solid rgba(255,255,255,.95);border-radius:24px;padding:16px 18px;margin-bottom:14px;box-shadow:0 1px #fff inset,0 10px 28px #465f8c1a,0 2px 6px #465f8c0d,0 16px 26px -20px #5a8cff8c}.card h2{font-weight:500;font-size:18px;letter-spacing:.01em}.card h3{font-weight:500;letter-spacing:.02em}.stat{background:linear-gradient(180deg,#f9fbfe,#eef2f8);border:1px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 1px #fff inset,0 -1px #788caa1f inset,0 4px 10px #465f8c0f}.stat-value{font-weight:300;font-size:26px;letter-spacing:-.01em}.stat-label{letter-spacing:.02em}.card button,.date-nav>button,.range-picker button,.choice-group button,.rest-row button{background:var(--chrome);border:1px solid rgba(150,168,195,.45);border-radius:999px;color:var(--ink);box-shadow:0 1px #fff inset,0 2px 6px #465f8c1a;transition:box-shadow .15s,transform .1s}.card button:active,.date-nav>button:active,.choice-group button:active{transform:scale(.98)}.card button.primary,.range-picker button.selected,.choice-group button[aria-pressed=true],.card .set-table button.set-done[aria-pressed=true]{background:linear-gradient(180deg,var(--accent-light) 0%,var(--accent) 100%);border-color:#ffffff59;color:var(--accent-ink);box-shadow:0 1px #ffffff73 inset,0 6px 16px #3d6fe052,0 0 20px var(--glow)}.card button.danger,.card button.armed,.card .set-table button.set-remove.armed{background:linear-gradient(180deg,#ef6f83 0%,var(--danger) 100%);border-color:#ffffff59;color:#fff;box-shadow:0 6px 16px #d9485f47}.card button.danger-outline{color:var(--danger);border-color:#d9485f73}.card button:disabled{opacity:.45}.choice-group button{border-radius:14px}.tap-list li button,.exercise-card .exercise-name,.card button.icon-button,.card .set-table button.set-remove,.card .link-button{background:none;border-color:transparent;box-shadow:none;border-radius:14px}.tap-list li{border-top-color:#788caa24}.date-nav>button{width:46px;height:46px;border-radius:50%;color:var(--ink-secondary)}.date-picker{background:var(--chrome);border:1px solid rgba(150,168,195,.45);border-radius:999px;font-weight:500;letter-spacing:.01em;box-shadow:0 1px #fff inset,0 4px 12px #465f8c1a}.form-card input[type=number],.form-card input[type=text],.auth-card input[type=email],.auth-card input[type=password],.form-card input[type=date],.form-card input[type=time],.form-card input[type=url],.form-card select,.form-card textarea,.set-table input,.log-amount input,.protocol-list select,.weekday-doses input,.my-notes textarea,.summary-box{background:var(--surface-2);border:1px solid rgba(150,168,195,.4);border-radius:14px;box-shadow:0 1px 2px #465f8c14 inset;color:var(--ink)}.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.set-table input:focus,.log-amount input:focus,.protocol-list select:focus,.weekday-doses input:focus,.my-notes textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #78a5ff38,0 0 14px var(--glow)}.goal-list input,.checkbox-row input,.protocol-tick input{accent-color:var(--accent)}.bar-track{height:8px;border-radius:999px;background:#e6ecf4;box-shadow:0 1px 2px #465f8c1f inset}.bar-fill{border-radius:999px;background:linear-gradient(90deg,var(--accent-light),var(--accent));box-shadow:0 0 10px var(--glow)}.sub-nav button{color:var(--accent);font-weight:500}.confirm-box,.picked{border-radius:18px}.picked,.backup-reminder{border-color:#3d6fe073}.tag{border-radius:999px;padding:0 6px}.empty{color:var(--ink-secondary);font-weight:300;font-size:16px}.card .set-table button.set-done{border-radius:12px}.video-frame{border-radius:18px;box-shadow:0 8px 22px #465f8c2e}.rest-bar{left:10px;right:10px;bottom:calc(76px + var(--safe-bottom));border:1px solid rgba(255,255,255,.9);border-radius:22px;overflow:hidden;background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);box-shadow:0 12px 32px #3c507833}.rest-progress{background:#788caa26}.rest-progress span{background:linear-gradient(90deg,var(--accent-light),var(--accent));box-shadow:0 0 10px var(--glow)}.rest-time{font-weight:300;font-size:28px}.rest-bar.finished{background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 0 28px var(--glow)}body.resting #screen{padding-bottom:calc(170px + var(--safe-bottom))}.finish-dialog{border:1px solid rgba(255,255,255,.95);border-radius:30px;background:linear-gradient(180deg,#fff,#f4f7fc);box-shadow:0 30px 60px #32466e4d,0 0 40px var(--glow)}.finish-dialog::backdrop{background:#d6e2f38c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.finish-dialog h2{font-weight:300;font-size:24px;letter-spacing:.02em}.finish-dialog button{border-radius:999px;border-color:#ffffff59;background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 6px 16px #3d6fe052,0 0 20px var(--glow)}.top-logo{position:absolute;left:50%;top:calc(var(--safe-top) + 16px);height:28px;width:auto;transform:translate(-50%);pointer-events:none}.tab-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr) repeat(3,minmax(0,1fr));align-items:end}.tab-bar button{grid-row:1}.tab-bar [data-screen=more]{grid-column:1}.tab-bar [data-screen=progress]{grid-column:2}.tab-bar [data-screen=weekly]{grid-column:3}.tab-bar [data-screen=today]{grid-column:4}.tab-bar [data-screen=training]{grid-column:5}.tab-bar [data-screen=nutrition]{grid-column:6}.tab-bar [data-screen=protocol]{grid-column:7}.tab-bar .tab-icon{transition:transform .35s cubic-bezier(.3,1.5,.5,1),filter .2s,opacity .2s}.tab-bar button.active .tab-icon{transform:translateY(-2px) scale(1.12)}.tab-bar .tab-main{margin-top:-26px;font-size:11.5px}.tab-bar .tab-main .tab-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;font-size:26px;filter:none;opacity:1;background:linear-gradient(180deg,#ffffffe6,#fff0 55%),var(--chrome);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 20px #3c507838,0 1px #fff inset}.tab-bar .tab-main.active .tab-icon{transform:translateY(-2px) scale(1.05);background:linear-gradient(180deg,#ffffff73,#fff0 55%),linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 8px 22px #3d6fe066,0 0 26px var(--glow)}.tab-bar .tab-main.active:after{display:none}.card button.primary,.range-picker button.selected,.choice-group button[aria-pressed=true],.weekday-picks button[aria-pressed=true]{background:linear-gradient(180deg,#ffffff4d,#fff0 52%),linear-gradient(180deg,var(--accent-light) 0%,var(--accent) 100%);border-color:#ffffff59;color:var(--accent-ink);box-shadow:0 1px #ffffff73 inset,0 6px 16px #3d6fe052,0 0 20px var(--glow)}#screen{position:relative;z-index:1}#screen.preparing{opacity:0}@keyframes glide-from-right{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:none}}@keyframes glide-from-left{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:none}}@keyframes glide-up{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}#screen.enter-right>*{animation:glide-from-right .42s cubic-bezier(.22,.8,.24,1) both}#screen.enter-left>*{animation:glide-from-left .42s cubic-bezier(.22,.8,.24,1) both}#screen.enter-up>*{animation:glide-up .38s cubic-bezier(.22,.8,.24,1) both}#screen.enter-right>*,#screen.enter-left>*,#screen.enter-up>*{animation-delay:calc(var(--i, 0) * 45ms)}.card button,.tap-list li button,.week-session{transition:transform .12s,box-shadow .15s}.xmb-wave{position:fixed;left:0;right:0;bottom:0;height:55vh;z-index:0;overflow:hidden;pointer-events:none}.xmb-wave svg{position:absolute;left:0;bottom:0;width:200%;height:100%;animation:wave-drift 40s linear infinite}.xmb-wave svg{filter:drop-shadow(0 0 6px rgba(120,170,255,.35))}@keyframes wave-drift{0%{transform:translate(0)}to{transform:translate(-50%)}}.eyebrow{margin:0 0 2px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.session-card h2{font-size:24px;font-weight:300}.session-card button.wide{margin-top:6px}.save-line{margin:-4px 6px 8px;text-align:right}.editing-day{display:flex;justify-content:space-between;align-items:center;gap:10px}.editing-day p{margin:0}.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;color:var(--accent);background:var(--chrome);border:1px solid rgba(150,168,195,.4);box-shadow:0 1px #fff inset}.daily-table tr.tappable{cursor:pointer}.card.start-card{background:none;border:0;box-shadow:none;padding:0}.card button.start-button{font-size:18px;padding:16px 20px;letter-spacing:.02em;margin:0}.week-plan{list-style:none;padding:0;margin:8px 0 6px}.week-day{padding:10px 0;border-top:1px solid rgba(120,140,170,.14)}.week-day:first-child{border-top:0}.week-day.is-today{margin:4px -8px;padding:10px 8px;border-top-color:transparent;border-radius:18px;background:#78aaff14;box-shadow:0 0 0 1px #3d6fe038 inset,0 0 18px #78aaff2e}.week-day.is-today+.week-day{border-top-color:transparent}.week-day-name{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.week-day-name .chip{margin-left:6px;text-transform:none;letter-spacing:0}.card button.week-session{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 4px;padding:10px 14px;border-radius:16px;text-align:left}.week-session span{display:flex;flex-direction:column}.week-session small{color:var(--muted);font-size:12px}.week-rest{margin:0;color:var(--muted);font-size:14px;font-weight:300}.week-extras{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.weekday-picks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.card .weekday-picks button{margin:0;padding:8px 0;font-size:13px}@media(prefers-reduced-motion:reduce){#screen>*,.xmb-wave svg{animation:none!important}.tab-bar .tab-icon,.card button,.tap-list li button{transition:none!important}#screen.preparing{opacity:1}}.day-switch{display:flex;align-items:center;gap:8px;margin:0 2px 10px;min-height:34px}.day-switch .day-label{flex:1;font-size:13px;color:var(--ink-secondary)}.day-switch .day-label .link-button{font-size:13px}.day-arrow{width:32px;height:32px;border-radius:50%;border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--ink-secondary);font-size:18px;line-height:1;box-shadow:0 1px #fff inset,0 2px 6px #465f8c1a;cursor:pointer}.day-arrow:disabled{opacity:.3;cursor:default}.session-line{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 8px}.session-name{display:flex;flex-direction:column;font-size:20px;font-weight:300}.session-name small{font-size:12px;color:var(--muted);font-weight:400}.session-done{color:var(--accent);font-weight:600}.tick-row{font-weight:500}.week-tiles{list-style:none;padding:0;margin:8px 0 2px;display:grid;gap:8px}.week-tiles li{margin:0}.week-tile,.card button.week-tile{position:relative;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:13px 16px;border-radius:18px;text-align:left;font-size:15px;transition:transform .2s,box-shadow .25s,background .25s,opacity .2s}.tile-day{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tile-workout{font-weight:600;margin-left:auto}.week-tile.is-rest{color:var(--muted);padding:10px 16px}.week-tile.is-rest .tile-workout{font-weight:300}.card button.week-tile.is-future{opacity:.45;box-shadow:none;cursor:default}.card button.week-tile.is-today{background:linear-gradient(180deg,#fffffff2,#fff0 55%),var(--chrome);border-color:#3d6fe059;box-shadow:0 1px #fff inset,0 8px 18px #3d6fe033,0 0 16px var(--glow);transform:translateY(-1px)}.card button.week-tile.is-today .tile-day{color:var(--accent)}.card button.week-tile.is-complete{background:linear-gradient(180deg,var(--accent) 0%,var(--accent-light) 100%);border-color:#1e46aa8c;color:#fff;box-shadow:inset 0 3px 8px #0a1e5a73,inset 0 -1px #ffffff59,0 1px #ffffffe6;transform:translateY(1px);padding-right:54px}.card button.week-tile.is-complete .tile-day{color:#fffc}.tile-tick{position:absolute;right:12px;top:50%;width:30px;height:30px;margin-top:-15px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--accent);font-size:17px;font-weight:800;box-shadow:0 0 0 3px #ffffff59,0 0 14px #fffc}@keyframes tile-press{0%{transform:translateY(-1px) scale(1);box-shadow:0 8px 18px #3d6fe033;filter:saturate(.4) brightness(1.4)}45%{transform:translateY(2px) scale(.97)}to{transform:translateY(1px) scale(1);filter:none}}@keyframes tick-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1)}}.card button.week-tile.just-completed{animation:tile-press .6s cubic-bezier(.3,1.3,.5,1) .35s both}.week-tile.just-completed .tile-tick{animation:tick-pop .5s cubic-bezier(.3,1.6,.5,1) .7s both}.week-picker select{margin-bottom:4px}.schedule-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.schedule-head h2{margin:0}.schedule-card.is-off>:not(.schedule-head){opacity:.4}.switch{position:relative;display:inline-block;width:50px;height:30px;flex-shrink:0}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#dfe5ee;box-shadow:inset 0 1px 3px #465f8c40;transition:background .2s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--chrome);box-shadow:0 2px 5px #283c644d;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}.switch input:checked+.switch-track{background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 0 12px var(--glow)}.switch input:checked+.switch-track:after{transform:translate(20px)}.workout-days{display:grid;gap:6px;margin-bottom:8px}.workout-day{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;color:var(--ink-secondary)}.form-card .workout-day select{width:60%;padding:8px 10px}.ped-list>li.ped-item{display:block}.ped-row{display:flex;align-items:center;gap:8px}.form-card .ped-row .log-amount input{width:78px;flex:none}.ped-item .weekday-picks{margin:8px 0 4px}.ped-details summary{cursor:pointer;color:var(--accent);font-size:13px;padding:6px 0}.ped-details[open] summary{margin-bottom:8px}.animal-card .animal-line{margin:0}.kelby-button{position:absolute;right:12px;top:calc(var(--safe-top) + 10px);display:flex;align-items:center;gap:6px;height:38px;padding:3px 12px 3px 3px;border-radius:999px;border:1px solid rgba(255,255,255,.95);background:linear-gradient(180deg,#fffffff2,#fff0 55%),var(--chrome);box-shadow:0 1px #fff inset,0 4px 12px #3c507829,0 0 14px var(--glow);color:var(--accent);font:inherit;font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .12s,box-shadow .2s}.kelby-button:active{transform:scale(.96)}.kelby-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(180deg,var(--accent-light),var(--accent));color:#fff;box-shadow:0 1px #ffffff80 inset,0 0 10px var(--glow)}.kelby-bubble{position:absolute;right:12px;top:calc(var(--safe-top) + 58px);padding:7px 12px;border-radius:14px;background:linear-gradient(180deg,var(--accent-light),var(--accent));color:#fff;font-size:13px;font-weight:600;box-shadow:0 6px 16px #3d6fe059,0 0 16px var(--glow);opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s;pointer-events:none}.kelby-bubble.show{opacity:1;transform:none}.kelby-bubble:before{content:"";position:absolute;top:-6px;right:26px;border:6px solid transparent;border-top:0;border-bottom-color:var(--accent-light)}.kelby-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#d6e2f380;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s}.kelby-overlay.open{opacity:1}.kelby-panel{position:absolute;top:calc(var(--safe-top) + 60px);left:12px;right:12px;max-width:440px;margin:0 auto;max-height:calc(100vh - var(--safe-top) - 150px);display:flex;flex-direction:column;border-radius:26px;border:1px solid rgba(255,255,255,.95);background:linear-gradient(180deg,#fff,#f4f7fc);box-shadow:0 24px 50px #32466e47,0 0 30px var(--glow);transform:translateY(-10px) scale(.98);transition:transform .25s cubic-bezier(.22,.8,.24,1)}.kelby-overlay.open .kelby-panel{transform:none}.kelby-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px 16px}.kelby-head strong{flex:1;font-size:18px;font-weight:500}.kelby-close{width:34px;height:34px;border-radius:50%;border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--ink-secondary);font-size:20px;line-height:1;cursor:pointer}.kelby-body{overflow-y:auto;padding:0 16px 16px}.kelby-greeting{margin:0 0 10px;color:var(--ink-secondary)}.kelby-questions{list-style:none;padding:0;margin:0;display:grid;gap:7px}.kelby-questions button,.kelby-actions button{width:100%;text-align:left;padding:11px 14px;border-radius:16px;border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--ink);font:inherit;font-size:14px;box-shadow:0 1px #fff inset,0 2px 6px #465f8c14;cursor:pointer}.kelby-question{margin:4px 0 6px;font-size:16px;font-weight:600}.kelby-answer{margin:0 0 14px;line-height:1.5}.kelby-actions{display:grid;gap:8px}.kelby-actions .kelby-go{text-align:center;font-weight:600;border-color:#ffffff59;background:linear-gradient(180deg,#ffffff4d,#fff0 52%),linear-gradient(180deg,var(--accent-light),var(--accent));color:#fff;box-shadow:0 6px 16px #3d6fe052,0 0 18px var(--glow)}.kelby-actions .kelby-back{text-align:center}@media(prefers-reduced-motion:reduce){.kelby-overlay,.kelby-panel,.kelby-bubble{transition:none}}.set-table input.auto{color:var(--muted);font-style:italic}.workout-title{display:inline-flex;align-items:center;gap:8px}.workout-timer{padding:2px 9px;border-radius:999px;border:1px solid rgba(61,111,224,.35);background:var(--chrome);color:var(--accent);font:inherit;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:0 1px #fff inset,0 0 10px var(--glow);cursor:pointer}.workout-timer.is-done{box-shadow:none;color:var(--ink-secondary);border-color:#96a8c373;cursor:default}.tile-timer,.session-timer{margin-left:6px;font-size:12px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.session-name .session-timer{display:inline}.cardio-targets{list-style:none;padding:0;margin:0 0 10px;font-size:14px}.cardio-targets li{display:block;padding:2px 0;overflow-wrap:anywhere;line-height:1.4}.cardio-targets .dot{color:var(--muted);margin:0 2px}.tick-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px}.card .tick-pair button{margin:0;width:100%}html,body{overscroll-behavior:none}.date-button-wrap{margin:0 0 10px}.date-button{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px;border-radius:999px;border:1px solid rgba(150,168,195,.45);background:var(--chrome);box-shadow:0 1px #fff inset,0 3px 10px #465f8c1a}.date-button .day-arrow{flex:none;box-shadow:none}.date-label{flex:1;border:0;background:none;font:inherit;font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.01em;padding:6px 4px;cursor:pointer}.date-button.not-today{border-color:#3d6fe080;box-shadow:0 1px #fff inset,0 0 12px var(--glow)}.date-button.not-today .date-label{color:var(--accent)}.week-tile.is-selected{outline:2px solid rgba(61,111,224,.35);outline-offset:2px}.tab-bar{display:flex}.tab-bar button{flex:1 1 0;grid-column:auto}.tab-bar .tab-main{flex:1.3 1 0}.layout-hidden{display:none!important}.layout-intro{margin:4px 4px 12px}.layout-list{list-style:none;padding:0;margin:6px 0 12px}.layout-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--border)}.layout-list li:first-child{border-top:0}.layout-list .checkbox-row{margin:0;flex:1}.layout-list .checkbox-row span{display:flex;flex-direction:column}.layout-list small{color:var(--muted);font-size:12px}.layout-list li.is-hidden .checkbox-row span{color:var(--muted)}.layout-arrows{display:flex;gap:2px;flex-shrink:0}.card .layout-arrows button.icon-button{font-size:18px;min-width:40px;min-height:40px;color:var(--ink)}.card .layout-arrows button.icon-button:disabled{opacity:.25}.all-hidden button{margin-top:8px}.today-peds{list-style:none;padding:0;margin:4px 0 12px}.today-peds li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.today-peds .checkbox-row{margin:0}.today-peds small{color:var(--muted)}.today-peds select{max-width:45%}.today-meal-log{margin-bottom:12px}.collapsing{transition:height .36s ease,opacity .3s ease,margin .36s ease,padding .36s ease;opacity:0;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.all-done{text-align:center;color:var(--accent);font-weight:600;font-size:15px;margin:18px 0 14px;animation:all-done-in .5s ease both}.all-done.rest-day{color:var(--ink-secondary);font-weight:500}@keyframes all-done-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.done-card{padding-top:6px;padding-bottom:6px}.done-heading{margin:0;padding:10px 2px;font-size:16px;font-weight:600}.done-row-wrap{border-top:1px solid var(--border)}.card button.done-row{display:flex;width:100%;align-items:center;gap:8px;text-align:left;border:0;background:none;box-shadow:none;padding:10px 2px;margin:0;border-radius:8px;color:var(--ink)}.done-name{font-weight:600;flex-shrink:0}.done-summary{color:var(--ink-secondary);font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.done-summary:before{content:"· "}.done-tick{margin-left:auto;color:var(--accent);font-weight:700}.done-edit{padding:4px 2px 12px;animation:all-done-in .3s ease both}.nutrition-done-row{display:flex;justify-content:flex-end;margin:-4px 0 8px}.cardio-line{margin:0 0 10px;font-size:15px}.card button.big-action{display:block;width:100%;font-size:18px;font-weight:700;padding:14px;margin:4px 0 10px}.card button.big-action.is-done{background:var(--surface);color:var(--accent);border:2px solid var(--accent);box-shadow:0 2px 6px #3d6fe02e inset}.cardio-edit{margin:0 0 10px}.cardio-edit summary{color:var(--accent);font-size:14px;cursor:pointer;padding:4px 0}.cardio-edit[open] summary{margin-bottom:6px}.new-best{display:inline-block;font-size:12px;font-weight:700;color:var(--accent-ink);background:linear-gradient(180deg,var(--accent-light) 0%,var(--accent) 100%);border-radius:999px;padding:2px 10px;box-shadow:0 0 12px var(--glow);animation:all-done-in .35s ease both}.new-best-line{margin:0 0 10px;text-align:center}.set-table tr.best-row td{padding:0 0 6px;border:0;text-align:left}.pb-line{font-size:13px;color:var(--ink-secondary);margin:2px 0 10px}.pb-label{font-weight:700;color:var(--accent);margin-right:4px}.streak-badge{display:flex;align-items:center;justify-content:center;gap:5px;width:fit-content;margin:-2px auto 4px;padding:3px 12px;border-radius:999px;font-size:12px;color:var(--ink-secondary);background:var(--surface);border:1px solid var(--border);box-shadow:0 0 10px #ff963c2e}.streak-badge strong{color:var(--ink);font-size:14px}.streak-badge.is-zero{opacity:.45;box-shadow:none}.streak-badge.is-zero .streak-flame{filter:grayscale(1)}.milestone-banner{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:8px;padding:10px 10px 10px 16px;border-radius:999px;background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:0 8px 24px #283c6438,0 0 24px var(--glow);animation:banner-in .4s ease both}.milestone-banner button{border:0;background:none;color:var(--muted);font-size:16px;padding:4px 8px;cursor:pointer}.milestone-banner.leaving{opacity:0;transform:translate(-50%,-10px);transition:opacity .3s,transform .3s}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.stat-note{font-size:11px;color:var(--muted)}html,*{-webkit-tap-highlight-color:transparent}button,label,summary,[role=button],.tab-bar,.week-tile,.checkbox-row,.switch,input[type=checkbox],input[type=range],tr.tappable{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button:focus,button:focus-visible,summary:focus,label:focus,tr.tappable:focus,input[type=checkbox]:focus,input[type=checkbox]:focus-visible,.switch input:focus+.switch-track{outline:none}input:not([type=checkbox]):not([type=range]),textarea,select{-webkit-user-select:text;user-select:text}.tab-bar{bottom:calc(6px + var(--safe-bottom));padding:1px 3px 0;border-radius:18px;transform:translateZ(0)}.tab-bar button{padding:6px 0 8px;font-size:7.5px;gap:1px}.tab-bar .tab-icon{font-size:14px}.tab-bar button.active .tab-icon{transform:translateY(-1px) scale(1.12)}.tab-bar button.active:after{bottom:3px;width:13px;height:2px;margin-left:-6.5px}.tab-bar .tab-main{margin-top:-18px;font-size:8px}.tab-bar .tab-main .tab-icon{width:41px;height:41px;font-size:18px}.tab-bar .tab-main.active .tab-icon{transform:translateY(-1px) scale(1.05)}.tab-bar button:before{content:"";position:absolute;left:0;right:0;bottom:0;height:max(100%,44px)}body{padding-bottom:calc(87px + var(--safe-bottom))}.rest-bar{bottom:calc(56px + var(--safe-bottom))}body.resting #screen{padding-bottom:calc(150px + var(--safe-bottom))}.date-button-wrap,.week-button-wrap{position:relative}.calendar-pop{position:absolute;left:50%;top:calc(100% + 6px);z-index:50;transform:translate(-50%);width:min(320px,calc(100vw - 32px));padding:10px 10px 12px;border-radius:20px;background:var(--surface);border:1px solid rgba(150,168,195,.35);box-shadow:0 14px 34px #283c6438,0 0 18px var(--glow);animation:calendar-in .18s ease both}@keyframes calendar-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cal-head strong{font-size:15px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0}.cal-weekday{text-align:center;font-size:11px;color:var(--muted);padding:2px 0 4px}.cal-day{height:38px;border:0;background:none;border-radius:50%;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}.cal-day:disabled{color:var(--muted);opacity:.4;cursor:default}.cal-day.is-today{box-shadow:inset 0 0 0 2px #3d6fe08c}.cal-day.is-selected{background:linear-gradient(180deg,var(--accent-light),var(--accent));color:var(--accent-ink);font-weight:600;box-shadow:0 0 10px var(--glow)}.calendar-pop.week-mode .cal-day.is-selected{border-radius:0;box-shadow:none}.calendar-pop.week-mode .cal-day.week-first{border-radius:19px 0 0 19px}.calendar-pop.week-mode .cal-day.week-last{border-radius:0 19px 19px 0}.calendar-pop.week-mode .cal-day.is-selected.is-today{box-shadow:inset 0 0 0 2px #fffc}.cal-today{display:block;margin:8px auto 0;padding:7px 18px;border-radius:999px;border:1px solid rgba(150,168,195,.45);background:var(--chrome);font:inherit;font-size:14px;color:var(--accent);cursor:pointer}.nutrition-done-row{justify-content:space-between;gap:8px}.steps-target{display:block;color:var(--ink-secondary);font-size:13px;margin-bottom:6px}.kelby-panel{height:min(640px,calc(100dvh - var(--safe-top) - 150px));max-height:none}.kelby-body{flex:1;min-height:0}.kelby-new{border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--accent);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}.kelby-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 16px 8px;padding:3px;border-radius:999px;background:#96a8c329}.kelby-tabs button{border:0;background:none;border-radius:999px;padding:7px 0;font:inherit;font-size:14px;color:var(--ink-secondary);cursor:pointer}.kelby-tabs button.selected{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 1px 4px #3c507826}.kelby-notice{margin:0 16px 8px;padding:7px 12px;border-radius:12px;font-size:13px;color:var(--ink-secondary);background:#ffc94d29;border:1px solid rgba(220,170,60,.3)}.kelby-chat{display:flex;flex-direction:column;gap:8px;padding-top:2px}.kelby-msg{max-width:86%;padding:9px 13px;border-radius:18px;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.kelby-msg.from-you{align-self:flex-end;color:#fff;border-bottom-right-radius:6px;background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 4px 12px #3d6fe040}.kelby-msg.from-kelby{align-self:flex-start;color:var(--ink);border-bottom-left-radius:6px;background:var(--surface);border:1px solid rgba(150,168,195,.35);box-shadow:0 1px #fff inset,0 2px 8px #465f8c14}.kelby-msg-photo{display:block;font-size:12px;opacity:.85;margin-bottom:2px}.kelby-thinking{display:flex;gap:5px;padding:13px 15px}.kelby-thinking span{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.35;animation:kelby-dot 1.2s infinite ease-in-out}.kelby-thinking span:nth-child(2){animation-delay:.15s}.kelby-thinking span:nth-child(3){animation-delay:.3s}@keyframes kelby-dot{0%,80%,to{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}.kelby-note{align-self:center;margin:2px 0;font-size:13px;color:var(--muted);text-align:center}.kelby-error{align-self:stretch;padding:9px 12px;border-radius:14px;font-size:14px;background:#d9485f14;border:1px solid rgba(217,72,95,.3)}.kelby-error p{margin:0 0 6px;color:var(--ink)}.kelby-error button,.kelby-logged button,.kelby-meal-buttons button{border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--ink);border-radius:999px;padding:7px 16px;font:inherit;font-size:14px;cursor:pointer}.kelby-compose{padding:8px 12px 10px;border-top:1px solid rgba(150,168,195,.25)}.kelby-compose-row{display:flex;align-items:flex-end;gap:8px}.kelby-input{flex:1;min-width:0;resize:none;max-height:120px;padding:9px 12px;border-radius:18px;border:1px solid rgba(150,168,195,.45);background:var(--surface);font:inherit;font-size:16px;color:var(--ink)}.kelby-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.kelby-photo-button,.kelby-send{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;cursor:pointer;border:1px solid rgba(150,168,195,.45);background:var(--chrome);font-size:18px}.kelby-send{border:0;color:#fff;background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 4px 12px #3d6fe04d}.kelby-send:disabled{opacity:.5}.kelby-photo-preview{position:relative;width:fit-content;margin:0 0 8px}.kelby-photo-preview img{display:block;max-height:90px;max-width:160px;border-radius:12px;border:1px solid rgba(150,168,195,.4)}.kelby-photo-remove{position:absolute;top:-8px;right:-8px;width:26px;height:26px;border-radius:50%;border:1px solid rgba(150,168,195,.5);background:var(--surface);font-size:15px;line-height:1;cursor:pointer}.kelby-meal-card{align-self:stretch;padding:12px;border-radius:18px;background:var(--surface);border:1px solid rgba(61,111,224,.35);box-shadow:0 0 14px var(--glow)}.kelby-meal-card h4{margin:0 0 2px;font-size:16px}.kelby-meal-date{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--accent)}.kelby-meal-slot{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:8px}.kelby-meal-slot select{padding:6px 10px;border-radius:10px;border:1px solid rgba(150,168,195,.45);background:var(--surface);font:inherit;font-size:16px}.kelby-meal-note{margin:0 0 8px;font-size:13px;color:var(--ink-secondary)}.kelby-meal-item{padding:8px 0;border-top:1px solid rgba(150,168,195,.25)}.kelby-meal-name{display:flex;align-items:center;gap:6px;margin-bottom:6px}.kelby-meal-name input{flex:1;min-width:0;padding:6px 8px;border-radius:10px;border:1px solid rgba(150,168,195,.45);font:inherit;font-size:16px}.kelby-estimate,.kelby-matched{flex:none;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.kelby-estimate{color:#a3620a;background:#ffc94d38}.kelby-matched{color:var(--accent);background:#3d6fe01f}.kelby-meal-numbers{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:5px}.kelby-meal-numbers label{display:flex;flex-direction:column;font-size:11px;color:var(--muted)}.kelby-meal-numbers input{width:100%;padding:6px 5px;border-radius:9px;border:1px solid rgba(150,168,195,.45);font:inherit;font-size:16px;color:var(--ink)}.kelby-meal-numbers small{font-size:11px}.kelby-meal-total{margin:8px 0;font-weight:600;font-size:14px}.kelby-meal-buttons{display:flex;gap:8px}.kelby-meal-buttons .kelby-log-it{flex:1;color:#fff;border:0;font-weight:700;background:linear-gradient(180deg,var(--accent-light),var(--accent));box-shadow:0 6px 16px #3d6fe04d}.kelby-logged{align-self:stretch;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border-radius:14px;background:#4dd4a81f;border:1px solid rgba(77,212,168,.4);font-size:14px}.secret-row{display:flex;gap:8px;align-items:center}.secret-row input{flex:1;min-width:0}.kelby-test-result p{margin:6px 0 0}.kelby-test-result .test-ok{color:#1f8a5b;font-weight:600}.kelby-test-result .test-bad{color:var(--danger);font-weight:600}.kelby-warning{color:var(--danger)}@media(prefers-reduced-motion:reduce){.kelby-thinking span{animation:none;opacity:.6}}.kelby-mic{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;cursor:pointer;border:1px solid rgba(150,168,195,.45);background:var(--chrome);font-size:18px}.kelby-mic.is-recording{background:#e5484d;border-color:#e5484d;box-shadow:0 0 #e5484d80;animation:kelby-rec 1.4s infinite}@keyframes kelby-rec{0%{box-shadow:0 0 #e5484d73}70%{box-shadow:0 0 0 10px #e5484d00}to{box-shadow:0 0 #e5484d00}}.kelby-mic.is-working{opacity:.55}.kelby-voice-status{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;color:var(--ink-secondary)}.kelby-voice-status button{border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--accent);border-radius:999px;padding:3px 12px;font:inherit;font-size:13px;cursor:pointer}.kelby-rec-dot{width:8px;height:8px;border-radius:50%;background:#e5484d;animation:kelby-dot 1.2s infinite ease-in-out}.kelby-input:disabled{opacity:.6}@media(prefers-reduced-motion:reduce){.kelby-mic.is-recording,.kelby-rec-dot{animation:none}}.kelby-voice-toggle{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(150,168,195,.45);background:var(--chrome);font-size:16px;cursor:pointer}.kelby-voice-toggle.is-on{border-color:var(--accent);box-shadow:0 0 10px var(--glow)}.kelby-mic.is-recording{box-shadow:0 0 14px #e5484d99}.sub-switch{align-items:flex-start;gap:12px;padding:8px 0;border-top:1px solid var(--border)}.sub-switch span{display:flex;flex-direction:column;font-size:15px}.sub-switch small{color:var(--muted);font-size:12px}.voice-status{margin:0 0 10px}.voice-recorder{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.voice-script{margin:6px 0 10px;padding:10px 12px;border-left:3px solid var(--accent);border-radius:8px;background:#3d6fe00f;font-size:15px;line-height:1.55}.voice-tips{margin:0 0 10px;padding-left:18px;font-size:13px;color:var(--ink-secondary)}#voice-record.is-recording{background:#e5484d;border-color:#e5484d;color:#fff;animation:kelby-rec 1.4s infinite}.voice-review audio{width:100%;margin:6px 0 8px}.voice-note{margin-top:10px}html,body{height:100%;overflow:hidden;overscroll-behavior:none}html{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100dvh;padding-bottom:0!important;display:flex;flex-direction:column}.top-bar{position:relative;flex:none}#scroller{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;position:relative;z-index:1;padding-bottom:calc(109px + var(--safe-bottom))}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:max(16px,1em)!important}.tab-bar{position:fixed;bottom:calc(7.5px + var(--safe-bottom));padding:1.25px 3.75px 0;border-radius:22.5px;transform:translateY(var(--bar-shift, 0px)) translateZ(0)}.tab-bar button{padding:7.5px 0 10px;font-size:9.4px;gap:1.25px}.tab-bar .tab-icon{font-size:20.1px}.tab-bar button.active:after{bottom:3.75px;width:16px;height:2.5px;margin-left:-8px}.tab-bar .tab-main{margin-top:-22.5px;font-size:10px}.tab-bar .tab-main .tab-icon{width:51px;height:51px;font-size:25.9px}.rest-bar{bottom:calc(70px + var(--safe-bottom))}body.resting #screen{padding-bottom:calc(164px + var(--safe-bottom))}.video-thumb{position:relative;display:block;width:100%;aspect-ratio:16 / 9;margin:6px 0 10px;padding:0;border:0;border-radius:14px;overflow:hidden;background:#0d1626;cursor:pointer}.video-thumb.tall{aspect-ratio:9 / 16;max-height:60dvh;width:auto;margin-left:auto;margin-right:auto}.video-thumb img{width:100%;height:100%;object-fit:cover;display:block}.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#0000008c;color:#fff;font-size:20px;padding-left:3px;box-shadow:0 0 0 2px #fffc}.video-thumb.small{width:128px;aspect-ratio:16 / 9;margin:2px 0 8px;border-radius:10px}.video-thumb.small.tall{width:64px;max-height:none;margin-left:0}.video-thumb.small .video-play{width:30px;height:30px;font-size:12px}.tap-list li>.video-thumb.small,.tap-list li>.video-offline{margin-left:14px}.video-offline{margin:2px 0 8px;font-size:13px;color:var(--muted)}.bulk-heading{margin:14px 0 6px;font-size:15px}.bulk-list{list-style:none;padding:0;margin:0;font-size:14px}.bulk-list li{padding:5px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}.bulk-list li small{display:block;color:var(--muted);font-size:12px}.bulk-list.ok li{color:var(--ink)}.bulk-list.bad li{color:var(--danger)}#bulk-text{width:100%}.card button.video-thumb,button.video-thumb{border-radius:14px;border:0;padding:0;margin:6px 0 10px;box-shadow:none;background:#0d1626;transform:none}.card button.video-thumb.small,button.video-thumb.small{border-radius:10px;margin:2px 0 8px}#video-url{width:100%;padding:10px 12px;border-radius:14px;border:1px solid rgba(150,168,195,.4);background:var(--surface-2, #ffffff);color:var(--ink)}#video-url:focus{outline:2px solid var(--accent);outline-offset:-1px}.plan-top .plan-name{width:100%;font-weight:700;margin-bottom:10px}.plan-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:10px}.card .plan-days button{margin:0;padding:8px 0;font-size:13px;min-width:0}.card .plan-days button.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.plan-totals td.note small{color:var(--muted)}.plan-copy{margin-top:8px}.plan-meal-head{display:flex;gap:6px;align-items:center;margin-bottom:8px}.plan-meal-head input{flex:1;min-width:0;font-weight:700}.card .plan-meal-head button{margin:0}.plan-item{border-top:1px solid var(--border);padding:8px 0}.plan-item-top{display:flex;gap:4px;align-items:center}.plan-item-top input{flex:1;min-width:0}.plan-item-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.plan-item-numbers label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:2px}.plan-item-numbers input{width:100%;min-width:0}.card button.icon-button:disabled{opacity:.25}.plan-meal-total{font-size:14px;color:var(--muted);margin:8px 0}.kelby-convo[hidden]{display:none}.kelby-convo{display:flex;flex-direction:column;gap:10px;padding:4px 0 2px}.kelby-convo-state{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;min-height:22px;font-size:15px;font-weight:600;color:var(--ink);text-align:center}.kelby-convo-state[data-state=thinking],.kelby-convo-state[data-state=muted]{color:var(--ink-secondary)}.kelby-convo-state[data-state=speaking]{color:var(--accent)}.kelby-convo-buttons{display:flex;gap:8px;justify-content:center}.kelby-convo-buttons button{flex:1;max-width:180px;min-height:44px;border-radius:12px;font-size:15px;font-weight:600;border:1px solid rgba(150,168,195,.45);background:var(--chrome);color:var(--ink)}.kelby-convo-buttons button[hidden]{display:none}.kelby-convo-end{width:100%;min-height:56px;border:0;border-radius:14px;font-size:18px;font-weight:700;background:var(--danger);color:#fff}.kelby-compose-row[hidden]{display:none}.kelby-photo{display:block;border-radius:50%;object-fit:cover;flex:none;background:transparent}.kelby-head-photo{width:34px;height:34px}.kelby-hello{display:flex;align-items:center;gap:12px;margin:0 0 10px}.kelby-hello .kelby-greeting{margin:0}.kelby-hello-photo{width:64px;height:64px}.kelby-msg.from-kelby{position:relative;margin-left:36px;max-width:calc(86% - 36px)}.kelby-msg.from-kelby:before{content:"";position:absolute;left:-36px;bottom:0;width:28px;height:28px;border-radius:50%;background:var(--kelby-photo) center / cover no-repeat}.kelby-page-hero{display:flex;align-items:center;gap:14px;margin:4px 4px 14px}.kelby-page-photo{width:88px;height:88px}.kelby-page-hero strong{display:block;font-size:22px}.kelby-page-hero small{display:block;color:var(--ink-secondary);font-size:14px;margin-top:2px}.kelby-avatar.has-photo{background:none;box-shadow:0 0 10px var(--glow);overflow:hidden}.kelby-avatar.has-photo .kelby-button-photo{width:100%;height:100%}.workout-timer.is-stopped,.session-timer.is-stopped,.tile-timer.is-stopped{opacity:.6}.log-list li.log-removing{overflow:hidden;opacity:0;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;transition:height .2s ease,opacity .15s ease,padding .2s ease,margin .2s ease}body.auth-locked .top-bar,body.auth-locked #scroller,body.auth-locked .tab-bar,body.auth-locked .rest-bar,body.auth-locked .kelby-overlay{display:none!important}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(env(safe-area-inset-top,0px) + 28px) 16px calc(env(safe-area-inset-bottom,0px) + 28px)}.auth-screen[hidden]{display:none}.auth-wrap{max-width:420px;margin:0 auto}.auth-logo{display:block;width:64px;height:auto;margin:8px auto 18px}.auth-card h2{margin:0 0 4px;font-size:22px}.auth-card .card-sub{margin-bottom:14px}.auth-card form{margin-top:6px}.auth-error{margin:4px 0 8px;padding:9px 12px;border-radius:12px;font-size:14px;color:var(--danger);background:#d9485f1a;border:1px solid rgba(217,72,95,.25)}.auth-ok{margin:4px 0 8px;padding:9px 12px;border-radius:12px;font-size:14px;color:var(--good);background:#1f9d6b1a;border:1px solid rgba(31,157,107,.25)}.auth-error[hidden],.auth-ok[hidden]{display:none}.card button.auth-link{display:block;margin:6px auto 0;border:0;background:none;box-shadow:none;color:var(--accent);font-weight:600;padding:10px}.auth-invite-note{text-align:center;margin-top:10px}.a2hs-hint{margin-top:14px;padding:12px;border-radius:14px;font-size:14px;line-height:1.45;background:var(--surface-2);border:1px solid var(--border)}.a2hs-hint p{margin:0}.privacy-notice{max-height:50vh;overflow-y:auto;margin:0 0 12px;padding:4px 2px}.privacy-notice h3{font-size:15px;margin:12px 0 2px}.privacy-notice p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-secondary)}.account-card .card-sub{margin-bottom:10px}
