:root{--off-white:#faf7f0;--cream:#f6f2ea;--beige:#e7dcc8;--sand:#dccbb0;--taupe:#b7a793;--charcoal:#3a3733;--off-black:#1c1b19;--bronze:#6e5a3e;--sage:#9aa885;--moss:#6b7a52;--olive:#5f6b3a;--white:#fffdf9;--danger:#8a3b2e;--radius:10px;--head:"League Spartan", system-ui, sans-serif;--body:"Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--off-white);color:var(--off-black);font:400 15px/1.45 var(--body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--head);text-transform:lowercase;letter-spacing:-.01em;margin:0;font-weight:700}h1{font-size:26px}h2{font-size:20px}h3{font-size:17px}.label,.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);font-size:11px;font-weight:600}.muted{color:var(--charcoal);opacity:.85}.small{font-size:13px}.topbar{z-index:10;background:var(--off-black);color:var(--cream);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 24px;display:flex;position:sticky;top:0}.topbar .brand{font-family:var(--head);text-transform:lowercase;margin-right:auto;font-size:18px;font-weight:700}.topbar .brand span{color:var(--sand);font-weight:700}.topbar button{color:var(--cream);background:0 0;border-color:#5a554e}.topbar button:hover{background:#2c2a27}.layout{grid-template-columns:minmax(0,1fr) 400px;gap:24px;max-width:1400px;margin:0 auto;padding:24px;display:grid}@media (width<=1050px){.layout{grid-template-columns:1fr}}.main{flex-direction:column;gap:20px;min-width:0;display:flex}.side{flex-direction:column;align-self:start;gap:16px;display:flex;position:sticky;top:76px}@media (width<=1050px){.side{position:static}}.card{background:var(--white);border:1px solid var(--beige);border-radius:14px;padding:20px}.card>h2{margin-bottom:14px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}label.field{color:var(--charcoal);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}input,select,textarea{font:inherit;color:var(--off-black);background:var(--off-white);border:1px solid var(--sand);border-radius:8px;min-width:0;padding:7px 10px;font-size:15px}input:focus,select:focus,textarea:focus{outline:2px solid var(--moss);outline-offset:0;border-color:var(--moss)}textarea{resize:vertical;min-height:60px}input[type=number]{width:80px}input[type=time]{width:120px}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}@media (width<=700px){.grid2,.grid3{grid-template-columns:1fr}}.check{cursor:pointer;align-items:center;gap:8px;font-size:15px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--moss)}button{font:inherit;cursor:pointer;border:1px solid var(--sand);background:var(--cream);color:var(--off-black);white-space:nowrap;border-radius:8px;padding:7px 12px;font-size:14px;font-weight:600}button:hover{background:var(--beige)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--off-black);color:var(--cream);border-color:var(--off-black)}button.primary:hover{background:var(--charcoal)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--cream)}button.danger{color:var(--danger)}button.big{width:100%;padding:12px 18px;font-size:16px}button.icon{padding:4px 8px}.tabs{border-bottom:1px solid var(--beige);flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:10px;display:flex}.tab{background:0 0;border-radius:999px}.tab.active{background:var(--off-black);color:var(--cream);border-color:var(--off-black)}.meal{border:1px solid var(--beige);border-left:4px solid var(--sage);border-radius:var(--radius);background:var(--off-white);flex-direction:column;gap:10px;padding:14px;display:flex}.meal+.meal{margin-top:12px}.meal-head{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.meal-head .grow{flex:160px}.meal-actions{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.comp{border-top:1px dashed var(--beige);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.comp .examples{flex:180px}.chip-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border-radius:999px;padding:4px 10px;font-size:13px}.option{align-items:center;gap:6px;display:flex}.item{border-top:1px dashed var(--beige);flex-direction:column;gap:6px;padding:6px 0;display:flex}.item .or{color:var(--charcoal);padding-left:4px;font-size:12px}.errors{color:var(--danger);border-radius:var(--radius);background:#f7ece6;border:1px solid #e5c9bc;padding:10px 14px;font-size:14px}.errors ul{margin:6px 0 0;padding-left:18px}.linkbox{word-break:break-all;width:100%;height:84px;font-family:ui-monospace,Menlo,monospace;font-size:11px}.qr{border-radius:var(--radius);border:1px solid var(--beige);background:#fff;justify-content:center;padding:12px;display:flex}.qr canvas{max-width:340px;image-rendering:pixelated;width:100%!important;height:auto!important}.stamp{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.pill{background:var(--cream);border:1px solid var(--sand);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600}.stale{background:var(--cream);border:1px dashed var(--bronze);border-radius:var(--radius);color:var(--bronze);padding:10px 12px;font-size:14px}.notice{background:var(--cream);border-radius:var(--radius);color:var(--charcoal);padding:10px 12px;font-size:13px}.preview-line{color:var(--charcoal);background:var(--off-white);border-radius:8px;padding:8px 10px;font-size:14px}.backdrop{z-index:50;background:#1c1b1973;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:14px;flex-direction:column;gap:14px;width:min(560px,100%);max-height:85vh;padding:22px;display:flex;overflow:auto}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tpl{border:1px solid var(--beige);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 12px;display:flex}.tpl .grow{flex:1;min-width:0}.toast{background:var(--off-black);color:var(--cream);z-index:60;border-radius:999px;padding:10px 16px;font-size:14px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.landing{flex-direction:column;gap:20px;max-width:460px;margin:0 auto;padding:48px 20px;display:flex}.landing .wordmark{font-family:var(--head);text-transform:lowercase;letter-spacing:.02em;color:var(--charcoal);font-size:15px;font-weight:700}.landing h1{font-size:34px;line-height:1.05}.landing ol{flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:17px;display:flex}.landing .plan-name{color:var(--charcoal);font-size:17px}.landing button{font-size:17px}.landing .fine{color:var(--charcoal);font-size:13px}.landing .leaf{background:var(--sage);border-radius:2px;width:44px;height:4px}
