:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;color:#173b34;background:#f3f7f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:wait}a{color:inherit}.hidden{display:none!important}.shell{max-width:1190px;margin:auto;padding:0 24px}.top{background:linear-gradient(135deg,#103d35,#276b56);color:white;padding:27px 0 78px}.brand{display:flex;align-items:center;gap:12px}.logo{width:41px;height:41px;border-radius:13px;background:#b9d9bb;color:#17493e;display:grid;place-items:center;font-size:26px;font-weight:900}.brand strong{font-size:20px;letter-spacing:-.7px}.sub{color:#c4dfce;font-size:12px;margin-top:2px}.topline{display:flex;align-items:center;justify-content:space-between;gap:15px}.hero{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-top:32px}.hero h1{font-size:38px;letter-spacing:-1.4px;line-height:1.08;margin:0 0 9px}.hero p{margin:0;color:#c8e0d4;font-size:14px}.main{margin-top:-44px;position:relative;padding-bottom:110px}.nav{display:flex;gap:6px;background:white;padding:7px;border:1px solid #dce8df;border-radius:16px;box-shadow:0 10px 30px #14392a10;overflow:auto}.nav button{flex:1;border:0;background:transparent;border-radius:11px;white-space:nowrap;padding:13px 11px;font-size:13px;color:#476b5c;font-weight:700}.nav button.active{background:#e2f1e7;color:#20684f}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:26px 0 18px;gap:14px;flex-wrap:wrap}.toolbar h2{font-size:25px;margin:0;letter-spacing:-.7px}.muted{font-size:13px;color:#73877b}.date-control{display:flex;align-items:center;gap:10px;border:1px solid #dce7df;background:white;border-radius:12px;padding:5px}.date-control button{padding:8px 12px;border:0;border-radius:8px;background:#f0f5f0;font-size:18px}.date-control input{border:0;padding:6px 2px;min-width:122px;max-width:142px;color:#254a3d;background:transparent}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{background:white;border:1px solid #dce9df;border-radius:17px;padding:19px;min-height:121px}.metric label{display:block;font-size:12px;color:#789083}.metric strong{display:block;font-size:28px;letter-spacing:-1px;margin:6px 0 3px}.metric small{display:block;color:#7c9083;font-size:12px}.progress{height:6px;border-radius:10px;background:#e2eee4;overflow:hidden;margin-top:12px}.progress b{display:block;height:100%;border-radius:10px;background:#6fbf91}.dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(265px,1fr);gap:16px;margin-top:18px;align-items:start}.card{background:#fff;border:1px solid #deebe3;border-radius:18px;padding:20px;box-shadow:0 3px 10px #173c2308}.card h3{margin:0 0 14px;font-size:18px;letter-spacing:-.5px}.card h4{margin:0 0 5px}.card p{line-height:1.55}.actions{display:flex;flex-wrap:wrap;gap:9px}.btn{background:white;border:1px solid #ccdcd2;border-radius:11px;color:#205944;padding:11px 14px;font-size:13px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.primary{background:#17674d;border-color:#17674d;color:white}.btn.soft{background:#e9f4e9;border-color:#d7ecdd;color:#27694d}.btn.danger{color:#a83b3b;border-color:#e8cbcb}.btn.small{padding:7px 10px;font-size:12px;border-radius:9px}.btn.full{width:100%}.banner{padding:13px 15px;background:#eef6e9;border-radius:13px;color:#45644e;font-size:13px;line-height:1.6}.banner.warning{background:#fff5e7;color:#8e632c}.banner.red{background:#fff0ed;color:#92433d}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e9f0eb;padding:11px 0}.row:last-child{border-bottom:0}.row strong{font-size:14px}.row p{font-size:12px;color:#819487;margin:5px 0 0}.meal-tag{padding:3px 8px;border-radius:30px;font-size:11px;background:#ecf3e9;color:#52836c}.placeholder{padding:24px 6px;text-align:center;color:#89958d}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:#496859;font-weight:700}.field input,.field select,.field textarea{border:1px solid #d4e4d7;border-radius:10px;padding:12px 12px;background:white;color:#213e32;width:100%;min-height:45px}.field input:focus,.field select:focus{outline:2px solid #a8d7b1}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.field-grid .wide{grid-column:1/-1}.sectiontitle{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0 13px}.sectiontitle h3{margin:0}.recipegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recipe{background:white;border:1px solid #deebe2;border-radius:17px;padding:17px;display:flex;flex-direction:column;gap:11px}.recipe .head{display:flex;justify-content:space-between;gap:10px;align-items:start}.recipe .head strong{font-size:14px}.recipe .group{font-size:11px;color:#5b8b70}.recipe .ingredients{font-size:12px;color:#6e7e74;line-height:1.5;min-height:45px}.recipe .foot{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;margin-top:auto}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{border:1px solid #d5e4da;background:white;border-radius:10px;padding:9px 14px;font-weight:700;font-size:12px;color:#56806a}.tabs .active{background:#256a50;color:white}.cataloglist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.product{padding:14px;border:1px solid #dee9df;border-radius:13px;background:white;display:flex;align-items:center;justify-content:space-between;gap:8px}.product strong{font-size:13px}.product p{font-size:12px;color:#748d7b;margin:6px 0 0}.divide{height:1px;background:#e9f1eb;margin:17px 0}.overlay{position:fixed;inset:0;background:#092920b5;z-index:70;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{max-height:91vh;overflow-y:auto;background:white;width:min(560px,100%);border-radius:22px;padding:23px}.dialog h2{margin:0 0 14px;font-size:22px;letter-spacing:-.6px}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:14px}.close{width:35px;height:35px;border:0;border-radius:10px;background:#edf4ef;color:#315c48;font-size:21px}.floatbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:14px 0}.floating-add{position:fixed;bottom:22px;right:max(20px,calc((100vw - 1190px)/2));background:#176b4d;border:0;border-radius:100px;color:white;box-shadow:0 9px 35px #18462f56;z-index:20;padding:15px 20px;font-weight:800}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(165deg,#0c3b32,#337659)}.auth-card{background:white;width:min(440px,100%);padding:30px;border-radius:25px;box-shadow:0 10px 45px #061e1730}.auth-card .logo{margin-bottom:20px}.auth-card h1{margin:0;font-size:29px;letter-spacing:-1px}.auth-card p{color:#627f70;font-size:14px;line-height:1.6}.auth-card form{display:grid;gap:14px}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#397357}.loading .logo{width:60px;height:60px;font-size:34px}#notify{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#1c483d;color:white;padding:13px 19px;border-radius:12px;box-shadow:0 8px 30px #0f312f30;max-width:90vw;z-index:100;display:none;text-align:center;font-size:13px}.spin{width:16px;height:16px;border:2px solid #b5e2c9;border-top-color:transparent;border-radius:50%;display:inline-block;animation:rot 1s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}video{max-width:100%;border-radius:12px;max-height:290px}.chip{display:inline-block;padding:5px 8px;border-radius:8px;background:#f0f6ec;color:#4d775b;font-size:11px}.smalltext{font-size:12px;color:#7b9080}.footer{margin-top:50px;color:#8a9e8d;font-size:12px;text-align:center}.date-control input:focus{outline:none}@media(max-width:900px){.dashboard{grid-template-columns:1fr}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.shell{padding:0 14px}.top{padding:19px 0 65px}.hero{margin-top:24px}.hero h1{font-size:28px}.hero p{font-size:12px}.main{margin-top:-35px}.nav{gap:2px;padding:5px;border-radius:13px}.nav button{padding:11px 10px}.toolbar h2{font-size:21px}.metric{padding:13px;min-height:106px}.metric strong{font-size:24px}.recipegrid,.cataloglist{grid-template-columns:1fr}.field-grid{gap:10px}.card{padding:16px}.dialog{padding:18px}.floating-add{bottom:17px;right:17px}.hero h1{max-width:300px}}
/* Catalog nutrition stays visible before choosing a product, including on phones. */
.cataloglist .product{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}
.cataloglist .product-heading{min-width:0;overflow-wrap:anywhere}
.cataloglist .product-heading strong{font-size:14px;line-height:1.4}
.cataloglist .product .actions{flex-wrap:nowrap;gap:6px}
.cataloglist .product .actions button{min-width:44px;min-height:44px}
.cataloglist .product-nutrition,.cataloglist .product-meta{grid-column:1/-1;min-width:0}
.cataloglist .nutrition-basis{font-size:12px;color:#496859;margin-bottom:7px}
.cataloglist .nutrition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.cataloglist .nutrition-grid>div{background:#f0f6f1;border-radius:9px;padding:8px 4px;text-align:center}
.cataloglist .nutrition-grid dt{font-size:11px;color:#496859}
.cataloglist .nutrition-grid abbr{text-decoration:none}
.cataloglist .nutrition-grid dd{margin:4px 0 0;font-size:16px;font-weight:750;color:#173b34;font-variant-numeric:tabular-nums}
.cataloglist .product .nutrition-note{margin:6px 0 0;color:#596c60;font-size:11px}
.cataloglist .product .product-meta{margin:0;overflow-wrap:anywhere}
.btn,.close,.date-control button{min-height:44px;min-width:44px}
button:focus-visible,summary:focus-visible,a:focus-visible,.date-control input:focus-visible{outline:3px solid #257e65;outline-offset:3px}
.sectiontitle{flex-wrap:wrap}
.network-status{position:fixed;top:0;left:0;right:0;z-index:110;background:#fff5e7;color:#68410e;padding:12px 20px;border-bottom:2px solid #c38c34;font-size:14px;line-height:1.5;text-align:center}
.network-status[hidden]{display:none}
#product-portion-preview .nutrition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
#product-portion-preview .nutrition-grid dd{margin:6px 0;font-size:18px;font-weight:700}
details{line-height:1.6;overflow-wrap:anywhere}summary{cursor:pointer;min-height:44px;padding:8px 0}
.observation-chart{margin:16px 0;max-width:640px}.observation-chart svg{width:100%;height:auto}.observation-chart text{font-size:11px;fill:#45644e}.table-scroll{overflow-x:auto;max-width:100%}.table-scroll table{border-collapse:collapse;min-width:620px;font-size:13px}.table-scroll td,.table-scroll th{padding:8px;text-align:left;border-bottom:1px solid #dce8df}
