*{box-sizing:border-box}body{margin:0;color:#252623;background:#fafaf8;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}.login-view{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-form{width:min(100%,320px);display:grid;gap:12px}.login-form input{width:100%;border:1px solid #deded9;border-radius:10px;padding:14px 15px;background:#fff;outline:none}.login-form input:focus,.composer:focus-within{border-color:#92988c}.login-button{border:0;border-radius:10px;background:#252a24;color:#fff;padding:14px}.login-form p{font-size:13px;color:#777;margin:8px 0 0}.login-form .error{color:#a24840;min-height:1em}.app{height:100dvh;display:flex}.sidebar{width:248px;flex-shrink:0;background:#f2f2ee;border-right:1px solid #e6e6e1;padding:22px 14px 14px;display:flex;flex-direction:column}.side-top{display:flex;align-items:center;gap:9px;padding:0 9px 25px}.brand-mark{font-size:25px;color:#637060;line-height:1}.brand{font-weight:650;letter-spacing:-.02em}.icon{border:0;background:transparent;color:#737870;font-size:20px;line-height:1;padding:8px}.new-chat{border:1px solid #dcded7;background:#fafbf8;border-radius:9px;text-align:left;padding:10px 13px;color:#343a33;font-weight:550}.new-chat span{font-size:20px;margin-right:8px}.side-label{margin:32px 10px 10px;font-size:10px;letter-spacing:.1em;color:#9a9d95;font-weight:700}#history{overflow:auto;display:grid;align-content:start;gap:3px}#history button{background:transparent;border:0;border-radius:8px;text-align:left;color:#686d65;padding:9px 10px}#history button.active,#history button:hover{background:#e7e9e2;color:#252b24}.side-bottom{margin-top:auto;padding:12px 8px 0;border-top:1px solid #dedfd9;display:flex;align-items:center;justify-content:space-between;color:#555d53}.workspace{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:64px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 30px;border-bottom:1px solid #eeeeea;font-weight:600}.top-spacer{flex:1}.date{font-size:13px;color:#a0a39c;font-weight:400}.messages{flex:1;overflow:auto;padding:40px max(24px,calc((100% - 760px)/2)) 24px;scroll-behavior:smooth}.empty{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transform:translateY(-35px)}.empty-symbol{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#e9eee6;color:#64755e;font-size:28px}.empty h1{font-size:25px;letter-spacing:-.04em;font-weight:600;margin:20px 0 5px}.empty p{color:#999d95;margin:0}.bubble{max-width:100%;margin:0 0 26px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{margin-left:auto;width:fit-content;max-width:85%;background:#eff1eb;border-radius:18px 18px 4px 18px;padding:12px 16px}.bubble.assistant{line-height:1.65}.bubble p{margin:0 0 10px}.bubble table{border-collapse:collapse;font-size:13px;display:block;overflow-x:auto;white-space:normal}.bubble th,.bubble td{padding:7px 10px;border-bottom:1px solid #e9ebe6;text-align:left}.bubble th{color:#747970;font-weight:600}.choice{display:inline-block;border:1px solid #dce1d8;border-radius:20px;background:#fff;color:#465445;padding:7px 12px;margin:4px 6px 4px 0;font-size:13px}.choice:hover{background:#edf2ea}.composer-wrap{width:min(100% - 48px,760px);margin:0 auto;padding-bottom:max(15px,env(safe-area-inset-bottom))}.composer{border:1px solid #dedfd9;background:#fff;border-radius:18px;padding:13px 14px 10px;box-shadow:0 4px 20px #252a240b}.composer textarea{display:block;width:100%;max-height:180px;min-height:30px;border:0;outline:0;resize:none;color:#252623;background:transparent}.composer textarea::placeholder{color:#aaa}.composer-actions{display:flex;align-items:center;gap:5px;margin-top:7px}.attach{width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:#727a70;font-size:23px}.attach:hover{background:#f2f4ef}.composer-hint{font-size:12px;color:#b0b2ac;margin-left:3px}.send{margin-left:auto;width:34px;height:34px;border:0;border-radius:10px;background:#303a2f;color:white;font-size:21px}.photo-label{display:flex;align-items:center;justify-content:space-between;color:#61745c;font-size:13px;background:#f0f4ee;border-radius:8px;padding:4px 8px;margin-bottom:10px}.footnote{text-align:center;color:#b0b2ab;font-size:11px;padding-top:9px}.readonly{text-align:center;color:#8a8e85;padding:14px}.menu,.close-side{display:none}@media(max-width:700px){.sidebar{position:fixed;z-index:4;inset:0 auto 0 0;transform:translateX(-100%);transition:transform .2s;width:270px}.sidebar.open{transform:translateX(0)}.backdrop{position:fixed;inset:0;background:#0005;z-index:3}.menu,.close-side{display:block}.close-side{margin-left:auto}.topbar{padding:0 16px;height:58px}.messages{padding:28px 20px}.composer-wrap{width:calc(100% - 28px)}.empty h1{font-size:22px}.date{font-size:12px}}
.new-chat{display:flex;align-items:center;gap:10px;min-height:44px}.new-chat span{display:inline-flex;width:20px;justify-content:center;align-items:center;margin:0;line-height:1}.summary-link{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#596257;border-radius:9px;text-align:left;padding:12px 14px;font-size:19px}.summary-link span{font-size:14px}.summary-link:hover{background:#e7e9e2}.side-label{margin-top:20px}.topbar{min-width:0}.topbar #chat-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .date{white-space:nowrap;flex-shrink:0}.composer-actions{min-height:34px}.attach,.send{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}.empty-symbol{line-height:1}.summary-view{flex:1;min-height:0;overflow:auto}.summary-inner{width:min(100% - 64px,960px);margin:0 auto;padding:46px 0 80px}.summary-heading,.goal-line,.section-title,.meal-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.summary-heading h1{font-size:30px;letter-spacing:-.04em;line-height:1.2;margin:5px 0 0}.eyebrow{font-size:10px;letter-spacing:.12em;font-weight:700;color:#9aa299;margin:0}.secondary-button,.date-nav>button:not(.text-button){border:1px solid #e0e3dd;background:#fff;border-radius:9px;padding:9px 13px;color:#52614f}.secondary-button{font-size:13px}.date-nav{display:flex;align-items:center;gap:15px;margin:36px 0 20px}.date-nav strong{min-width:155px;text-align:center}.date-nav>button:not(.text-button){font-size:21px;line-height:1;width:40px;height:40px;padding:0}.text-button{border:0;background:none;color:#687b66;padding:7px;font-size:13px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e2e5df;border-radius:14px;background:#fff;overflow:hidden}.metric{padding:22px;display:flex;flex-direction:column;gap:4px;border-right:1px solid #e9ebe7}.metric:last-child{border:0}.metric-value{font-size:28px;font-weight:600;line-height:1.1;letter-spacing:-.03em}.metric-label,.metric-percent{color:#8a9387;font-size:13px}.metric-percent{margin-top:5px}.metric-track{height:5px;border-radius:4px;background:#e9ece7;overflow:hidden;margin-top:8px}.metric-fill{height:100%;background:#708b72;border-radius:4px}.metric-fill.over{background:#b96052}.goal-line{padding:16px 0;color:#596456;font-size:13px}.pending-goal{font-size:13px;color:#788577;margin:0 0 16px}.goal-form{background:#f0f3ed;border:1px solid #e3e8e0;border-radius:12px;padding:18px;margin:4px 0 24px}.goal-form p{font-size:12px;color:#758173;margin:12px 0}.goal-form .error{color:#a24840}.goal-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.goal-fields label{font-size:12px;color:#697666}.goal-fields input{width:100%;display:block;margin-top:5px;padding:9px;border:1px solid #d9ded6;border-radius:8px;background:#fff}.primary-button{background:#303a2f;color:#fff;border:0;border-radius:8px;padding:9px 15px}.section-title{margin:43px 0 12px}.section-title h2{font-size:16px;letter-spacing:-.01em;margin:0}.section-title span,.muted{font-size:13px;color:#9aa198}.empty-meals{padding:18px 0}.meal-row{display:grid;grid-template-columns:65px minmax(0,1fr);gap:15px;border-top:1px solid #e7eae5;padding:17px 0}.meal-time,.meal-macros,.meal-item,.meal-note{color:#899287;font-size:13px}.meal-detail p{margin:5px 0}.meal-head strong:last-child{white-space:nowrap}.meal-note{font-style:italic}.history-title{margin-top:50px}.history-table-wrap{overflow-x:auto}.history-table{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}.history-table th,.history-table td{text-align:right;border-bottom:1px solid #e7eae5;padding:13px 10px}.history-table th:first-child,.history-table td:first-child{text-align:left}.history-table th{color:#9aa198;font-weight:500}.history-table small{display:block;color:#9aa198}.history-row{cursor:pointer}.history-row:hover{background:#f3f5f1}.history-date{background:none;border:0;padding:0;color:#435d45;text-align:left}.over-text{color:#b15447}
@media(max-width:700px){.topbar{gap:8px}.topbar .date{font-size:11px}.summary-inner{width:calc(100% - 32px);padding:28px 0 65px}.summary-heading h1{font-size:25px}.secondary-button{padding:8px}.date-nav{gap:8px;margin:26px 0 16px}.date-nav strong{min-width:0;flex:1;font-size:14px}.date-nav>button:not(.text-button){width:36px;height:36px}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:17px;border-bottom:1px solid #e9ebe7}.metric:nth-child(2){border-right:0}.metric:nth-child(n+3){border-bottom:0}.metric-value{font-size:24px}.goal-line{align-items:flex-start}.goal-fields{grid-template-columns:repeat(2,1fr)}.section-title span{font-size:11px}.meal-row{grid-template-columns:47px minmax(0,1fr);gap:8px}.meal-head{align-items:flex-start}.meal-head strong:last-child{font-size:13px}}
.chart-title{margin-top:52px}.chart-card{border:1px solid #e2e5df;border-radius:14px;background:#fff;padding:18px 20px 16px}.chart-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px}.chart-tabs button{border:0;border-radius:8px;padding:8px 13px;color:#849081;background:transparent;font-size:13px;white-space:nowrap}.chart-tabs button.active{color:#3e5940;background:#eaf0e7;font-weight:600}.chart-tabs button:focus-visible,.chart-point:focus-visible{outline:2px solid #708b72;outline-offset:2px}.chart-content{overflow-x:auto;margin-top:15px}.chart-content svg{display:block;width:100%;min-width:560px;height:auto}.chart-grid{stroke:#dfe5dc;stroke-width:1}.chart-goal{stroke:#93aa91;stroke-width:1;stroke-dasharray:5 5}.chart-axis{fill:#889487;font-size:12px;font-family:inherit}.chart-series{fill:none;stroke:#466e50;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-point{fill:#fff;stroke:#466e50;stroke-width:2.5;cursor:pointer}.chart-point:hover,.chart-point:focus{fill:#466e50}.chart-detail{min-height:20px;color:#758173;font-size:12px;margin:7px 0 10px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;color:#8b9588;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.legend-line{width:15px;border-top:2px solid #466e50}.legend-band{width:13px;height:10px;border-radius:2px}.band-low{background:#ecf2ea}.band-mid{background:#d6e4d2}.band-high{background:#edf0e8}.chart-empty{min-height:160px;display:grid;place-items:center;text-align:center;color:#9aa198;font-size:13px}.chart-card+.history-title{margin-top:50px}@media(max-width:700px){.chart-card{padding:14px 12px}.chart-tabs{gap:0}.chart-tabs button{padding:8px 10px}.chart-legend{gap:10px}.chart-title{margin-top:40px}}
.chart-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.chart-period{display:flex;align-items:center;gap:2px;background:#f4f5f2;border-radius:9px;padding:3px}.chart-period button{border:0;border-radius:7px;padding:6px 10px;color:#849081;background:transparent;font-size:12px;white-space:nowrap}.chart-period button.active{color:#3e5940;background:#fff;box-shadow:0 1px 3px #00000012;font-weight:600}.chart-period button:focus-visible{outline:2px solid #708b72;outline-offset:2px}@media(max-width:700px){.chart-controls{gap:7px}.chart-period{margin-left:auto}.chart-period button{padding:6px 8px}}
