@font-face{font-family:Outfit;src:url('/fonts/outfit-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ps-green:#3b1b45;--ps-citron:#f28c84;--ps-white:#f6efe2;--ps-paper:#fff;--ps-muted:#6b5a70;--ps-line:#dcd2cb;--ps-red:#bd3d32}
html{background:var(--ps-white);color:var(--ps-green)}
body{background:var(--ps-white);color:var(--ps-green);font-family:Outfit,system-ui,sans-serif;line-height:1.6}
.ps-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:12px max(24px,calc((100% - 1180px)/2));background:var(--ps-white);border-bottom:1px solid var(--ps-line);color:var(--ps-green);gap:24px}
.ps-brand{display:inline-flex;align-items:center;flex:0 0 auto}.ps-brand img{display:block;width:268px;height:46px;object-fit:contain;object-position:left center}
.ps-primary-nav{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:20px}.ps-primary-nav a{color:var(--ps-green);font-size:14px;font-weight:600;text-decoration:none}.ps-primary-nav a:hover{text-decoration:underline;text-underline-offset:4px}.ps-nav-cta{padding:9px 14px;background:var(--ps-green)!important;color:#F6EFE2!important;border-radius:3px}
.ps-menu-toggle{display:none;border:1px solid var(--ps-green);border-radius:3px;padding:9px 12px;background:transparent;color:var(--ps-green);font-weight:700;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:34px 24px 72px}.crumbs{color:var(--ps-muted);font-family:Outfit,system-ui,sans-serif;font-size:12px;letter-spacing:.08em}.crumbs a{color:var(--ps-muted)}
h1,h2,h3,h4,h5,h6{font-family:"Bricolage Grotesque",system-ui,sans-serif;color:var(--ps-green);font-weight:850;letter-spacing:-.035em}h1{font-size:clamp(36px,6vw,68px);line-height:.98}h2{font-size:clamp(28px,4vw,44px);line-height:1.03}h3{font-size:24px}.lede{color:var(--ps-muted);max-width:65ch}.muted{color:var(--ps-muted)}
a{color:#6b3a7d}.btn,.button,button,input,select,textarea{font-family:inherit;border-radius:3px}.btn,.button{font-weight:700}.btn.primary,.button.primary{background:var(--ps-green);color:#F6EFE2}
input,select,textarea{border:1px solid #b9adbc;background:var(--ps-paper);color:var(--ps-green);min-height:44px;padding:10px 12px}.card,.tool,.article,.product,.sheet,.calc,.panel{border-color:var(--ps-line);background:var(--ps-paper);box-shadow:none}
table{border-color:var(--ps-line)}th{background:#f1ece9;color:var(--ps-green)}
.ps-footer{background:var(--ps-green);color:var(--ps-white);padding:42px max(24px,calc((100% - 1180px)/2))}.ps-footer-inner{display:grid;gap:24px}.ps-footer-brand{color:#F6EFE2;font-size:28px;font-weight:850;text-decoration:none}.ps-footer-brand img{display:block;width:268px;height:46px;object-fit:contain;object-position:left center}.ps-footer-lead p,.ps-footer-sister,.ps-footer-copy{max-width:60ch;color:#dcd2cb;font-size:14px}.ps-footer a{color:#F6EFE2}.ps-footer-nav{display:flex;flex-wrap:wrap;gap:10px 20px}.ps-footer-nav a{text-decoration:none;font-size:13px;font-weight:600}.ps-footer-nav a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--ps-red);outline-offset:3px}
/* Static tool pages retain legacy markup; this scoped layer brings their tokens and shells into the same system. */
body.ps-site{--bg:var(--ps-white);--bg2:var(--ps-white);--bg3:#f3f1ec;--cream:var(--ps-white);--cream2:#f6f2ec;--ink:var(--ps-green);--text:var(--ps-green);--muted:var(--ps-muted);--dim:#7b5986;--line:var(--ps-line);--line2:#b9adbc;--copper:var(--ps-green);--copper-hot:#6b3a7d;--copper-deep:#230f2a;--herb:#6b3a7d;--serif:"Bricolage Grotesque",system-ui,sans-serif;--sans:Outfit,system-ui,sans-serif;color:var(--ps-green);background:var(--ps-white)}
body.ps-site .topbar{background:#E9E1D7;color:var(--ps-green);border-color:rgba(59,27,69,.2)}
body.ps-site .topbar a,body.ps-site .topbar .brand{color:var(--ps-green)}
body.ps-site .sitefoot,body.ps-site .sitefoot .fwrap{background:var(--ps-green);color:var(--ps-white)}
body.ps-site .sitefoot a{color:#F6EFE2}
body.ps-site footer.ps-footer:not(.sitefoot){background:var(--ps-green);color:var(--ps-white);border-color:rgba(255,255,255,.2);padding:32px max(18px,calc((100% - 1180px)/2));display:block}
body.ps-site footer.ps-footer:not(.sitefoot) a{color:#F6EFE2}
body.ps-site .tool,body.ps-site .card,body.ps-site .article,body.ps-site .product,body.ps-site .sheet,body.ps-site .calc,body.ps-site .panel,body.ps-site .box{background:var(--ps-paper);color:var(--ps-green);border-color:var(--ps-line);box-shadow:none}
body.ps-site .tool input,body.ps-site .tool select,body.ps-site input,body.ps-site select,body.ps-site textarea{background:var(--ps-paper);color:var(--ps-green);border-color:var(--ps-line2)}
body.ps-site table th{background:#f1ece9;color:var(--ps-green)}
body.ps-site .topbar + main,body.ps-site main.wrap{background:var(--ps-white)}
body.ps-site .crumbs,body.ps-site .crumbs a,body.ps-site .crumbs [aria-current]{color:var(--ps-muted);text-shadow:none}
body.ps-site .crumbs [aria-current]{font-family:Outfit,system-ui,sans-serif;background:transparent}
body.ps-site .cta,body.ps-site .dlbox,body.ps-site .buy,body.ps-site .product{box-shadow:none;background:var(--ps-paper);color:var(--ps-green);border-color:var(--ps-line)}
body.ps-site .cta a:not(.dl):not(.dlbtn),body.ps-site .dlbox a:not(.dl):not(.dlbtn){color:#6b3a7d}
body.ps-site .product h1{font-size:clamp(36px,6vw,68px);line-height:.98}
body.ps-site .product h2{font-size:clamp(28px,4vw,44px);line-height:1.03}
.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}
@media(max-width:980px){.ps-header{padding:11px 18px;align-items:flex-start}.ps-brand img{width:210px;height:36px}.ps-primary-nav{flex:1;min-width:0;gap:10px 16px}.ps-menu-ready .ps-menu-toggle{display:block}.ps-menu-ready .ps-primary-nav{display:none;position:absolute;top:60px;left:0;right:0;padding:16px 18px 20px;background:#3B1B45;border-top:1px solid rgba(59,27,69,.2);flex-direction:column;align-items:stretch;gap:0;color:#F6EFE2}.ps-menu-ready .ps-primary-nav.is-open{display:flex}.ps-primary-nav a{padding:8px 0}.ps-nav-cta{padding:10px 14px!important;text-align:center}.wrap{padding:25px 18px 54px}}
@media print{.ps-menu-toggle,.ps-primary-nav{display:none!important}.ps-header{min-height:auto;padding:8px 0;background:#fff;color:#000}.ps-header img{width:170px;height:auto}.ps-footer,.sitefoot{background:#fff!important;color:#000!important;border-top:1px solid #999}.ps-footer a,.sitefoot a{color:#000!important}.wrap{max-width:none;padding:18px 0}.tool,.card,.article,.product,.sheet,.calc,.panel{break-inside:avoid;box-shadow:none!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* These tokens deliberately take precedence over the older tool stylesheet.
   Reading surfaces and action surfaces have distinct foreground rules. */
body.ps-site{--ps-bg:#f6efe2;--ps-ink:#3b1b45;--ps-green:#3b1b45;--ps-green-dark:#230f2a;--ps-paper:#fff;--ps-surface:#f3f1ec;--ps-surface-2:#ece6e2;--ps-muted:#6b5a70;--ps-line:#dcd2cb;--ps-line-strong:#b9adbc;--card-muted:#6b5a70;--card-link:#6b3a7d;--green:#3b1b45;--green-dark:#230f2a;--dark:#3b1b45;--orange:#3b1b45;--paper:#f6efe2;--wash:#f3f1ec;font-family:Outfit,system-ui,sans-serif;background-image:none}
body.ps-site::before,body.ps-site::after{display:none;background-image:none}
body.ps-site :is(h1,h2,h3,h4,h5,h6,.serif){font-family:"Bricolage Grotesque",system-ui,sans-serif}
body.ps-site :is(strong,b){color:inherit}
body.ps-site :is(code,pre){color:var(--ps-green);background:#f3f1ec}
body.ps-site blockquote{color:var(--ps-muted)}
body.ps-site li.item a{color:var(--ps-green)}
body.ps-site .dlbox a:is(.dl,.dlbtn),body.ps-site .cta button,body.ps-site :is(a,button).buy{background:var(--ps-green);color:#F6EFE2;box-shadow:none;border-color:var(--ps-green)}
body.ps-site .dlbox a:is(.dl,.dlbtn):hover,body.ps-site .cta button:hover,body.ps-site :is(a,button).buy:hover{background:#4f235c;color:#F6EFE2}
body.ps-site .pricebox{background:#fff;color:var(--ps-green);box-shadow:none;border:1px solid var(--ps-line)}
body.ps-site .pgrid h1{font-size:clamp(36px,4.5vw,56px);line-height:1.04}
body.ps-site .pgrid h2{font-size:clamp(27px,3vw,36px);line-height:1.12}
body.ps-site :is(main,article,aside,.tbl,.pgrid>div,.pgrid>aside){min-width:0}
body.ps-site :is(.tbl,.recipe-table-wrap){max-width:100%;overflow-x:auto}

/* Readable foregrounds on legacy disclosure, checkout, and footer surfaces. */
body.ps-site:where(:not(.ps-home)) summary,
body.ps-site:where(:not(.ps-home)) .ps-head .t,
body.ps-site:where(:not(.ps-home)) table.pst td.qty,
body.ps-site:where(:not(.ps-home)) .docket2 .dh b.mono{color:var(--ps-green)}
body.ps-site :is(.prod,.pricebox) a.buy,
body.ps-site main.wrap .btn-primary,
body.ps-site main.wrap .btn-primary:hover,
body.ps-site button#add,
body.ps-site button#add:hover{background:var(--ps-green);color:#F6EFE2;border-color:var(--ps-green)}
body.ps-site main.wrap .btn.btn-ghost,
body.ps-site main.wrap .btn.btn-ghost:hover{color:var(--ps-green);background:transparent;border-color:#b9adbc}
body.ps-site footer.ps-footer p,
body.ps-site footer.ps-footer .sig,
body.ps-site .sitefoot :is(p,.fcopy,.fsis,.sig){color:#dcd2cb}
body.ps-site footer.ps-footer p a,
body.ps-site .sitefoot :is(p,.fcopy,.fsis,.sig) a{color:#F6EFE2}
@media print{body.ps-site footer.ps-footer p,body.ps-site footer.ps-footer .sig,body.ps-site .sitefoot :is(p,.fcopy,.fsis,.sig){color:#111!important}}

/* Long guides use a comfortable reading measure instead of the wider tool layout. */
body.ps-site main.wrap:has(>.back){max-width:820px;font-size:18px;line-height:1.7}
body.ps-site main.wrap:has(>.back) h1{font-size:clamp(36px,5vw,56px);line-height:1.06}
body.ps-site main.wrap:has(>.back) h2{font-size:clamp(28px,4vw,36px);line-height:1.14}
@media print{body.ps-site footer.ps-footer{display:none!important}}

/* council r6: states + focus + GP status (coral is never a focus ring, text on cream or a status colour) */
:root{--cs-night:#241028;--cs-gp-under:#B3261E;--cs-gp-close:#8A5A00;--cs-gp-ok:#46712F}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #3B1B45!important;outline-offset:2px!important;box-shadow:none!important}
.ps-header-dark :focus-visible,.cs-rename :focus-visible,.psc :focus-visible,.ps-footer :focus-visible,.chef-note :focus-visible,.app-top :focus-visible,.appbar :focus-visible,[data-surface="dark"] :focus-visible{outline-color:#F6EFE2!important}
.btn:not(.alt):not(.btn-outline):not(:disabled):not([aria-disabled="true"]):hover,.btn:not(.alt):not(.btn-outline):not(:disabled):active,.btn-primary:not(:disabled):hover,.btn-primary:not(:disabled):active{background:#241028!important;border-color:#241028!important;color:#F6EFE2!important}
button:disabled,.btn:disabled,.btn[aria-disabled="true"],.home-button[aria-disabled="true"],input[type=submit]:disabled{background:#E4DBD1!important;border:2px solid #8A7A90!important;color:#5E4A66!important;opacity:1!important;cursor:not-allowed;box-shadow:none!important}
.gp-flag{border:1px solid transparent;font-weight:600}
.gp-flag.bad{background:#fff;color:#B3261E;border-color:#B3261E}.gp-flag.bad::before{content:"▼ "}
.gp-flag.close{background:#fff;color:#8A5A00;border-color:#8A5A00}.gp-flag.close::before{content:"◆ "}
.gp-flag.ok{background:#fff;color:#46712F;border-color:#46712F}.gp-flag.ok::before{content:"✓ "}
.plus-alert{background:#fff;color:#B3261E;border-color:#B3261E}
#r-fc.good{color:#46712F}#r-fc.warn{color:#8A5A00}#r-fc.bad{color:#B3261E}
#r-fc[data-gp]::after{display:block;width:max-content;margin-top:4px;padding:1px 8px;font-size:13px;font-weight:600;line-height:1.5;background:#fff;border:1px solid;border-radius:999px;white-space:nowrap}
#r-fc[data-gp="good"]::after{content:"✓ On target";color:#46712F}
#r-fc[data-gp="close"]::after{content:"◆ Close to target";color:#8A5A00}
#r-fc[data-gp="bad"]::after{content:"▼ Under target";color:#B3261E}
.byline a,.byline a:visited{text-decoration:underline;text-underline-offset:3px}
.f{color:#F6EFE2}
.ps-alerts table.alert-dishes tr.below td:nth-child(3)::before{content:"▼ "}


@font-face{font-family:"Bricolage Grotesque";src:url('/fonts/bricolage-grotesque-latin-20261018.woff2') format('woff2');font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}
/* ChefSums brand tokens, palette B Aubergine & Coral. Generated by build/final_stockpot.py. Working name, staging only.
   Drop into PrepSheet Builder as-is. Rule: --cs-accent is decoration only. NEVER use it for errors, warnings or status; use --cs-alert. Dark-mode alert changed from #E58A7A to #F76D8C so it stays clear of the coral and of SUMS error #E07A63. */
:root {
  --cs-brand: #3B1B45;          /* tile, primary buttons, header */
  --cs-brand-ink: #3B1B45;       /* wordmark and headings on light */
  --cs-accent: #F28C84;       /* the lid; small highlights only; never errors or status */
  --cs-on-brand: #F6EFE2;       /* text and icons on --cs-brand */
  --cs-paper: #F6EFE2;         /* page background */
  --cs-surface: #FFFFFF;  /* cards, inputs */
  --cs-text: #3B1B45;
  --cs-text-muted: #6B5A70;
  --cs-border: #DCD2CB;
  --cs-alert: #BD3D32;         /* under-target GP, errors (unchanged) */
  --cs-alert-on: #FFFFFF;
  --cs-focus: #F28C84;
  --cs-radius-tile: 22%;             /* icon corner radius (112 / 512) */
  --cs-font-brand: "Bricolage Grotesque", system-ui, sans-serif;  /* wordmark is outlined; this is for headings only */
  /* color-scheme omitted on the site: no dark layout yet */
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --cs-brand: #3B1B45;
    --cs-brand-ink: #F6EFE2;
    --cs-on-brand: #F6EFE2;
    --cs-paper: #241028;
    --cs-surface: #2E1536;
    --cs-text: #F6EFE2;
    --cs-text-muted: #C9B8CC;
    --cs-border: #4A2E52;
    --cs-alert: #F76D8C;
    --cs-alert-on: #241028;
  }
}
:root[data-theme="dark"] {
  --cs-brand: #3B1B45;
  --cs-brand-ink: #F6EFE2;
  --cs-on-brand: #F6EFE2;
  --cs-paper: #241028;
  --cs-surface: #2E1536;
  --cs-text: #F6EFE2;
  --cs-text-muted: #C9B8CC;
  --cs-border: #4A2E52;
  --cs-alert: #F76D8C;
  --cs-alert-on: #241028;
}

/* legacy alias of the kit token --cs-accent (decoration only; never errors or status) */
:root{--brand-accent:var(--cs-accent)}

