@font-face{font-family:Bagel Fat One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bagel-fat-one-latin-400-normal-CB1T13M1.woff2)format("woff2"),url(/assets/bagel-fat-one-latin-400-normal-BFAfIXLM.woff)format("woff")}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root{--cocoa:#2a1712;--cocoa-2:#3d241b;--caramel:#f2b84b;--cream:#fff6e3;--sugar:#f5e6d3;--pink:#cf2a5d;--pink-hover:#b01f4d;--paper:#fffcf5;--muted:#5a3a2c;--rule:#d9c2a6;--edge:#e4cdb2;--caramel-soft:#fbe3b0;--pink-on-dark:#ff8aae;--display:"Bagel Fat One", system-ui, sans-serif;--body:"Outfit Variable", "Outfit", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--tap:44px;--field:48px;--nav-h:64px;--bar-h:68px;--radius:14px;font-family:var(--body);color:var(--cocoa);background:var(--cream);-webkit-text-size-adjust:100%;accent-color:var(--pink);font-size:17px;line-height:1.5}*{box-sizing:border-box}body{background:var(--cream);-webkit-tap-highlight-color:transparent;margin:0}:focus-visible{outline:3px solid var(--pink);outline-offset:2px}h1,h2{font-family:var(--display);letter-spacing:-.01em;margin:0;font-weight:400}h1{margin-bottom:.35rem;font-size:2.1rem;line-height:1.05}h2{margin-bottom:.6rem;font-size:1.35rem;line-height:1.1}h3{margin:0 0 .25rem;font-size:1rem;font-weight:700}p{margin:0 0 .75rem}a{color:var(--cocoa);font-weight:600}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{min-height:var(--field);border:2px solid var(--rule);background:var(--paper);width:100%;color:var(--cocoa);border-radius:12px;padding:.55rem .8rem}input::placeholder,textarea::placeholder{color:#a88d78}input:focus,select:focus,textarea:focus{border-color:var(--pink);outline:none}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232A1712' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}input[type=radio],input[type=checkbox]{flex:none;width:22px;height:22px;min-height:22px;margin:0}input[type=range]{min-height:var(--tap);background:0 0;border:0;padding:0}input[type=search]{border-radius:999px;padding-left:1.1rem}textarea{resize:vertical}.field label,.choice legend,.time legend{margin-bottom:.3rem;font-weight:700;display:block}.field-hint,.muted{color:var(--muted);font-size:.92rem}.field-hint{margin:.3rem 0 0}.field-error,.error{color:var(--pink);font-weight:600}.field-error{margin:.3rem 0 0;font-size:.92rem}.has-error input,[aria-invalid=true]{border-color:var(--pink);background:#fff1f4}.money-input,.percent-input{font-family:var(--mono);align-items:center;gap:.45rem;font-weight:600;display:flex}.money-input input,.percent-input input{font-family:var(--mono)}.percent-input input{max-width:7rem}.form{flex-direction:column;gap:1.1rem;max-width:540px;display:flex}.row{align-items:flex-start;gap:.75rem;display:flex}.row>.field{flex:1;min-width:0}.row>.field-unit{flex:0 0 7.5rem}.row>.field-grow{flex:2}.choice{border:0;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;display:flex}.choice legend{width:100%}.choice label{min-height:var(--tap);border:2px solid var(--rule);background:var(--paper);cursor:pointer;border-radius:999px;align-items:center;gap:.55rem;padding:.35rem 1rem .35rem .75rem;font-weight:500;display:flex}.choice label:has(input:checked){border-color:var(--cocoa);background:var(--sugar);font-weight:700}.checkbox{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:.65rem;display:flex}.checkbox input{margin-top:.15rem}button,.button{min-height:var(--tap);min-width:var(--tap);border:2px solid var(--cocoa);color:var(--cocoa);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem 1.2rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--sugar)}button:disabled{opacity:.45;cursor:not-allowed}.button-primary,.button-danger{background:var(--pink);border-color:var(--pink);color:#fff}.button-primary:hover:not(:disabled),.button-danger:hover:not(:disabled),a.button-primary:hover{background:var(--pink-hover);border-color:var(--pink-hover)}.button-danger-plain{border-color:var(--pink);color:var(--pink)}.button-icon{color:var(--muted);background:0 0;border:0;padding:0;font-size:1.6rem;font-weight:400;line-height:1}.button-icon:hover:not(:disabled){background:var(--sugar);color:var(--cocoa)}.button-add{width:100%;color:var(--cocoa);border:2px dashed #c9ae8f}.button-add:hover:not(:disabled){border-color:var(--cocoa)}.link-button{min-width:0;min-height:0;color:var(--cocoa);text-decoration:underline;-webkit-text-decoration-color:var(--caramel);text-decoration-color:var(--caramel);text-underline-offset:3px;text-align:left;background:0 0;border:0;border-radius:4px;padding:0;font-weight:600;text-decoration-thickness:2px}.link-button:hover:not(:disabled){-webkit-text-decoration-color:var(--pink);text-decoration-color:var(--pink);background:0 0}.loading{text-align:center;font-family:var(--display);padding:3rem 1rem;font-size:1.3rem}.app-main{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}.nav{z-index:20;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:0 .5rem env(safe-area-inset-bottom);background:var(--cocoa);display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--sugar);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;font-size:.8rem;font-weight:500;text-decoration:none;display:flex}.nav a svg{border-radius:999px;width:3.4rem;height:1.9rem;padding:.15rem .9rem}.nav a.active{color:var(--caramel);font-weight:700}.nav a.active svg{background:var(--caramel);color:var(--cocoa)}.nav-brand{display:none}.offline-banner{background:var(--pink);color:#fff;text-align:center;margin:0;padding:.6rem 1rem;font-weight:600}.page{max-width:1180px;margin:0 auto;padding:1.25rem 1rem 2rem}.page-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.25rem;display:flex}.page-header h1{margin:0}.empty{text-align:center;border-radius:var(--radius);border:2px dashed #c9ae8f;margin-top:1.25rem;padding:2rem 1.25rem}.empty p{max-width:34ch;margin:0 auto 1rem}.section{margin:1.75rem 0}.recipe-main .section,.settings-page .section{border-top:3px solid var(--cocoa);padding-top:.9rem}.form-actions,.recipe-actions{flex-wrap:wrap;gap:.75rem;display:flex}.filters{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.filters input{flex:2 12rem}.filters select{border-radius:999px;flex:10rem;width:auto}.group-title{margin:1.25rem 0 .25rem;font-size:1.1rem}.card-list{flex-direction:column;gap:.6rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.card{border:2px solid var(--edge);border-radius:var(--radius);background:var(--paper);width:100%;color:var(--cocoa);text-align:left;grid-template-columns:1fr auto;align-items:baseline;gap:.2rem 1rem;padding:.85rem 1rem;font-weight:400;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}button.card:hover:not(:disabled),a.card:hover{background:var(--paper);border-color:var(--cocoa);box-shadow:5px 6px 0 var(--pink);transform:translate(-2px,-2px)}.card-title{font-size:1.05rem;font-weight:700}.card-figure{font-family:var(--mono);white-space:nowrap;font-size:.95rem;font-weight:600}.card-meta{color:var(--muted);grid-column:1/-1;font-size:.9rem}.card-figures{border-top:1px dashed var(--rule);flex-wrap:wrap;grid-column:1/-1;gap:.25rem 1.25rem;margin-top:.35rem;padding-top:.45rem;display:flex}.card-figures strong{font-family:var(--mono)}.loss,.loss strong{color:var(--pink)}.table{border-collapse:separate;border-spacing:0;background:var(--paper);border:2px solid var(--edge);border-radius:var(--radius);width:100%;overflow:hidden}.table th,.table td{border-bottom:1px dashed var(--rule);text-align:left;padding:.6rem .75rem}.table thead th{background:var(--sugar);border-bottom:2px solid var(--cocoa)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--cream)}.num{font-family:var(--mono);white-space:nowrap;font-size:.92rem}.sort-button{background:0 0;border:0;border-radius:4px;min-height:0;padding:0;font-weight:700}.sort-button:hover:not(:disabled){background:0 0;text-decoration:underline}.only-desktop{display:none}.sheet-backdrop,.dialog-backdrop{z-index:50;background:#2a17128c;position:fixed;inset:0}.sheet{background:var(--cream);flex-direction:column;display:flex;position:absolute;inset:0}.sheet-header{padding:.6rem .75rem .6rem 1rem;padding-top:max(.6rem, env(safe-area-inset-top));background:var(--cocoa);color:var(--caramel);justify-content:space-between;align-items:center;gap:1rem;display:flex}.sheet-header h2{margin:0;font-size:1.3rem}.sheet-header .button-icon{color:var(--sugar)}.sheet-header .button-icon:hover:not(:disabled){background:var(--cocoa-2);color:var(--caramel)}.sheet-body{padding:1.25rem 1rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.dialog-backdrop{z-index:60;justify-content:center;align-items:center;padding:1rem;display:flex}.dialog{background:var(--cream);border:3px solid var(--cocoa);width:100%;max-width:460px;max-height:90vh;box-shadow:8px 10px 0 var(--pink);border-radius:16px;padding:1.4rem;overflow-y:auto}.dialog h2{font-size:1.4rem}.dialog ul{margin:0 0 .5rem;padding-left:1.2rem;font-weight:600}.dialog-actions{flex-direction:column;gap:.5rem;margin-top:1.25rem;display:flex}.compare{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.95rem}.compare th{text-align:left;font-family:var(--body);border-bottom:1px dashed var(--rule);padding:.45rem .75rem .45rem 0;font-weight:500}.compare td{border-bottom:1px dashed var(--rule);text-align:right;padding:.45rem .2rem}.compare strong{color:var(--pink)}.picker{flex-direction:column;gap:.75rem;display:flex}.picker-list{background:var(--paper);border:2px solid var(--edge);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.picker-list li+li{border-top:1px dashed var(--rule)}.picker-list button{text-align:left;border:0;border-radius:0;justify-content:space-between;width:100%;min-height:52px;font-weight:600}.picker-list button .muted{font-family:var(--mono);font-size:.85rem;font-weight:400}.picker-empty{padding:.9rem 1rem}.back{margin:0 0 .5rem}.back a{text-decoration:none}.banner{background:var(--caramel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;margin-bottom:1.25rem;padding:.75rem .75rem .75rem 1.1rem;font-weight:700;display:flex}.banner button{background:var(--cocoa);color:var(--caramel)}.banner button:hover:not(:disabled){background:var(--cocoa-2)}.input-title{font-family:var(--display);border:0;border-bottom:3px solid var(--rule);background:0 0;border-radius:0;min-height:3.2rem;padding:.3rem .1rem;font-size:1.8rem;line-height:1.1}.input-title:focus{border-bottom-color:var(--pink)}.recipe-main{flex-direction:column;gap:1.1rem;display:flex}.recipe-main .section{margin:.75rem 0 0}.lines,.price-rows{margin:0 0 .75rem;padding:0;list-style:none}.line{border-bottom:1px dashed var(--rule);padding:.65rem 0}.line-top{background:var(--caramel-soft);border:0;border-radius:12px;margin:.25rem -.6rem;padding:.65rem .6rem}.line-name{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.line-name .link-button{font-weight:700}.line-inputs{grid-template-columns:minmax(0, 1fr) 5.75rem 4.75rem var(--tap);align-items:center;gap:.5rem;display:grid}.line-amount{font-family:var(--mono)}.line-cost{text-align:right;font-family:var(--mono);font-weight:600}.tag{background:var(--cocoa);color:var(--caramel);border-radius:999px;padding:.12rem .55rem;font-size:.75rem;font-weight:700}.tag-warn{color:var(--pink);box-shadow:inset 0 0 0 2px var(--pink);background:0 0}.price-rows li{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) var(--tap);align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.price-rows .field-error{grid-column:1/-1}.time{border:0;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;display:flex}.time legend{width:100%}.time label{align-items:center;gap:.4rem;font-weight:700;display:flex}.time input{width:5.5rem;font-family:var(--mono)}.time .field-hint,.time .field-error{flex-basis:100%}.costing-panel{background:var(--paper);border:3px solid var(--cocoa);box-shadow:6px 8px 0 var(--pink);border-radius:16px;margin-top:2rem;padding:1.25rem}.costing-panel>h2{font-size:1.6rem}.figures{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.92rem}.figures th,.figures td{text-align:right;border-bottom:1px dashed var(--rule);white-space:nowrap;padding:.4rem 0}.figures th:first-child{text-align:left;font-family:var(--body);font-size:1rem;font-weight:500}.figures-head th{font-family:var(--body);color:var(--muted);border-bottom:0;font-size:.8rem;font-weight:600}.figures-subtotal th,.figures-subtotal td{font-weight:600}.figures-total th,.figures-total td{border-top:2px solid var(--cocoa);border-bottom:0;padding-top:.6rem;font-size:1.05rem;font-weight:600}.figures-total th:first-child{font-size:1.05rem;font-weight:700}.costing-panel>.field-hint{font-size:.85rem}.outcomes{flex-direction:column;gap:.75rem;margin:1.1rem 0;display:flex}.outcome{background:var(--cocoa);color:var(--sugar);border:3px solid var(--cocoa);border-radius:12px;padding:.85rem 1rem}.outcome h3{color:var(--caramel);font-size:1.05rem}.outcome dl{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.4rem 0 0;display:grid}.outcome dt{color:var(--sugar);font-size:.78rem;line-height:1.2}.outcome dd{font-family:var(--mono);color:var(--cream);margin:.15rem 0 0;font-size:1.1rem;font-weight:600}.outcome.loss{background:var(--paper);color:var(--cocoa);border-color:var(--pink)}.outcome.loss h3,.outcome.loss dt{color:var(--cocoa)}.outcome.loss dd{color:var(--pink)}.loss-note{background:var(--pink);color:#fff;border-radius:999px;margin:.6rem 0 0;padding:.25rem .75rem;font-size:.9rem;font-weight:700;display:inline-block}.margin-slider{border-top:2px solid var(--cocoa);flex-direction:column;gap:.35rem;margin-top:1rem;padding-top:.9rem;display:flex}.margin-slider label{font-weight:600}.margin-slider label strong{font-family:var(--mono)}.suggested{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:.25rem 0;font-weight:600;display:flex}.stamp{background:var(--cocoa);color:var(--caramel);font-family:var(--mono);border-radius:999px;padding:.35rem .9rem;font-size:1.05rem;font-weight:600;display:inline-block}.save-bar{left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:15;min-height:var(--bar-h);background:var(--cocoa-2);color:var(--sugar);border-bottom:1px solid var(--cocoa);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem 1rem;display:flex;position:fixed}.save-bar-figures{flex-direction:column;font-size:.88rem;line-height:1.35;display:flex}.save-bar-figures strong{font-family:var(--mono);color:var(--caramel);font-size:1rem}.save-bar .loss,.save-bar .loss strong{color:var(--pink-on-dark)}.save-bar-action{text-align:right;align-items:center;gap:.75rem;font-size:.88rem;display:flex}.save-bar .muted{color:var(--sugar)}.save-bar .error{color:var(--pink-on-dark)}.recipe-page{padding-bottom:calc(var(--bar-h) + 2rem)}.login-band{background:var(--caramel);min-height:100dvh;padding:max(1.5rem, env(safe-area-inset-top)) 1rem 2rem}.login-page{gap:1.75rem;max-width:1100px;margin:0 auto;display:grid}.brand{font-family:var(--display);align-items:center;gap:.6rem;margin:0 0 1.5rem;font-size:1.35rem;display:flex}.brand img{border-radius:10px}.login-hero h1{max-width:14ch;margin-bottom:1rem;font-size:clamp(2.2rem,9vw,3.6rem);line-height:1}.lede{color:#4a2a1a;max-width:42ch;font-size:1.12rem}.offer{background:var(--cocoa);color:var(--sugar);border-radius:16px;width:100%;max-width:500px;padding:1.4rem}.offer .form{gap:1rem}.offer label,.offer .field label{color:var(--caramel)}.offer .checkbox{color:var(--sugar);font-weight:500}.offer input:not([type=checkbox]){background:var(--cream);border-color:#0000;border-radius:999px;min-height:52px;padding:.7rem 1.1rem}.offer input:focus{border-color:var(--pink)}.offer #code{font-family:var(--mono);letter-spacing:.4em;text-align:center;font-size:1.3rem}.offer .button-primary{min-height:52px;font-size:1.05rem}.offer p,.offer .field-hint{color:var(--sugar)}.offer strong,.offer a,.offer .link-button{color:var(--caramel)}.offer .link-button{align-self:center}.offer .error{color:var(--pink-on-dark);margin:1rem 0 0}.offer .offline-banner{border-radius:10px;margin-bottom:1rem}.onboarding{max-width:560px;padding-top:2.5rem}.onboarding .form{background:var(--paper);border:3px solid var(--cocoa);box-shadow:8px 10px 0 var(--pink);border-radius:16px;padding:1.5rem}.onboarding h1{font-size:2.2rem}.settings-page .section{flex-direction:column;gap:1.1rem;max-width:560px;display:flex}.settings-page .section h2,.settings-page .section .field-hint,.settings-page .section p{margin-bottom:0}.settings-page .price-rows li{grid-template-columns:minmax(0, 1fr) var(--tap)}@media (width>=900px){h1{font-size:2.6rem}.app-main{padding-bottom:0}.nav{align-items:center;gap:.4rem;height:72px;padding:0 1.5rem;position:sticky;top:0;bottom:auto}.nav a{border-radius:999px;flex-direction:row;flex:none;gap:.45rem;padding:.45rem 1rem;font-size:1rem}.nav a svg{border-radius:0;width:20px;height:20px;padding:0}.nav a:hover{color:var(--caramel)}.nav a.active{background:var(--caramel);color:var(--cocoa)}.nav a.active svg{background:0 0}.nav-brand{font-family:var(--display);color:var(--caramel);align-items:center;gap:.65rem;margin-right:auto;font-size:1.4rem;display:flex}.nav-brand img{border-radius:9px}.page{padding:2rem 1.5rem 3rem}.only-phone{display:none}.only-desktop{display:table}.sheet{border-left:3px solid var(--cocoa);width:500px;left:auto}.recipe-layout{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:2.5rem;display:grid}.costing{position:sticky;top:calc(72px + 1.25rem)}.costing-panel{box-shadow:10px 12px 0 var(--pink);margin-top:0}.save-bar{padding:.5rem 1.5rem;bottom:0}.save-bar-figures{flex-direction:row;gap:1.5rem;font-size:.95rem}.login-band{align-items:center;display:flex}.login-page{grid-template-columns:1.1fr .9fr;align-items:center;gap:4rem;width:100%}}.outcome dl>div{flex-direction:column;justify-content:space-between;display:flex}.field:has(>.input-title)>label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width>=900px){.line-inputs{grid-template-columns:8rem 6.5rem minmax(0, 1fr) var(--tap)}}.unit-cost{background:var(--cocoa);color:var(--caramel);font-family:var(--mono);border-radius:999px;margin-top:.15rem;padding:.15rem .7rem;font-size:.95rem;font-weight:600;display:inline-block}.offer .offline-banner{color:#fff}
