@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Barlow-400.woff2) format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Barlow-500.woff2) format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Barlow-600.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/BarlowCondensed-500.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/BarlowCondensed-600.woff2) format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/BarlowCondensed-700.woff2) format("woff2")}:root{--stone: #e7e9e1;--paper: #f7f8f3;--ink: #1a231c;--ink2: #5a6459;--ink3: #8a9287;--moss: #3e5b45;--moss-2: #d9e1d6;--blaze: #e0a80e;--warn: #8a4b12;--line: rgba(26, 35, 28, .14)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--stone);color:var(--ink);font-family:Barlow,ui-sans-serif,system-ui,sans-serif;min-height:100vh;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}button[disabled]{cursor:default}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--moss);outline-offset:2px}.cond{font-family:Barlow Condensed,Barlow,sans-serif;letter-spacing:.005em}.wrap{max-width:640px;margin:0 auto;padding:0 18px 96px}.top{display:flex;align-items:baseline;justify-content:space-between;padding:22px 0 14px}.mark{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:21px;letter-spacing:.02em}.mark span{color:var(--moss)}.offline-pill{font-size:12px;color:var(--warn);border:1px solid var(--blaze);background:#fdf6e2;border-radius:999px;padding:2px 9px}.hero{padding:8px 0 4px}.hero-lab{font-size:13px;color:var(--ink2)}.hero-num{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:70px;line-height:.86;margin:6px 0 2px}.hero-num em{font-style:normal;font-size:26px;font-weight:600;color:var(--ink2);margin-left:6px}.hero-sub{font-size:13.5px;color:var(--ink2);margin-bottom:14px}.hero-sub b{color:var(--moss);font-weight:600}.ruler{width:100%;height:34px;display:block}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:18px 0 6px}.cell{background:var(--paper);padding:11px 12px}.cell .k{font-size:11.5px;color:var(--ink3)}.cell .v{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:26px;line-height:1.1}.cell .v em{font-style:normal;font-size:14px;color:var(--ink2);font-weight:500;margin-left:3px}.sec{margin-top:26px}.sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sec-h h2{font-family:Barlow Condensed,sans-serif;font-size:19px;font-weight:600;margin:0;letter-spacing:.01em}.linky{font-size:13px;color:var(--moss);font-weight:500}.muted{font-size:13px;color:var(--ink2)}.ledger{border-top:1px solid var(--line)}.row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 2px;border-bottom:1px solid var(--line)}.row:hover{background:#3e5b450d}.row.is-pending{opacity:.62}.tick{width:3px;align-self:stretch;border-radius:2px;flex:none}.t-walk{background:#9baf9a}.t-jog{background:var(--moss)}.t-run{background:var(--blaze)}.row-main{flex:1;min-width:0}.row-top{display:flex;gap:8px;align-items:baseline}.row-act{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:17px;text-transform:capitalize}.row-date{font-size:12.5px;color:var(--ink3)}.row-meta{font-size:13px;color:var(--ink2)}.row-dist{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:22px;text-align:right;flex:none}.row-dist em{font-style:normal;font-size:12px;color:var(--ink3);font-weight:500;margin-left:2px}.scrollbox{max-height:calc(100vh - 320px);min-height:200px;overflow-y:auto;overscroll-behavior:contain;border-bottom:1px solid var(--line)}.scrollbox .row:last-child{border-bottom:none}.empty{border:1px dashed var(--line);border-radius:8px;padding:26px 18px;text-align:center;color:var(--ink2)}.empty p{margin:0 0 12px}.btn{border-radius:999px;padding:10px 18px;font-weight:600;font-size:14.5px;display:inline-flex;align-items:center;gap:7px;justify-content:center}.btn-p{background:var(--moss);color:#f7f8f3}.btn-p:hover{background:#334c39}.btn-s{border:1px solid var(--line);background:var(--paper)}.btn-s:hover{border-color:var(--moss);color:var(--moss)}.btn-d{color:var(--warn)}.btn-block{width:100%}.btn[disabled]{opacity:.45}.nav{position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:1px solid var(--line);display:flex;justify-content:center;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.nav-in{display:flex;gap:2px;width:100%;max-width:640px;align-items:center}.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;color:var(--ink3);border-radius:6px}.nav button.on{color:var(--moss)}.nav .fab{flex:none;background:var(--moss);color:#f7f8f3;width:46px;height:46px;border-radius:999px;align-items:center;justify-content:center;margin:0 6px}.sheet{position:fixed;inset:0;background:var(--stone);z-index:40;overflow-y:auto}.sheet-in{max-width:640px;margin:0 auto;padding:0 18px 60px}.sheet-top{display:flex;align-items:center;justify-content:space-between;padding:16px 0 10px;position:sticky;top:0;background:var(--stone);z-index:2}.sheet-top h2{font-family:Barlow Condensed,sans-serif;font-size:22px;font-weight:600;margin:0}.tabs{display:flex;gap:2px;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper);margin-bottom:20px}.tabs button{flex:1;border-radius:999px;padding:7px 4px;font-size:13.5px;font-weight:500;color:var(--ink2)}.tabs button.on{background:var(--moss);color:#f7f8f3;font-weight:600}.field{margin-bottom:15px}.field label,.field .lbl{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:5px}.inp{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px 11px}.inp:focus{border-color:var(--moss);outline:none}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.suffix{position:relative}.suffix .u{position:absolute;right:11px;top:9px;font-size:13px;color:var(--ink3)}.chips{display:flex;gap:6px}.chips button{flex:1;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:9px 0;font-family:Barlow Condensed,sans-serif;font-size:16px;font-weight:600;text-transform:capitalize}.chips button.on{background:var(--moss);color:#f7f8f3;border-color:var(--moss)}.flag{border-color:var(--blaze);background:#fdf6e2}.flag-msg{font-size:12px;color:var(--warn);margin-top:4px;display:flex;gap:5px;align-items:center}.derived{font-size:12.5px;color:var(--moss);margin-top:5px}.warnbox{border:1px solid var(--blaze);background:#fdf6e2;border-radius:6px;padding:11px 13px;margin-bottom:16px;font-size:13.5px}.warnbox p{margin:0 0 4px;display:flex;gap:7px}.warnbox p:last-child{margin:0}.errbox{border:1px solid var(--warn);background:#f7ece2;color:var(--warn);border-radius:6px;padding:11px 13px;margin-bottom:16px;font-size:13.5px}.note{font-size:13px;color:var(--ink2);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:11px 13px;margin-bottom:18px}.ex{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ex button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:5px 11px;font-size:12.5px;color:var(--ink2);text-align:left}.ex button:hover{border-color:var(--moss);color:var(--moss)}.rec{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 0 6px}.rec-btn{width:92px;height:92px;border-radius:999px;background:var(--moss);color:#f7f8f3;display:flex;align-items:center;justify-content:center}.rec-btn.on{background:var(--warn);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #8a4b1266}50%{box-shadow:0 0 0 14px #8a4b1200}}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:600;color:var(--ink2);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}.tbl td{padding:7px 8px;border-bottom:1px solid var(--line)}.tbl tr.dup{color:var(--ink3)}.badge{font-size:11px;border-radius:999px;padding:1px 7px;border:1px solid var(--line);white-space:nowrap}.badge-dup{border-color:var(--blaze);background:#fdf6e2;color:var(--warn)}.badge-new{border-color:var(--moss);color:var(--moss)}.scroll{overflow-x:auto}.dl{border-top:1px solid var(--line)}.dl div{display:flex;justify-content:space-between;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14px}.dl dt{color:var(--ink2)}.dl dd{margin:0;font-weight:500}.chart{width:100%;display:block}.legend{display:flex;gap:14px;font-size:12px;color:var(--ink2);margin-top:6px}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.pr{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid var(--line);width:100%;text-align:left}.pr .pv{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:22px}.pr .pl{font-size:12.5px;color:var(--ink2)}.zone{display:flex;align-items:center;gap:9px;margin-bottom:7px;font-size:13px}.zone .bar{height:11px;border-radius:2px;background:var(--moss)}.zone .zl{width:118px;flex:none;color:var(--ink2);font-size:12.5px}.zone .zn{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:14px}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);gap:3px;overflow-x:auto;padding-bottom:4px}.heat i{width:11px;height:11px;border-radius:2px;background:var(--moss-2);display:block}.login{max-width:340px;margin:14vh auto 0;padding:0 18px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:80px;background:var(--ink);color:var(--paper);padding:9px 16px;border-radius:999px;font-size:13.5px;z-index:60;display:flex;gap:7px;align-items:center}@media(prefers-reduced-motion:no-preference){.toast{animation:pop .18s ease-out}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}}
