:root{--white:#fff;--canvas:#fdf8ef;--paper:#fff8ef;--paper-deep:#fbeee0;--ink:#2b211b;--ink-soft:#7a6f63;--border:#ecdfd0;--paprika:#c0532a;--paprika-deep:#9e4020;--sage:#6f7d4f;--sage-soft:#eef1e6;--yolk:#e8a33d;--display:"Fraunces", Georgia, serif;--body:"Karla", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;font:16px/1.5 var(--body);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}a{color:inherit}h1,h2,h3{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;font-weight:600}h1{margin:0 0 6px;font-size:40px}h2{margin:0 0 8px;font-size:24px}h3{margin:0 0 2px;font-size:19px}.tagline{color:var(--ink-soft);margin:0 0 28px;font-size:15px}.brand-mark{color:var(--paprika);margin-bottom:14px}.page{width:100%;max-width:640px;margin:0 auto;padding:40px 20px 100px}.page.centered{text-align:center;padding-top:100px}.topnav{border-bottom:1px solid var(--border);font-family:var(--display);background:var(--white);justify-content:space-between;align-items:center;padding:18px 24px;font-size:18px;font-weight:600;display:flex}.topnav button{padding:8px 16px;font-size:13px}.landing{width:100%;max-width:1040px;margin:0 auto;padding:64px 24px 80px;position:relative;overflow:hidden}.landing-decor{color:var(--sage);opacity:.08;pointer-events:none;z-index:0;position:absolute}.landing-decor-1{top:60px;right:8%;transform:rotate(12deg)}.landing-decor-2{color:var(--paprika);bottom:-20px;left:-40px;transform:rotate(-8deg)}.landing-grid{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:64px;display:grid;position:relative}@media (width<=860px){.landing-grid{grid-template-columns:1fr;gap:40px}}.hero h1{margin-bottom:14px;font-size:36px;line-height:1.12}.hero-copy{color:var(--ink-soft);max-width:42ch;margin:0 0 32px;font-size:16px;line-height:1.6}.feature-list{flex-direction:column;gap:22px;margin:0;padding:0;list-style:none;display:flex}.feature-row{align-items:flex-start;gap:16px;display:flex}.feature-icon{color:var(--paprika);flex-shrink:0;margin-top:2px}.feature-title{font-family:var(--display);color:var(--ink);margin:0 0 2px;font-size:16px;font-weight:600}.feature-body{color:var(--ink-soft);max-width:40ch;margin:0;font-size:14px;line-height:1.5}.auth-card{background:var(--white);border:1px solid var(--border);text-align:left;border-radius:20px;padding:36px;box-shadow:0 24px 60px -32px #2b211b40}.auth-card-footer{border-top:1px dotted var(--border);color:var(--ink-soft);align-items:center;gap:8px;margin-top:24px;padding-top:20px;font-size:12px;display:flex}.auth-card-footer svg{color:var(--sage);flex-shrink:0}.tabs{background:var(--paper);border:1px solid var(--border);border-radius:999px;gap:6px;margin-bottom:24px;padding:4px;display:flex}.tabs button{color:var(--ink-soft);cursor:pointer;font-family:var(--body);background:0 0;border:none;border-radius:999px;flex:1;padding:9px;font-size:14px;font-weight:600}.tabs button.active{background:var(--paprika);color:var(--white)}.form{text-align:left;flex-direction:column;gap:18px;display:flex}.form label{text-align:left;flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=number],.form select{border:1px solid var(--border);font-size:15px;font-family:var(--body);background:var(--white);color:var(--ink);border-radius:10px;padding:11px 13px}.form input:focus-visible,.form select:focus-visible,button:focus-visible{outline:2px solid var(--paprika);outline-offset:2px}fieldset{border:none;border-top:2px dotted var(--border);text-align:left;margin:0;padding:20px 0 0}legend{font-family:var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--paprika-deep);margin-left:-2px;padding:0 0 10px;font-size:12px;font-weight:700}.radio-option{align-items:center;gap:6px;margin:4px 16px 4px 0;font-size:14px;font-weight:500;display:inline-flex}.tag-group{margin-bottom:14px}.tag-group:last-child{margin-bottom:0}.tag-group-label{color:var(--ink-soft);margin-bottom:6px;font-size:12px;font-weight:600}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag-option{border:1px solid var(--border);cursor:pointer;background:var(--white);border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex}.tag-option:has(input:checked){background:var(--sage-soft);border-color:var(--sage);color:var(--sage);font-weight:700}.tag-option input{accent-color:var(--sage)}button{background:var(--paprika);color:var(--white);font-size:15px;font-family:var(--body);cursor:pointer;border:none;border-radius:10px;padding:13px 22px;font-weight:700;transition:background .15s,transform .1s}button:hover{background:var(--paprika-deep)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.error{color:var(--paprika-deep);font-size:14px;font-weight:600}.result-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:28px;display:flex}.result-header-actions{gap:10px;display:flex}.result-header-actions button{padding:9px 16px;font-size:13px}.result-header-actions button.secondary{background:var(--white);color:var(--paprika);border:1px solid var(--paprika)}.result-header-actions button.secondary:hover{background:var(--paper)}.day-card{background:var(--paper);text-align:left;border-radius:18px;margin-bottom:20px;padding:22px 24px 8px}.day-header{align-items:baseline;gap:14px;margin-bottom:6px;display:flex}.day-number{font-family:var(--mono);color:var(--white);background:var(--sage);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.day-header h2{margin:0}.meal-card{border-top:1px dotted var(--border);padding:16px 0;position:relative}.meal-card:first-of-type{border-top:none}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin:0 0 4px;font-size:11px;font-weight:700}.meal-card h3{padding-right:76px}.meal-desc{color:var(--ink-soft);margin:4px 0 8px;font-size:14px}.meal-macros{font-family:var(--mono);color:var(--sage);margin:0 0 8px;font-size:12px;font-weight:600}.meal-card ul{color:var(--ink-soft);margin:0;padding-left:18px;font-size:14px}.meal-card li{margin-bottom:2px}.meal-stamp{border:1.5px dashed var(--paprika);width:62px;height:62px;color:var(--paprika);font-family:var(--mono);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;top:14px;right:0;transform:rotate(6deg)}.meal-stamp span{font-size:16px;font-weight:600}.meal-stamp small{letter-spacing:.05em;margin-top:2px;font-size:8px}.shopping-list{background:var(--white);border:1.5px dashed var(--border);text-align:left;border-radius:18px;padding:22px 24px}.shopping-list ul{margin:10px 0 0;padding:0;list-style:none}.shopping-list li{align-items:baseline;gap:6px;padding:7px 0;font-size:14px;display:flex}.item-name{white-space:nowrap}.dots{border-bottom:1px dotted var(--border);flex:1;transform:translateY(-4px)}.item-amount{font-family:var(--mono);color:var(--paprika-deep);white-space:nowrap;font-weight:600}.history-list{text-align:left;flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.history-list li{border:1px solid var(--border);border-radius:14px;transition:border-color .15s,background .15s}.history-list li:hover{border-color:var(--paprika);background:var(--paper)}.history-list a{padding:16px 18px;font-size:14px;font-weight:600;text-decoration:none;display:block}.history-list .plan-date{color:var(--ink-soft);font-size:12px;font-weight:400;font-family:var(--mono);margin-top:2px;display:block}.generating-icon{color:var(--paprika);margin-bottom:20px}@media (prefers-reduced-motion:no-preference){.generating-icon{animation:1.8s ease-in-out infinite simmer}}@keyframes simmer{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.7;transform:translateY(-4px)}}
