:root{--ink:#18342d;--paper:#f6f1e8;--panel:#fffdf8;--lime:#cfee6a;--coral:#e9765f;--line:#ddd5c7;--soft:#edf1e9;--muted:#778079}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 5% 0,#e5f4aa 0,transparent 25%),var(--paper);color:var(--ink);font-family:Manrope,sans-serif}.app-shell{max-width:1240px;min-height:100vh;margin:auto;display:grid;grid-template-columns:345px 1fr;background:var(--panel);box-shadow:0 0 80px #18342d12}.side{padding:31px 25px;border-right:1px solid var(--line);background:#fbf8f1}.logo{font:31px Prata,serif;color:var(--ink);letter-spacing:-2px;text-decoration:none}.logo span{color:var(--coral)}.today{margin:48px 0 20px}.today p,.mini-head,.calorie-card span,.macro-card>p,.motivation span{font:10px 'DM Mono';letter-spacing:.11em;color:var(--muted);margin:0}.today h1{font:26px Prata;margin:9px 0}.calorie-card{background:var(--ink);color:white;padding:21px;border-radius:22px;display:grid;grid-template-columns:1fr 70px;gap:8px;box-shadow:0 12px 25px #18342d23}.calorie-card span{color:#bad1c1}.calorie-card b{font:45px Prata;letter-spacing:-3px;display:block;margin-top:12px}.calorie-card small{font:11px 'DM Mono';color:#b9c9be}.ring{width:68px;height:68px;border:7px solid #476057;border-top-color:var(--lime);border-radius:50%;display:grid;place-items:center;transform:rotate(20deg)}.ring strong{font:10px 'DM Mono';transform:rotate(-20deg);color:#fff!important}.bar{grid-column:1/-1;height:5px;border-radius:4px;background:#456057;overflow:hidden;margin-top:5px}.bar i{height:100%;width:0;display:block;background:var(--lime);transition:width .6s}.calorie-card p{grid-column:1/-1;margin:1px 0;color:#c3d0c8;font-size:11px}.macro-card{padding:23px 0;border-bottom:1px solid var(--line)}.macros{display:flex;justify-content:space-between;margin-top:17px}.macros span{font-size:10px;color:var(--muted);display:grid;gap:5px}.macros i{width:8px;height:8px;border-radius:50%;background:var(--coral)}.macros span:nth-child(2)i{background:var(--lime)}.macros span:nth-child(3)i{background:#89add7}.macros b{font:18px Prata;color:var(--ink)}.motivation{margin-top:18px;padding:16px;border:1px solid #bcd35b;border-radius:15px;background:linear-gradient(135deg,#dff489,#cfee6a)}.motivation span{color:#55713f}.motivation p{font:15px/1.4 Prata;margin:10px 0 0}.goal-button{width:100%;margin:18px 0 27px;padding:12px 13px;border:1px solid var(--ink);border-radius:12px;background:transparent;color:var(--ink);font:12px Manrope}.diary{padding-top:4px}.mini-head{display:flex;justify-content:space-between}.meal{display:grid;grid-template-columns:1fr auto;gap:5px;padding:13px 0;border-bottom:1px solid var(--line)}.meal h3,.meal p{margin:0}.meal h3{font-size:12px}.meal p{font-size:10px;color:var(--muted)}.meal strong{font:11px 'DM Mono';grid-row:1/3;align-self:center}.empty{font:13px Prata;color:var(--muted)}.chat{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#fffdf8,#f8f5ed)}.chat-head{height:79px;padding:0 35px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);background:#fffdf8}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:14px;background:var(--lime);font:23px Prata}.chat-head h2{margin:0;font-size:14px}.chat-head p{margin:2px 0;font-size:11px;color:var(--muted)}.chat-head p i{display:inline-block;width:7px;height:7px;background:#56ae73;border-radius:50%}.more{margin-left:auto;border:0;background:none;color:var(--ink);font-weight:700;letter-spacing:2px}.messages{width:100%;max-width:750px;flex:1;margin:auto;padding:44px 35px 26px;overflow:auto}.bubble{max-width:485px;margin:0 0 16px;padding:15px 18px;border-radius:5px 19px 19px 19px;background:var(--soft);box-shadow:0 4px 15px #18342d08;animation:pop .25s both}.bubble.user{margin-left:auto;border-radius:19px 5px 19px 19px;background:var(--lime)}.bubble p{margin:0 0 8px;font-size:14px;line-height:1.55}.bubble time{font:10px 'DM Mono';color:var(--muted)}.typing p:after{content:'•••';display:inline-block;margin-left:6px;letter-spacing:2px;animation:blink 1s infinite}.image-tag{margin-bottom:7px;font:10px 'DM Mono';color:var(--muted)}.composer{max-width:750px;width:calc(100% - 70px);margin:0 auto 26px;padding:8px 12px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 12px 30px #18342d12}.input-row{display:flex;align-items:flex-end;gap:10px}.attach{font-size:24px;line-height:32px;color:var(--muted);cursor:pointer}.attach input{display:none}textarea{flex:1;min-height:35px;max-height:120px;padding:8px 0;border:0;outline:0;resize:none;background:transparent;color:var(--ink);font:13px Manrope}#submit{width:37px;height:37px;border:0;border-radius:50%;background:var(--ink);color:white;font-size:16px}.preview{display:flex;gap:8px;align-items:center;padding:3px 0 8px;color:var(--coral);font:11px 'DM Mono'}.preview button{border:0;background:none;color:var(--muted);font-size:18px}#status{display:none}@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:.2}}dialog{border:0;padding:0;background:transparent;width:calc(100% - 32px);max-width:410px}dialog::backdrop{background:#18342dcc}dialog form{display:grid;gap:15px;padding:40px;background:var(--paper)}.close{position:absolute;right:16px;top:8px;border:0;background:transparent;font-size:27px}dialog h2{margin:0;font:31px Prata}dialog p{color:var(--muted);font-size:13px}dialog label{display:grid;gap:8px;font:11px 'DM Mono'}dialog input{padding:12px;border:1px solid var(--ink);background:transparent;font:20px Prata}#save-goal{border:0;padding:14px;background:var(--ink);color:white;font-weight:700}@media(max-width:760px){.app-shell{display:block}.side{padding:20px;border:0}.side .today,.side .macro-card{display:none}.side{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.calorie-card{display:block;padding:12px}.calorie-card b{margin-top:4px;font-size:27px}.ring,.bar,.calorie-card p{display:none}.motivation{display:none}.goal-button{width:auto;margin:0}.diary{display:block!important;grid-column:1/-1}.chat{min-height:calc(100vh - 170px)}.chat-head{height:65px;padding:0 20px}.messages{padding:26px 18px}.composer{width:calc(100% - 30px);margin-bottom:16px}}
