:root{--bg:#f4f1ec;--surface:#fff;--surface-2:#faf8f4;--ink:#1c2321;--ink-2:#5b6461;--ink-3:#6b726f;--line:#e6e0d6;--teal:#0f5c5c;--teal-2:#0b4646;--teal-soft:#e3eeec;--coral:#ff6b4a;--coral-ink:#c4421f;--coral-soft:#ffe9e3;--sand:#e8d9c0;--warn:#b4441c;--radius:22px;--radius-sm:14px;--shadow:0 1px 2px #1c23210a, 0 8px 24px -12px #1c23211f;--display:"Fraunces", Georgia, serif;--body:"Manrope", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.1}.app{max-width:480px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto}.brand{font-family:var(--display);color:var(--teal);align-items:center;gap:8px;font-size:19px;font-weight:600;display:flex}.brand img{border-radius:9px}.screen{flex-direction:column;gap:14px;animation:.35s both rise;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.screen-head{padding:18px 2px 6px}.screen-head h1{font-size:34px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-size:13px;font-weight:600}.muted{color:var(--ink-3)}.small{font-size:13px}.fine{color:var(--ink-3);text-align:center;margin:4px 4px 0;font-size:12px}.disclaimer{margin-top:28px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:16px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink-2);font-size:13px;font-weight:600}.field input,.num-wrap{border:1.5px solid var(--line);background:var(--surface-2);border-radius:var(--radius-sm);outline:none;width:100%;min-height:50px;padding:0 14px;font-size:17px;font-weight:600;transition:border-color .15s,background .15s}.num-wrap{align-items:center;padding:0 14px 0 0;display:flex}.num-wrap input{background:0 0;border:0;flex:1;min-width:0;min-height:47px}.field input:focus,.num-wrap:focus-within{border-color:var(--teal);background:var(--surface)}.num-wrap:focus-within input{background:0 0}.suffix{color:var(--ink-3);font-size:14px;font-weight:600}input[type=number]::-webkit-inner-spin-button{display:none}.segmented{background:var(--surface-2);border:1.5px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:flex}.segmented button{min-height:40px;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:1;padding:0 12px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.segmented button.on{background:var(--teal);color:#fff}.dose-row{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.dose-row .segmented{align-items:center;min-height:50px}.chips{scrollbar-width:none;align-items:center;gap:6px;display:flex;overflow-x:auto}.chips.wrap{flex-wrap:wrap}.chip{border:1.5px solid var(--line);background:var(--surface);white-space:nowrap;min-height:40px;color:var(--ink-2);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.chip.on{border-color:var(--teal);background:var(--teal-soft);color:var(--teal)}.btn{border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:15px;font-weight:700;transition:transform .1s,background .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--teal);color:#fff}.btn.primary:hover:not(:disabled){background:var(--teal-2)}.btn.ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn.ghost.danger{color:var(--warn)}.btn.dashed{border:1.5px dashed var(--line);color:var(--ink-2);background:0 0}.btn.wide{width:100%}.btn.grow{flex:1}.btn.log{background:var(--coral-ink);color:#fff;min-height:44px;padding:0 14px;font-size:14px}.btn.on-dark{color:var(--teal);background:#fff;align-self:flex-start}.small-btn{min-height:44px;padding:0 12px;font-size:13px}.icon-btn{width:44px;height:44px;color:var(--ink-3);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.link{min-height:44px;color:var(--teal);background:0 0;border:0;align-items:center;gap:4px;font-size:14px;font-weight:700;display:inline-flex}.result{align-items:stretch;gap:10px}.result-label{color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.result-big{font-family:var(--display);letter-spacing:-.03em;color:var(--teal);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:64px;font-weight:600;line-height:1}.result-big span{color:var(--ink-2);letter-spacing:0;font-size:24px}.result-sub{color:var(--ink-2);margin:0;font-weight:600}.syringe{width:100%;height:auto;margin:6px 0 2px;overflow:hidden}.syr-needle{stroke:#9aa3a0;stroke-width:2px;stroke-linecap:round}.syr-hub{fill:var(--coral)}.syr-barrel{fill:#ffffff59;stroke:#c9d1ce;stroke-width:1.5px}.syr-fill{fill:var(--coral);opacity:.85;transform-box:fill-box;transform-origin:0;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.syr-tick{stroke:var(--ink-2);stroke-width:1px}.syr-num{font-family:var(--body);fill:var(--ink-2);font-size:10px;font-weight:700}.syr-plunger{transition:transform .45s cubic-bezier(.2,.8,.2,1)}.syr-stopper{fill:var(--teal)}.syr-rod{fill:#d9dedb}.syr-flange{fill:#c9d1ce}.syr-size{justify-content:space-between;align-items:center;gap:10px;display:flex}.syr-size .segmented{flex:0 260px}.warn{background:var(--coral-soft);color:var(--warn);border-radius:12px;margin:0;padding:10px 12px;font-size:14px;font-weight:600}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0;display:grid}.stats div{background:var(--surface-2);border-radius:12px;padding:10px}.stats dt{color:var(--ink-3);font-size:12px;font-weight:600}.stats dd{margin:2px 0 0;font-size:15px;font-weight:700}.hero,.reminders,.empty{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.hero img{aspect-ratio:16/10;object-fit:cover;background:var(--bg);width:100%}.hero-copy{padding:4px 18px 20px}.hero-copy h2{margin-bottom:8px;font-size:26px}.hero-copy p{color:var(--ink-2);margin:0 0 16px}.next{--c:var(--teal);background:var(--teal);color:#fff;border-radius:var(--radius);flex-direction:column;gap:2px;padding:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 32px -18px #0f5c5cb3}.next:after{content:"";background:var(--c);opacity:.55;filter:blur(4px);border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.next.overdue{background:#8a3418}.next>*{z-index:1;margin:0;position:relative}.next-label{letter-spacing:.06em;text-transform:uppercase;opacity:.8;font-size:13px;font-weight:700}.next-name{font-family:var(--display);font-size:24px;font-weight:600;margin-top:6px!important}.next-units{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:58px;font-weight:600;line-height:1}.next-units span{opacity:.8;letter-spacing:0;font-size:22px}.next-meta{opacity:.85;font-weight:600;margin-bottom:12px!important}.section-head{justify-content:space-between;align-items:baseline;padding:14px 2px 0;display:flex}.section-head h2{font-size:22px}.stack{flex-direction:column;gap:10px;display:flex}.pcard{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.pcard-main{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:16px 14px 12px 16px;display:flex}.pcard-dot{background:var(--c);border-radius:6px;flex:none;align-self:flex-start;width:12px;height:40px}.pcard-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pcard-name{font-family:var(--display);font-size:20px;font-weight:600}.pcard-dose{color:var(--ink-2);font-size:14px}.pcard-dose strong{color:var(--ink)}.pcard-foot{align-items:center;gap:12px;padding:10px 14px 14px 40px;display:flex}.vial{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.vial-bar{background:var(--surface-2);border:1px solid var(--line);border-radius:3px;height:6px;overflow:hidden}.vial-bar span{background:var(--c);border-radius:3px;height:100%;transition:width .4s;display:block}.pill{background:var(--surface-2);color:var(--ink-2);border-radius:999px;align-self:flex-start;margin-top:2px;padding:3px 10px;font-size:12px;font-weight:700}.pill.today{background:var(--coral-soft);color:var(--warn)}.pill.overdue{background:var(--warn);color:#fff}.pill.done-today{background:var(--teal-soft);color:var(--teal)}.reminders{grid-template-columns:112px 1fr;align-items:center;gap:0;margin-top:8px;display:grid}.reminders img{object-fit:cover;background:var(--bg);width:112px;height:100%}.reminders>div{padding:16px 16px 16px 12px}.reminders h2{margin-bottom:4px;font-size:19px}.reminders p{color:var(--ink-2);margin:0 0 12px;font-size:14px}.reminders .btn{min-height:40px;padding:0 14px;font-size:14px}.badge{color:var(--teal);align-items:center;gap:4px;font-weight:600;display:inline-flex}.agenda,.log-list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:4px 0;list-style:none}.agenda li,.log-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}.agenda li:last-child,.log-list li:last-child{border-bottom:0}.agenda li.done{opacity:.5}.agenda li.done .agenda-what{text-decoration:line-through}.agenda-dot{border-radius:50%;flex:none;width:9px;height:9px}.agenda-when{flex:1;font-size:14px;font-weight:600}.agenda-what{text-align:right;font-size:14px;font-weight:600}.empty{text-align:center;padding:0 0 22px}.empty img{aspect-ratio:16/10;object-fit:cover;width:100%}.empty h2{margin:4px 0 6px;font-size:22px}.empty p{color:var(--ink-2);margin:0 22px 16px}.log-group h3{font-size:15px;font-family:var(--body);color:var(--ink-3);letter-spacing:0;margin:8px 4px;font-weight:700}.log-main{flex-direction:column;flex:1;min-width:0;display:flex}.log-dose{flex-direction:column;align-items:flex-end;font-weight:700;display:flex}.sheet-backdrop{z-index:50;touch-action:none;overscroll-behavior:contain;background:#141a1861;justify-content:center;align-items:flex-end;animation:.2s both fade;display:flex;position:fixed;inset:0}.sheet:focus{outline:none}@keyframes fade{0%{opacity:0}}.sheet{overscroll-behavior:contain;touch-action:pan-y;background:var(--bg);width:100%;max-width:480px;max-height:92dvh;padding:8px 16px calc(20px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) both up;overflow-y:auto}@keyframes up{0%{opacity:0;transform:translateY(40px)}}.sheet-head{z-index:2;background:var(--bg);justify-content:space-between;align-items:center;padding:12px 0;display:flex;position:sticky;top:-8px}.sheet-head h2{font-size:24px}.form{flex-direction:column;gap:14px;display:flex}.conv{background:var(--teal-soft);color:var(--teal-2);border-radius:12px;margin:-4px 0 0;padding:10px 12px;font-size:14px}.weekdays{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.weekdays button{aspect-ratio:1;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:50%;font-weight:700}.weekdays button.on{background:var(--teal);border-color:var(--teal);color:#fff}.swatches{gap:10px;display:flex}.swatches button{border:3px solid var(--bg);width:40px;height:40px;box-shadow:0 0 0 1.5px var(--line);border-radius:50%}.swatches button.on{box-shadow:0 0 0 2.5px var(--ink)}.newvial{background:var(--surface);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.form-actions{gap:10px;margin-top:4px;display:flex}.tabbar{z-index:40;width:100%;max-width:480px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);background:#faf8f4db;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--ink-3);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:700;display:flex}.tabbar button.on{color:var(--teal)}.toast{left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:#fff;white-space:normal;overflow-wrap:anywhere;border-radius:18px;align-items:center;gap:14px;width:max-content;max-width:min(448px,100vw - 32px);margin:0 auto;padding:12px 16px 12px 18px;font-size:14px;font-weight:600;line-height:1.35;animation:.25s both up;display:flex;position:fixed;box-shadow:0 10px 30px -10px #0006}.toast button{min-width:44px;min-height:44px;color:var(--coral);background:0 0;border:0;border-radius:12px;flex:none;margin:-10px -8px -10px 0;padding:0 12px;font-weight:700}:focus-visible{outline:2.5px solid var(--teal);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.tabbar{grid-template-columns:repeat(5,1fr);padding-left:4px;padding-right:4px}.tabbar button{border-radius:14px;min-height:52px;position:relative}.tabbar button:before{content:"";background:var(--teal);border-radius:2px;width:0;height:3px;transition:width .2s;position:absolute;top:2px;left:50%;transform:translate(-50%)}.tabbar button.on:before{width:18px}.topbar{justify-content:space-between;align-items:center;gap:10px;min-height:44px;display:flex}.acct-chip{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--teal);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.acct-chip.icon{width:44px;color:var(--ink-2);justify-content:center;padding:0}.acct-chip.icon.error,.acct-chip.icon.offline{color:var(--warn)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.onb{z-index:70;background:var(--bg);justify-content:center;animation:.3s both fade;display:flex;position:fixed;inset:0}.onb-inner{width:100%;max-width:480px;padding:calc(env(safe-area-inset-top) + 8px) 0 calc(env(safe-area-inset-bottom) + 18px);flex-direction:column;display:flex;position:relative}.onb-top{justify-content:space-between;align-items:center;min-height:48px;padding:0 16px;display:flex}.onb-skip{min-height:44px;color:var(--ink-2);background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:14px;font-weight:700}.onb-track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;flex:1;display:flex;overflow:auto hidden}.onb-track::-webkit-scrollbar{display:none}.onb-slide{scroll-snap-align:center;scroll-snap-stop:always;flex-direction:column;flex:0 0 100%;justify-content:safe center;gap:22px;min-height:0;padding:8px 24px;display:flex;overflow-y:auto}.onb-art{background:var(--surface);box-shadow:var(--shadow);aspect-ratio:1;border-radius:32px;flex:none;max-width:100%;height:min(34dvh,100vw - 48px,400px);min-height:120px;margin:0 auto;position:relative;overflow:hidden}@media (height<=720px){.onb-slide{gap:14px}.onb-art{height:min(22dvh,100vw - 48px)}.onb-copy h1{font-size:28px!important}.onb-copy p{font-size:15px!important}}@media (height<=520px){.onb-art{display:none}}.onb-art img{object-fit:cover;width:100%;height:100%;transition:transform .9s cubic-bezier(.2,.8,.2,1);transform:scale(1.08)}.onb-slide.on .onb-art img{transform:scale(1)}.onb-copy{flex-direction:column;gap:10px;display:flex}.onb-copy>*{opacity:0;transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1);transform:translateY(10px)}.onb-slide.on .onb-copy>*{opacity:1;transform:none}.onb-slide.on .onb-copy>:nth-child(2){transition-delay:80ms}.onb-slide.on .onb-copy>:nth-child(3){transition-delay:.16s}.onb-copy .eyebrow{color:var(--warn);margin:0}.onb-copy h1{font-size:36px}.onb-copy p{color:var(--ink-2);margin:0;font-size:17px}.onb-foot{flex-direction:column;gap:16px;padding:8px 24px 0;display:flex}.onb-dots{justify-content:center;gap:2px;display:flex}.onb-dots button{background:0 0;border:0;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.onb-dots span{background:var(--line);border-radius:4px;width:8px;height:8px;transition:width .3s,background .3s;display:block}.onb-dots button[aria-current=step] span{background:var(--teal);width:22px}.onb-actions{flex-direction:column;justify-content:flex-end;gap:10px;min-height:106px;display:flex}.onb-actions .btn{min-height:52px;font-size:16px}.set-section{flex-direction:column;gap:8px;display:flex}.set-section>h2{font-size:15px;font-family:var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:14px 4px 2px;font-weight:700}.set-list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.set-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:64px;padding:14px 16px;display:flex}.set-row:last-child{border-bottom:0}button.set-row{text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;width:100%}button.set-row:hover{background:var(--surface-2)}a.set-row{color:inherit;text-decoration:none}a.set-row:hover{background:var(--surface-2)}.set-row.danger{color:var(--warn)}.set-row.danger .set-ico{background:var(--coral-soft);color:var(--warn)}.set-row.stack-row{flex-direction:column;align-items:stretch}.set-ico{background:var(--teal-soft);width:36px;height:36px;color:var(--teal);border-radius:11px;flex:none;place-items:center;display:grid}.set-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.set-title{font-size:15px;font-weight:700}.set-sub{color:var(--ink-3);overflow-wrap:anywhere;font-size:13px}.set-chev{color:var(--ink-3);flex:none}.set-hint{background:var(--surface-2);color:var(--ink-2);border-radius:12px;margin:0 16px 14px 64px;padding:10px 12px;font-size:13px}.set-hint strong{color:var(--ink)}.set-hint .ico-inline{vertical-align:-3px;display:inline-block}.set-switch{cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;width:52px;height:44px;padding:0;position:relative}.set-switch:before{content:"";background:var(--line);border-radius:999px;width:52px;height:32px;transition:background .2s;position:absolute;top:6px;left:0}.set-switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;top:9px;left:3px;box-shadow:0 1px 3px #0003}.set-switch[aria-checked=true]:before{background:var(--teal)}.set-switch[aria-checked=true]:after{transform:translate(20px)}.set-switch:disabled{opacity:.5;cursor:default}.on-label{color:var(--teal);font-size:13px;font-weight:700}.pitch{background:var(--teal);color:#fff;border-radius:var(--radius);flex-direction:column;gap:12px;padding:20px;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 32px -18px #0f5c5cb3}.pitch:after{content:"";background:var(--coral);opacity:.45;filter:blur(6px);border-radius:50%;width:170px;height:170px;position:absolute;top:-50px;right:-50px}.pitch>*{z-index:1;margin:0;position:relative}.pitch h2{font-size:24px}.perks{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.perks li{align-items:flex-start;gap:10px;font-size:14px;font-weight:600;display:flex}.perks svg{flex:none;margin-top:1px}.pitch .perks li{opacity:.92}.acct{align-items:center;gap:12px;display:flex}.avatar{background:var(--coral);color:#fff;width:44px;height:44px;font-family:var(--display);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:600;display:grid}.sync-pill{background:var(--surface-2);color:var(--ink-2);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.sync-pill.synced{background:var(--teal-soft);color:var(--teal)}.sync-pill.syncing{background:var(--teal-soft);color:var(--teal-2)}.sync-pill.offline,.sync-pill.error{background:var(--coral-soft);color:var(--warn)}.sync-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.about{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:18px 0 4px;display:flex}.about img{border-radius:12px}.hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.confirm{flex-direction:column;gap:14px;display:flex}.confirm p{color:var(--ink-2);margin:0}.check{border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.check input{width:22px;height:22px;accent-color:var(--teal);margin:0}.btn.danger-solid{background:var(--warn);color:#fff}.auth{flex-direction:column;gap:16px;display:flex}.auth-lede{color:var(--ink-2);margin:-6px 0 0}.auth .perks{border-radius:var(--radius-sm);background:var(--surface);padding:14px 16px}.auth .perks svg{color:var(--teal)}.auth-err{color:var(--warn);margin:0;font-size:14px;font-weight:600}.auth-fine{color:var(--ink-3);text-align:center;margin:0;font-size:12px}.auth-fine a,.about a{color:var(--teal);font-weight:700}.auth-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;display:flex}.auth-actions .link{min-height:44px;padding:0 4px}.auth-actions .link:disabled{color:var(--ink-3);cursor:default}.otp{grid-template-columns:repeat(6,1fr);gap:8px;display:grid;position:relative}.otp input{opacity:0;caret-color:#0000;letter-spacing:3em;z-index:1;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.otp-cell{aspect-ratio:5/6;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-family:var(--display);font-variant-numeric:tabular-nums;place-items:center;font-size:28px;font-weight:600;transition:border-color .15s,background .15s,transform .15s;display:grid}.otp-cell.filled{background:var(--surface)}.otp.focused .otp-cell.active{border-color:var(--teal);background:var(--surface);box-shadow:0 0 0 3px var(--teal-soft)}.otp.focused .otp-cell.active:empty:after{content:"";background:var(--teal);border-radius:1px;width:2px;height:26px;animation:1s steps(2,end) infinite blink}.otp.bad .otp-cell{border-color:var(--warn);animation:.35s shake}@keyframes blink{50%{opacity:0}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.auth-done{text-align:center;align-items:center;padding:10px 0 4px}.auth-done .tick{background:var(--teal);color:#fff;border-radius:50%;place-items:center;width:72px;height:72px;animation:.45s cubic-bezier(.2,1.4,.4,1) both pop;display:grid}.auth-done h3{font-size:26px}@keyframes pop{0%{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.onb-copy>*,.onb-art img{opacity:1!important;transform:none!important}.onb-track{scroll-behavior:auto}}.acct-chip .sync-pill{background:0 0;margin:0;padding:0}.plus{gap:16px;display:grid}.plus-test{background:var(--coral-soft);color:var(--coral-ink);letter-spacing:.04em;border-radius:999px;justify-self:start;margin:0;padding:4px 10px;font-size:12px;font-weight:700}.plus-why{color:var(--ink-2);margin:0;font-size:16px;line-height:1.45}.plus-perks{border-radius:var(--radius-sm);background:var(--surface);gap:10px;margin:0;padding:16px;list-style:none;display:grid}.plus-perks li{align-items:center;gap:10px;font-size:15px;display:flex}.plus-perks svg{color:var(--teal);flex:none}.plus-plans{gap:10px;display:grid}.plus-plan{text-align:left;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;gap:4px;padding:14px 44px 14px 16px;transition:border-color .15s,background .15s;display:grid;position:relative}.plus-plan.on{border-color:var(--teal);background:var(--teal-soft)}.plus-plan:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.plus-plan-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.plus-plan-name{font-size:16px;font-weight:700}.plus-plan-price{font-family:var(--display);color:var(--teal);white-space:nowrap;font-size:22px;font-weight:700}.plus-plan-price small{font-family:var(--body);color:var(--ink-2);font-size:13px;font-weight:600}.plus-plan-note{color:var(--ink-2);font-size:13px}.plus-check{color:var(--teal);position:absolute;top:50%;right:14px;transform:translateY(-50%)}.plus-badge{background:var(--coral-ink);color:#fff;letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:-10px;left:14px}.plus-fine{text-align:center;margin:-4px 0 0}.plus-signin{gap:8px;display:grid}.plus-card{gap:10px;display:grid}.plus-card .set-title{align-items:center;gap:8px;display:flex}.plus-chip{background:var(--teal);color:#fff;letter-spacing:.04em;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}button.plus-chip{font:inherit;cursor:pointer;border:0;padding:6px 12px;font-size:12px}:root{--bm-body-1:#fbf8f3;--bm-body-2:#efe7da;--bm-edge:#ddd3c3;--ease-out:cubic-bezier(.2, .8, .2, 1)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tnum{font-variant-numeric:tabular-nums}.strong{font-weight:700}.hint{margin:-4px 2px 0}.warn-text{color:var(--warn)}.num-wrap.invalid{border-color:var(--warn);background:#fff7f4}.link.inline{min-height:0;font-size:inherit;text-underline-offset:2px;padding:0;text-decoration:underline;display:inline}.field-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.grid-2.align-end{align-items:end}.switch-row{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;width:100%;min-height:56px;padding:10px 0;display:flex}.switch-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.switch-label{font-size:15px;font-weight:700}.switch-hint{color:var(--ink-3);font-size:13px;line-height:1.35}.switch{background:var(--line);border-radius:999px;flex:none;width:50px;height:30px;transition:background .2s;position:relative}.switch span{width:24px;height:24px;transition:transform .25s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000002e}.switch-row.on .switch{background:var(--teal)}.switch-row.on .switch span{transform:translate(20px)}.subcard{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:10px;padding:12px 14px 14px;display:flex}.subcard-title{font-family:var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:4px;font-size:12px;font-weight:700}.subcard-title+.switch-row{padding-top:0}.conv-warn{color:var(--warn);font-weight:600}.vial-mixed{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dsteps{animation:rise .3s var(--ease-out) both;flex-direction:column;gap:10px;display:flex}.dstep{background:var(--surface-2);border:1.5px solid var(--line);animation:rise .25s var(--ease-out) both;border-radius:14px;padding:10px 12px;position:relative}.dstep.current{border-color:var(--teal);background:var(--teal-soft)}.dstep.base{align-items:center;gap:12px;display:flex}.dstep-week{background:var(--surface);text-align:center;min-width:44px;color:var(--ink-2);border-radius:8px;flex:none;padding:4px 8px;font-size:12px;font-weight:700}.dstep-body{flex-direction:column;flex:1;display:flex}.dstep-inputs{grid-template-columns:minmax(0,.8fr) auto minmax(0,1.2fr) 44px;align-items:end;gap:8px;display:grid}.dstep-inputs .num-wrap,.dstep-inputs .num-wrap input{min-height:44px}.dstep-arrow{color:var(--ink-3);padding-bottom:11px;font-weight:700}.dstep-preview{color:var(--ink-2);margin:8px 0 0}.dstep-preview.err{color:var(--warn);font-weight:600}.dstep-now{color:var(--teal);font-weight:700}.pcard.paused{opacity:.72}.pcard.paused .pcard-dot{background:repeating-linear-gradient(135deg, var(--c) 0 4px, transparent 4px 7px)}.pcard-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pill{align-items:center;gap:4px;display:inline-flex}.pill.paused{background:var(--sand);color:#6f5a35}.pill.step{color:var(--ink-2);background:#efeae2}.pcard-notes{flex-direction:column;gap:6px;padding:0 14px 0 40px;display:flex}.pnote{border-radius:10px;align-items:center;gap:6px;margin:0;padding:7px 10px;font-size:13px;font-weight:600;display:flex}.pnote svg{flex:none}.pnote.up{background:var(--teal-soft);color:var(--teal-2)}.pnote.warn{color:#8a5a12;background:#fdf3e2}.pnote.bad{background:var(--coral-soft);color:var(--warn)}.vial.low .vial-bar span{background:var(--coral)}.hero-signin{color:var(--ink-3)!important;margin:14px 0 0!important}.next-step{opacity:.85}.next .btn.on-dark{min-height:48px}.progress-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:14px 4px;display:grid}.pc-half{align-items:center;gap:10px;min-width:0;padding:0 10px;display:flex}.pc-weight{border-left:1px solid var(--line);justify-content:space-between}.pc-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.pc-k{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:700}.pc-v{font-family:var(--display);white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:600;line-height:1.15;overflow:hidden}.pc-v small{font-family:var(--body);color:var(--ink-3);font-size:13px}.pc-s{color:var(--ink-3);font-size:13px;font-weight:600}.pc-weight .small-btn{flex:none;padding:0 12px}.ring{flex:none;place-items:center;display:grid;position:relative}.ring svg{position:absolute;inset:0}.ring-track{fill:none;stroke:var(--surface-2)}.ring-value{fill:none;stroke:var(--teal);stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease-out)}.ring-label{font-size:14px;font-weight:800;position:relative}.agenda li:not(.first){border-top-color:#0000}.agenda li:not(.first) .agenda-when .muted{padding-left:0}.mini-chip{background:var(--teal-soft);color:var(--teal);vertical-align:1px;border-radius:999px;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.nudge{border-radius:var(--radius);background:linear-gradient(120deg, var(--surface) 0%, #fbf3ea 100%);text-align:left;border:1.5px dashed #cfc5b5;align-items:center;gap:12px;width:100%;margin-top:8px;padding:14px;transition:transform .15s,border-color .15s;display:flex}.nudge:hover{border-color:var(--teal)}.nudge:active{transform:scale(.99)}.nudge-icon{background:var(--teal);color:#fff;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:grid}.nudge-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nudge-copy strong{font-size:15px}.nudge-copy span{color:var(--ink-2);font-size:13px}.log-dose-head{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.chip.static{cursor:default;background:var(--teal-soft);min-height:50px;color:var(--teal);border-color:#0000;align-items:center;display:inline-flex}.site-hint{color:var(--ink-2);align-items:center;gap:6px;margin:2px 0 0;display:flex}.site-hint svg{color:var(--coral);flex:none}.bodymap{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:10px;padding:12px;display:flex}.bodymap .segmented{align-self:center;width:200px}.bm-stage{aspect-ratio:1/2;width:min(230px,100%);margin:0 auto;animation:.3s both fade;position:relative}.bm-figure{width:100%;height:100%;position:absolute;inset:0}.bm-mark{fill:var(--bm-edge)}.bm-spine{stroke:var(--bm-edge);stroke-width:1.5px;stroke-dasharray:2 4;stroke-linecap:round}.bm-side{font-family:var(--body);fill:var(--ink-3);text-anchor:middle;font-size:11px;font-weight:800}.bm-zone{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;display:grid;position:absolute}.bm-dot{color:#fff;width:26px;height:26px;transition:transform .2s var(--ease-out), background .2s, box-shadow .2s;background:#ffffffe6;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid;box-shadow:inset 0 0 0 2px #0f5c5c59}.bm-zone:hover .bm-dot{box-shadow:inset 0 0 0 2px var(--teal);transform:scale(1.12)}.bm-zone.on .bm-dot{background:var(--teal);transform:scale(1.12);box-shadow:0 0 0 4px #0f5c5c2e,0 4px 10px -2px #0f5c5c80}.bm-zone.sug .bm-dot{background:var(--coral-soft);box-shadow:inset 0 0 0 2px var(--coral)}.bm-zone.sug:before{content:"";border:2px solid var(--coral);opacity:0;border-radius:50%;animation:1.8s ease-out infinite bm-pulse;position:absolute;inset:6px}@keyframes bm-pulse{0%{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(1.35)}}.bm-stage.heat .bm-zone{cursor:default}[data-heat="0"] .bm-dot,.bm-legend i[data-heat="0"]{box-shadow:inset 0 0 0 1.5px var(--bm-edge);background:#ffffffe6}[data-heat="1"] .bm-dot,.bm-legend i[data-heat="1"]{box-shadow:none;background:#8fb7b2}[data-heat="2"] .bm-dot,.bm-legend i[data-heat="2"]{box-shadow:none;background:#e7b35e}[data-heat="3"] .bm-dot,.bm-legend i[data-heat="3"]{box-shadow:none;background:#ff8f73}[data-heat="4"] .bm-dot,.bm-legend i[data-heat="4"]{background:var(--coral);box-shadow:0 0 0 4px #ff6b4a33}.bm-stage.heat .bm-dot{width:28px;height:28px}.bm-legend{color:var(--ink-2);flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:12px;font-weight:600;display:flex}.bm-legend span{align-items:center;gap:5px;display:inline-flex}.bm-legend i{border-radius:50%;width:10px;height:10px;display:inline-block}.chart-card{gap:12px}.chart-head .segmented{width:100%}.wchart{margin:0}.wchart svg{width:100%;height:auto;display:block;overflow:visible}.wchart figcaption{text-align:center;margin-top:4px}.wchart-guide line{stroke:var(--line);stroke-width:1px;stroke-dasharray:3 4}.wchart-guide text,.wchart-date{font-family:var(--body);fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:700}.wchart-line{fill:none;stroke:var(--teal);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw .9s var(--ease-out) .1s forwards}@keyframes draw{to{stroke-dashoffset:0}}.wchart-area{animation:.8s .3s both fade}.wchart-pt{fill:var(--surface);stroke:var(--teal);stroke-width:1.8px}.wchart-halo{fill:var(--coral);opacity:.18}.wchart-last{fill:var(--coral);stroke:#fff;stroke-width:2px}.wchart-axis{stroke:var(--line);stroke-width:1px}.wchart-shot{opacity:.85}.wchart-empty{text-align:center;padding:26px 12px}.wchart-empty p{margin:0 0 4px;font-weight:600}.wstats{grid-template-columns:repeat(4,1fr);gap:6px;margin:0;display:grid}.wstats div{background:var(--surface-2);border-radius:12px;min-width:0;padding:9px 8px}.wstats dt{color:var(--ink-3);white-space:nowrap;font-size:11px;font-weight:700}.wstats dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:2px 0 0;font-size:15px;font-weight:800}.wstats dd small{color:var(--ink-3);font-size:11px;font-weight:600}.wstats dd.down,.delta.down{color:var(--teal)}.wstats dd.up{color:var(--warn)}.delta{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:3px;font-size:13px;font-weight:700;display:inline-flex}.delta.up{color:var(--warn)}.delta-pct{opacity:.8;font-weight:600}.tab-panel{animation:rise .3s var(--ease-out) both;flex-direction:column;gap:14px;display:flex}.hist-stats{margin:0}.hist-stats div{background:var(--surface);box-shadow:var(--shadow)}.log-note{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-style:italic;overflow:hidden}.site-count{font-weight:800}.presets{flex-direction:column;gap:8px;display:flex}.presets .chips{margin:0 -16px;padding:0 16px 2px}.chip.mine{border-color:color-mix(in srgb, var(--c) 45%, var(--line))}.chip.mine:before{content:"";background:var(--c);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pcard-tags .pill{margin-top:2px}
