:root{
  --cream:#F7EEDC; --paper:#FFFDF8; --card:#F5E8D8; --line:#E8D9C0;
  --ink:#3B2A20; --mut:#8A6F5C; --terra:#C65B3A; --terra-d:#A94526;
  --mus:#E6A93C; --mus-l:#FAEBC6; --grn:#6B8F4E; --rose:#FBE6DD;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --nav:4rem;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:clamp(1rem,4.15vw,2.25rem);-webkit-text-size-adjust:100%}
html,body{margin:0;background:var(--cream);color:var(--ink)}
body{font:1rem/1.45 var(--sans)}
html,body{overflow-x:hidden;max-width:100%}
body{min-height:100vh;overscroll-behavior-y:none}
main{overflow-x:hidden}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3{font-family:var(--serif);margin:0;font-weight:700}

#top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:0.75rem;
  padding:calc(env(safe-area-inset-top) + 0.625rem) 1.125rem 0.625rem;background:var(--cream);border-bottom:1px solid var(--line)}
.logo{width:2.5rem;height:2.5rem;flex:none}
.ttl small{display:block;font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);font-weight:700}
.ttl h1{font-size:1.5rem;line-height:1.1}
.ttl h1 em{color:var(--terra);font-weight:400}

main{padding:0.875rem 1rem calc(var(--nav) + env(safe-area-inset-bottom) + 1.5rem);max-width:45rem;margin:0 auto}

#tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;height:calc(var(--nav) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--line)}
#tabs button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.125rem;color:var(--mut);font-size:0.6875rem;font-weight:600}
#tabs svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#tabs button.on{color:var(--terra)}

.search input{width:100%;padding:0.8125rem 1rem;border-radius:0.875rem;border:1px solid var(--line);background:var(--paper);font:inherit;color:var(--ink);outline:none}
.search input:focus{border-color:var(--terra)}
.hint{color:var(--mut);font-size:0.875rem;margin:0.625rem 0.125rem}

.sec{display:flex;align-items:center;gap:0.625rem;margin:1.375rem 0 0.625rem}
.sec:before{content:"";width:1.375rem;height:0.125rem;background:var(--terra)}
.sec h2{font-size:1.1875rem}
.sec .sub{margin-left:auto;color:var(--mut);font-size:0.8125rem}

/* Destaques */
.favs{display:flex;gap:0.625rem;overflow-x:auto;margin:0 -1rem;padding:0.125rem 1rem 0.5rem;scroll-snap-type:x proximity}
.favs::-webkit-scrollbar{display:none}
.fav-card{flex:none;width:9.375rem;scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:0.75rem;text-align:left;position:relative;min-height:7rem;display:flex;flex-direction:column}
.fav-card .num{width:1.75rem;height:1.75rem;font-size:0.875rem}
.fav-card b{font-family:var(--serif);font-size:0.9375rem;line-height:1.2;margin:0.5rem 0 0.25rem;display:block}
.fav-card small{color:var(--mut);margin-top:auto;font-size:0.75rem}
.fav-card:before{content:"★";position:absolute;top:0.5rem;right:0.625rem;color:var(--mus);font-size:1.0625rem}
.empty-fav{background:var(--paper);border:1px dashed var(--mus);border-radius:1rem;padding:0.875rem 1rem;color:var(--mut);font-size:0.875rem}
.empty-fav b{color:var(--mus)}

/* Categorias */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem}
.tile{border-radius:1.125rem;padding:0.75rem;text-align:left;display:flex;flex-direction:column;gap:0.375rem;min-height:8rem;border:1px solid rgba(59,42,32,.08)}
.tile svg{width:2.875rem;height:2.875rem}
.tile b{font-family:var(--serif);font-size:0.9688rem;line-height:1.2}
.tile small{color:var(--mut);font-size:0.7812rem;margin-top:auto}
.tile.wide{grid-column:1/-1;min-height:0;flex-direction:row;align-items:center;background:var(--mus-l)}
.tile.wide small{margin:0 0 0 auto}

