:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#242a31;background:#f7f8fa;font-synthesis:none;font-weight:400;--blue: #349fe2;--yellow: #dba00a;--coral: #ef747c;--green: #236b55}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,label{-webkit-tap-highlight-color:transparent}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce1e5;background:#fff;border-radius:14px;padding:12px 17px;color:inherit;min-height:44px;transition:background .15s}button:hover{background:#edf2ef}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #80bca9;outline-offset:3px}input,textarea,select{width:100%;border:1px solid #dce1e5;border-radius:12px;background:#fafbfc;color:#242a31;padding:13px;min-width:0;font-size:16px}input:focus,textarea:focus,select:focus{outline:2px solid #81b6a4;border-color:transparent}input[type=number]{appearance:textfield}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}p{line-height:1.55;margin:0}h1,h2,h3{margin:0;letter-spacing:-.035em}h1{font-size:32px;font-weight:650}h2{font-size:20px;font-weight:650;display:flex;align-items:center;gap:9px}h3{font-size:17px;font-weight:550}a{color:var(--green);overflow-wrap:anywhere}small{line-height:1.5}.app-shell{max-width:800px;margin:auto;padding:0 28px 110px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8ecee}.install-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:max(12px,env(safe-area-inset-top));padding:12px;border-radius:18px;background:#e7f2eb;color:var(--green)}.install-banner-copy{display:grid;gap:4px;font-size:13px;overflow-wrap:anywhere}.install-banner-copy strong{font-size:15px}.install-banner-action{grid-column:2;justify-self:start}.install-banner-close{grid-column:3;grid-row:1;align-self:start}.brand{display:flex;align-items:center;gap:9px;font-weight:650;font-size:19px;letter-spacing:-.6px}.brand-mark{background:#e3eee8;color:#236b55;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:24px}.icon-button{padding:10px;border:none;background:transparent;flex-shrink:0;min-width:42px}.day-header{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;gap:10px}.eyebrow{display:block;color:#87918f;font-size:10px;letter-spacing:1.8px;font-weight:700;margin-bottom:9px}.date-controls{display:flex;align-items:center;gap:0}.date-picker{position:relative;display:grid;place-items:center;width:42px;height:44px;border-radius:10px;background:#fff;border:1px solid #e4e8ea}.date-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.balance{max-width:550px;margin:0 auto 30px}.legend{display:flex;justify-content:center;gap:24px;font-size:12px;color:#818990;margin:15px 0 6px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%}.balance svg{display:block;width:100%}.arc-label{fill:#fff;font-size:15px;font-weight:500}.calorie-number{font-size:37px;fill:#252a2f;font-weight:600;letter-spacing:-1px}.calorie-caption{font-size:12px;fill:#929a9e}.chart-note{font-size:9px;fill:#8a9498}.remaining{text-align:center;color:#84908b;font-size:14px;margin-top:12px}.remaining b{color:#41745e;font-weight:600}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.add-small{border:none;background:#e5efe9;color:var(--green);font-size:13px;padding:9px 13px}.card{background:#fff;padding:24px;border:1px solid #edf0f2;border-radius:24px;box-shadow:0 5px 30px #263a2f03}.meal{margin-bottom:15px}.meal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px}.time-pill{background:#f0f2f4;padding:7px 13px;border-radius:12px;font-size:15px;font-variant-numeric:tabular-nums}.food-entry{padding:17px 0 10px;border-top:1px solid #f1f3f4}.food-main{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.food-main h3{overflow-wrap:anywhere}.food-weight{font-size:15px;color:#515c63;white-space:nowrap}.macro-line{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:#8b949b;margin-top:8px;font-weight:450}.protein{color:var(--blue)}.fat{color:var(--yellow)}.carbs{color:var(--coral)}.entry-bottom{display:flex;align-items:flex-start;justify-content:space-between;margin-top:7px;gap:8px}.entry-actions{display:flex;flex-shrink:0}.entry-actions button{min-height:35px;min-width:35px;padding:7px;color:#87918f}.sources{font-size:11px;color:#85928d;padding-top:8px;flex:1;min-width:0}.sources summary{cursor:pointer}.sources>div{padding:8px 0;overflow-wrap:anywhere}.sources p{margin:3px 0}.sources small{color:#8d969c}.day-total{display:flex;justify-content:space-between;padding:16px 8px;font-size:13px;color:#818a91}.day-total strong{color:#3480b2;font-size:17px}.empty-state{text-align:center;background:#fff;border:1px dashed #dce5df;padding:36px 18px;border-radius:24px}.empty-state p{font-size:13px;color:#8c9692;margin:12px 0 23px}.empty-icon{background:#f0f5f1;color:#81998b;border-radius:20px;width:66px;height:66px;display:grid;place-items:center;margin:0 auto 22px}.primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:550}.primary:hover{background:#195740}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);display:flex;justify-content:center;gap:70px;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:#ffffffed;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-top:1px solid #e7ece9;width:100%;z-index:20}.bottom-nav button{flex-direction:column;border:none;background:none;color:#9aa4a0;font-size:11px;padding:0 20px;gap:5px}.bottom-nav button[aria-current=page]{color:var(--green)}.overlay{position:fixed;inset:0;background:#16281e66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:26px;width:calc(100% - 32px);max-width:490px;max-height:90dvh;overflow:auto;overscroll-behavior:contain;padding:24px;z-index:50;box-shadow:0 15px 80px #0002}.modal.wide{max-width:620px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.modal-scroll-body{display:flex;flex-direction:column;overflow:hidden}.modal-scroll-body>.modal-header{flex-shrink:0;flex-wrap:wrap}.modal-subtitle{flex-basis:100%;min-width:0}.modal-subtitle .notice{margin:0}.modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.modal-header h2{font-size:21px}.stack{display:flex;flex-direction:column;gap:18px}.row{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-row{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.nutrient-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.nutrient-fields input{padding:12px 7px}.optional{font-size:10px;color:#9ba39f;font-weight:400}.field-caption{font-size:12px;color:#8c9690;margin:4px 0 -3px}.portion-summary{padding:16px;background:#f3f7f4;border-radius:14px;font-size:13px;color:#6f8376}.portion-summary .macro-line{font-size:14px}.error{background:#fff1f0;color:#ad3d3b;border-radius:12px;padding:12px;font-size:13px;overflow-wrap:anywhere}.success{background:#eaf4ed;color:#2d714e;padding:12px;border-radius:12px;font-size:13px}.notice,.offline,.update-banner{background:#fdf5dd;color:#826b32;padding:13px;border-radius:12px;font-size:13px;line-height:1.5}.offline{margin-top:15px}.update-banner{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-grid button{flex-direction:column;align-items:flex-start;text-align:left;padding:23px 17px;gap:13px;min-height:170px;background:#f5f8f6;border-color:#edf2ee}.choice-grid svg{color:#4e8b71}.choice-grid span{font-size:12px;color:#84928b;line-height:1.5}.settings .card h2{margin-bottom:10px}.settings{gap:20px}.segmented{display:flex;background:#f1f4f2;padding:4px;border-radius:13px}.segmented button{flex:1;border:none;background:transparent;font-size:13px;min-height:37px;padding:8px}.segmented button[aria-pressed=true]{background:#fff;color:var(--green);box-shadow:0 1px 4px #0001}.three-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.three-fields input{padding:12px 8px}.muted{color:#87938d;font-size:13px;line-height:1.6}.button-row{display:flex;flex-wrap:wrap;gap:8px}.text-button{border:0;background:none;color:var(--green);padding:8px 0;font-size:12px}.danger{color:#bd5959}.danger-button{background:#b84c4c;border-color:#b84c4c}.file-button{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid #dce1e5;padding:13px;border-radius:14px;cursor:pointer;font-size:14px}.file-button input,.attachment input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.chat{display:flex;flex-direction:column;gap:15px}.chat-intro{display:flex;gap:12px;color:var(--green);padding:15px;background:#f2f7f3;border-radius:14px}.chat-intro svg{flex-shrink:0}.chat-intro p{font-size:12px;margin-top:7px;color:#829289}.chat-intro b{font-size:14px}.messages{display:flex;flex-direction:column;gap:14px}.message{padding:14px;border-radius:16px;background:#f5f7f8;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.message.user{background:#e8f1ec;margin-left:30px}.message.error{background:#fff0ed}.message-text{white-space:pre-wrap}.message ul{padding-left:20px}.message small{color:#87928c}.proposal{margin-top:14px;display:flex;flex-direction:column;gap:12px}.proposal-product{background:#fff;padding:15px;border-radius:13px;border:1px solid #e4ebe6}.proposal-product .row b{font-size:14px}.proposal-product label{margin-top:12px}.estimate{display:block;color:#a88b50!important;font-size:11px;margin-top:6px}.composer{border-top:1px solid #e9eeea;padding-top:15px;position:sticky;bottom:-24px;background:#fff;padding-bottom:4px}.modal-body .composer{bottom:0}.composer textarea{resize:vertical}.composer>.row{margin-top:8px}.attachment{position:relative;display:flex;flex-direction:row;gap:6px;align-items:center;font-size:11px;font-weight:450;color:#74877b;min-height:42px;padding:7px;cursor:pointer}.send{border-radius:13px;min-width:49px}.photo-previews{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.photo-previews>div{position:relative}.photo-previews img{width:65px;height:65px;object-fit:cover;border-radius:10px}.photo-previews button{position:absolute;right:-5px;top:-5px;min-height:23px;width:23px;border-radius:50%;padding:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:800px){.app-shell{max-width:780px}.topbar{height:92px}.day-header{margin-top:40px}.balance{max-width:500px}.bottom-nav{max-width:780px;border-radius:22px 22px 0 0}.diary,.settings{max-width:620px;margin:auto}}@media(max-width:480px){.app-shell{padding:0 18px 105px}.topbar{height:70px}.brand{font-size:17px}.day-header{margin:25px 0 15px}h1{font-size:29px}.eyebrow{font-size:9px;letter-spacing:1.4px}.date-controls .icon-button{min-width:33px;padding:6px}.balance{margin-bottom:25px}.legend{gap:22px;margin-top:12px}.card{padding:20px;border-radius:22px}.modal{padding:20px;max-height:92dvh}.modal-header{margin-bottom:18px}.modal-header h2{font-size:19px}.composer{bottom:-20px}.food-main h3{font-size:16px}.macro-line{gap:8px;font-size:11px}.section-title h2{font-size:18px}.choice-grid button{padding:18px 12px}.nutrient-fields{gap:6px}.nutrient-fields label{font-size:11px}.settings .card{padding:18px}.date-picker{width:36px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.app-shell{padding-top:env(safe-area-inset-top)}.chat-loading{display:flex;align-items:center;gap:12px;color:var(--muted)}.spinner{width:20px;height:20px;border:3px solid #dde8e1;border-top-color:#3e6b59;border-radius:50%;animation:chat-spin .8s linear infinite;flex-shrink:0}@keyframes chat-spin{to{transform:rotate(360deg)}}.ai-card-data .sources a{display:block;overflow-wrap:anywhere}.chat .row{flex-wrap:wrap}.chat button[aria-pressed=true]{background:#dcebe2;border-color:#3e6b59}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.token-usage{white-space:pre-line;overflow-wrap:anywhere}.quality-choice{display:flex;align-items:flex-start;gap:12px}.quality-toggle{display:flex;flex:1;align-items:flex-start;gap:12px;cursor:pointer}.quality-toggle input{width:24px;height:24px;flex:0 0 24px;margin:2px 0 0;accent-color:var(--green)}.quality-choice .icon-button{flex-shrink:0}.chat-intro .chat-privacy-notice{color:var(--green);font-weight:500}
