[hidden]{display:none!important}
:root{--g:#15803d;--g2:#166534;--bg:#f7faf7;--ink:#14231a;--mut:#5b6b60;--line:#dfe7e1;--warn:#b45309;--red:#b91c1c;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.45}
a{color:var(--g2)}button,input,select{font:inherit;font-size:max(1rem,1em)}
.top{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.6rem 1rem;background:#fff;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:.4rem;align-items:center;font-weight:700;text-decoration:none;color:var(--ink)}
.langs{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto;font-size:.9rem}.langs a[aria-current]{font-weight:700;text-decoration:none;color:var(--ink)}
.badge,.pill{background:var(--g);color:#fff;border-radius:999px;padding:.05rem .5rem;font-size:.8125rem;font-weight:700}
.pill{background:#e7f3ea;color:var(--g2)}
.hero,main,.pro,.foot{max-width:860px;margin:0 auto;padding:1rem}
h1{font-size:1.65rem;line-height:1.2;margin:.4rem 0}.sub{font-size:1.08rem;margin:.3rem 0 .6rem}
.better{padding-left:1.1rem;margin:.4rem 0}.better li{margin:.25rem 0}.why-pro{color:var(--g2)}
.lede{background:#fff;border:1px solid var(--line);border-left:4px solid var(--g);padding:.6rem .8rem;border-radius:8px}
.cta,.row,.acts{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.5rem 0}
.primary,.ghost,.icon{border-radius:10px;padding:.55rem .9rem;border:1px solid var(--g);cursor:pointer;text-decoration:none;display:inline-block}
.primary{background:var(--g);color:#fff;font-weight:700}.ghost{background:#fff;color:var(--g2)}.icon{background:#fff;color:var(--g2);padding:.3rem .7rem;font-size:1.2rem}
.small{font-size:.86rem;color:var(--mut)}button.small,a.small{padding:.3rem .6rem;font-size:.86rem}
button:disabled{opacity:.45;cursor:not-allowed}
.daynav{display:flex;gap:.6rem;align-items:center}.daynav h2{margin:0;font-size:1.2rem;min-width:9rem;text-align:center}
.totals{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem 1rem;margin:.6rem 0}
.big{font-size:1.1rem}.big b{font-size:2rem;color:var(--g2)}.macros{display:flex;gap:1rem;flex-wrap:wrap}
.bars .bar{display:grid;grid-template-columns:6rem 1fr 7rem;gap:.5rem;align-items:center;margin:.25rem 0}
.track{background:#e5ece7;border-radius:6px;height:.6rem;overflow:hidden}.track i{display:block;height:100%;background:var(--g)}.track i.over{background:var(--red)}
.meal{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem .9rem;margin:.6rem 0}
.mh{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;align-items:baseline}.mh h3{margin:0}.mt{font-size:.9rem;color:var(--g2);font-weight:600}
.items{list-style:none;padding:0;margin:.4rem 0}.items li{border-top:1px dashed var(--line);padding:.4rem 0}
.it{display:flex;justify-content:space-between;gap:.5rem}.kc{font-weight:700;white-space:nowrap}.prep{font-weight:400;color:var(--mut)}.src{font-size:.8125rem}
.items .acts{margin:.2rem 0}
.note{background:#ecfdf3;border:1px solid #bbf7d0;padding:.5rem .7rem;border-radius:8px}
.locked{background:#fff7ed;border:1px solid #fed7aa;padding:.7rem;border-radius:10px}
.msg{min-height:1.2rem}.msg.warn,.warn{color:var(--warn)}
dialog{border:none;border-radius:14px;padding:0;width:min(640px,96vw);max-height:92vh}dialog::backdrop{background:rgba(0,0,0,.35)}
.dlg{padding:.8rem 1rem;display:block}.dlghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
#q{width:100%;padding:.7rem .8rem;border:2px solid var(--g);border-radius:10px;font-size:1.05rem}
.results{list-style:none;padding:0;margin:.4rem 0;max-height:46vh;overflow:auto}.results li button{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:.5rem .3rem;cursor:pointer;display:flex;flex-wrap:wrap;gap:.3rem;align-items:baseline}
.results li button:hover{background:#f0f7f2}.results .small{width:100%}
.tag{font-size:.8125rem;border-radius:999px;padding:0 .45rem;border:1px solid var(--line)}.tag.rec{background:#dcfce7;border-color:#86efac}.tag.meal{background:#fef9c3;border-color:#fde047}.tag.ibge{background:#e0f2fe;border-color:#7dd3fc}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.grid2 label{display:flex;flex-direction:column;font-size:.86rem;color:var(--mut)}
input,select{padding:.45rem .5rem;border:1px solid #c9d6cc;border-radius:8px;background:#fff;color:var(--ink)}
.pick{border-top:2px solid var(--g);margin-top:.5rem;padding-top:.5rem}.pick h3{margin:.2rem 0}.math{font-weight:600;color:var(--g2)}
.cam{position:relative;max-width:420px}.cam video{width:100%;border-radius:10px;background:#000}.frame{position:absolute;inset:30% 12%;border:3px solid #22c55e;border-radius:8px;pointer-events:none}
.pro{background:#fff;border-top:3px solid var(--g);margin-top:1rem}.prolist li{margin:.2rem 0}
.procols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.7rem;margin-top:.8rem}
.card{border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;background:var(--bg)}.card h3{margin:.1rem 0 .4rem;font-size:1.02rem}
.week{display:flex;gap:.35rem;align-items:flex-end;height:110px;border-bottom:1px solid var(--line);margin-bottom:.4rem}.week .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.week i{display:block;width:70%;background:var(--g);border-radius:4px 4px 0 0}.week i.over{background:var(--red)}.week span{font-size:.8125rem;color:var(--mut)}
.tt{width:100%;font-size:.88rem}.saved{list-style:none;padding:0}.saved li{margin:.3rem 0}
.foot{color:var(--mut);font-size:.9rem}
.report{background:#fff;padding:1rem}.report table{border-collapse:collapse;width:100%;font-size:.82rem}.report th,.report td{border:1px solid #ccc;padding:.2rem .35rem;text-align:right}.report td:first-child,.report th:first-child{text-align:left}
body.printing>*:not(#report){display:none!important}body.printing #report{display:block!important;max-width:1000px;margin:0 auto}
@media print{.noprint{display:none!important}body{background:#fff}}
.primary.small{color:#fff}.ghost.small{color:var(--g2)}
.card .grid2{grid-template-columns:1fr 1fr}.grid2>label{min-width:0}.grid2 input,.grid2 select{width:100%;min-width:0}
@media (max-width:560px){h1{font-size:1.35rem}.grid2{grid-template-columns:minmax(0,1fr)}.bars .bar{grid-template-columns:4.5rem 1fr 5.5rem}}
