:root{--bg:#0b0b0f;--card:#15151b;--card-2:#1c1c24;--line:#26262e;--text:#f4f4f6;--text-2:#a3a3ad;--text-3:#6e6e79;--accent:#b8f23a;--accent-ink:#0b0b0f;--mma:#4a86e0;--strength:#6aa31f;--good:#3ccf7a;--warn:#f5a524;--bad:#f25c54;--r:20px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,system-ui,sans-serif;font-size:16px;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums;font-family:ui-rounded,SF Pro Rounded,-apple-system,system-ui,sans-serif}.app{min-height:100dvh;padding:calc(var(--safe-t) + 12px) 16px calc(var(--safe-b) + 96px);max-width:560px;margin:0 auto}.header{justify-content:space-between;align-items:flex-end;margin:8px 2px 18px;display:flex}.header h1{letter-spacing:-.02em;margin:0;font-size:32px;font-weight:750}.header .sub{color:var(--text-2);text-transform:capitalize;margin-bottom:2px;font-size:14px}.icon-btn{background:var(--card);cursor:pointer;border:0;border-radius:999px;place-items:center;width:40px;height:40px;display:grid}.icon-btn svg{width:20px;height:20px}.section-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin:26px 4px 10px;font-size:13px;font-weight:650}.card{background:var(--card);border-radius:var(--r);margin-bottom:12px;padding:16px;animation:.35s cubic-bezier(.2,.8,.2,1) both rise}.card.tap{cursor:pointer;transition:transform .15s}.card.tap:active{transform:scale(.98)}.card h3{color:var(--text-2);margin:0 0 4px;font-size:15px;font-weight:600}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid2 .card{margin-bottom:0}.big{letter-spacing:-.02em;font-size:30px;font-weight:700}.unit{color:var(--text-2);margin-left:3px;font-size:15px;font-weight:500}.muted{color:var(--text-3);font-size:13px}.small{color:var(--text-2);font-size:13px}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pill{background:var(--card-2);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.pill.est:before{content:"";background:var(--text-3);border-radius:99px;width:6px;height:6px}.pill.meas:before{content:"";background:var(--good);border-radius:99px;width:6px;height:6px}.status{background:var(--card-2);border-radius:14px;align-items:flex-start;gap:10px;margin-top:10px;padding:12px;font-size:14px;display:flex}.status .ic{width:22px;height:22px;color:var(--accent-ink);border-radius:99px;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.status.good .ic{background:var(--good)}.status.warn .ic{background:var(--warn)}.status.bad .ic{background:var(--bad)}.status.info .ic{background:var(--accent)}.hero{align-items:center;gap:18px;display:flex}.hero .ring{flex:none}.hero-legend{flex:1;gap:8px;display:grid}.hero-legend .row span:last-child{font-weight:600}.dot{border-radius:99px;width:8px;height:8px;margin-right:6px;display:inline-block}.bar{background:var(--card-2);border-radius:99px;height:8px;margin-top:10px;overflow:hidden}.bar>div{background:var(--accent);border-radius:99px;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}.list{background:var(--card);border-radius:var(--r);margin-bottom:12px;overflow:hidden}.item{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.item:last-child{border-bottom:0}.item:active{background:var(--card-2)}.item .grow{flex:1;min-width:0}.item .title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.badge{border-radius:12px;flex:none;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.empty{text-align:center;color:var(--text-3);padding:28px 16px;font-size:14px}.seg{background:var(--card);border-radius:12px;margin-bottom:14px;padding:3px;display:flex}.seg button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;padding:8px;font-size:14px;font-weight:600;transition:background .2s,color .2s}.seg button.on{background:var(--card-2);color:var(--text)}.tabbar{z-index:20;padding:8px 8px calc(var(--safe-b) + 6px);-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--line);background:#0b0b0fd1;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:90px;color:var(--text-3);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:10.5px;font-weight:600;display:flex}.tabbar button svg{width:24px;height:24px}.tabbar button.on{color:var(--accent)}.fab{right:max(16px,50% - 264px);bottom:calc(var(--safe-b) + 84px);z-index:21;background:var(--accent);width:58px;height:58px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:99px;place-items:center;transition:transform .2s;display:grid;position:fixed;box-shadow:0 10px 30px #b8f23a40}.fab:active{transform:scale(.92)}.fab svg{width:28px;height:28px}.backdrop{z-index:40;background:#0000008c;animation:.2s both fade;position:fixed;inset:0}.sheet{z-index:41;max-height:92dvh;padding:10px 16px calc(var(--safe-b) + 20px);background:#121218;border-radius:26px 26px 0 0;max-width:560px;margin:0 auto;animation:.32s cubic-bezier(.2,.8,.2,1) both up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:99px;width:40px;height:5px;margin:0 auto 12px}.sheet h2{letter-spacing:-.01em;margin:4px 0 16px;font-size:22px}.field{margin-bottom:12px;display:block}.field>span{color:var(--text-2);margin:0 0 6px 4px;font-size:13px;display:block}.input,select.input,textarea.input{background:var(--card-2);appearance:none;border:1px solid #0000;border-radius:14px;outline:none;width:100%;padding:13px 14px;font-size:17px;transition:border-color .2s}.input:focus{border-color:var(--accent)}.fields2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.fields3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.fields4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.btn{cursor:pointer;background:var(--accent);width:100%;color:var(--accent-ink);border:0;border-radius:16px;padding:15px;font-size:17px;font-weight:700;transition:transform .15s,opacity .2s}.btn:active{transform:scale(.98)}.btn.secondary{background:var(--card-2);color:var(--text)}.btn.danger{color:var(--bad);background:0 0}.btn.small{border-radius:12px;width:auto;padding:9px 14px;font-size:14px}.btn:disabled{opacity:.4}.chips{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;color:var(--text-2);background:0 0;border-radius:99px;padding:8px 14px;font-size:14px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}.rpe{grid-template-columns:repeat(10,1fr);gap:4px;margin-bottom:6px;display:grid}.rpe button{background:var(--card-2);cursor:pointer;color:var(--text-2);border:0;border-radius:9px;padding:10px 0;font-weight:700}.rpe button.on{background:var(--accent);color:var(--accent-ink)}.set-row{grid-template-columns:28px 1fr 1fr 1fr 32px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.set-row .input{background:var(--card);text-align:center;padding:10px 8px;font-size:16px}.set-head{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;text-align:center;font-size:11px}.x{color:var(--text-3);cursor:pointer;background:0 0;border:0;font-size:20px}.chart-wrap{height:170px;margin:8px -6px 0}.chart-tip{border:1px solid var(--line);background:#22222b;border-radius:10px;padding:8px 10px;font-size:13px}.chart-tip b{margin-bottom:2px;display:block}.legend{color:var(--text-2);gap:14px;margin-top:6px;font-size:12px;display:flex}.toast{left:50%;top:calc(var(--safe-t) + 10px);z-index:60;border:1px solid var(--line);background:#23232c;border-radius:99px;padding:10px 16px;font-size:14px;animation:.3s both drop;position:fixed;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes drop{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
