:root{--bg:#f7f3ee;--card:#fff;--fill:#efe9e2;--text:#2a2622;--muted:#7a716a;--line:#e6ded5;--accent:#c2603f;--accent-text:#fff;--breast:#d9875f;--formula:#6f9fc4;--nursing:#6b8f5e;--warn:#9a6a00;--danger:#b3261e;--bar:#f7f3eed1;--shadow:0 1px 2px #3c28140f, 0 4px 16px #3c28140d;--spring:cubic-bezier(.32, .72, 0, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1c1a18;--card:#282522;--fill:#34302c;--text:#f1ebe4;--muted:#a59b92;--line:#3a3531;--accent:#e07c58;--accent-text:#1c1a18;--breast:#e6996f;--formula:#86b4d6;--nursing:#8fb381;--warn:#e3b341;--danger:#f2827a;--bar:#1c1a18d1;--shadow:none}}*{box-sizing:border-box}html{touch-action:manipulation;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0;font:16px/1.4 -apple-system,system-ui,sans-serif}#app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}main{padding:4px 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:12px;display:flex}.center{text-align:center;justify-content:center;align-items:center}.login{justify-content:flex-start;padding-top:15vh}.login img{box-shadow:var(--shadow);border-radius:18px}h1,h2,h3{margin:0 0 8px}h3 small{color:var(--muted);font-weight:400}header{z-index:1;background:var(--bar);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);padding:calc(10px + env(safe-area-inset-top)) 16px 10px;flex-direction:column;gap:10px;display:flex;position:sticky;top:0}.titlebar{justify-content:space-between;align-items:center;display:flex}.titlebar h1{letter-spacing:-.02em;margin:0;font-size:32px}.dot{background:var(--nursing);border-radius:50%;flex:none;width:10px;height:10px;transition:background .3s}.dot.wait{background:var(--warn);animation:1.2s ease-in-out infinite pulse}.dot.bad{background:var(--danger)}.tabbar{z-index:1;background:var(--bar);border-top:.5px solid var(--line);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:120px;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:48px;padding:4px 0;font-size:11px;font-weight:500;display:flex}.tabbar button.on{color:var(--accent);background:0 0}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px;transition:transform .25s var(--spring)}.tabbar button.on .icon{transform:scale(1.08)}button,input,select{font:inherit;color:inherit;background:var(--card);border:none;border-radius:14px;min-height:48px;padding:8px 14px}input,select{background:var(--fill);width:100%;font-size:16px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-2px}button{cursor:pointer;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;transition:transform .15s var(--spring), opacity .15s, background .2s;font-weight:500}button:active:not(:disabled){opacity:.85;transform:scale(.96)}button.primary{background:var(--accent);color:var(--accent-text);font-weight:600}button:disabled{opacity:.4}button.link{box-shadow:none;color:var(--muted);background:0 0;border:none;align-self:center;font-weight:400}button.danger{color:var(--danger)}button small{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600;display:block}button.suggest{outline:2px solid var(--accent);outline-offset:-2px}label,.field,.stepper{color:var(--muted);flex-direction:column;flex:1;gap:6px;min-width:0;font-size:14px;display:flex}form{flex-direction:column;gap:14px;width:100%;display:flex}.seg{grid-template-columns:repeat(var(--n), 1fr);background:var(--fill);border-radius:12px;padding:3px;display:grid;position:relative}.seg:before{content:"";width:calc((100% - 6px) / var(--n));background:var(--card);transform:translateX(calc(var(--i) * 100%));transition:transform .3s var(--spring);border-radius:10px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 4px #0000001f}.seg button{box-shadow:none;min-height:36px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:10px;padding:4px 8px;font-size:14px;position:relative;overflow:hidden}.seg button.on{color:var(--text);font-weight:600}.seg button:active:not(:disabled){transform:none}.stepper>div{background:var(--fill);border-radius:14px;align-items:center;display:flex}.stepper input{text-align:center;-moz-appearance:textfield;background:0 0;padding:8px 0;font-weight:600}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper button{width:44px;box-shadow:none;color:var(--accent);background:0 0;flex:none;padding:0;font-size:22px}.row{gap:10px;display:flex}.row>*{flex:1}.card{background:var(--card);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:10px;padding:16px;display:flex}.card small{color:var(--muted)}.big{align-items:center;padding:22px}.big strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:52px;font-weight:700;line-height:1.05}.stats{grid-template-columns:repeat(3,1fr);gap:14px 8px;display:grid}.stats div{flex-direction:column;display:flex}.stats strong{font-variant-numeric:tabular-nums;font-size:20px}.session{animation:rise .35s var(--spring)}.session .stats{text-align:center;grid-template-columns:1fr 1fr}.session .stats strong{font-size:36px;font-weight:600;transition:color .3s}.session .stats small:before{content:"";background:var(--line);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.running strong{color:var(--accent)}.running small:before{animation:1.4s ease-in-out infinite pulse;background:var(--accent)!important}.install{border:1.5px dashed var(--line);box-shadow:none}.warn{color:var(--warn);margin:0}.next{margin-top:6px;font-weight:500;color:var(--text)!important}.next.late{color:var(--warn)!important}.hint{color:var(--muted);margin-top:-6px}.dayhead{justify-content:space-between;align-items:center;gap:8px;display:flex}.pct{background:var(--fill);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;align-self:center;margin-left:auto;padding:2px 8px;font-size:13px;font-weight:600}.pct.met{background:color-mix(in srgb, var(--nursing) 22%, transparent);color:var(--nursing)}.progress{background:var(--fill);border-radius:4px;height:8px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--breast), var(--formula));height:100%;transition:width .6s var(--spring);border-radius:4px;display:block}.error{color:var(--danger);margin:0}.list{margin:0 -16px;padding:0;list-style:none}.list button{text-align:left;width:100%;box-shadow:none;border-top:.5px solid var(--line);background:0 0;border-radius:0;gap:12px;padding:12px 16px;font-weight:400;display:flex}.list button:active:not(:disabled){background:var(--fill);opacity:1;transform:none}.list li:first-child button{border-top:none}.list span:first-child{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.sheet{z-index:2;background:#00000059;justify-content:center;align-items:flex-end;transition:background .22s;animation:.25s ease-out fade;display:flex;position:fixed;inset:0}.sheet.closing{background:0 0}.panel{background:var(--bg);width:100%;max-width:560px;padding:0 16px calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;max-height:92dvh;animation:slide-up .38s var(--spring);border-radius:22px 22px 0 0;transition:transform .22s ease-in;overflow:auto}.sheet.closing .panel{transform:translateY(100%)}.grab{touch-action:none;cursor:grab;justify-content:center;padding:8px 0 14px;display:flex}.grab span{background:var(--line);border-radius:3px;width:40px;height:5px}.actions{text-align:center;flex-direction:column;gap:10px;display:flex}.actions p{color:var(--muted);margin:0 0 6px}.actions .destructive{color:var(--danger);font-weight:600}.view{animation:view-in .28s var(--spring)}svg{width:100%;height:auto}svg .axis{fill:var(--muted);font-size:10px}svg rect{transform-origin:bottom;transform-box:fill-box;animation:grow .5s var(--spring) backwards}.breast{fill:var(--breast);background:var(--breast)}.formula{fill:var(--formula);background:var(--formula)}polyline.nursing{fill:none;stroke:var(--nursing);stroke-width:2px}.daynav{justify-content:space-between;align-items:center;display:flex}.daynav button{background:var(--fill);width:44px;box-shadow:none;padding:0;font-size:24px}svg .grid{stroke:var(--line);stroke-width:.5px}svg .target{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3}.nursing-strip{fill:var(--nursing)}.legend i.target{border-top:2px dashed var(--accent);background:0 0;border-radius:0;height:0}p.dayhead{color:var(--muted);margin:0;font-size:14px}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;font-size:13px;display:flex}.legend i{border-radius:3px;width:10px;height:10px;margin-right:4px;display:inline-block}.legend i.nursing{background:var(--nursing);height:3px}@keyframes fade{0%{background:0 0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}}@keyframes rise{0%{opacity:0;transform:scale(.97)}}@keyframes grow{0%{transform:scaleY(0)}}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){*,:before{transition:none!important;animation:none!important}}
