:root {
  --ink:#17231d;--muted:#5f6e66;--brand:#176b49;--brand-strong:#0f563a;--surface:#fff;--canvas:#f4f7f5;--soft:#eaf3ee;--line:#d5dfd9;--danger:#a12d2d;--danger-soft:#fff0ef;
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--radius-sm:.45rem;--radius:.75rem;--radius-lg:1rem;--control:2.75rem;--shadow:0 .25rem 1rem rgb(23 35 29 / 7%);--content:77.5rem;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light
}
*,*::before,*::after{box-sizing:border-box}html{min-width:20rem;scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-size:1rem;line-height:1.55}button,input,select,textarea{font:inherit}a{color:var(--brand);text-underline-offset:.18em}a:hover{color:var(--brand-strong)}:focus-visible{outline:.2rem solid #66ad8d;outline-offset:.15rem}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:var(--s2) 0;font-size:clamp(1.75rem,7vw,2.75rem);line-height:1.15;letter-spacing:-.025em}h2{margin:0 0 var(--s4);font-size:1.25rem;line-height:1.25}h3{line-height:1.3}p{margin:var(--s2) 0 var(--s4)}small,.meta{color:var(--muted);font-size:.875rem}
.site-header{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1fr auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);background:var(--surface);border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-size:1.25rem;font-weight:800;line-height:1.1;text-decoration:none}.brand small{display:none;font-weight:500}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.nav-toggle{min-width:var(--control);padding-inline:var(--s3)}.nav-toggle-icon{width:1.25rem;height:.875rem;display:grid;align-content:space-between}.nav-toggle-icon::before,.nav-toggle-icon::after,.nav-toggle-icon span{content:"";display:block;height:2px;border-radius:1px;background:currentColor}.site-tools{grid-column:1/-1;display:grid;gap:var(--s3)}.js .site-tools[hidden]{display:none}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s2);border-top:1px solid var(--line)}.site-nav form{margin:0}.search{display:flex;min-width:0}.search input{min-width:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.search button{flex:0 0 auto;border-radius:0 var(--radius-sm) var(--radius-sm) 0}main{width:100%;max-width:var(--content);margin:0 auto;padding:var(--s5) var(--s4) 4rem}
.title,.page-header,.section-head,.action-bar{display:flex;flex-direction:column;align-items:stretch;gap:var(--s3);margin-bottom:var(--s5)}.title>*,.page-header>*{min-width:0}.title p{color:var(--muted)}.section,.form-section{margin-block:var(--s5)}.eyebrow{margin:0;color:var(--brand);font-size:.8125rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.card,.panel{min-width:0;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5)}.narrow{width:100%;max-width:44rem;margin-inline:auto}.row{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin:var(--s3) 0;color:var(--ink)}.row>*{min-width:0}.row small{display:block}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-bottom:var(--s6)}.stats strong{display:block;font-size:clamp(1.75rem,9vw,2.25rem);line-height:1.15;font-variant-numeric:tabular-nums}.stats span{color:var(--muted)}.empty{padding:var(--s6) var(--s4);color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:var(--radius)}
.form,.login form{display:grid;gap:var(--s4)}label{display:grid;gap:var(--s2);min-width:0;color:var(--ink);font-size:.9375rem;font-weight:700}input,select,textarea{width:100%;min-height:var(--control);padding:.65rem .75rem;color:var(--ink);background:var(--surface);border:1px solid #b9c8c0;border-radius:var(--radius-sm)}input:hover,select:hover,textarea:hover{border-color:#879c90}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgb(23 107 73 / 14%);outline:0}textarea{min-height:7rem;resize:vertical}.two,.three{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s4)}.check{display:flex;align-items:center;gap:var(--s3);min-height:var(--control)}.check input{width:1.375rem;height:1.375rem;min-height:0;margin:0;accent-color:var(--brand)}.batch{display:grid;gap:var(--s3);align-items:end}
.button,button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control);padding:.6rem 1rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer}.button:hover,button:hover{color:var(--ink);background:var(--soft);border-color:#aebfb5}.primary{color:#fff;background:var(--brand);border-color:var(--brand)}.primary:hover{color:#fff;background:var(--brand-strong);border-color:var(--brand-strong)}.danger{color:var(--danger);border-color:#e2bcbc}.danger::before{content:"!";margin-right:.4rem;font-weight:900}.remove::before{content:none}.link{min-height:var(--control);padding-inline:var(--s2);background:transparent;border-color:transparent}.actions,.inline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.actions>*,.actions .button{flex:1 1 8rem}.inline{display:inline-flex}
.alert{margin:var(--s4) 0;padding:var(--s3) var(--s4);color:#7c2525;background:var(--danger-soft);border:1px solid #efc4c1;border-left:.3rem solid var(--danger);border-radius:var(--radius-sm);font-weight:600}.alert-success{color:var(--brand-strong);background:var(--soft);border-color:#b8dac9}.alert-warning{color:#765600;background:#fff8dd;border-color:#ead582}.alert-info{color:#155d78;background:#eaf7fb;border-color:#afd7e5}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;background:var(--soft);border:1px solid #c9ded2;border-radius:999px;font-size:.8125rem;font-weight:750;line-height:1.3;text-transform:capitalize}.badge::before{content:"";width:.4rem;height:.4rem;background:currentColor;border-radius:50%}
.table-wrap{overflow:visible;padding:var(--s3)}table,thead,tbody,tr,th,td{display:block}table{width:100%;border-collapse:collapse}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}tbody{display:grid;gap:var(--s3)}tr{padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm)}td{display:grid;grid-template-columns:minmax(6.5rem,38%) minmax(0,1fr);gap:var(--s3);align-items:center;padding:.4rem 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}td::before{content:attr(data-label);color:var(--muted);font-size:.75rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}td:last-child{padding-bottom:0}
.editor{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5);align-items:start;margin:var(--s5) 0}.ingredient{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);align-items:end;margin-bottom:var(--s3)}.ingredient-name{grid-column:1/-1}.ingredient label,.line-cost span{color:var(--muted);font-size:.8125rem}.line-cost span{display:block}.line-cost strong,.results strong{font-variant-numeric:tabular-nums}.remove{justify-self:end;width:var(--control);padding:0;font-size:1.35rem}.results>p,.results #suggestions p{display:flex;justify-content:space-between;gap:var(--s4)}.results>p strong{font-size:1.125rem}.results>p:first-child strong{color:var(--brand);font-size:1.5rem}.login{width:100%;max-width:27rem;margin:clamp(1rem,8vh,5rem) auto 0;padding:clamp(1.25rem,5vw,2rem)}.login h1{margin-top:0}
@media(min-width:48rem){.site-header{grid-template-columns:auto minmax(16rem,32rem) auto;gap:var(--s5);padding-inline:clamp(1.5rem,4vw,3rem)}.brand small{display:block;margin-top:.15rem}.nav-toggle{display:none}.site-tools,.js .site-tools[hidden]{grid-column:auto;display:contents}.search{grid-column:2;grid-row:1}.site-nav{grid-column:3;grid-row:1;justify-content:flex-end;padding:0;border:0}main{padding:var(--s6) clamp(1.5rem,4vw,3rem) 5rem}.title,.page-header,.section-head,.action-bar{flex-direction:row;justify-content:space-between;align-items:center}.actions{width:auto;justify-content:flex-end}.actions>*,.actions .button{flex:0 1 auto}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.batch{grid-template-columns:auto minmax(12rem,15rem)}.card,.panel{padding:var(--s5)}.table-wrap{padding:var(--s4);overflow-x:auto}table{display:table;min-width:46rem}thead{position:static;display:table-header-group;width:auto;height:auto;overflow:visible;clip:auto;clip-path:none;white-space:normal}tbody{display:table-row-group}tr{display:table-row;padding:0;border:0}th,td{display:table-cell;padding:.8rem .65rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}td::before{content:none}.editor{grid-template-columns:minmax(0,1fr) 17.5rem}.results{position:sticky;top:5.75rem}}
@media(min-width:64rem){.ingredient{grid-template-columns:minmax(10.5rem,1.5fr) repeat(6,minmax(5.5rem,1fr)) 5rem var(--control);padding:var(--s4)}.ingredient-name{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
