:root{--bg: #faf6f1;--card: #ffffff;--ink: #2e2a26;--ink-2: #6b625b;--muted: #9a908a;--line: #eee5dc;--accent: #c96f4a;--accent-deep: #a9553b;--accent-soft: #f7e8e0;--good: #4c8a62;--good-soft: #e6f1ea;--gold: #c99a2e;--radius: 18px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;height:100%;overscroll-behavior-y:none}#root{height:100%}button{font:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0}input,textarea,select{font:inherit;color:var(--ink)}.app{display:flex;flex-direction:column;height:100dvh;max-width:640px;margin:0 auto}.header{padding:10px 16px 6px;display:flex;align-items:baseline;justify-content:space-between}.header h1{font-size:19px;margin:0;font-weight:700}.header .week{font-size:13px;color:var(--ink-2);font-weight:600}.reward-badge{color:var(--gold);font-weight:700}.summary{margin:0 12px;background:var(--card);border-radius:var(--radius);padding:12px 16px;box-shadow:0 1px 4px #3c281412}.summary-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.kcal-left{font-size:26px;font-weight:800;line-height:1.1}.kcal-left small{display:block;font-size:12.5px;color:var(--ink-2);font-weight:600}.kcal-over{color:var(--accent-deep)}.summary-side{display:flex;gap:14px;align-items:center}.water{text-align:center;min-width:64px;padding:6px 8px;border-radius:14px;background:#eef4f8;font-weight:700;font-size:15px}.chip-val{display:inline-flex;align-items:center;gap:3px;line-height:1}.water{color:#2f7db0}.water small{display:block;font-weight:600;font-size:11.5px;color:var(--ink-2)}.workout-chip{text-align:center;min-width:56px;padding:6px 8px;border-radius:14px;background:var(--bg);font-size:15px;font-weight:700;color:var(--muted)}.workout-chip.done{background:var(--good-soft);color:var(--good)}.workout-chip small{display:block;font-weight:600;font-size:11.5px}.budget-bar{margin-top:10px;height:8px;border-radius:4px;background:var(--line);overflow:hidden;position:relative}.budget-bar>div{height:100%;border-radius:4px;background:var(--good);transition:width .4s ease}.budget-bar>div.warn{background:var(--gold)}.budget-bar>div.over{background:var(--accent-deep)}.summary-meals{margin-top:6px;font-size:12.5px;color:var(--ink-2)}.tabs{display:flex;justify-content:space-around;padding:6px 8px calc(6px + var(--safe-bottom));background:var(--card);border-top:1px solid var(--line)}.tabs button{flex:1;text-align:center;font-size:11.5px;font-weight:600;color:var(--muted);padding:6px 0 2px}.tabs button .ico{display:flex;align-items:center;justify-content:center;height:24px;margin-bottom:3px}.tabs button.active .ico{transform:translateY(-1px);transition:transform .15s ease}.tabs button.active{color:var(--accent-deep)}.chat-scroll{flex:1;overflow-y:auto;padding:12px 14px 8px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:86%;padding:10px 14px;border-radius:20px;font-size:15.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:6px}.bubble.coach{align-self:flex-start;background:var(--card);border-bottom-left-radius:6px;box-shadow:0 1px 3px #3c28140f}.bubble img{max-width:100%;border-radius:12px;margin-top:6px;display:block}.bubble .time{display:block;font-size:10.5px;opacity:.6;margin-top:3px}.day-divider{text-align:center;font-size:12px;color:var(--muted);font-weight:600;margin:6px 0 2px}.typing{align-self:flex-start;color:var(--muted);font-size:14px;padding:8px 14px}.typing span{animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.composer{display:flex;align-items:flex-end;gap:8px;padding:8px 10px calc(8px + var(--safe-bottom) / 2);background:var(--card);border-top:1px solid var(--line)}.composer textarea{flex:1;resize:none;border:1.5px solid var(--line);border-radius:22px;padding:11px 14px;max-height:120px;background:var(--bg);outline:none}.composer textarea:focus{border-color:var(--accent)}.icon-btn{width:44px;height:44px;min-width:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:21px;background:var(--bg);color:var(--ink-2)}.icon-btn.send{background:var(--accent);color:#fff}.icon-btn.send:disabled{opacity:.4}.icon-btn.recording{background:var(--accent-deep);color:#fff;animation:pulse 1.2s infinite}@keyframes pulse{50%{transform:scale(1.08)}}.photo-strip{display:flex;gap:8px;padding:8px 12px 0;background:var(--card)}.photo-strip .thumb{position:relative}.photo-strip img{width:64px;height:64px;object-fit:cover;border-radius:12px}.photo-strip .remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;line-height:22px;text-align:center}.page{flex:1;overflow-y:auto;padding:12px 14px 20px}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:0 1px 4px #3c281412}.card h2{margin:0 0 10px;font-size:16px}.stat-row{display:flex;gap:10px;margin-bottom:12px}.stat{flex:1;background:var(--card);border-radius:var(--radius);padding:12px 10px;text-align:center;box-shadow:0 1px 4px #3c281412}.stat .num{font-size:21px;font-weight:800}.stat .num.accent{color:var(--accent-deep)}.stat .num.good{color:var(--good)}.stat small{color:var(--ink-2);font-size:11.5px;font-weight:600}.milestone{background:var(--good-soft);color:var(--good);font-weight:700;border-radius:14px;padding:10px 14px;margin-bottom:12px;font-size:14.5px}.search-row{display:flex;gap:8px;margin-bottom:12px}.search-row input[type=search]{flex:1;border:1.5px solid var(--line);border-radius:14px;padding:10px 14px;background:var(--card);outline:none}.search-row input[type=date]{border:1.5px solid var(--line);border-radius:14px;padding:8px 10px;background:var(--card);color:var(--ink)}.entry-row{display:flex;gap:10px;align-items:flex-start;padding:11px 4px;border-bottom:1px solid var(--line)}.entry-row:last-child{border-bottom:none}.entry-row .ico{font-size:19px;width:28px;text-align:center}.entry-row .body{flex:1;font-size:14.5px;line-height:1.4}.entry-row .meta{font-size:11.5px;color:var(--muted);margin-top:2px}.entry-row .edit{color:var(--accent-deep);font-weight:600;font-size:13px;padding:4px 6px}.entry-photo{width:52px;height:52px;object-fit:cover;border-radius:10px}.kcal-edit{display:flex;gap:8px;align-items:center;margin-top:6px}.kcal-edit input{width:90px;border:1.5px solid var(--line);border-radius:10px;padding:7px 10px}.pill-btn{background:var(--accent);color:#fff;border-radius:12px;padding:8px 14px;font-weight:700;font-size:14px}.pill-btn.ghost{background:var(--bg);color:var(--ink-2)}.pill-btn.danger{background:#f4e3e0;color:#a33f2c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .full{grid-column:1 / -1}.field label{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:4px}.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg);outline:none}.field textarea{min-height:72px;resize:vertical}.rule-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.rule-row textarea{flex:1;border:1.5px solid var(--line);border-radius:12px;padding:9px 12px;background:var(--bg);min-height:44px;resize:vertical;outline:none}.rule-row textarea.inactive{opacity:.45;text-decoration:line-through}.save-note{font-size:13px;color:var(--good);font-weight:600;margin-left:10px}.pin-gate{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}.pin-gate .logo{width:84px;height:84px;border-radius:22px}.pin-gate h1{font-size:22px;margin:0}.pin-gate input{font-size:28px;letter-spacing:12px;text-align:center;width:200px;border:2px solid var(--line);border-radius:16px;padding:12px;background:var(--card);outline:none}.pin-gate .error{color:var(--accent-deep);font-weight:600;font-size:14px;min-height:20px}.chart-wrap{position:relative}.chart-tip{position:absolute;background:var(--ink);color:#fff;font-size:12.5px;padding:6px 10px;border-radius:10px;pointer-events:none;transform:translate(-50%,-120%);white-space:nowrap}.empty-note{color:var(--muted);text-align:center;font-size:14px;padding:24px 0}
