:root{--bg: #fff7fa;--bg-2: #ffeef3;--card: #ffffff;--text: #2a2730;--muted: #8a8493;--primary: #ff8aa8;--primary-dark: #e36b8e;--danger: #e2574c;--feed: #ff8aa8;--diaper: #7fb3ff;--growth: #7ad0a4;--custom: #c79bff;--sleep: #8a7bff;--border: #f1d9e3;--shadow: 0 2px 8px color-mix(in srgb, var(--primary) 8%, transparent);--radius: 12px;color-scheme:light}:root[data-theme=dark]{--bg: #1f1a0e;--bg-2: #2a2316;--card: #2e2719;--text: #f5e8c8;--muted: #a89878;--primary: #e8b04a;--primary-dark: #c98e1f;--danger: #ff8b5c;--feed: #ffc857;--diaper: #d4a73f;--growth: #b8943a;--custom: #c9a040;--sleep: #b8a3ff;--border: #4a3f28;--shadow: 0 2px 12px rgba(0, 0, 0, .5);color-scheme:dark}html{transition:background-color .2s ease}body,.card,.topbar,.tabbar,.sheet,.login-card,input,select,.btn,.chip,.tabs button{transition:background-color .2s ease,color .2s ease,border-color .2s ease}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none;overscroll-behavior-y:none;height:100%;overflow:hidden;position:fixed;inset:0;width:100%}body{padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.topbar{flex:0 0 auto;z-index:10;position:relative;color:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between;min-height:3.5rem;background:radial-gradient(60% 100% at 15% 0%,rgba(255,200,220,.35),transparent 70%),radial-gradient(50% 80% at 90% 50%,rgba(199,155,255,.22),transparent 70%),linear-gradient(180deg,#ff8aa8c7,#e36b8eb8);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px #fff6,0 6px 20px #e36b8e2e;overflow:visible}:root[data-theme=dark] .topbar{background:radial-gradient(60% 100% at 15% 0%,rgba(255,200,120,.18),transparent 70%),radial-gradient(50% 80% at 90% 50%,rgba(201,160,64,.22),transparent 70%),linear-gradient(180deg,#e8b04a9e,#b87c1fb3);border-bottom:1px solid rgba(255,220,150,.18);box-shadow:inset 0 1px #ffdc9647,0 6px 20px #00000073}.topbar .title{font-weight:700;font-size:19px;letter-spacing:.3px}.topbar .who{font-size:14px;opacity:.95;display:flex;align-items:center;gap:8px}.topbar a{color:#fff}.avatar{width:28px;height:28px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:#ffffff26;border:1px solid rgba(0,0,0,.04)}.avatar.sm{width:22px;height:22px;border-radius:6px}.topbar .avatar{height:3rem;width:3rem;border-radius:8px;border-color:#ffffff59;cursor:pointer}.topbar #topbarAvatar{display:inline-flex;line-height:0;-webkit-tap-highlight-color:transparent}.topbar .who{position:relative}.user-menu{position:absolute;top:calc(100% + 10px);right:0;border-radius:14px;padding:6px;min-width:140px;display:flex;flex-direction:column;gap:2px;z-index:20;animation:dropIn .15s cubic-bezier(.22,1,.36,1);background:color-mix(in srgb,var(--card) 78%,transparent);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid color-mix(in srgb,#ffffff 22%,transparent);box-shadow:0 10px 32px #00000038,inset 0 1px color-mix(in srgb,#ffffff 18%,transparent)}@keyframes dropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:40px;border:0;background:transparent;color:var(--text);font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.user-menu-item:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.user-menu-item:active{background:color-mix(in srgb,var(--primary) 22%,transparent)}.more-popover{position:fixed;right:8px;bottom:0;border-radius:14px;padding:6px;min-width:160px;display:flex;flex-direction:column;gap:2px;z-index:30;animation:popUp .18s cubic-bezier(.22,1,.36,1);background:color-mix(in srgb,var(--card) 78%,transparent);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid color-mix(in srgb,#ffffff 22%,transparent);box-shadow:0 10px 32px #00000038,inset 0 1px color-mix(in srgb,#ffffff 18%,transparent)}@keyframes popUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .user-menu,:root[data-theme=dark] .more-popover{background:color-mix(in srgb,var(--card) 70%,transparent);border-color:color-mix(in srgb,#ffffff 8%,transparent);box-shadow:0 12px 36px #0000008c,inset 0 1px color-mix(in srgb,#ffffff 6%,transparent)}@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))){.user-menu,.more-popover{background:var(--card)}}.more-item{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:44px;border:0;background:transparent;color:var(--text);font-size:15px;font-weight:500;border-radius:10px;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.more-item .ic{font-size:18px}.more-item:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.more-item.active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary)}.more-item:active{background:color-mix(in srgb,var(--primary) 22%,transparent)}.more-item.danger{color:var(--danger)}.tabbar{flex:0 0 auto;z-index:10;position:relative;display:flex;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid rgba(255,255,255,.35);background:radial-gradient(60% 100% at 80% 100%,rgba(199,155,255,.18),transparent 70%),radial-gradient(50% 80% at 10% 100%,rgba(255,200,220,.22),transparent 70%),#ffffff9e;-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);box-shadow:inset 0 1px #ffffff8c,0 -4px 18px #0000000f;overflow:hidden}:root[data-theme=dark] .tabbar{background:radial-gradient(60% 100% at 80% 100%,rgba(232,176,74,.18),transparent 70%),radial-gradient(50% 80% at 10% 100%,rgba(201,160,64,.16),transparent 70%),#2e2719b8;border-top:1px solid rgba(255,220,150,.18);box-shadow:inset 0 1px #ffdc962e,0 -4px 18px #00000080}:root[data-theme=dark] .tabbar button.active{color:#ffc857}.tabbar:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#0000,#00000014,#0000);pointer-events:none}.tabbar button{flex:1;padding:8px 4px 18px;border:0;background:transparent;font-size:14px;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:66px;transition:color .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}html.ios .tabbar button{min-height:88px;padding-bottom:34px}.tabbar button .ic{font-size:22px;line-height:1}.tabbar button.active{color:var(--primary-dark);font-weight:600}.tabbar button.active .ic{transform:scale(1.08)}.tabbar button .ic{transition:transform .2s ease}.page{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 18px;min-height:0}.login-page{min-height:100vh;background:linear-gradient(160deg,var(--bg-2) 0%,var(--bg) 60%,var(--bg) 100%);display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--card);border-radius:22px;padding:30px 26px;max-width:380px;width:100%;box-shadow:0 8px 32px #ff8aa81f,var(--shadow)}:root[data-theme=dark] .login-card{box-shadow:0 8px 32px #e8b04a1f,var(--shadow)}.brand{font-size:56px;text-align:center;margin-bottom:8px;line-height:1}.login-card h1{text-align:center;margin:0 0 6px;font-size:24px;color:var(--primary-dark);letter-spacing:.5px}.login-card .subtitle{text-align:center;color:var(--muted);font-size:14px;margin-bottom:18px}.login-form label{display:block;margin:16px 0;font-size:14px;color:var(--muted);font-weight:500}.login-form input{width:100%;margin-top:6px;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:16px;background:var(--card);color:var(--text);-webkit-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease}.login-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.login-form button{margin-top:8px}.hint{margin-top:18px;font-size:13px;color:var(--muted)}.hint summary{cursor:pointer;user-select:none}.accounts{margin-top:8px;display:grid;gap:4px}.accounts code{display:block;padding:5px 10px;background:var(--bg-2);border-radius:8px;font-size:13px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.cards.two{grid-template-columns:1fr 1fr}.card{background:var(--card);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.card.stat{display:block;padding:14px 16px;background:var(--card);border-radius:14px;box-shadow:var(--shadow);min-height:88px}.card.stat[class*=stat-]{padding:14px;border:1px solid rgba(255,255,255,.6);overflow:hidden;position:relative;min-height:110px;background-image:linear-gradient(135deg,#fff6,#ffffff1a)}.card.stat[class*=stat-]:before{content:"";position:absolute;inset:-30% -30% auto auto;width:70%;height:140%;background:radial-gradient(closest-side,currentColor,transparent 70%);opacity:.2;pointer-events:none}.card.stat .stat-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.card.stat .stat-ic{font-size:22px;line-height:1;flex:0 0 auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#ffffffb3;box-shadow:inset 0 0 0 1px #fff9}.card.stat .k{font-size:13px;font-weight:600;letter-spacing:.3px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card.stat:not([class*=stat-]) .k{color:var(--muted)}.card.stat[class*=stat-] .k{color:color-mix(in srgb,currentColor 75%,#000)}.card.stat .v{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;line-height:1.1}.card.stat:not([class*=stat-]) .v{color:var(--text);font-weight:700;font-size:22px}.card.stat[class*=stat-] .v{color:color-mix(in srgb,currentColor 80%,#000)}.card.stat .v b{font-size:28px;font-weight:800;letter-spacing:-.5px;line-height:1}.card.stat .v .u{font-size:13px;font-weight:500}.card.stat[class*=stat-] .v .u,.card.stat[class*=stat-] .v .u b{color:inherit}.card.stat:not([class*=stat-]) .v .u{color:var(--muted)}.card.stat .sub{margin-top:8px;font-size:12px;font-weight:500;line-height:1.3}.card.stat[class*=stat-] .sub{color:color-mix(in srgb,currentColor 55%,#000)}.card.stat:not([class*=stat-]) .sub{color:var(--muted)}.card.stat .sub-rel{margin-top:2px;font-size:12px;font-weight:600;line-height:1.3}.card.stat[class*=stat-] .sub-rel{color:color-mix(in srgb,currentColor 75%,#000)}.card.stat.stat-feed{background:linear-gradient(135deg,#fff5f8,#ffd9e6);color:#d6477a}.card.stat.stat-diaper{background:linear-gradient(135deg,#eef4ff,#d6e4ff);color:#3a72c8}.card.stat.stat-poop{background:linear-gradient(135deg,#faf1e4,#ecdbb9);color:#9c6e3c}.card.stat.stat-total{background:linear-gradient(135deg,#f4eaff,#e3d0ff);color:#7c52c2}:root[data-theme=dark] .card.stat.stat-feed{background:linear-gradient(135deg,#3d2c0f,#5a4520);color:#ffc857}:root[data-theme=dark] .card.stat.stat-diaper{background:linear-gradient(135deg,#1a2538,#2a4060);color:#8ec0ff}:root[data-theme=dark] .card.stat.stat-poop{background:linear-gradient(135deg,#3a2818,#5a3e22);color:#e0a455}:root[data-theme=dark] .card.stat.stat-total{background:linear-gradient(135deg,#2a1f3a,#422e5c);color:#c79bff}.quick{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:18px 0}.big-btn{aspect-ratio:1;border:0;border-radius:16px;background:var(--card);box-shadow:0 4px 14px #0000000f;font-size:17px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:transform .1s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.big-btn .ic{font-size:32px;line-height:1}.big-btn.feed{color:var(--feed)}.big-btn.diaper{color:var(--diaper)}.big-btn.growth{color:var(--growth)}.big-btn:active{transform:scale(.96);box-shadow:0 2px 8px #0000000a}.section-title{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:16px;margin:10px 0;letter-spacing:.2px}.list{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:10px}.timeline{list-style:none;padding:6px 0 0;margin:0 0 14px;position:relative}.timeline:before{content:"";position:absolute;left:7px;top:14px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--border),transparent)}.t-item{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px}.t-dot{flex:0 0 auto;width:14px;height:14px;border-radius:50%;background:var(--card);box-shadow:inset 0 0 0 3px var(--muted)}.t-feed .t-dot{box-shadow:inset 0 0 0 3px #e36b8e;background:#fff5f8}.t-pee .t-dot{box-shadow:inset 0 0 0 3px #4a83d8;background:#f0f6ff}.t-poop .t-dot{box-shadow:inset 0 0 0 3px #a87a48;background:#fbf3eb}.t-both .t-dot{box-shadow:inset 0 0 0 3px #8a5fcf;background:#f3eaff}.t-growth .t-dot{box-shadow:inset 0 0 0 3px #3da276;background:#effaf4}:root[data-theme=dark] .t-feed .t-dot{box-shadow:inset 0 0 0 3px #ffc857;background:#3d2c0f}:root[data-theme=dark] .t-pee .t-dot{box-shadow:inset 0 0 0 3px #e8b04a;background:#2e2715}:root[data-theme=dark] .t-poop .t-dot{box-shadow:inset 0 0 0 3px #d4a73f;background:#2e2515}:root[data-theme=dark] .t-both .t-dot{box-shadow:inset 0 0 0 3px #c9a040;background:#2a2010}:root[data-theme=dark] .t-growth .t-dot{box-shadow:inset 0 0 0 3px #b8943a;background:#2e2515}.t-time{color:var(--muted);font-size:12px;font-weight:500;min-width:64px;flex:0 0 auto}.t-text{flex:1;font-weight:500}.list .row{display:flex;align-items:center;gap:12px;background:var(--card);padding:14px 16px;border-radius:14px;box-shadow:0 2px 8px #0000000a;font-size:15px;transition:transform .1s ease;min-height:56px}.list .row.overdue{border-left:3px solid var(--danger)}.list .row .title{flex:1;font-weight:500}.list .row .meta{color:var(--text);font-size:.9rem;font-weight:400}.list .dp-row .text{flex:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0}.list .dp-row .meta-note{color:#3b82f6;font-size:.9rem}.list .dp-row .meta-note:before{content:" · ";color:var(--muted)}@media (max-width: 600px){.list .dp-row .text{flex-direction:column;align-items:flex-start;gap:2px}.list .dp-row .meta-note:before{content:""}.list .dp-row .meta-note{font-size:.85rem;opacity:.72}}.list .small{font-size:13px;margin-left:4px}.list .rem-row{padding-left:6px;padding-right:6px}.list .rem-row .small{display:block;margin-left:0;margin-top:2px;opacity:.6}.list .day-sep{display:flex;align-items:center;justify-content:center;margin:4px 0 -4px;font-size:12px;color:var(--muted);background:transparent;box-shadow:none;padding:0;min-height:0}.list .day-sep:before,.list .day-sep:after{content:"";flex:1;height:1px;background:var(--border);opacity:.5}.list .day-sep span{padding:0 10px;flex:0 0 auto;font-weight:500}.list .media-li{background:var(--card);border-radius:0 0 14px 14px;margin:-10px 0 0;padding:0 16px 12px;box-shadow:0 2px 8px #0000000a}.feed-meta{display:flex;flex-direction:column;gap:5px;line-height:1.2}.feed-meta .feed-gap{font-size:.625rem;color:var(--muted);opacity:.75;font-weight:400}.badge.supp{background:color-mix(in srgb,#ff8a3d 18%,var(--card));color:#b54a00;border-color:#ffd0a8}.kind-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.kind-chips .kind-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 6px;border-radius:12px;background:var(--card);border:1px solid var(--border);font-size:13px;line-height:1.2;min-height:64px;cursor:pointer;user-select:none}.kind-chips .kind-chip .ic{font-size:22px;margin-bottom:4px}.kind-chips .kind-chip .nm{color:var(--fg);font-weight:500}.kind-chips .kind-chip.active{background:color-mix(in srgb,var(--primary) 14%,var(--card));border-color:var(--primary)}.seg{display:inline-flex;background:var(--bg-2);border-radius:10px;padding:3px;gap:2px}.seg-btn{padding:7px 14px;border:0;background:transparent;border-radius:8px;font-size:14px;color:var(--muted);cursor:pointer}.seg-btn.active{background:var(--card);color:var(--fg);box-shadow:0 1px 3px #00000014;font-weight:600}.pill-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pill-chips .pill-chip{display:flex;align-items:baseline;justify-content:center;gap:4px;padding:18px 0;min-height:64px;border-radius:14px;background:var(--card);border:1.5px solid var(--border);cursor:pointer;user-select:none;transition:transform .08s ease,border-color .12s ease,background .12s ease}.pill-chips .pill-chip .num{font-size:26px;font-weight:700;color:var(--fg);line-height:1}.pill-chips .pill-chip .unit{font-size:13px;color:var(--muted);font-weight:500}.pill-chips .pill-chip:active{transform:scale(.96)}.pill-chips .pill-chip.active{background:color-mix(in srgb,var(--primary) 14%,var(--card));border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.pill-chips .pill-chip.active .num{color:var(--primary)}.pill-chips .pill-chip.active .unit{color:var(--primary);opacity:.75}.ml-stepper{display:flex;align-items:center;gap:8px;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:12px}.ml-stepper .step-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--bg-2);font-size:22px;font-weight:600;cursor:pointer;flex:0 0 auto}.ml-stepper .step-btn:active{transform:scale(.95)}.ml-stepper #mlInput{flex:1 1 auto;text-align:center;font-size:22px;font-weight:600;border:0;background:transparent;-moz-appearance:textfield;appearance:textfield}.ml-stepper #mlInput::-webkit-outer-spin-button,.ml-stepper #mlInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ml-stepper .ml-unit{color:var(--muted);font-size:14px;padding-right:4px}.ml-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.ml-presets .ml-preset{display:flex;align-items:baseline;justify-content:center;gap:4px;padding:16px 0;min-height:56px;border-radius:12px;background:var(--card);border:1.5px solid var(--border);font-size:18px;font-weight:600;color:var(--fg);cursor:pointer;user-select:none;transition:transform .08s ease,border-color .12s ease,background .12s ease}.ml-presets .ml-preset .num{font-size:20px;font-weight:700;line-height:1}.ml-presets .ml-preset:active{transform:scale(.96)}.ml-presets .ml-preset.active{background:color-mix(in srgb,var(--primary) 14%,var(--card));border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary)}.ml-presets .ml-bless{background:linear-gradient(135deg,#ffd1dc,#ffb3c6);border-color:#ff8aa8;color:#b8336a;position:relative;overflow:hidden}.ml-presets .ml-bless .num{font-size:22px}.ml-presets .ml-bless .ic{font-size:14px}.ml-presets .ml-bless:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.6),transparent 60%);pointer-events:none}.ml-presets .ml-bless.blessed{animation:bless-pop .6s ease}@keyframes bless-pop{0%{transform:scale(1)}30%{transform:scale(1.15);box-shadow:0 0 0 8px #ff8aa866}to{transform:scale(1)}}.sleep-timer{display:flex;flex-direction:column;padding:18px 16px 14px;margin-bottom:14px;background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--sleep) 22%,transparent),transparent 60%),var(--card)}.sleep-timer-face{display:flex;align-items:center;gap:16px}.sleep-timer-clock{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sleep-timer-ic{font-size:26px;line-height:1;margin-bottom:2px}.sleep-timer-time{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:30px;font-weight:700;letter-spacing:1px;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}.sleep-timer-sub{font-size:12px;color:var(--muted);margin-top:4px}.sleep-timer-btn{flex:0 0 auto;width:64px;height:64px;border-radius:50%;border:0;background:var(--sleep);color:#fff;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--sleep) 40%,transparent);transition:transform .1s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.sleep-timer-btn.running{background:var(--danger);box-shadow:0 6px 16px color-mix(in srgb,var(--danger) 40%,transparent)}.sleep-timer-btn:active{transform:scale(.94)}.list .sleep-row{padding-left:6px;padding-right:6px}.list .sleep-row .sleep-row-avatar{flex:0 0 auto}.list .sleep-row .sleep-row-avatar .avatar{width:36px;height:36px;border-radius:10px}.list .sleep-row .sleep-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.list .sleep-row .sleep-row-body .badge.sleep{align-self:flex-start}.list .sleep-row .sleep-row-body .sleep-meta{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.list .sleep-row .sleep-actions{flex:0 0 auto;display:flex;flex-direction:row;gap:6px;align-items:center;justify-content:flex-end}.list .sleep-row .sleep-actions .btn{padding:6px 12px;font-size:13px}.list .sleep-row .sleep-meta .meta-note{color:#3b82f6;font-size:.85rem}@media (max-width: 600px){.list .sleep-row{flex-wrap:wrap;gap:4px 8px;padding-left:4px;padding-right:4px}.list .sleep-row .badge.sleep{padding:2px 7px;font-size:11px}.list .sleep-row .sleep-row-avatar .avatar{width:32px;height:32px;border-radius:9px}.list .sleep-row .sleep-row-body,.list .sleep-row .sleep-row-body .sleep-meta{gap:2px}.list .sleep-row .sleep-meta .meta{font-size:.85rem;line-height:1.35}.list .sleep-row .sleep-meta .meta-note{font-size:.8rem;opacity:.72}.list .sleep-row .sleep-actions{gap:6px}.list .sleep-row .sleep-actions .btn{padding:5px 10px;font-size:12px}}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.2px}.badge.feed{background:#ff8aa826;color:var(--feed)}.badge.diaper{background:#7fb3ff26;color:var(--diaper)}.badge.growth{background:#7ad0a426;color:var(--growth)}.badge.custom{background:#c79bff26;color:var(--custom)}.badge.sleep{background:#8a7bff26;color:var(--sleep)}.badge.pee{background:#7fb3ff2e;color:var(--diaper)}.badge.poop{background:#926e4b2e;color:#8a6a48}.badge.both{background:#c79bff2e;color:var(--custom)}:root[data-theme=dark] .badge.poop{background:#d4a73f2e;color:#d4a73f}:root[data-theme=dark] .badge.feed{background:#e8b04a2e;color:var(--feed)}:root[data-theme=dark] .badge.diaper,:root[data-theme=dark] .badge.pee{background:#e8b04a2e;color:var(--diaper)}:root[data-theme=dark] .badge.growth{background:#b8943a2e;color:var(--growth)}:root[data-theme=dark] .badge.custom,:root[data-theme=dark] .badge.both{background:#c9a0402e;color:var(--custom)}:root[data-theme=dark] .badge.sleep{background:#b8943a33;color:var(--sleep)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;min-height:44px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text);font-size:15px;font-weight:500;cursor:pointer;transition:background-color .15s ease,transform .1s ease,border-color .15s ease;-webkit-tap-highlight-color:transparent;user-select:none}.btn:hover{background:var(--bg-2)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn.block{display:flex;width:100%;padding:14px;font-weight:600;font-size:16px;min-height:52px}.btn.link{background:transparent;border:0;padding:6px 10px;color:var(--muted);min-height:0}.btn.danger{color:var(--danger)}.btn.subtle{background:color-mix(in srgb,var(--text) 6%,transparent);border:1px solid color-mix(in srgb,var(--text) 8%,transparent);color:var(--text);padding:6px 12px;min-height:32px;font-size:13px;font-weight:500;border-radius:999px}.btn.subtle:hover{background:color-mix(in srgb,var(--text) 12%,transparent);border-color:color-mix(in srgb,var(--text) 14%,transparent)}.btn.subtle.danger{color:var(--danger)}.btn.subtle.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}input[type=text],input[type=number],input[type=time],select{width:100%;padding:12px 14px;min-height:44px;border:1.5px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);font-size:16px;-webkit-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}label{display:block;margin:12px 0 6px;font-size:14px;color:var(--text);font-weight:500}label.inline{display:inline-flex;align-items:center;gap:8px;font-size:15px;color:var(--text)}label.inline input{width:auto;min-height:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row{display:flex;align-items:center;gap:10px}.row.gap{gap:12px}.row.right{justify-content:flex-end}.row.column{flex-direction:column;align-items:stretch}.spacer{flex:1}.hidden{display:none!important}.muted{color:var(--muted);font-size:14px}.muted.small{font-size:13px}.center{text-align:center}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;max-height:180px;overflow-y:auto;padding:2px}.chip{padding:9px 14px;min-height:38px;border:1.5px solid var(--border);border-radius:999px;background:var(--card);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.chip:active{transform:scale(.96)}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 25%,transparent)}.avatar-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px;max-height:200px;overflow-y:auto}.avatar-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;border:1.5px solid var(--border);border-radius:12px;background:var(--card);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s ease}.avatar-chip:active{transform:scale(.96)}.avatar-chip.active{border-color:var(--primary);background:var(--bg-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.avatar-chip .avatar{width:40px;height:40px;border-radius:8px}.avatar-chip .small{font-size:11px;line-height:1}.tabs{display:flex;gap:6px;margin:10px 0}.tabs button{flex:1;padding:11px 0;min-height:44px;border:1.5px solid var(--border);background:var(--card);color:var(--text);border-radius:12px;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.tabs button:active{transform:scale(.97)}.tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 25%,transparent)}.sheet-wrap{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet-back{position:absolute;inset:0;background:#00000073;animation:fade .2s ease-out}.sheet{position:relative;width:100%;max-width:500px;background:var(--card);border-radius:20px 20px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));animation:slide .28s cubic-bezier(.22,1,.36,1);max-height:88vh;overflow-y:auto;box-shadow:0 -8px 32px #0000001f}.sheet:before{content:"";display:block;width:36px;height:4px;background:var(--border);border-radius:2px;margin:-8px auto 14px}.sheet h3{margin:0 0 14px;font-size:19px;font-weight:700;letter-spacing:.3px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}.chart-wrap{background:var(--card);border-radius:14px;padding:12px 2px;box-shadow:var(--shadow);height:300px;margin-bottom:16px;margin-left:-12px;margin-right:-12px}.toast{position:fixed;bottom:96px;left:50%;transform:translate(-50%);background:#000000e0;color:#fff;padding:12px 20px;border-radius:999px;font-size:15px;font-weight:500;z-index:100;animation:toastIn .25s cubic-bezier(.22,1,.36,1);max-width:90%;box-shadow:0 4px 16px #0003}.toast.error{background:var(--danger)}.toast.info{background:#444}.toast.hidden{display:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}.media-grid .thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--bg-2);cursor:pointer;border:0;padding:0}.media-grid .thumb img{width:100%;height:100%;object-fit:cover;display:block}.media-grid .thumb.audio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--primary-dark);font-size:13px;padding:6px}.media-grid .thumb.audio .ic{font-size:24px}.media-grid .thumb .x{position:absolute;top:4px;right:4px;background:#0000008c;color:#fff;border:0;border-radius:999px;width:22px;height:22px;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.audio-player{width:100%;margin-top:6px}.rec-overlay{position:fixed;inset:0;z-index:60;background:#0000008c;display:flex;align-items:center;justify-content:center}.rec-card{background:var(--card);border-radius:18px;padding:24px 28px;min-width:240px;text-align:center;color:var(--text)}.rec-card .mic{font-size:44px}.rec-card .timer{font-size:36px;font-weight:700;margin:8px 0;font-variant-numeric:tabular-nums}.rec-bar{height:6px;background:var(--bg-2);border-radius:999px;overflow:hidden;margin:8px 0}.rec-bar>div{height:100%;background:var(--primary);transition:width .1s linear}.rec-tip{color:var(--muted);font-size:13px;margin-top:8px}.rec-actions{margin-top:16px;display:flex;gap:10px;justify-content:center}.viewer{position:fixed;inset:0;z-index:70;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:16px}.viewer img{max-width:100%;max-height:100%;object-fit:contain}.viewer .close{position:absolute;top:16px;right:16px;background:#ffffff2e;color:#fff;border:0;width:36px;height:36px;border-radius:999px;font-size:18px;cursor:pointer}.media-actions{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.media-actions .btn{flex:1;min-width:0;text-align:center;background:var(--bg-2);border-color:transparent}.media-actions .btn:active,.media-actions .btn.has{background:var(--primary);color:#fff}.attach-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;max-height:120px;overflow-y:auto}.attach-list .att{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;background:var(--bg-2);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted)}.attach-list .att img{width:100%;height:100%;object-fit:cover}.attach-list .att .x{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:999px;background:#0000008c;color:#fff;border:0;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center}.settings-group{background:var(--card);border-radius:14px;padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow)}.settings-group h3{margin:0 0 12px;font-size:15px;color:var(--muted);font-weight:600;letter-spacing:.3px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-size:15px;color:var(--text);min-height:48px}.settings-row+.settings-row{border-top:1px solid var(--border)}.theme-switch{display:inline-flex;background:var(--bg-2);border-radius:999px;padding:3px;border:1px solid var(--border)}.theme-switch button{border:0;background:transparent;padding:7px 16px;min-height:34px;border-radius:999px;font-size:14px;cursor:pointer;color:var(--muted);transition:all .15s ease;-webkit-tap-highlight-color:transparent}.theme-switch button.active{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 2px 6px color-mix(in srgb,var(--primary) 25%,transparent)}.tone-list{display:grid;gap:8px}.tone-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--bg-2);cursor:pointer;font-size:15px;color:var(--text);min-height:56px;transition:all .15s ease}.tone-row:hover{background:var(--card)}.tone-row.active{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.tone-row .icon{font-size:20px}.tone-row .name{flex:1;font-weight:500}.tone-row .meta{color:var(--muted);font-size:13px}.tone-row .play{width:36px;height:36px;border-radius:999px;border:1.5px solid var(--border);background:var(--card);color:var(--primary-dark);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:all .15s ease}.tone-row .play:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.time-picker{background:var(--bg-2);border-radius:14px;padding:14px;margin:14px 0}.time-picker .time-display{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary-dark);text-align:center;margin-bottom:12px;letter-spacing:.5px}.time-picker .time-adjust{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:10px}.time-picker .time-adjust button{border:1.5px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:10px 0;min-height:40px;font-size:14px;font-weight:500;cursor:pointer;font-variant-numeric:tabular-nums;transition:all .1s ease;-webkit-tap-highlight-color:transparent}.time-picker .time-adjust button:nth-child(n+4){color:var(--primary-dark);border-color:var(--primary)}.time-picker .time-adjust button:active{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(.95)}.time-picker .time-actions{display:flex;gap:8px;align-items:center}.time-picker .time-actions input[type=datetime-local]{flex:1;padding:10px 12px;min-height:42px;border:1.5px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:15px;min-width:0}.time-picker .time-actions .btn{padding:10px 16px;min-height:42px;font-size:14px;white-space:nowrap}@media (max-width: 360px){.time-picker .time-adjust{grid-template-columns:repeat(3,1fr)}}.today-page{padding:6px 0 32px}.today-header{display:flex;align-items:baseline;gap:10px;margin:4px 4px 14px}.today-header h2{margin:0;font-size:20px;font-weight:600}.today-header .date{color:var(--muted);font-size:14px}.today-empty{display:flex;align-items:center;gap:14px;padding:22px 18px;background:var(--bg-2);border:1px dashed var(--border);box-shadow:none}.today-empty-ic{font-size:36px;line-height:1}.today-empty-txt .t1{font-size:16px;font-weight:600}.today-empty-txt .t2{font-size:13px;margin-top:4px}.today-current{background:var(--card);border-radius:16px;padding:8px 8px 12px;box-shadow:var(--shadow);overflow:hidden}.today-current-frame{width:100%;aspect-ratio:1 / 1;border-radius:12px;overflow:hidden;background:var(--bg-2)}.today-current-frame img{width:100%;height:100%;display:block;object-fit:cover;background:var(--bg-2)}.today-meta{display:flex;align-items:center;gap:8px;margin-top:10px;padding:0 4px;color:var(--muted);font-size:13px}.today-pick-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.today-pick-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:80px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:15px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,background-color .15s ease}.today-pick-btn:active{transform:scale(.97)}.today-pick-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.today-pick-btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.today-preview{margin-top:16px;background:var(--card);border-radius:16px;padding:8px 8px 12px;box-shadow:var(--shadow);overflow:hidden}.today-preview img{width:100%;display:block;border-radius:12px;background:var(--bg-2);aspect-ratio:4 / 3;object-fit:contain}.today-preview-meta{display:grid;gap:4px;margin-top:10px;padding:0 4px;font-size:13px}.today-preview-meta .row{display:flex;align-items:center;justify-content:space-between;gap:8px}.today-preview-meta .k{color:var(--muted)}.today-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding:0 4px}.today-actions .btn{font-size:15px;padding:12px;min-height:44px}.today-actions .btn:disabled{opacity:.6}.today-overlay{position:fixed;inset:0;z-index:200;background:#00000073;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.today-overlay-inner{display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;font-size:15px}.today-overlay .spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
