:root{--bg: #f3f5f1;--surface: #ffffff;--surface-2: #eaeee7;--ink: #17201a;--ink-2: #536058;--line: #d9dfd5;--accent: #2c6a4e;--accent-ink: #ffffff;--accent-soft: #dcebe2;--est-fg: #8a5300;--est-bg: #fbecd3;--ok-fg: #1d6542;--ok-bg: #d8eedf;--bad-fg: #b3261e;--bad-bg: #fadbd8;--seg-groceries: #8fb59e;--seg-labor: #2c6a4e;--seg-other: #c9a46a;--seg-overhead: #9aa39d;--seg-profit: #17201a;--paper: #fffefb;--paper-ink: #1d1d1a;--paper-line: #e6e2d8;--shadow: 0 1px 2px rgb(23 32 26 / .05), 0 6px 24px -12px rgb(23 32 26 / .18);--font-display: "Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;--font-body: "Instrument Sans", "Helvetica Neue", "Segoe UI", system-ui, sans-serif;--font-paper: "Newsreader", "Iowan Old Style", Georgia, serif;--r: 14px;--r-sm: 9px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1310;--surface: #161d18;--surface-2: #1f2822;--ink: #e6ece7;--ink-2: #9daaa2;--line: #2b352e;--accent: #78c79f;--accent-ink: #0b1a11;--accent-soft: #1d3a2b;--est-fg: #f2b75c;--est-bg: #3a2a12;--ok-fg: #86d6a8;--ok-bg: #163023;--bad-fg: #f3958d;--bad-bg: #3c1815;--seg-groceries: #4f7d62;--seg-labor: #78c79f;--seg-other: #b48d52;--seg-overhead: #6b766f;--seg-profit: #e6ece7;--paper: #1b211d;--paper-ink: #ece9e1;--paper-line: #343c36;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 28px -14px rgb(0 0 0 / .6);color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1310;--surface: #161d18;--surface-2: #1f2822;--ink: #e6ece7;--ink-2: #9daaa2;--line: #2b352e;--accent: #78c79f;--accent-ink: #0b1a11;--accent-soft: #1d3a2b;--est-fg: #f2b75c;--est-bg: #3a2a12;--ok-fg: #86d6a8;--ok-bg: #163023;--bad-fg: #f3958d;--bad-bg: #3c1815;--seg-groceries: #4f7d62;--seg-labor: #78c79f;--seg-other: #b48d52;--seg-overhead: #6b766f;--seg-profit: #e6ece7;--paper: #1b211d;--paper-ink: #ece9e1;--paper-line: #343c36;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 28px -14px rgb(0 0 0 / .6);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--surface)}h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance;letter-spacing:-.01em}h1{font-size:clamp(1.7rem,1.2rem + 1.8vw,2.4rem);font-weight:650;line-height:1.1}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabular,.num input,.big-number,.tile-value,.summary dd,.results b,.kv dd{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--ink-2)}.small{font-size:.84rem}.text-good{color:var(--ok-fg)}.text-bad{color:var(--bad-fg)}.text-warn{color:var(--est-fg)}.ico{width:16px;height:16px;flex:none}.stack{display:flex;flex-direction:column;gap:14px}.stack-lg{display:flex;flex-direction:column;gap:22px}.eyebrow{font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.lede{color:var(--ink-2);margin-top:6px;max-width:60ch}.footnote{color:var(--ink-2);font-size:.82rem;max-width:70ch}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:12px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.brand{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;cursor:pointer;color:inherit;text-decoration:none}.logo{width:30px;height:30px}.logo-bg{fill:var(--accent)}.logo-ring{fill:none;stroke:var(--accent-ink);stroke-width:2.6;stroke-linecap:round}.brand-name{font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.02em}.brand-cents{color:var(--accent)}.brand-ai{font-size:.62rem;font-weight:700;margin-left:4px;padding:2px 5px;border-radius:5px;background:var(--accent-soft);color:var(--accent);vertical-align:3px;letter-spacing:.04em}.nav{display:flex;gap:2px;margin-left:8px;overflow-x:auto;scrollbar-width:none}.nav button{background:none;border:0;padding:7px 11px;border-radius:8px;color:var(--ink-2);cursor:pointer;white-space:nowrap;font-weight:500}.nav button:hover,.nav button.on{color:var(--ink);background:var(--surface-2)}.new-btn{margin-left:auto}@media(max-width:640px){.topbar-inner{flex-wrap:wrap;row-gap:6px}.nav{order:3;width:100%;margin-left:-6px}.new-btn span{display:none}.new-btn{padding:8px 10px}}.page{max-width:1160px;margin:0 auto;padding-block:28px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:9px 15px;font-weight:600;font-size:.92rem;border:1px solid transparent;cursor:pointer;white-space:nowrap;min-height:40px;transition:background-color .15s,border-color .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.btn.secondary{background:var(--surface);border-color:var(--line)}.btn.secondary:hover{border-color:var(--ink-2)}.btn.ghost{background:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.danger{background:var(--bad-fg);color:var(--surface)}.btn.sm{padding:5px 10px;min-height:32px;font-size:.84rem}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.link-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--ink-2);cursor:pointer;font-weight:500}.link-btn:hover{color:var(--ink)}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:0;background:transparent;color:var(--ink-2);cursor:pointer}.icon-btn:hover{background:var(--bad-bg);color:var(--bad-fg)}.confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.88rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);min-width:0}.panel-title{font-size:1.02rem;font-weight:650}.panel-title.spaced{margin-top:8px}.panel-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline;margin-bottom:12px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;align-items:start}.row-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:.84rem;font-weight:600}.help{font-size:.78rem;color:var(--ink-2)}input:not([type=checkbox]):not([type=range]),select,textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;min-height:42px;font-size:16px}textarea{resize:vertical;line-height:1.45}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 16px) 52%,calc(100% - 11px) 52%;background-size:5px 5px;background-repeat:no-repeat}.num{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-width:0}.num:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.num input{border:0!important;box-shadow:none!important;min-width:0;padding-left:9px!important}.num .affix{padding-inline:10px 0;color:var(--ink-2);font-size:.9rem;white-space:nowrap}.num .affix:last-child{padding-inline:0 10px}.num.narrow{max-width:84px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:.88rem;min-height:34px}.chip:hover{border-color:var(--ink-2)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:600}.chip.on .ico{color:var(--accent);width:14px;height:14px}.chips.small{gap:5px}.chips.small .chip{padding:3px 10px;min-height:30px;font-size:.8rem}.segmented{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:3px;flex-wrap:wrap}.segmented button{border:0;background:transparent;padding:7px 13px;border-radius:8px;cursor:pointer;font-weight:500;color:var(--ink-2)}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:600;border:0;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.estimated{background:var(--est-bg);color:var(--est-fg)}.pill.confirmed{background:var(--ok-bg);color:var(--ok-fg)}.pill.toggle{cursor:pointer}.pill.toggle:hover{filter:brightness(.96)}.badge{display:inline-block;border-radius:7px;padding:2px 8px;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums}.badge.good{background:var(--ok-bg);color:var(--ok-fg)}.badge.warn{background:var(--est-bg);color:var(--est-fg)}.badge.bad{background:var(--bad-bg);color:var(--bad-fg)}.badge.neutral{background:var(--surface-2);color:var(--ink-2);font-weight:600}.alert{padding:11px 14px;border-radius:10px;font-size:.88rem}.alert.warn{background:var(--est-bg);color:var(--est-fg)}.alert.bad{background:var(--bad-bg);color:var(--bad-fg);font-weight:600}.tag{font-size:.74rem;padding:2px 8px;border-radius:6px;background:var(--surface-2);color:var(--ink-2);font-weight:500}.tag.cuisine{background:var(--accent-soft);color:var(--accent);font-weight:600}.tag.mini{margin-left:6px;font-size:.68rem;padding:1px 6px}.tags{display:flex;flex-wrap:wrap;gap:5px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media(max-width:760px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.tile-label{font-size:.78rem;color:var(--ink-2);font-weight:500}.tile-value{font-family:var(--font-display);font-size:1.55rem;font-weight:650;letter-spacing:-.02em}.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.event-row{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:6px 10px 6px 6px;box-shadow:var(--shadow)}.event-main{flex:1;min-width:0;display:flex;align-items:center;gap:14px;background:none;border:0;padding:8px;text-align:left;cursor:pointer;border-radius:10px}.event-main:hover{background:var(--surface-2)}.event-date{width:52px;height:56px;flex:none;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.event-date b{font-family:var(--font-display);font-size:1.35rem}.event-date small{text-transform:uppercase;font-size:.68rem;font-weight:700;letter-spacing:.06em;margin-top:3px}.event-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.event-name{font-weight:650;font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta{color:var(--ink-2);font-size:.85rem}.event-figures{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.event-price{font-family:var(--font-display);font-weight:650;font-size:1.1rem;font-variant-numeric:tabular-nums}@media(max-width:520px){.event-actions{display:none}.event-date{width:44px;height:48px}}.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r);padding:28px;text-align:center;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:14px}.workspace{display:flex;flex-direction:column;gap:18px}.ws-head{display:flex;flex-direction:column;gap:6px}.ws-title{margin-top:6px}.ws-meta{color:var(--ink-2)}.summary{margin:10px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.summary>div{padding:12px 16px;border-left:1px solid var(--line);min-width:0}.summary>div:first-child{border-left:0}.summary dt{font-size:.74rem;color:var(--ink-2);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.summary dd{margin:3px 0 0;font-family:var(--font-display);font-size:1.2rem;font-weight:650;overflow:hidden;text-overflow:ellipsis}.summary dd.neg{color:var(--bad-fg)}@media(max-width:760px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary>div{border-left:0;border-top:1px solid var(--line)}.summary>div:nth-child(-n+2){border-top:0}.summary>div:nth-child(2n){border-left:1px solid var(--line)}.summary>div:last-child{grid-column:1 / -1;border-left:0}}.tabs-wrap{position:sticky;top:calc(env(safe-area-inset-top,0px) + 57px);z-index:10;background:var(--bg);margin-inline:-4px;padding:6px 4px}@media(max-width:640px){.tabs-wrap{top:calc(env(safe-area-inset-top,0px) + 98px)}}.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;background:var(--surface-2);border-radius:12px;padding:4px}.tabs button{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;padding:8px 12px;border-radius:9px;cursor:pointer;font-weight:600;color:var(--ink-2);white-space:nowrap}.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.tab-num{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}.tabs button.on .tab-num{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.next-row{display:flex;justify-content:flex-end}.big-number{font-family:var(--font-display);font-size:2rem;font-weight:650;letter-spacing:-.02em;line-height:1.1}.menu-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.menu-toolbar-text{min-width:0;flex:1 1 280px;display:flex;flex-direction:column;gap:4px}.budget{display:flex;flex-direction:column;gap:8px}.budget-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.meter{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.meter span{display:block;height:100%;background:var(--accent);border-radius:999px}.meter span.over{background:var(--bad-fg)}.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}.dish{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--shadow);min-width:0}.dish-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.course-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.dish-cost{font-weight:650;font-variant-numeric:tabular-nums}.dish-cost small{color:var(--ink-2);font-weight:500}.dish-name{font-size:1.18rem;font-weight:650;line-height:1.2}.dish-desc{color:var(--ink-2);font-size:.9rem}.dish-empty{flex:1}.reasons{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--ink-2)}.reasons li:before{content:"\2713";color:var(--accent);font-weight:700;margin-right:7px}.dish-swap{margin-top:auto;padding-top:6px}.shop-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.shop-head>div:first-child{min-width:0;flex:1 1 280px;display:flex;flex-direction:column;gap:4px}.shop-groups{display:flex;flex-direction:column}.shop-group{break-inside:avoid;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:6px 0;margin-bottom:16px;box-shadow:var(--shadow)}.shop-group-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 16px 6px}.shop-group-head h3{font-size:.86rem;text-transform:uppercase;letter-spacing:.08em}.shop-lines{list-style:none;margin:0;padding:0}.shop-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto 84px auto auto;align-items:center;gap:8px 10px;padding:8px 12px 8px 16px;border-top:1px solid var(--line)}.shop-line input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.shop-name{min-width:0;display:flex;flex-direction:column}.shop-name label{font-weight:600;cursor:pointer}.shop-name small{font-size:.76rem;line-height:1.3}.shop-line.done .shop-name label{text-decoration:line-through;color:var(--ink-2)}.shop-qty{display:flex;gap:4px}.shop-qty .num{width:76px}.shop-qty .num input,.shop-qty select{min-height:36px;padding-block:5px}.shop-qty select{width:84px}.shop-cost{min-width:64px;text-align:right;font-weight:600}@media(max-width:560px){.shop-line{grid-template-columns:auto minmax(0,1fr) auto}.shop-qty{grid-column:2 / 3}.shop-cost{grid-column:3;grid-row:1}.shop-line .pill{grid-column:3;grid-row:2;justify-self:end}.shop-line .icon-btn{grid-column:1;grid-row:2}}.add-item{display:flex;flex-direction:column;gap:12px}.add-item-grid{display:grid;grid-template-columns:2fr 1.3fr .8fr .9fr 1fr auto;gap:8px}@media(max-width:760px){.add-item-grid{grid-template-columns:1fr 1fr}.add-item-grid>:first-child{grid-column:1 / -1}}.kv{margin:0 0 10px;display:flex;flex-direction:column}.kv>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line)}.kv dt{color:var(--ink-2)}.kv dd{margin:0;font-weight:600}.kv-total{border-bottom:0!important;padding-top:10px!important}.kv-total dt{color:var(--ink);font-weight:700}.kv-total dd{font-family:var(--font-display);font-size:1.15rem}.expense-table{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;overflow-x:auto}.expense-row{display:grid;grid-template-columns:minmax(150px,2fr) minmax(130px,1.2fr) 70px 86px minmax(100px,1fr) 84px 100px 34px;gap:8px;align-items:center;min-width:820px}.expense-headrow span{font-size:.74rem;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.num-col{text-align:right}.exp-total{font-weight:650}@media(max-width:760px){.expense-row{min-width:0;grid-template-columns:1fr 1fr 1fr;padding:12px;border:1px solid var(--line);border-radius:12px}.expense-headrow{display:none}.expense-row .exp-label,.expense-row select{grid-column:1 / -1}.expense-row .exp-total{text-align:left;font-size:1.05rem}}.confidence{display:flex;flex-direction:column;gap:6px}.confidence-track{height:10px;border-radius:999px;background:var(--est-bg);overflow:hidden}.confidence-fill{display:block;height:100%;background:var(--ok-fg);border-radius:999px}.confidence-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot.confirmed{background:var(--ok-fg)}.dot.estimated{background:var(--est-fg)}.slider-row{display:flex;align-items:center;gap:14px}.slider-row input{flex:1;accent-color:var(--accent);height:28px}.slider-value{font-family:var(--font-display);font-weight:650;font-size:1.3rem;min-width:52px;text-align:right}.suggested{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:12px;background:var(--accent-soft)}.quote-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.quote-input{flex:1 1 200px}.quote-input input{font-family:var(--font-display);font-size:1.5rem!important;font-weight:650;min-height:54px!important}.results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:640px){.results{grid-template-columns:repeat(2,minmax(0,1fr))}}.result{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}.result span{font-size:.8rem;color:var(--ink-2);font-weight:500}.result b{font-family:var(--font-display);font-size:1.35rem;font-weight:650}.result b.neg{color:var(--bad-fg)}.result b.pos{color:var(--ok-fg)}.result small{color:var(--ink-2);font-size:.74rem}.stackbar{display:flex;height:22px;border-radius:7px;overflow:hidden;background:var(--surface-2);gap:2px}.seg{display:block;height:100%}.seg-groceries,.seg-food{background:var(--seg-groceries)}.seg-overhead{background:var(--seg-overhead)}.seg-labor{background:var(--seg-labor)}.seg-other{background:var(--seg-other)}.seg-profit{background:var(--seg-profit)}.legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px 18px}.legend li{display:flex;align-items:center;gap:8px;font-size:.88rem}.legend b{margin-left:auto}.legend .muted{width:36px;text-align:right;font-size:.8rem}.sw{width:11px;height:11px;border-radius:3px;flex:none}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search{max-width:360px}.price-group{padding-bottom:8px}.price-rows{list-style:none;margin:10px 0 0;padding:0}.price-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 14px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.price-name{font-weight:600;min-width:0}.price-edit{display:flex;align-items:center;gap:6px}.price-edit>.num:first-child{width:112px}.price-edit select{width:84px;min-height:38px}.price-edit .num input{min-height:38px}@media(max-width:600px){.price-row{grid-template-columns:minmax(0,1fr) auto}.price-edit{grid-column:1 / -1;grid-row:2}}.proposal-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}@media(max-width:900px){.proposal-layout{grid-template-columns:1fr}}.paper{background:var(--paper);color:var(--paper-ink);border:1px solid var(--paper-line);border-radius:6px;padding:clamp(22px,5vw,56px);box-shadow:var(--shadow);font-family:var(--font-paper);font-size:1.04rem;line-height:1.55;display:flex;flex-direction:column;gap:22px;min-width:0}.paper-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--paper-line)}.paper-brand{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}.paper-small{font-family:var(--font-body);font-size:.8rem;opacity:.7}.paper-right{text-align:right}.paper-kicker{font-family:var(--font-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--accent)}.paper-title{font-family:var(--font-paper);font-weight:500;font-size:clamp(1.7rem,1.3rem + 1.5vw,2.3rem);letter-spacing:-.015em;line-height:1.1}.paper-for{margin-top:-12px;opacity:.8;font-style:italic}.paper-for b{font-style:normal;font-weight:600}.paper-facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;padding:14px 0;border-block:1px solid var(--paper-line)}.paper-facts dt{font-family:var(--font-body);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;opacity:.65;font-weight:600}.paper-facts dd{margin:2px 0 0}.paper-section h3{font-family:var(--font-body);font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;margin-bottom:10px;color:var(--accent)}.paper-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.paper-menu li{display:flex;flex-direction:column}.paper-course{font-family:var(--font-body);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.paper-menu b{font-weight:600;font-size:1.12rem}.paper-menu span:last-child{font-style:italic;opacity:.78}.paper-list{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:4px}.paper-muted{opacity:.7;font-size:.94rem;margin-top:8px}.paper-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0 4px;border-bottom:2px solid var(--paper-ink)}.paper-total b{font-size:1.9rem;font-weight:600;font-variant-numeric:tabular-nums}.paper-note{margin-top:12px;padding:12px 14px;border-left:2px solid var(--accent);font-style:italic}.paper-foot{font-family:var(--font-body);font-size:.8rem;opacity:.65;padding-top:14px;border-top:1px solid var(--paper-line)}.groups{display:flex;flex-direction:column;gap:10px}.group-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}.group-row{display:flex;gap:8px;align-items:center}.group-label{flex:1 1 auto;min-width:0;font-weight:600}.group-count{width:140px;flex:none}.groups-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.quick{max-width:860px}.q-step{display:flex;align-items:center;gap:10px;font-size:1.1rem}.q-step>span{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:.82rem;flex:none}.q-step small{font-family:var(--font-body);font-weight:500;font-size:.8rem}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,145px),1fr));gap:8px}.type-card{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:64px}.type-card:hover{border-color:var(--ink-2)}.type-card.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.type-card small{color:var(--ink-2);font-size:.78rem}.create-bar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:10px;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 70%,transparent)}.btn.lg{min-height:48px;padding:12px 22px;font-size:1rem}.course-block{display:flex;flex-direction:column;gap:10px}.course-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.course-head h2{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.dish-servings{font-size:.78rem;font-weight:600;color:var(--ink-2)}.served-to{display:flex;flex-direction:column;gap:5px}.dish-swap{display:flex;gap:6px;align-items:center}.dish-swap select{flex:1;min-width:0}.tag.mine{background:var(--accent);color:var(--accent-ink)}.tag.stock{background:var(--ok-bg);color:var(--ok-fg)}.tag.edited{background:var(--est-bg);color:var(--est-fg)}.gap-list{margin:0;padding-left:30px}.section-title{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.shop-totals{margin:0;display:flex;gap:28px;flex-wrap:wrap;align-items:flex-end;flex:1 1 320px}.shop-totals dt{font-size:.74rem;color:var(--ink-2);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.shop-totals dd{margin:2px 0 0;font-weight:650;font-variant-numeric:tabular-nums}.shop-note{flex-basis:100%}.used-in{font-size:.72rem!important;opacity:.8}.field-label{font-size:.84rem;font-weight:600}.target-num{width:110px;flex:none}.client-pays{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;border-radius:12px;background:var(--surface-2)}.client-pays b{font-family:var(--font-display);font-size:1.4rem;font-variant-numeric:tabular-nums}.defs summary{cursor:pointer;font-weight:600;font-size:.88rem;color:var(--ink-2)}.defs dl{margin:10px 0 0;display:grid;gap:6px}.defs dl div{display:flex;gap:10px;font-size:.86rem}.defs dt{font-weight:600;min-width:110px}.defs dd{margin:0;color:var(--ink-2)}.privacy{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--ok-bg);color:var(--ok-fg);font-size:.86rem;font-weight:600}.privacy .ico{margin-top:2px}.privacy.exposed{background:var(--est-bg);color:var(--est-fg)}.switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.92rem}.switch input{width:20px;height:20px;accent-color:var(--accent);margin-top:1px;flex:none}.paper-lines{margin:0;display:flex;flex-direction:column;gap:4px}.paper-lines div{display:flex;justify-content:space-between;gap:12px}.paper-lines dd{margin:0;font-variant-numeric:tabular-nums}.paper-internal{border:1px dashed var(--paper-line);padding:12px 14px;border-radius:6px}.recipe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.recipe-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}.recipe-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 260px}.recipe-name{font-weight:650;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.recipe-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.recipe-cost{font-weight:650}.recipe-cost small{color:var(--ink-2);font-weight:500}.line-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.line-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 84px auto 32px;gap:6px;align-items:center}.line-row select,.line-row .num input{min-height:38px}@media(max-width:560px){.line-row{grid-template-columns:1fr 1fr 32px;padding-bottom:8px;border-bottom:1px solid var(--line)}.line-ing{grid-column:1 / -1}.mini-check{grid-column:1 / 3}}.mini-check{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--ink-2);white-space:nowrap}.mini-check input{accent-color:var(--accent)}.recipe-preview{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--accent-soft);border-radius:10px}.price-item{border-top:1px solid var(--line)}.price-item .price-row{border-top:0}.price-name{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:none;border:0;padding:0;cursor:pointer;text-align:left;font-weight:600;min-width:0}.price-name small{font-weight:400;font-size:.74rem}.price-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;padding:4px 0 14px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;font-size:.9rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:40;max-width:calc(100% - 32px)}.toast.show{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{@page{margin:14mm}body{background:#fff}body:before,.topbar,.ws-head,.tabs-wrap,.next-row,.no-print,.toast{display:none!important}.page{padding:0;max-width:none}.proposal-layout{display:block}.paper{border:0;box-shadow:none;padding:0;background:#fff;color:#111;gap:16px}.paper-section,.paper-facts{break-inside:avoid}}.lp{background:var(--bg);min-height:100vh}.lp-wrap{max-width:1120px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.lp-nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.lp-nav-inner{display:flex;align-items:center;gap:24px;padding-block:14px}.lp-links{display:flex;gap:22px;margin-left:auto}.lp-links a{color:var(--ink-2);text-decoration:none;font-weight:500}.lp-links a:hover{color:var(--ink)}.lp-open{text-decoration:none;color:var(--ink)}@media(max-width:640px){.lp-links{display:none}.lp-open{margin-left:auto}}.lp-hero{padding-block:clamp(32px,6vw,84px) clamp(40px,6vw,80px)}.lp-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}@media(max-width:900px){.lp-hero-grid{grid-template-columns:1fr}}.lp-eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}.lp-h1{font-size:clamp(2.4rem,1.6rem + 3.6vw,4.3rem);line-height:1.02;letter-spacing:-.035em;font-weight:700;max-width:14ch}.lp-lede{font-size:clamp(1.05rem,1rem + .3vw,1.22rem);color:var(--ink-2);max-width:54ch;margin-top:20px;line-height:1.55}.lp-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.lp-ctas .btn,.lp-final .btn{text-decoration:none}.btn.primary{color:var(--accent-ink)}.btn.ghost.lg{border:1px solid var(--line);color:var(--ink)}.lp-fine{margin-top:16px;font-size:.86rem;color:var(--ink-2)}.lp-ticket{margin:0;background:var(--paper);color:var(--paper-ink);border:1px solid var(--paper-line);border-radius:18px;padding:26px;box-shadow:0 30px 60px -30px #17201a59,var(--shadow);display:flex;flex-direction:column;gap:14px;transform:rotate(-1.2deg);min-width:0}@media(max-width:900px){.lp-ticket{transform:none;max-width:520px}}@media(prefers-reduced-motion:no-preference){.lp-ticket{animation:lp-rise .7s cubic-bezier(.2,.8,.2,1) both}}@keyframes lp-rise{0%{opacity:.2;transform:translateY(18px) rotate(-1.2deg)}to{opacity:1;transform:translateY(0) rotate(-1.2deg)}}.lp-ticket-head{display:flex;justify-content:space-between;align-items:center}.lp-ticket-kicker{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.lp-ticket-tag{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface-2);color:var(--ink-2)}.lp-ticket-title{font-family:var(--font-paper);font-size:1.7rem;line-height:1.1}.lp-ticket-meta{font-size:.86rem;opacity:.7;margin-top:-8px}.lp-ticket-rows{margin:4px 0 0;display:flex;flex-direction:column}.lp-ticket-rows>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--paper-line);font-variant-numeric:tabular-nums}.lp-ticket-rows dt{opacity:.75}.lp-ticket-rows dd{margin:0;font-weight:600}.lp-ticket-total{border-bottom:0!important;padding-top:12px!important}.lp-ticket-total dt{opacity:1!important;font-weight:700}.lp-ticket-price{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lp-ticket-price>div{background:var(--surface-2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.lp-ticket-price span{font-size:.78rem;color:var(--ink-2)}.lp-ticket-price b{font-family:var(--font-display);font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--ink)}.lp-ticket-price b.lp-pos{color:var(--accent)}.lp-ticket-chips{display:flex;flex-wrap:wrap;gap:6px}.lp-ticket-chips span{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.lp-band{border-block:1px solid var(--line);background:var(--surface)}.lp-audience{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;padding-block:18px}.lp-muted{color:var(--ink-2);font-size:.86rem}.lp-aud{font-family:var(--font-display);font-weight:600;font-size:1.08rem}.lp-section{padding-block:clamp(48px,7vw,96px)}.lp-alt{background:var(--surface);border-block:1px solid var(--line)}.lp-h2{font-size:clamp(1.7rem,1.2rem + 1.8vw,2.6rem);letter-spacing:-.025em;line-height:1.1;max-width:22ch}.lp-steps{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}@media(max-width:900px){.lp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.lp-steps{grid-template-columns:1fr}}.lp-steps li{display:flex;flex-direction:column;gap:8px;padding-top:18px;border-top:2px solid var(--ink)}.lp-step-num{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--accent)}.lp-steps h3,.lp-features h3{font-size:1.12rem;font-weight:650}.lp-steps p,.lp-features p{color:var(--ink-2);font-size:.96rem}.lp-features{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 32px}@media(max-width:900px){.lp-features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.lp-features{grid-template-columns:1fr}}.lp-features article{display:flex;flex-direction:column;gap:6px;min-width:0}.lp-final{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.lp-final .btn{margin-top:22px}.lp-foot{border-top:1px solid var(--line)}.lp-foot-inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:24px calc(24px + env(safe-area-inset-bottom,0px));color:var(--ink-2);font-size:.86rem}.lp-mistakes{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media(max-width:900px){.lp-mistakes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.lp-mistakes{grid-template-columns:1fr}}.lp-mistake{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:10px;min-width:0}.lp-mistake h3{font-size:1.12rem;font-weight:650}.lp-mistake-cost{color:var(--ink-2);font-size:.95rem;flex:1}.lp-mistake-fix{font-size:.92rem;font-weight:500;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.lp-mistake-fix span{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.lp-paths{margin-top:32px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media(max-width:900px){.lp-paths{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.lp-paths{grid-template-columns:1fr}}.lp-path{display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s;min-width:0}.lp-path:hover{border-color:var(--accent);transform:translateY(-2px)}.lp-path h3{font-size:1.15rem;font-weight:650}.lp-path p{color:var(--ink-2);font-size:.94rem;flex:1}.lp-path-go{color:var(--accent);font-weight:650;font-size:.92rem;margin-top:6px}.welcome{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(20px,4vw,48px);align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(22px,4vw,44px);box-shadow:var(--shadow)}@media(max-width:860px){.welcome{grid-template-columns:1fr}}.welcome-copy{display:flex;flex-direction:column;gap:10px;min-width:0}.welcome-copy h1{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);letter-spacing:-.03em}.welcome-steps{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:0;counter-reset:s}.welcome-steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;column-gap:12px;padding:10px 0;border-top:1px solid var(--line)}.welcome-steps li:before{content:counter(s);grid-row:span 2;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.8rem;display:grid;place-items:center}.welcome-steps b{font-weight:650}.welcome-steps span{color:var(--ink-2);font-size:.9rem}.welcome-start{display:flex;flex-direction:column;gap:12px;min-width:0}.welcome-label{font-weight:650}.welcome-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:420px){.welcome-types{grid-template-columns:1fr}}.welcome-type{position:relative;text-align:left;display:flex;flex-direction:column;gap:2px;padding:14px 34px 14px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg);cursor:pointer;min-height:72px;transition:border-color .15s,background-color .15s}.welcome-type:hover{border-color:var(--accent);background:var(--accent-soft)}.welcome-type small{color:var(--ink-2);font-size:.8rem}.welcome-type span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--accent);font-weight:700}.welcome-cta{width:100%;margin-top:4px}.samples{border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--surface) 55%,transparent);padding:4px 16px 12px}.samples>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:14px 0 12px 22px;position:relative}.samples>summary::-webkit-details-marker{display:none}.samples>summary:before{content:"\203a";position:absolute;left:2px;top:11px;font-size:1.3rem;color:var(--ink-2);transition:transform .15s}.samples[open]>summary:before{transform:rotate(90deg)}.samples-title{font-weight:650}.samples-sub{color:var(--ink-2);font-size:.86rem}.event-list.is-sample .event-row{box-shadow:none;background:var(--surface)}.event-list.is-sample .event-date{background:var(--surface-2);color:var(--ink-2)}.samples-foot{display:flex;justify-content:flex-end;margin-top:10px}.sample-note{align-self:flex-start;font-size:.84rem;padding:6px 12px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