.back{display:inline-flex;align-items:center;gap:0.375rem;color:var(--terra);font-weight:700;padding:0.375rem 0 0.625rem}
.cathead{border-radius:1.25rem;padding:1.125rem;margin-bottom:0.75rem}
.cathead small{letter-spacing:.14em;text-transform:uppercase;color:var(--terra-d);font-weight:700;font-size:0.6875rem}
.cathead h2{font-size:1.625rem;line-height:1.1;margin:0.25rem 0 0.5rem}
.cathead p{margin:0;font-family:var(--serif);font-size:0.9375rem;color:#5a463a}
.chips{display:flex;gap:0.5rem;flex-wrap:wrap;margin:0.375rem 0 0.625rem}
.chip{padding:0.4375rem 0.8125rem;border-radius:62.4375rem;border:1px solid var(--line);background:var(--paper);font-size:0.875rem;font-weight:600;color:var(--mut)}
.chip.on{background:var(--terra);border-color:var(--terra);color:#fff}

/* Linhas de receita */
.row{display:flex;align-items:center;gap:0.75rem;background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:0.6875rem 0.5rem 0.6875rem 0.75rem;margin-bottom:0.5rem;cursor:pointer}
.num{flex:none;width:2.125rem;height:2.125rem;border-radius:50%;background:var(--terra);color:#fff;font-family:var(--serif);font-weight:700;display:grid;place-items:center;font-size:0.9375rem}
.rt{flex:1;min-width:0}
.rt b{display:block;font-family:var(--serif);font-size:1.0312rem;line-height:1.25}
.rt small{color:var(--mut);font-size:0.8125rem}
.star{flex:none;width:2.625rem;height:2.625rem;font-size:1.5rem;color:#CDBBA2;display:grid;place-items:center;border-radius:50%}
.star.on{color:var(--mus)}
.star:active{background:var(--mus-l)}

/* Sheet */
#sheet{position:fixed;inset:0;z-index:50;background:var(--paper);overflow-y:auto;transform:translateY(102%);transition:transform .26s ease;visibility:hidden}
#sheet.open{transform:none;visibility:visible}
.sh-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 0.5rem) 0.625rem 0.5rem;background:var(--paper);border-bottom:1px solid var(--line)}
.sh-head .bk{display:flex;align-items:center;gap:0.25rem;color:var(--terra);font-weight:700;padding:0.5rem}
.sh-body{padding:1rem 1.125rem calc(env(safe-area-inset-bottom) + 2.5rem);max-width:45rem;margin:0 auto}
.pill{display:inline-block;padding:0.25rem 0.6875rem;border-radius:62.4375rem;font-size:0.75rem;font-weight:700;letter-spacing:.04em;color:var(--terra-d)}
.sh-body h2{font-size:1.75rem;line-height:1.12;margin:0.625rem 0 0.625rem}
.meta{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.375rem}
.meta span{background:var(--card);color:var(--terra-d);font-weight:700;font-size:0.8125rem;padding:0.3125rem 0.6875rem;border-radius:62.4375rem}
.sh-body h3{font-size:1.125rem;color:var(--terra-d);font-style:italic;font-weight:400;margin:1.25rem 0 0.5rem}
.ing{list-style:none;margin:0;padding:0.875rem 1rem;background:var(--card);border-radius:1rem}
.ing li{position:relative;padding:0.25rem 0 0.25rem 1.25rem}
.ing li:before{content:"";position:absolute;left:0.125rem;top:0.75rem;width:0.5rem;height:0.5rem;border-radius:50%;background:var(--mus)}
.ing li.ref:before{background:var(--terra)}
.ing li.ref{color:var(--terra-d);font-weight:600}
.ing .lnk{color:var(--terra);font-weight:700;text-decoration:underline;margin-left:0.375rem;font-size:0.875rem}
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{counter-increment:s;position:relative;padding:0.5rem 0 0.5rem 2.5rem}
.steps li:before{content:counter(s);position:absolute;left:0;top:0.5rem;width:1.625rem;height:1.625rem;border-radius:50%;border:1.5px solid var(--terra);color:var(--terra);font-size:0.8125rem;font-weight:700;display:grid;place-items:center}
.btn{display:block;width:100%;margin-top:1.375rem;background:var(--terra);color:#fff;font-weight:700;padding:0.875rem;border-radius:0.875rem;text-align:center}
.btn.ghost{background:var(--paper);color:var(--terra);border:1.5px solid var(--terra);margin-top:0.625rem}
.btn.sm{display:inline-block;width:auto;padding:0.625rem 1rem;margin:0}

.dayrow{display:flex;align-items:center;gap:0.75rem;width:100%;text-align:left;background:var(--card);padding:0.875rem 1rem;border-radius:0.875rem;margin-bottom:0.5rem;font-weight:600}
.dayrow span{margin-left:auto;color:var(--mut);font-weight:400;font-size:0.875rem}

/* Segmentado */
.seg{display:flex;background:var(--card);border-radius:0.875rem;padding:0.25rem;margin-bottom:0.75rem}
.seg button{flex:1;padding:0.625rem 0.375rem;border-radius:0.6875rem;font-weight:700;font-size:0.875rem;color:var(--mut)}
.seg button.on{background:var(--paper);color:var(--terra);box-shadow:0 1px 0.1875rem rgba(59,42,32,.12)}
.wk{display:flex;gap:0.5rem;margin-bottom:0.75rem}
.wk .chip{flex:1;text-align:center;padding:0.5625rem 0}

/* Cardápio */
.weekhead{display:flex;align-items:center;justify-content:space-between;background:var(--terra);color:#fff;border-radius:1rem 1rem 0 0;padding:0.75rem 1rem}
.weekhead h3{font-size:1.1875rem}
.weekhead small{letter-spacing:.14em;font-weight:700;font-size:0.6875rem}
.days{border:1px solid var(--line);border-top:0;border-radius:0 0 1rem 1rem;overflow:hidden;background:var(--paper)}
.day{display:flex;gap:0.75rem;padding:0.75rem 0.875rem;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.day.sun{background:var(--mus-l)}
.dn{flex:none;width:2.625rem;text-align:center;font-family:var(--serif);color:var(--terra);font-size:1.375rem;line-height:1}
.dn small{display:block;font-family:var(--sans);font-size:0.625rem;letter-spacing:.12em;color:var(--mut);font-weight:700;margin-top:0.1875rem}
.dc{flex:1;min-width:0}
.dc b{font-weight:600;line-height:1.3;display:block}
.tip{color:var(--grn);font-size:0.8125rem;font-weight:600;margin-top:0.125rem}
.tip:before{content:"★ ";color:var(--mus)}
.dm{flex:none;color:var(--mut);font-size:0.8125rem;white-space:nowrap}
.rchips{display:flex;gap:0.375rem;flex-wrap:wrap;margin-top:0.375rem}
.rc{background:var(--rose);color:var(--terra-d);font-weight:700;font-size:0.7812rem;padding:0.25rem 0.625rem;border-radius:62.4375rem}

.mday{background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:0.75rem 0.875rem;margin-bottom:0.625rem}
.mday h3{font-size:1.125rem;margin-bottom:0.375rem}
.mitem{display:flex;align-items:center;gap:0.625rem;padding:0.375rem 0}
.mitem .t{flex:1;min-width:0;cursor:pointer}
.mitem .t b{font-family:var(--serif);font-size:0.9688rem;font-weight:700;line-height:1.25}
.mitem .t small{display:block;color:var(--mut);font-size:0.7812rem}
.x{width:2.25rem;height:2.25rem;border-radius:50%;color:var(--mut);font-size:1.25rem;display:grid;place-items:center}
.x:active{background:var(--rose)}
.add{color:var(--terra);font-weight:700;padding:0.375rem 0}
.note{color:var(--mut);font-size:0.8438rem;margin:0.375rem 0.125rem 0.75rem}

/* Compras */
.prog{display:flex;align-items:center;justify-content:space-between;margin:0.125rem 0.125rem 0.625rem;color:var(--mut);font-size:0.875rem}
.prog .bar{flex:1;height:0.375rem;border-radius:0.375rem;background:var(--line);margin:0 0.75rem;overflow:hidden}
.prog .bar i{display:block;height:100%;background:var(--grn);width:0;transition:width .2s}
.ck{display:flex;align-items:flex-start;gap:0.75rem;background:var(--paper);border:1px solid var(--line);border-radius:0.875rem;padding:0.75rem 0.875rem;margin-bottom:0.4375rem;cursor:pointer}
.ck i{flex:none;width:1.5rem;height:1.5rem;border-radius:0.4375rem;border:0.125rem solid #CDBBA2;display:grid;place-items:center;color:transparent;font-style:normal;font-size:0.9375rem;font-weight:700;margin-top:1px}
.ck.on i{background:var(--grn);border-color:var(--grn);color:#fff}
.ck.on span{text-decoration:line-through;color:var(--mut)}
.ck span{flex:1;min-width:0;overflow-wrap:anywhere}
.ck span small{display:block;color:var(--mut);font-size:0.8125rem;margin-top:0.125rem}
.ck em{font-style:normal;color:var(--terra-d);font-weight:700;text-align:right;margin-left:auto;padding-left:0.5rem;max-width:45%;overflow-wrap:anywhere}
.lbl{font-size:0.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);font-weight:700;margin:1rem 0.125rem 0.5rem}

/* Guia */
details{background:var(--paper);border:1px solid var(--line);border-radius:1rem;margin-bottom:0.625rem;overflow:hidden}
summary{list-style:none;padding:0.9375rem 1rem;font-family:var(--serif);font-size:1.125rem;font-weight:700;display:flex;align-items:center;gap:0.625rem;cursor:pointer}
summary::-webkit-details-marker{display:none}
summary:after{content:"＋";margin-left:auto;color:var(--terra);font-family:var(--sans)}
details[open] summary:after{content:"－"}
.dbody{padding:0 1rem 1rem}
.five{display:flex;gap:0.75rem;padding:0.625rem 0;border-top:1px solid var(--line)}
.five:first-child{border-top:0}
.five .num{width:1.75rem;height:1.75rem;font-size:0.875rem;margin-top:0.125rem}
.five b{font-family:var(--serif);color:var(--terra-d);font-style:italic;font-size:1.0625rem}
.five small{display:block;color:var(--grn);font-weight:700;margin-top:0.125rem}
.warn{background:var(--rose);border-left:0.25rem solid var(--terra);border-radius:0.625rem;padding:0.75rem 0.875rem;font-size:0.875rem;margin-top:0.75rem}
table{width:100%;border-collapse:collapse;font-size:0.9062rem}
td{padding:0.5625rem 0.375rem;border-top:1px solid var(--line);vertical-align:top}
td:last-child{text-align:right;color:var(--terra-d);font-weight:700}
tr:first-child td{border-top:0}
.dbody ul{margin:0;padding-left:1.125rem}
.dbody li{margin:0.375rem 0}
.dbody p{margin:0.375rem 0}

#toast{position:fixed;left:50%;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 1.125rem);transform:translate(-50%,1.25rem);background:var(--ink);color:#fff;padding:0.6875rem 1.125rem;border-radius:62.4375rem;font-size:0.875rem;font-weight:600;opacity:0;pointer-events:none;transition:all .22s;z-index:90;max-width:88vw;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}


