:root{--gg-brick:#A4432F;--gg-brick-dark:#8A3726;--gg-cream:#F6EFDF;--gg-linen:#FBF6EA;--gg-ink:#3B2A1E;--gg-honey:#C8962E;--gg-kraft:#C9A57A;--gg-sage-text:#4E6A4B;--gg-chalk:#2F3A33;--gg-chalk-text:#F3EEDF}
*{box-sizing:border-box}
html,body{margin:0;background:var(--gg-linen);color:var(--gg-ink);font:16px/1.5 "Lora",Georgia,serif}
h1,h2,.brand{font-family:"Fraunces",Georgia,serif;font-weight:700;color:var(--gg-brick-dark)}
.bar{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--gg-cream);border-bottom:3px solid var(--gg-brick);
  background-image:repeating-linear-gradient(90deg,rgba(164,67,47,.08) 0 8px,transparent 8px 16px),repeating-linear-gradient(0deg,rgba(164,67,47,.08) 0 8px,transparent 8px 16px)}
.brand{font-size:1.25rem}
.chip{background:var(--gg-sage-text);color:#fff;border-radius:999px;padding:2px 10px;font-size:.8rem}
main{max-width:640px;margin:0 auto;padding:16px 16px 96px}
.hello{text-align:center}
.biscuit{width:min(70vw,320px);height:auto}
.btn{font:600 1rem "Lora",serif;background:var(--gg-brick);color:#fff;border:0;border-radius:12px;padding:12px 20px;min-height:44px;cursor:pointer}
.btn:hover{background:var(--gg-brick-dark)}
.fine{font-size:.85rem;color:var(--gg-sage-text)}
.card{background:#fff;border:1px solid var(--gg-kraft);border-radius:14px;padding:14px;margin:10px 0}
.card.locked{opacity:.6}
.empty img{width:180px;height:auto}
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--gg-cream);border-top:1px solid var(--gg-kraft);padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;text-align:center;padding:12px 4px;color:var(--gg-ink);text-decoration:none;font-weight:600}
.tab[aria-current="page"]{color:var(--gg-brick)}
@media (prefers-reduced-motion:no-preference){.biscuit{animation:bob 4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px)}}}
.field{margin:10px 0;display:flex;flex-direction:column;gap:4px}.field label{font-weight:600}
input,select{font:inherit;min-height:44px;padding:8px 10px;border:1px solid var(--gg-kraft);border-radius:10px;background:#fff;color:var(--gg-ink);width:100%}
.pw{display:flex;gap:6px}.pw input{flex:1}.eye{min-width:64px;min-height:44px;border:1px solid var(--gg-kraft);border-radius:10px;background:#FBF3E6;color:var(--gg-ink);font:600 .9rem "Lora",serif;cursor:pointer}
.btn.wide{width:100%;margin-top:8px}.btn.ghost{background:#FBF3E6;color:var(--gg-brick-dark);box-shadow:inset 0 0 0 2px var(--gg-brick)}
.err{color:#9B2C1C;font-weight:600;min-height:0;margin:6px 0}.err:empty{display:none}
.center{text-align:center}.hello .card{text-align:left}
.pill{display:inline-block;background:#FBF3E6;color:var(--gg-ink);border:1px solid var(--gg-kraft);border-radius:999px;padding:6px 14px;font-size:.9rem;max-width:100%;overflow-wrap:anywhere}
.pill.sm{font-size:.8rem;padding:2px 10px}
.foot{text-align:center;margin-top:24px}
.head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.card.row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.link{background:none;border:0;color:var(--gg-brick-dark);font:600 1rem "Lora",serif;min-height:44px;min-width:44px;cursor:pointer;text-decoration:underline}.danger{color:#9B2C1C;margin-top:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px}
.line{display:grid;grid-template-columns:2fr 1fr 1fr 44px;gap:6px;margin:6px 0}
.chalk{background:var(--gg-chalk);color:var(--gg-chalk-text);border-radius:12px;padding:0 16px;margin-top:12px}.chalk:not(:empty){padding:12px 16px}.chalk h3{margin:0 0 6px}
.chalk table{width:100%;border-collapse:collapse}.chalk td{padding:4px 0;border-bottom:1px dashed rgba(255,255,255,.25)}.chalk td+td{text-align:right;font-weight:700}
.back{display:inline-flex;min-height:44px;align-items:center;color:var(--gg-brick-dark)}
.tabs{flex-direction:column}
.tabrow{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.tabrow::-webkit-scrollbar{display:none}
.tabrow .tab{flex:0 0 25%;white-space:nowrap;font-size:.95rem;scroll-snap-align:start;min-height:48px;display:flex;align-items:center;justify-content:center}
@media (min-width:600px){.tabrow .tab{flex:1 0 auto}}
.dots{display:flex;justify-content:center;gap:6px;padding:0 0 6px}.dots:empty{display:none}.dot{width:7px;height:7px;border-radius:50%;background:var(--gg-kraft)}.dot.on{background:var(--gg-brick)}
.tab[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--gg-brick)}
@media (max-width:420px){.grid3{grid-template-columns:1fr 1fr}.line{grid-template-columns:1fr 1fr 44px}.line select:first-child{grid-column:1/-1}}
.tabs[hidden]{display:none}
/* m3: market day, partners, settings */
.row0{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.35rem 0}
.check{display:flex;gap:.6rem;align-items:center;padding:.45rem 0;min-height:44px}
.check input{width:22px;height:22px;flex:none}
.tally{display:grid;grid-template-columns:1fr 48px 3ch 48px;gap:.5rem;align-items:center;padding:.4rem 0;border-bottom:1px dashed #e3d6c3}
.tally .count{text-align:center;font-size:1.25rem}
.btn.sq{width:48px;height:48px;padding:0;font-size:1.4rem;min-width:0}
.block{display:block}
.link{background:none;border:0;padding:.3rem 0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.link.danger,.err{color:#a3392b}
.danger-btn{background:#a3392b;color:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.seg{display:inline-flex;border:2px solid #3b2a1f;border-radius:999px;overflow:hidden;margin:.4rem 0}
.seg button{border:0;background:none;padding:.45rem 1rem;font:inherit;cursor:pointer;min-height:44px}
.seg button[aria-pressed=true]{background:#3b2a1f;color:#fff}
.plan-row{display:flex;justify-content:space-between;gap:.6rem;padding:.6rem 0;border-bottom:1px dashed #e3d6c3}
.plan-row .amt{text-align:right;white-space:nowrap;font-weight:700}
.debug{margin-top:.6rem;text-align:left}.debug pre{font-size:.75rem;white-space:pre-wrap;word-break:break-all}
.row0 input{width:6rem}
/* m4: art + sync warnings */
picture{display:contents}
.tiny-art{width:auto;height:auto;max-width:56px;aspect-ratio:1/1;flex:none}
.sticker{width:56px;height:56px;aspect-ratio:1/1;flex:none}
.plan-row{align-items:center}.plan-row .grow{flex:1}
.center{text-align:center}.center .small-art{margin:0 auto}
.small-art{aspect-ratio:1/1;height:auto}
.warn{background:#fff3e0;border:1px solid #e0a95b;border-radius:10px;padding:.5rem .7rem;color:#6b3d10}
.btn.sm{padding:6px 12px;min-height:36px;font-size:14px;margin-top:6px}
.note{background:#fff8e6;border:1px solid #e8d7a8;border-radius:10px;padding:10px 12px;margin:10px 0}
.note ul{margin:6px 0 0 18px;padding:0}
.ok{color:#2f6b3a}
textarea{width:100%;box-sizing:border-box;font:inherit;padding:10px;border-radius:10px;border:1px solid #cdbfa6}
/* m9: sign-in layout, home, recipes header, upsell, unit prompts, booth inventory */
.bar{z-index:10;gap:10px}.brand{white-space:nowrap;flex:none}
.auth .hero{margin:18px auto 4px;display:flex;justify-content:center;position:relative;z-index:0}
.auth .biscuit{width:min(56vw,220px);max-height:34vh;object-fit:contain;display:block}
.auth h1{margin:8px 0 4px;font-size:clamp(1.6rem,7vw,2rem)}
@media (max-width:370px){.auth .biscuit{width:min(50vw,180px)}}
.head h1{margin:.4em 0}
.actions{display:flex;gap:8px;flex:none;align-items:center}.actions .btn.sm{margin-top:0;min-height:40px;padding:8px 14px}
.center-row{justify-content:center;flex-wrap:wrap;margin-top:8px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:#FBF3E6;border:1px solid var(--gg-kraft);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.stat strong{font:700 1.4rem "Fraunces",Georgia,serif;color:var(--gg-brick-dark)}
.quick{display:flex;gap:10px;flex-wrap:wrap}.quick .btn{flex:1 1 140px;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.card.inset{margin:6px 0 0;text-decoration:none;background:#FBF6EA}
.card h2{margin:.2em 0 .4em;font-size:1.25rem}
.upsell{text-align:center;background:#FBF3E6;border-color:var(--gg-honey)}.upsell .small-art{width:120px;margin:0 auto;display:block}.upsell p{color:var(--gg-ink)}.upsell .btn{display:inline-block;text-decoration:none;margin-top:4px}
.line.bad select:nth-of-type(2),.line.bad input{border-color:var(--gg-honey);background:#fff8e6}
.unit-note p{margin:0 0 6px}
.kept strong{color:var(--gg-ink);font-size:1rem}
.inv-head{border-bottom:1px dashed #e3d6c3;font-weight:600}
/* m10: tab icons, calendar, Biscuit chat */
.tabrow .tab{flex-direction:column;gap:2px;min-height:60px;padding:6px 2px 4px;font-size:.8rem;line-height:1.1}
.tab-icon{width:32px;height:32px;object-fit:contain;display:block;opacity:.75;transition:transform .15s}
.tab-icon.none{visibility:hidden}
.tab[aria-current="page"]{background:#FBF3E6;color:var(--gg-brick-dark)}
.tab[aria-current="page"] .tab-icon{opacity:1;transform:scale(1.12)}
.tab[aria-current="page"] .tab-label{font-weight:700}
@media (max-width:370px){.tabrow .tab{font-size:.74rem}.tab-icon{width:28px;height:28px}}
main{padding-bottom:110px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-dow{font-size:.75rem;color:var(--gg-sage-text);font-weight:600}
.cal-day{position:relative;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;color:var(--gg-ink);text-decoration:none;font-size:.9rem}
.cal-day.has{background:#FBF3E6}.cal-day.today{box-shadow:inset 0 0 0 2px var(--gg-brick);font-weight:700}
.cal-dots{display:flex;gap:3px;margin-top:2px}.dot-m,.dot-r{display:inline-block;width:7px;height:7px;border-radius:50%}.dot-m{background:var(--gg-brick)}.dot-r{background:var(--gg-honey)}
.cal-nav h2{margin:0;font-size:1.15rem}.cal-key{margin:.6rem 0 0}
.remind{border-color:var(--gg-honey);background:#fffaf0}.check.done span{text-decoration:line-through;opacity:.7}
.chat{display:flex;flex-direction:column;gap:8px;margin:8px 0;max-height:none}
.bubble{display:flex;gap:8px;align-items:flex-end;max-width:92%}.bubble p{margin:0;padding:8px 12px;border-radius:14px;background:#FBF3E6;border:1px solid var(--gg-kraft)}
.bubble.me{align-self:flex-end}.bubble.me p{background:var(--gg-brick);color:#fff;border-color:var(--gg-brick)}
.chat-av{width:36px;height:36px;border-radius:50%;background:#fff;object-fit:cover;flex:none}
.chat-box textarea{min-height:72px}.draft ul{margin:6px 0 8px 18px;padding:0}

/* ---- m11: break-even, recap, bake list, season, labels, logo ---- */
.breakEven strong { font-size: 1.1rem; }
.home-in { display: inline-flex; gap: .4rem; align-items: center; }
.home-in input[type=number] { width: 4.5rem; }
.home-in .sm-time { width: 7rem; }
.warn { color: #8a4b0f; }
.season-wrap { overflow-x: auto; }
table.season { width: 100%; border-collapse: collapse; font-size: .95rem; }
table.season th, table.season td { text-align: left; padding: .5rem .4rem; border-bottom: 1px solid rgba(0,0,0,.08); vertical-align: top; }
table.season td:not(:first-child), table.season th:not(:first-child) { text-align: right; white-space: nowrap; }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .25rem 0 .75rem; }
.chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .75rem; border: 1px solid rgba(0,0,0,.15); border-radius: 999px; background: #fff; }
.label-preview { display: flex; gap: .9rem; align-items: flex-start; background: #fffdf7; border: 2px dashed #b9a27a; border-radius: 12px; padding: 1rem; max-width: 26rem; margin: .5rem 0 1rem; }
.label-logo { width: 72px; height: 72px; object-fit: contain; flex: none; }
.label-mark { width: 56px; height: 56px; flex: none; border-radius: 50%; display: grid; place-items: center; font-size: 1.6rem; font-weight: 700; color: #fffdf7; background: #9b4a3c; }
.label-body p { margin: .35rem 0; font-size: .9rem; }
.label-name { font-size: 1.15rem; }
.label-stmt { font-style: italic; }
.logo-box img { width: 96px; height: 96px; object-fit: contain; border-radius: 12px; background: #fff; }
@media print { .bar, .tabs, footer, .back, .btn, .card:not(.label-preview), h1 + .fine, .pill { display: none !important; } .label-preview { border-style: solid; } }
/* m11 tab set: 6 tabs fit at 360 and 390, text-only until the hand-drawn tab art lands */
.tabrow .tab{flex:1 1 0;min-width:0;min-height:56px}
.tabrow .tab.text-only{justify-content:center;font-size:.85rem}
.tab .tab-icon.on{display:none}
.tab[aria-current="page"] .tab-icon.on{display:block}
.tab[aria-current="page"] .tab-icon.off{display:none}
.tab[aria-current="page"] .tab-label{font-weight:800}

/* ---- m12: tab art, label frames, allergens/badges ---- */
.tab .tab-icon{width:32px;height:32px}
.tabrow .tab{flex-direction:column;gap:2px;padding:6px 2px 4px}
.frames{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.25rem 0 1rem}
.frame-pick{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:76px;padding:.4rem;border:2px solid transparent;border-radius:12px;background:#fff;font:inherit;font-size:.8rem;color:var(--gg-ink)}
.frame-pick[aria-checked="true"]{border-color:var(--gg-brick);background:#FBF3E6}
.frame-pick img{width:48px;height:48px;object-fit:contain}
/* m17: the label is drawn at its real sticker size (--win x --hin inches). Text is sized in points for that size:
   1pt = 100cqw / (width in inches * 72). labelfit.js steps --pt from 10 down to 6, then lets text use the wheat's space
   (.tight), then steps up to the next size of the same shape. Insets are each shape's safe area (inscribed in the art). */
.label-preview.framed{position:relative;display:block;border:0;background:none;padding:0;--win:3;--hin:3;--pt:10;
  width:min(100%, calc(var(--win) * 7rem));aspect-ratio:var(--win) / var(--hin);container-type:size;margin-inline:auto}
.label-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.label-inner{position:absolute;inset:28% 23%;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;overflow:visible;
  font-size:calc(var(--pt) / (var(--win) * 72) * 100cqw);line-height:1.2;overflow-wrap:anywhere;hyphens:auto;border-radius:6px}
.f-round .label-inner{inset:28% 23%}.f-scalloped .label-inner{inset:27% 23%}.f-gingham-border .label-inner{inset:14%}.f-kraft-tag .label-inner{inset:36% 15% 15%}
.f-oval .label-inner{inset:15% 29%}.f-rectangle .label-inner{inset:12% 10% 28%}
/* tight: text takes the space the wheat used; a cream backing hides the wheat behind it */
.tight .label-inner{background:#F6EFDF}
.f-round.tight .label-inner{inset:23% 25%}.f-scalloped.tight .label-inner{inset:23% 24%}.f-oval.tight .label-inner{inset:20% 19%}.f-rectangle.tight .label-inner{inset:12% 10%}
.f-gingham-border.tight .label-inner{inset:12%}.f-kraft-tag.tight .label-inner{inset:34% 14% 12%}
.label-inner p{margin:.12em 0;font-size:1em}.label-inner .label-name{font-size:1.3em;line-height:1.1}.label-inner .fine{font-size:.95em}
.label-inner .label-logo{width:3.2em;height:3.2em;flex:none}.label-inner .label-mark{width:2.6em;height:2.6em;font-size:1.3em;flex:none}
.tight .label-inner .label-logo,.tight .label-inner .label-mark{width:2em;height:2em;font-size:1em}
.label-inner.label-overflow{outline:2px dashed var(--gg-brick);outline-offset:2px}
.label-inner .badge{font-size:.85em}
.size-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:.25rem 0 1rem}
.fit-note{max-width:100%;overflow-wrap:anywhere;white-space:normal;box-sizing:border-box}
.fit-note:empty{display:none}
.allergen-note{max-width:100%;overflow-wrap:anywhere}
/* allergen chips: dark ink on white/cream (>= 4.5:1, WCAG AA) */
label.chip{color:var(--gg-ink,#3A2A1E);background:#fff}label.chip.on{color:var(--gg-ink,#3A2A1E);background:#FBF3E6;border-color:var(--gg-brick)}
@media print{.label-preview.framed{width:calc(var(--win) * 1in);max-width:none;margin:0}.label-inner.label-overflow{outline:0}.fit-note,.allergen-note{display:none}}
.label-badges{display:flex;gap:.3rem;justify-content:center}.badge{border:1.5px solid #5b7a52;color:#3f5a38;border-radius:999px;padding:0 .45rem;font-weight:700;font-size:.65rem}
.chip.on{border-color:var(--gg-brick);background:#FBF3E6}
.biscuit-check ul{margin:.25rem 0 .5rem 1.1rem;padding:0}

/* m20: average-price chips and brand line */
.est { display: inline-block; margin: .2rem 0 .4rem; padding: .15rem .55rem; font: inherit; font-size: .8rem; color: #7A4A1E; background: #FBF1DC; border: 1px dashed #C99A5B; border-radius: 999px; cursor: pointer; }
.est-tag { display: inline-block; padding: 0 .45rem; font-size: .75rem; color: #7A4A1E; background: #FBF1DC; border-radius: 999px; }
.est-note { font-size: .85rem; color: #7A4A1E; background: #FBF1DC; border-left: 3px solid #C99A5B; padding: .4rem .6rem; border-radius: 4px; }
.line-brand { display: flex; gap: .5rem; align-items: center; margin: 0 0 .6rem; }
.line-brand input[type="text"], .line-brand input:not([type]) { flex: 1; min-width: 0; font-size: .9rem; }
.warn.not-counted{background:#fff3e0;border:1px solid #e0a95b;border-left:4px solid #A4432F;border-radius:8px;padding:.55rem .75rem;color:#6b3d10;margin:.6rem 0}

/* ---- m22: scrolling tab bar (Saucebook style), arrows, hamburger menu, Getting started ---- */
.tabs{--tw:max(56px,calc((100vw - 48px) / 4.5))}
.tabbar{display:flex;align-items:stretch}
.tabbar>.tab{flex:0 0 var(--tw);min-width:48px;min-height:60px}
.tabscroll{position:relative;flex:1 1 auto;min-width:0}
.tabs .tabrow{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.tabs .tabrow::-webkit-scrollbar{display:none}
.tabs .tabrow .tab{flex:0 0 var(--tw);min-width:48px;min-height:60px;padding:6px 2px 4px;scroll-snap-align:none}
.tabs .tabrow .tab:nth-child(3n+1){scroll-snap-align:start}
.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.tab-label{font-size:.8rem;line-height:1.1;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tabrow[data-fade-right="true"]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent)}
.tabrow[data-fade-left="true"]{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 32px),transparent)}
.tabrow[data-fade-left="true"][data-fade-right="true"]{-webkit-mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent)}
.tab-arrow{position:absolute;top:0;bottom:0;width:48px;min-height:48px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer;padding:0}
.tab-arrow[hidden]{display:none}
.tab-arrow.left{left:0}.tab-arrow.right{right:0}
.tab-arrow img{width:24px;height:24px;background:var(--gg-cream);border-radius:50%;box-shadow:0 0 0 4px var(--gg-cream)}
.tabs .dots{padding:5px 0 0;height:12px;box-sizing:content-box}
@media (max-width:370px){.tab-label{font-size:.74rem}}
@media (min-width:600px){.tabs{--tw:calc(100vw / 7)}}
.bar{display:flex;align-items:center;gap:8px}
.menu-btn{width:48px;height:48px;min-width:48px;min-height:48px;flex:0 0 48px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;cursor:pointer;padding:0;border-radius:10px}
.menu-btn[hidden]{display:none}
.menu-btn span{display:block;width:24px;height:3px;border-radius:2px;background:var(--gg-ink)}
.menu-back{position:fixed;inset:0;background:rgba(43,33,24,.35);z-index:50}
.menu-sheet{position:absolute;top:0;left:0;bottom:0;width:min(320px,86vw);background:var(--gg-cream);overflow-y:auto;padding:8px 0 calc(16px + env(safe-area-inset-bottom));box-shadow:4px 0 16px rgba(0,0,0,.15)}
.menu-close{width:48px;height:48px;margin-left:8px;border:0;background:transparent;font-size:1.4rem;cursor:pointer}
.menu-item{display:flex;align-items:center;gap:14px;min-height:56px;padding:4px 20px;color:var(--gg-ink);text-decoration:none;font-size:1.15rem;font-weight:600}
.menu-item:focus-visible,.menu-btn:focus-visible,.tab-arrow:focus-visible{outline:3px solid var(--gg-brick);outline-offset:-3px}
.card.start .steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.card.start li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:48px}
.step-mark{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;border:2px solid var(--gg-kraft)}
.card.start li.done .step-mark{background:var(--gg-brick);border-color:var(--gg-brick);color:#fff}
.card.start li.done .step-text{text-decoration:line-through;opacity:.7}
.step-text{flex:1 1 140px}
.card.start .btn{min-height:48px}
.chat-links{margin-top:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* m22 review S7: 48px small buttons; the arrows sit in reserved space so they never cover the peeking tab's label */
.btn.sm{min-height:48px}
.tabscroll[data-arrow-r="true"]{padding-right:48px}.tabscroll[data-arrow-l="true"]{padding-left:48px}
.tabscroll{box-sizing:border-box}
/* m23: recipe view, print card, cook mode (rev 3: Brand Alchemist restyle, see gg-recipe-tokens.css + gg-recipe-print.css) */
.btn.ghost.wide,.btn.wide{width:100%}
textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--gg-kraft);border-radius:10px}
.gg-rv-head{display:flex;gap:12px;align-items:flex-end;margin:4px 0 16px}.gg-rv-head>div{flex:1}.gg-rv-head h1{font-size:32px;line-height:1.1}
.gg-rv-meta{margin:6px 0 0;color:var(--gg-sage-text);font-size:15px;font-weight:600}.gg-rv-art{width:84px;height:auto}
.gg-rv-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.gg-rv-wide{width:100%}
.gg-margin{display:block;font-size:13px;color:var(--gg-ink-soft)}
.gg-rv-foot{text-align:center;margin:12px 0}
.gg-cook{position:fixed;inset:0;z-index:50;overflow:auto}.gg-cook-body{padding:16px 20px;padding-top:max(16px,env(safe-area-inset-top));flex:1;display:flex;flex-direction:column;gap:20px}
.gg-cook-top{display:flex;justify-content:space-between;align-items:center}.gg-cook-top strong{font-family:var(--gg-font-display);font-size:18px}
.gg-cook-awake{margin:0;font-size:14px;color:var(--gg-sage-text)}.gg-cook-text p{margin:0}
.gg-need{background:var(--gg-cream);border-radius:14px;padding:14px 16px;font-size:17px}.gg-need b{color:var(--gg-brick)}
.gg-cook-art{flex:1;display:flex;align-items:flex-end;justify-content:flex-end}.gg-cook-art img{width:96px;height:auto}
.gg-cook .gg-ing li{font-size:var(--gg-fs-md);grid-template-columns:90px 1fr}
#print-card{display:none}
.gg-print-head{text-align:center}.gg-print-shop{font-size:14px;color:var(--gg-sage-text);font-weight:600}.gg-print-head h1{font-size:30px;line-height:1.15}.gg-print-meta{font-size:15px}
.gg-print-cols{margin-top:20px}.gg-print-total .r{text-align:right}.gg-print-brand{text-align:center;font-size:12px;color:var(--gg-ink-soft);margin:14px 0 0}
@media (max-width:480px){.pc-cols,.gg-print-cols{grid-template-columns:1fr}}
@media print{
  body.printing>*:not(#print-card){display:none!important}
  body.printing #print-card{display:block;position:static}
  @media (max-width:480px){.pc-cols{grid-template-columns:1fr}body.printing #print-card .gg-print-cols{grid-template-columns:1fr!important}}
}
/* m26: "How should we handle your steps?" (farmhouse radio cards) + Polished / As I wrote it switch + Baker's notes */
.gg-polish{border:0;padding:0;margin:.75rem 0;display:grid;gap:.5rem}
.gg-polish legend{font-weight:700;margin-bottom:.4rem;color:var(--gg-ink,#3A2A1E)}
.gg-polish-opt{display:flex;gap:.6rem;align-items:flex-start;min-height:44px;padding:.65rem .8rem;border:1.5px solid rgba(58,42,30,.25);border-radius:12px;background:#fff;cursor:pointer}
.gg-polish-opt:has(input:checked){border-color:var(--gg-brick,#A4472F);background:#FBF3E6}
.gg-polish-opt input{margin-top:.2rem;accent-color:var(--gg-brick,#A4472F);width:1.1rem;height:1.1rem}
.gg-polish-opt span{display:grid;gap:.15rem}.gg-polish-opt small{color:#5a4636;font-size:.88rem}
.gg-stepview{margin:0 0 .75rem}
.gg-notes{margin:0;padding-left:1.1rem;font-style:italic;color:#5a4636}.gg-notes li{margin:.3rem 0}
.gg-batch.gg-stepview{display:flex;width:100%}.gg-batch.gg-stepview button{flex:1 1 0;white-space:nowrap;padding-inline:.6rem}
