:root{--bg:#FBF7FE;--ink:#4A3F55;--muted:#A79BB0;--line:#EEE6F8;--card:#FFFFFF;--lav:#B9A6E8;--lav-l:#EFE7FB;--pink:#F4A0C2;--pink-l:#FDE9F1;--mint:#7FD3BC;--mint-l:#E2F6F0;--yellow:#FBC94C;--yellow-l:#FFF3D6;--radius:26px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);font-family:Nunito,sans-serif;color:var(--ink)}h1,h2,h3,.display{font-family:Fredoka,sans-serif;font-weight:600}.screen{max-width:420px;margin:0 auto;min-height:100dvh;padding:16px 16px 28px;display:flex;flex-direction:column;gap:12px;position:relative}.topbar{display:flex;align-items:center;gap:10px;padding-left:46px;min-height:38px}.avatar{width:38px;height:38px;border-radius:14px;background:linear-gradient(145deg,var(--lav),var(--pink));color:#fff;display:flex;align-items:center;justify-content:center;font-family:Fredoka,sans-serif;font-weight:600;font-size:13px}.whoami .name{font-family:Fredoka,sans-serif;font-weight:600;font-size:16px}.whoami .tenant{font-size:12px;color:var(--muted);font-weight:600}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:14px 16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-label{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:4px}.stat-val{font-family:Fredoka,sans-serif;font-weight:600;font-size:18px}.btn-primary{background:linear-gradient(135deg,var(--lav),var(--pink));color:#fff;border:none;border-radius:18px;height:46px;font-family:Fredoka,sans-serif;font-weight:600;font-size:14px;width:100%}.btn-ghost{background:#fff;border:2px solid var(--line);border-radius:18px;height:42px;font-size:13px;color:var(--ink);width:100%;font-family:Nunito,sans-serif;font-weight:700}.action-row{display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:12px;cursor:pointer}.action-row .ic{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px}.action-row .txt{font-family:Fredoka,sans-serif;font-weight:600;font-size:14px}.action-row .meta{margin-left:auto;font-size:12px;color:var(--muted);font-weight:700}.timeline-item{font-size:12px;color:var(--muted);border-left:3px solid var(--lav-l);padding:5px 0 5px 10px;margin-left:4px;font-weight:600}.pill-toggle{display:flex;gap:8px;margin-bottom:12px}.pill-opt{flex:1;text-align:center;padding:8px;border-radius:14px;border:2px solid var(--line);font-size:13px;font-weight:700;background:#fff;cursor:pointer}.pill-opt.sel{background:linear-gradient(135deg,var(--lav),var(--pink));border-color:var(--pink);color:#fff}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip{padding:7px 13px;border-radius:12px;border:2px solid var(--line);font-size:12px;font-weight:700;background:#fff;color:var(--ink);cursor:pointer}.chip.sel{background:linear-gradient(135deg,var(--lav),var(--pink));border-color:var(--pink);color:#fff}.field-label{font-size:11px;color:var(--muted);font-weight:700;margin:0 0 4px}.field-input{width:100%;border:2px solid var(--line);border-radius:14px;padding:10px 12px;font-size:14px;font-family:Nunito,sans-serif;margin-bottom:10px;background:#fff;color:var(--ink)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3f5559;display:flex;align-items:flex-end;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}.sheet-overlay.open{opacity:1;pointer-events:auto}.sheet{background:var(--bg);border-radius:22px 22px 0 0;padding:18px;width:100%;max-width:420px;transform:translateY(100%);transition:transform .25s ease}.sheet-overlay.open .sheet{transform:translateY(0)}.sheet-handle{width:36px;height:4px;background:var(--line);border-radius:3px;margin:0 auto 14px}.sheet-title{font-family:Fredoka,sans-serif;font-weight:600;font-size:16px;margin-bottom:14px}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%) translateY(10px);background:var(--ink);color:#fff;font-size:12px;font-weight:700;padding:9px 18px;border-radius:20px;opacity:0;transition:opacity .2s,transform .2s;z-index:60;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.drawer-btn{position:fixed;top:calc(14px + env(safe-area-inset-top));left:max(16px,calc(50% - 194px));z-index:45;width:38px;height:38px;border:none;border-radius:14px;background:linear-gradient(145deg,var(--lav),var(--pink));color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #4a3f552e}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3f5559;opacity:0;pointer-events:none;transition:opacity .2s;z-index:70}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer-panel{position:absolute;top:0;left:0;height:100%;width:78%;max-width:300px;background:var(--bg);box-shadow:2px 0 16px #4a3f5533;padding:calc(16px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:4px;transform:translate(-100%);transition:transform .25s ease;overflow-y:auto}.drawer-overlay.open .drawer-panel{transform:translate(0)}.drawer-head{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}.drawer-link{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;text-decoration:none;color:var(--ink);font-family:Fredoka,sans-serif;font-weight:600;font-size:15px}.drawer-link .ic{font-size:18px;width:24px;text-align:center}.drawer-link.active{background:var(--lav-l);color:var(--lav)}.drawer-logout{margin-top:auto;display:flex;align-items:center;gap:12px;padding:14px 12px 6px;border:none;border-top:1px solid var(--line);background:none;cursor:pointer;font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;color:#c25e7a;text-align:left}.drawer-logout .ic{font-size:18px;width:24px;text-align:center}.speed-dial{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;pointer-events:none}.sd-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#4a3f5557;opacity:0;transition:opacity .22s;pointer-events:none}.speed-dial.open .sd-scrim{opacity:1;pointer-events:auto}.sd-fab{position:fixed;right:max(16px,calc(50% - 194px));bottom:calc(20px + env(safe-area-inset-bottom));width:48px;height:48px;border-radius:17px;border:none;background:linear-gradient(135deg,var(--lav),var(--pink));color:#fff;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 9px 20px -7px #b478b4b3;cursor:pointer;pointer-events:auto;z-index:56}.sd-plus{display:block;transition:transform .25s}.speed-dial.open .sd-plus{transform:rotate(45deg)}.sd-bubble{position:fixed;right:max(16px,calc(50% - 194px));bottom:calc(80px + env(safe-area-inset-bottom));width:min(288px,84vw);background:#fff;border:2px solid var(--line);border-radius:40px;padding:20px 16px;box-shadow:0 24px 48px -18px #4a3f5580;transform-origin:bottom right;transform:translateY(10px) scale(.9);opacity:0;transition:opacity .22s ease,transform .22s ease;pointer-events:none}.speed-dial.open .sd-bubble{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.sd-items{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 12px}.sd-item{width:70px;display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;cursor:pointer;opacity:0;transform:translateY(9px);transition:opacity .2s,transform .2s}.speed-dial.open .sd-item{opacity:1;transform:translateY(0)}.speed-dial.open .sd-item:nth-child(1){transition-delay:.04s}.speed-dial.open .sd-item:nth-child(2){transition-delay:.08s}.speed-dial.open .sd-item:nth-child(3){transition-delay:.12s}.speed-dial.open .sd-item:nth-child(4){transition-delay:.16s}.speed-dial.open .sd-item:nth-child(5){transition-delay:.2s}.sd-ic{width:52px;height:52px;border-radius:19px;display:flex;align-items:center;justify-content:center;font-size:23px;box-shadow:0 7px 16px -6px #4a3f556b}.sd-lab{font-size:11px;font-weight:800;color:var(--ink);line-height:1.15;text-align:center}.sd-ic.feed{background:var(--pink-l)}.sd-ic.sleep{background:var(--lav-l)}.sd-ic.diaper{background:var(--mint-l)}.sd-ic.act{background:var(--yellow-l)}.sd-ic.health{background:var(--pink-l)}@media (prefers-reduced-motion:reduce){.sd-plus,.sd-bubble,.sd-item,.sd-scrim{transition:none}}
