:root{--green:#245746;--lime:#d9f095;--bg:#f7f8f3;--muted:#77847b;--line:#e3e8de}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#20392d;font:15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}aside{position:fixed;width:245px;inset:0 auto 0 0;padding:40px 25px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{font-size:30px;font-weight:750;letter-spacing:-1.5px;color:var(--green);text-decoration:none}.brand>span:first-child{font-size:38px;margin-right:9px}.dot{color:#96b64f}.eyebrow{font-size:10px;letter-spacing:1.4px;margin:45px 0 15px;color:var(--muted)}nav{display:grid;gap:8px}nav a{padding:13px 15px;border-radius:12px;color:#6b776e;text-decoration:none;display:flex;gap:12px}nav a.active{color:var(--green);background:#eef4e8;font-weight:600}.aside-bottom{margin-top:auto;padding-top:30px}.aside-bottom p{font-size:23px;line-height:1.4}.aside-bottom small{color:var(--muted);font-size:11px}.pill{display:inline-block;padding:5px 9px;background:#eff3e8;border-radius:6px;font-size:9px;letter-spacing:1px;color:#536b3b}main{margin-left:245px;max-width:1600px;padding:30px 50px}header{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:38px}.avatar{border-radius:50%;background:#e6ecd9;color:var(--green);padding:9px 16px;font-weight:600}.intro{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:26px}h1{font-size:36px;font-weight:550;letter-spacing:-1.4px;margin:5px 0}h2{font-size:21px;letter-spacing:-.5px;font-weight:600;margin:0 0 15px}h3{font-size:16px;margin:4px 0}p{color:var(--muted);margin:6px 0 20px}.intro p{margin-bottom:0}.primary{background:var(--green);color:white;border:0;border-radius:10px;padding:13px 19px}.secondary{background:white;border:1px solid var(--line);padding:9px 14px;border-radius:9px;color:var(--green)}.hero{background:var(--green);border-radius:23px;padding:30px;color:white;display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;overflow:hidden}.hero p{color:#c1d3c5;max-width:380px}.hero .eyebrow{color:var(--lime);margin:0 0 10px}.hero h2{font-size:30px;max-width:360px;line-height:1.2}.hero-art{width:185px;height:185px;border-radius:50%;background:#e4edc8;border:15px solid #fafcf0;box-shadow:0 10px 40px #163d3255;display:grid;place-items:center;font-size:83px;transform:rotate(-12deg);flex-shrink:0;margin-right:20px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-top:23px}.card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:25px}.card-head{display:flex;justify-content:space-between;align-items:center}.card-head a{font-size:12px;color:var(--green)}.energy{display:flex;align-items:center;gap:32px;padding:14px 0 25px}.ring{width:145px;height:145px;border-radius:50%;background:conic-gradient(var(--green) var(--progress),#eef2e8 0);display:grid;place-items:center;flex-shrink:0}.ring-inner{background:white;border-radius:50%;width:122px;height:122px;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring strong{font-size:29px;font-weight:550}.ring small{font-size:11px;color:var(--muted)}.muted{color:var(--muted);font-size:13px}.big{font-size:29px;letter-spacing:-1px}.macros{display:flex;gap:20px;border-top:1px solid var(--line);padding-top:18px}.macros>div{flex:1}.track{height:5px;background:#edf0e9;border-radius:5px;overflow:hidden;margin-top:9px}.track span{display:block;height:100%;background:#9bbd7d}.water{background:#edf3ef}.water-amount{font-size:38px;margin:26px 0 16px;letter-spacing:-1px}.water-amount small{font-size:15px;color:var(--muted)}.droplets{display:flex;gap:10px;font-size:28px;color:#cad9ce;margin:15px 0 25px}.droplets .filled{color:#3e7c62}.empty{text-align:center;padding:30px 15px;background:#f8faf5;border-radius:12px;color:var(--muted)}.meal{display:flex;align-items:center;padding:17px 0;border-bottom:1px solid var(--line);gap:15px}.meal-icon{background:#f0f3e9;border-radius:12px;padding:12px;font-size:24px}.meal-info{flex:1;min-width:0;overflow-wrap:anywhere}.meal-info small{color:var(--muted)}.meal strong{font-weight:500;white-space:nowrap}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.recipe-art{height:130px;background:#eef1df;border-radius:13px;display:grid;place-items:center;font-size:65px;margin-bottom:18px}.recipe-art.peach{background:#f3e8db}.recipe-art.pink{background:#f3e6e5}details{margin-top:20px;color:#607365;font-size:13px}summary{cursor:pointer}.note{background:#edf2e6;padding:14px 20px;border-radius:12px;color:#61734e;font-size:13px;margin-top:22px}footer{margin:30px 0 0;color:#899286;font-size:11px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:grid;gap:5px;font-size:13px;margin-bottom:14px}input,select{width:100%;padding:11px 12px;border:1px solid #dce3d5;border-radius:9px;background:white;color:#20392d}dialog{max-width:500px;width:calc(100% - 30px);border:0;border-radius:20px;padding:28px;color:#20392d}dialog::backdrop{background:#183c2e66}dialog p{font-size:13px}.dialog-title{display:flex;justify-content:space-between}.close{font-size:24px;background:none;border:0;color:#607365}.settings{max-width:560px}.history-row{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:25px;right:25px;background:var(--green);color:white;padding:13px 20px;border-radius:10px;display:none}.tools{display:flex;gap:10px;flex-wrap:wrap}.danger{color:#a45342}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #91ae62;outline-offset:3px}@media(max-width:1100px){main{padding:25px}.grid{grid-template-columns:1fr}.recipe-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){aside{width:100%;height:68px;inset:auto 0 0;z-index:4;padding:5px 10px;border-top:1px solid var(--line)}.brand,.eyebrow,.aside-bottom{display:none}nav{display:flex;justify-content:space-around;gap:0}nav a{display:grid;text-align:center;gap:0;padding:6px 8px;font-size:18px}nav a span{font-size:9px}main{margin:0;padding:20px 18px 90px}header{margin-bottom:22px}h1{font-size:29px}.intro{align-items:start}.intro .primary{font-size:12px;padding:12px}.hero{padding:25px}.hero h2{font-size:25px}.hero-art{width:90px;height:90px;border:7px solid #fafcf0;font-size:40px;margin:0}.hero p{font-size:12px}.recipe-grid{grid-template-columns:1fr}.energy{gap:20px}.card{padding:20px}.ring{width:130px;height:130px}.ring-inner{width:109px;height:109px}.macros{gap:12px}}

/* Mobile diary: the text gets its own flexible column and never collapses. */
.meal{display:grid;grid-template-columns:72px minmax(0,1fr) 32px;gap:14px;align-items:start}
.meal-visual img{width:72px;height:72px;object-fit:cover;border-radius:14px}
.meal-visual img[hidden]{display:none}
.meal-info{min-width:0;width:100%;overflow-wrap:break-word}
.meal-info h3{font-size:17px;line-height:1.4;word-break:normal;margin:6px 0}
.meal-info small,.meal-info strong{display:block;line-height:1.6}
.meal-info ul{padding-left:18px;font-size:13px}
.meal>.close{min-width:32px;padding:0;margin:0}
.meal-icon{width:60px;height:60px;font-size:28px}
.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.quick-actions a{display:inline-block;text-decoration:none}
.check{display:flex;align-items:center;gap:12px}
.check input{width:20px;height:20px;margin:0}
.allergy-menu{border:1px solid #dce3d5;border-radius:12px;padding:12px;margin-bottom:16px}
.allergy-menu summary{font-size:15px;line-height:1.5}
.allergy-menu fieldset{border:0;padding:16px 0 0}
.schedule-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;align-items:center;gap:12px}
.pending-item{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px;border-radius:10px;background:#f4f6f0;margin:10px 0}
.pending-item span{flex:1;min-width:130px;font-size:13px}
.pending-item.overdue{background:#fff0ed;border:1px solid #c15b4a;color:#8c3024}
.pending-item.complete{background:#edf4e8}
.plan-file{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #eee}
.plan-file span{flex:1;min-width:120px;overflow-wrap:anywhere}
.card.settings h2{margin:20px 0 12px}
header{gap:10px;flex-wrap:wrap}
dialog{max-height:calc(100dvh - 30px);overflow-y:auto;margin:auto}
.supplement-nav{display:block;padding:12px;color:inherit}
[hidden]{display:none!important}
@media(max-width:700px){
 .supplement-nav{display:none}
 nav{width:100%;gap:0;overflow-x:auto;justify-content:flex-start}
 nav a{flex:0 0 20%;min-width:64px;max-width:none;padding:6px 2px}
 aside{height:auto;min-height:68px;padding-bottom:max(5px,env(safe-area-inset-bottom))}
 main{padding:16px 12px calc(100px + env(safe-area-inset-bottom));max-width:100%;overflow-x:clip}
 .card{padding:16px;min-width:0}
 .meal{grid-template-columns:54px minmax(0,1fr) 28px;gap:10px;padding:18px 0}
 .meal-visual img{width:54px;height:64px}
 .meal-icon{width:48px;height:48px;font-size:24px}
 .meal-info h3{font-size:16px;line-height:1.45}
 .meal-info small{font-size:12px}
 .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 input,select,textarea{min-width:0;max-width:100%;font-size:16px}
 h1{font-size:27px}
 .intro{display:block}
 .intro .primary{margin-top:12px}
 .photo-save-fields{grid-template-columns:1fr}
 .scan-grid{grid-template-columns:minmax(0,1fr)}
 .result-total{grid-template-columns:repeat(2,minmax(0,1fr))}
 .context-stats{grid-template-columns:1fr}
 #toast{left:12px;right:12px;bottom:90px;font-size:14px}
}

.brand{align-items:center;gap:10px}.brand-icon{display:inline-block;vertical-align:middle;border-radius:11px;flex:0 0 38px;margin-right:5px}
@media(min-width:701px){aside{overflow-y:auto}nav .personal-nav{margin-top:13px}.brand{display:flex}}

.brand-signature{display:block;font-size:9px;line-height:1.5;letter-spacing:.35px;color:#77847b;margin:5px 0 0 53px;font-weight:400}.footer-signature{display:block;font-size:9px;line-height:1.5;margin-top:5px;color:#899286}
@media(max-width:700px){.brand-lockup{display:none}}

.transfer-panel{background:#eef3e6;border:1px solid #cedebf;border-radius:16px;padding:20px;margin:0 0 24px}.transfer-panel h2{font-size:19px}.transfer-panel p{font-size:13px}.transfer-panel button{margin-right:10px}.transfer-panel [role=status]{margin-top:12px;overflow-wrap:anywhere}.transfer-panel small{display:block;margin-top:12px;color:#607365}.transfer-source{position:fixed;inset:0;z-index:20;background:#f7f8f3;padding:40px 24px;overflow:auto}.transfer-source>div{max-width:620px;margin:auto}.transfer-source h1{font-size:30px}
