:root{--bg:#fff6ee;--bg-deco:#ffeadd;--card:#fff;--text:#5c4742;--text-soft:#a08a84;--line:#f3e3d8;--peach:#ffb5a7;--peach-deep:#f28b82;--pink:#fcd5ce;--mint:#b8e0d2;--mint-deep:#6fbfa8;--yellow:#ffe5a0;--danger:#e57373;--radius:20px;--shadow:0 6px 20px #e4a0822e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:var(--bg);background-image:radial-gradient(var(--bg-deco) 12%, transparent 13%), radial-gradient(var(--bg-deco) 12%, transparent 13%);-webkit-font-smoothing:antialiased;background-position:0 0,24px 24px;background-size:48px 48px;font-family:Jua,Apple SD Gothic Neo,sans-serif}#root{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}@media (width>=520px){#root{box-shadow:0 0 40px #c88c6e40}}button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}input,textarea,select{color:var(--text);font-family:inherit;font-size:16px}h1,h2,h3,p{margin:0}.page{padding:20px 18px calc(28px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.page-header{align-items:center;gap:10px;margin-bottom:18px;display:flex}.page-title{flex:1;font-size:24px}.icon-btn{background:var(--card);width:40px;height:40px;box-shadow:var(--shadow);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.btn{background:var(--peach);color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:13px 22px;font-size:17px;transition:transform .1s}.btn:active{transform:scale(.96)}.btn.mint{background:var(--mint-deep)}.btn.ghost{background:var(--card);color:var(--text-soft);box-shadow:none;border:2px dashed var(--line)}.btn.danger-ghost{box-shadow:none;color:var(--danger);background:0 0;font-size:14px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-soft);padding-left:6px;font-size:14px}.field input,.field textarea{border:2px solid var(--line);background:#fffdfa;border-radius:16px;outline:none;padding:12px 14px}.field input:focus,.field textarea:focus{border-color:var(--peach)}.field textarea{resize:none;min-height:64px}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.empty{text-align:center;color:var(--text-soft);padding:44px 16px;font-size:16px;line-height:1.7}.empty .big{margin-bottom:8px;font-size:44px;display:block}.login-page{text-align:center;justify-content:center;align-items:center}.login-emoji{letter-spacing:6px;margin-bottom:8px;font-size:64px;animation:2.4s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-title{margin-bottom:4px;font-size:28px}.login-sub{color:var(--text-soft);margin-bottom:28px}.login-card{background:var(--card);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);padding:24px 20px}.login-card .btn{width:100%;margin-top:6px}.login-error{color:var(--danger);margin-bottom:10px;font-size:14px;animation:.35s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.child-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.child-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;padding:16px 12px 14px;transition:transform .1s;position:relative}.child-card:active{transform:scale(.97)}.child-photo{object-fit:cover;border:4px solid var(--pink);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;margin:0 auto 10px;font-size:44px;display:flex;overflow:hidden}.child-card.cat .child-photo{border-color:var(--mint)}.child-photo img{object-fit:cover;width:100%;height:100%}.child-name{margin-bottom:2px;font-size:18px}.child-age{color:var(--text-soft);min-height:18px;font-size:13px}.child-stat{background:var(--bg);color:var(--text-soft);border-radius:12px;margin-top:8px;padding:6px 4px;font-size:13px}.child-stat b{color:var(--text);font-weight:400}.kind-badge{background:var(--pink);border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;display:flex;position:absolute;top:10px;left:10px}.child-card.cat .kind-badge{background:var(--mint)}.edit-badge{opacity:.55;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex;position:absolute;top:10px;right:10px}.add-card{border:2px dashed var(--peach);border-radius:var(--radius);min-height:190px;color:var(--peach-deep);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:16px;display:flex}.add-card .plus{font-size:34px}.detail-hero{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.detail-hero.cat .child-photo{border-color:var(--mint)}.detail-hero .child-photo{flex-shrink:0;width:72px;height:72px;margin:0;font-size:36px}.detail-hero-info{flex:1;min-width:0}.detail-hero-info .name{font-size:21px}.detail-hero-info .age{color:var(--text-soft);margin-top:2px;font-size:14px}.stat-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{background:var(--bg);border-radius:999px;padding:4px 10px;font-size:13px}.chip .delta-up{color:var(--mint-deep)}.chip .delta-down{color:var(--peach-deep)}.tabs{background:var(--bg-deco);border-radius:999px;margin-bottom:16px;padding:4px;display:flex}.tabs button{color:var(--text-soft);border-radius:999px;flex:1;padding:9px 0;font-size:15px}.tabs button.active{background:var(--card);color:var(--text);box-shadow:0 2px 8px #e4a08240}.chart-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px 12px 10px}.chart-title{margin-bottom:4px;padding-left:6px;font-size:16px}.chart-title small{color:var(--text-soft);margin-left:4px;font-size:12px}.chart-svg{width:100%;height:auto;display:block}.record-form{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.record-form .btn{width:100%}.form-hint{color:var(--text-soft);text-align:center;margin-top:8px;font-size:12px}.record-list{flex-direction:column;gap:10px;display:flex}.record-item{background:var(--card);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;display:flex}.record-date{color:var(--text-soft);flex-shrink:0;width:52px;font-size:13px}.record-values{flex-wrap:wrap;flex:1;gap:12px;font-size:15px;display:flex}.record-values .delta{margin-left:2px;font-size:12px}.delta.up{color:var(--mint-deep)}.delta.down{color:var(--peach-deep)}.record-memo{color:var(--text-soft);width:100%;font-size:12px}.record-item .del{color:var(--text-soft);opacity:.6;padding:4px;font-size:14px}.moment-list{flex-direction:column;gap:12px;display:flex}.moment-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.moment-card img{object-fit:cover;width:100%;max-height:240px;display:block}.moment-body{padding:12px 14px}.moment-title-row{align-items:baseline;gap:8px;display:flex}.moment-title-row h3{flex:1;font-size:16px}.moment-title-row time{color:var(--text-soft);font-size:12px}.moment-memo{color:var(--text-soft);margin-top:4px;font-size:14px;line-height:1.5}.modal-backdrop{z-index:10;background:#5c474259;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);width:100%;max-width:480px;padding:22px 20px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;max-height:88dvh;animation:.25s ease-out slide-up;overflow-y:auto}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal h2{text-align:center;margin-bottom:18px;font-size:20px}.modal .btn{width:100%}.kind-toggle{gap:10px;margin-bottom:14px;display:flex}.kind-toggle button{border:2px solid var(--line);background:var(--card);color:var(--text-soft);border-radius:16px;flex:1;padding:12px 0;font-size:16px}.kind-toggle button.active-baby{border-color:var(--peach);background:var(--pink);color:var(--text)}.kind-toggle button.active-cat{border-color:var(--mint-deep);background:var(--mint);color:var(--text)}.photo-picker{justify-content:center;margin-bottom:16px;display:flex}.photo-picker .child-photo{cursor:pointer;width:96px;height:96px;font-size:48px;position:relative}.photo-picker .camera-badge{background:var(--peach);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:flex;position:absolute;bottom:-2px;right:-2px}.modal-actions{flex-direction:column;gap:8px;margin-top:6px;display:flex}
