@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f6f2ea;--surface: #fffdf8;--surface-sunk: #efe9dd;--line: #e3dccd;--line-strong: #cfc6b2;--ink: #1f2b21;--ink-2: #3a463b;--muted: #6b7065;--faint: #9a9c92;--green: #2a3b2b;--green-2: #394f39;--green-ink: #efe6d2;--green-muted: #a9b4a4;--green-tint: #e9eee4;--green-tint-line: #c9d4c3;--gold: #ae8950;--gold-text: #7d6136;--gold-bright: #d0a862;--gold-soft: #fbf6ec;--gold-line: #d9c7a3;--ok: #3d6b3f;--danger: #9b3b2a;--danger-tint: #f8ebe6;--danger-line: #e5c2b8;--radius: 4px;--focus-ring: 0 0 0 3px rgba(42, 59, 43, .14);--font-body: "Instrument Sans Variable", system-ui, sans-serif;--font-head: "Bricolage Grotesque Variable", "Instrument Sans Variable", system-ui, sans-serif}body{font-family:var(--font-body);color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;letter-spacing:-.02em;color:var(--ink)}h1{letter-spacing:-.03em}button,input,select,textarea{font-family:inherit}a{color:var(--green);text-decoration-color:var(--gold);text-underline-offset:3px}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.tag{display:inline-block;padding:.15rem .5rem;border:1px solid var(--gold-line);border-radius:3px;background:var(--gold-soft);color:var(--gold-text);font-size:.75rem;font-weight:500}html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}.app{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app--sidebar{flex-direction:row}.sidebar{width:216px;height:100%;overflow-y:auto;align-self:flex-start;flex-shrink:0;display:flex;flex-direction:column;gap:2rem;padding:1.75rem 1.25rem 1.25rem;background:var(--green);color:var(--green-muted)}.sidebar-brand{font-family:var(--font-head);font-weight:600;font-size:1.6rem;letter-spacing:-.03em;color:var(--gold-bright);text-decoration:none;line-height:1}.navbar-logo{height:36px;width:auto;display:block}.sidebar-nav{flex:1;display:flex;flex-direction:column}.sidebar-nav a,.sidebar-footer a,.sidebar-logout{color:var(--green-muted);text-decoration:none;font-size:.95rem;padding:.45rem 0;transition:color .15s}.sidebar-nav a:hover,.sidebar-footer a:hover,.sidebar-logout:hover,.sidebar-nav a.active,.sidebar-footer a.active{color:var(--green-ink)}.sidebar-nav a.active:after,.sidebar-footer a.active:after{content:"";display:inline-block;width:6px;height:6px;margin-left:.5rem;border-radius:50%;background:var(--gold);vertical-align:middle}.sidebar-footer{display:flex;flex-direction:column;padding-top:1rem;border-top:1px solid rgba(239,230,210,.12);font-size:.85rem}.sidebar-footer a,.sidebar-logout{font-size:.85rem;padding:.3rem 0}.sidebar-username{color:var(--green-ink);font-weight:500;padding-bottom:.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{background:none;border:0;text-align:left;cursor:pointer;font-family:inherit}@media(max-width:760px){.main-content{padding:0 1rem 1.5rem}.sidebar{overflow:visible}.app--sidebar{flex-direction:column}.sidebar{width:auto;height:auto;position:static;align-self:stretch;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;padding:1rem}.sidebar-nav{flex-direction:row;flex-wrap:wrap;gap:0 1rem;flex-basis:100%;order:3}.sidebar-footer{flex-direction:row;gap:1rem;border-top:0;padding-top:0;margin-left:auto;align-items:baseline}.sidebar-username{display:none}}.main-content{flex:1;min-width:0;min-height:0;padding:0 2.5rem 2rem;overflow-y:auto;overscroll-behavior:none}.main-content>*{max-width:1200px;margin-left:auto;margin-right:auto;margin-top:1rem}.page-header{position:sticky;top:0;z-index:20;padding-top:1rem;background:var(--bg)}.eyebrow{display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}.eyebrow--on-dark{color:var(--gold-bright)}.btn-on-dark{display:inline-block;padding:.6rem 1.25rem;border:1px solid rgba(239,230,210,.3);border-radius:var(--radius);color:var(--green-ink);font-size:.95rem;font-weight:500;text-decoration:none}.btn-on-dark:hover{border-color:var(--green-ink)}.home-head{margin-bottom:1.75rem}.home-head h1{font-size:2.25rem;line-height:1.1;margin-top:.35rem}.home-feature{display:grid;grid-template-columns:1.25fr 1fr;min-height:300px;margin-bottom:2.5rem;background:var(--green);color:var(--green-ink)}.home-feature--empty{grid-template-columns:1fr;min-height:0}.home-feature--loading{background:var(--surface-sunk)}.home-feature-photo{background-color:var(--green-2);background-size:cover;background-position:center}.home-feature--no-photo{grid-template-columns:1fr;min-height:0}.home-feature--no-photo .home-feature-body{padding:2rem;gap:1.75rem}.home-feature--no-photo .home-feature-desc{max-width:60ch}.home-feature-body{display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;padding:1.75rem}.home-feature-title{color:var(--green-ink);font-size:2rem;line-height:1.1;margin-top:.5rem}.home-feature-title span{color:var(--green-muted);font-weight:500}.home-feature-desc{margin-top:.75rem;color:var(--green-muted);font-size:.9rem;line-height:1.5}.home-feature-stats{display:flex;flex-wrap:wrap;gap:1.5rem}.home-feature-stats div{display:flex;flex-direction:column-reverse}.home-feature-stats dd{font-family:var(--font-head);font-weight:600;font-size:1.4rem}.home-feature-stats dt{font-size:.75rem;color:var(--green-muted)}.home-feature-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.home-feature-actions .btn-primary{text-decoration:none}.home-feature .home-star{color:#efe6d24d}.home-feature .home-star--filled{color:var(--gold-bright)}.home-columns{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}.home-section-title{font-size:1.25rem;margin-bottom:.75rem}.home-list-row{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.15rem 1rem;padding:.75rem 0;border-top:1px solid var(--line)}.home-list-name{background:none;border:0;padding:0;text-align:left;font-size:1rem;color:var(--ink);cursor:pointer}.home-list-name:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.home-list-meta{grid-column:1;font-size:.8rem;color:var(--muted)}.home-list-row .home-stars{grid-column:2;grid-row:1 / span 2;align-self:center}.home-list-add{display:block;padding:.65rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;text-decoration:none}.home-list-add:before{content:"+ ";color:var(--gold)}.home-list-add:hover{color:var(--ink)}.home-stars{display:inline-flex;gap:1px}.home-star{background:none;border:0;padding:0 1px;font-size:1rem;line-height:1;color:var(--line-strong);cursor:pointer}.home-star--filled{color:var(--gold)}.home-star:disabled{cursor:default}.home-target{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:.75rem;padding:.55rem 0;font-size:.85rem}.home-target-track{height:6px;background:var(--line);border-radius:3px;overflow:hidden}.home-target-fill{height:100%;background:var(--green);border-radius:3px}.home-target-value{color:var(--muted);text-align:right}.home-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--ink)}.home-total strong{font-family:var(--font-head);font-weight:600;font-size:1.6rem}.home-tomorrow{max-width:560px}.home-muted{color:var(--muted);font-size:.9rem;padding:.75rem 0;border-top:1px solid var(--line)}@media(max-width:900px){.home-feature,.home-columns{grid-template-columns:1fr}.home-feature-photo{min-height:200px}}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 100px)}.auth-card{background:var(--surface);padding:2rem;border-radius:var(--radius);box-shadow:none;width:100%;max-width:400px}.auth-card h1{margin-bottom:1.5rem;text-align:center;color:var(--green)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--green);font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid var(--line-strong);border-radius:4px;font-size:1rem}.form-group select{width:100%;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:4px;font-size:1rem;background:var(--surface);cursor:pointer}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--green)}button[type=submit]{width:100%;padding:.75rem;background-color:var(--gold);color:var(--green);border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}button[type=submit]:hover:not(:disabled){background-color:var(--gold-text)}button[type=submit]:disabled{background-color:var(--muted);cursor:not-allowed}.auth-link{margin-top:1rem;text-align:center;color:var(--muted)}.auth-link a{color:var(--gold);text-decoration:none}.auth-link a:hover{text-decoration:underline}.auth-page--wide{align-items:flex-start;padding:2rem 1rem}.auth-card--wide{max-width:660px}.register-step-badge{display:inline-block;background:var(--surface-sunk);color:var(--green-2);border:1px solid var(--green-tint-line);font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:.2rem .6rem;border-radius:4px;margin-bottom:.75rem;text-transform:uppercase}.register-step-hint{color:var(--muted);font-size:.875rem;margin:-.5rem 0 1.25rem;line-height:1.5}.register-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.25rem}@media(max-width:500px){.register-profile-grid{grid-template-columns:1fr}}.register-textarea{width:100%;padding:.65rem .75rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.95rem;font-family:inherit;resize:vertical;box-sizing:border-box}.register-textarea:focus{outline:none;border-color:var(--green)}.register-profile-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:.25rem}.register-btn-full{width:100%;padding:.75rem;background-color:var(--gold);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.register-btn-full:hover:not(:disabled){background-color:var(--gold-text)}.register-btn-full:disabled{background-color:var(--muted);cursor:not-allowed}.register-btn-skip{width:100%;padding:.65rem;background:transparent;color:var(--muted);border:1px solid var(--line-strong);border-radius:4px;font-size:.9rem;cursor:pointer;transition:background .15s,color .15s}.register-btn-skip:hover{background:var(--surface-sunk);color:var(--ink-2)}.register-profile-section-label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:.5rem 0 .75rem;padding-top:.75rem;border-top:1px solid var(--line)}.page{padding:.5rem 0 3rem}.page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--ink)}.page-header h1{color:var(--green)}.page-header button:not([class]){padding:.65rem 1.5rem;background-color:var(--gold);color:var(--green);border:none;border-radius:var(--radius);font-weight:600;cursor:pointer}.page-header button:not([class]):hover{background-color:var(--gold-bright)}.recipes-count{font-size:.9rem;color:var(--muted);font-weight:400}.recipes-empty{color:var(--muted);padding:2rem 0}.subcategory-pill{padding:.3rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.subcategory-pill:hover{border-color:var(--line-strong);background:var(--surface-sunk)}.subcategory-pill--active{background:var(--green);color:#fff;border-color:var(--green)}.recipe-fav-btn{position:absolute;top:.4rem;right:.4rem;background:#ffffffd9;border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;color:var(--faint);transition:color .15s,background .15s;z-index:2;line-height:1;padding:0}.recipe-fav-btn:hover{color:var(--gold-text);background:#fff}.recipe-fav-btn--active{color:var(--gold-text)}.recipe-appliances{display:flex;gap:4px;flex-wrap:wrap;padding:0 1.5rem .5rem}.appliance-chip{font-size:1.25rem;line-height:1;cursor:default;-webkit-user-select:none;user-select:none}.appliance-chip--labeled{display:inline-flex;align-items:center;gap:.3rem;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:1rem;padding:.2rem .55rem;font-size:.82rem;color:var(--ink-2)}.appliance-chip-name{font-size:.82rem}.recipe-required-appliances{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.5rem 0}.recipe-required-appliances-label{font-size:.85rem;color:var(--ink-2);font-weight:500;white-space:nowrap}.appliance-picker{display:flex;flex-wrap:wrap;gap:.5rem}.appliance-toggle{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .75rem;border:2px solid var(--line);border-radius:.5rem;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s;min-width:70px}.appliance-toggle:hover{border-color:var(--green-tint-line);background:var(--surface-sunk)}.appliance-toggle--active{border-color:var(--ok);background:var(--green-tint)}.appliance-toggle-emoji{font-size:1.5rem;line-height:1}.appliance-toggle-name{font-size:.7rem;color:var(--ink-2);text-align:center;white-space:nowrap}.section-hint{font-size:.85rem;color:var(--muted);margin:-.25rem 0 .75rem}.recipe-ingredients{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.recipe-ingredients strong{color:var(--green);display:block;margin-bottom:.5rem}.recipe-ingredients ul{list-style-position:inside;color:var(--muted)}.recipe-urls{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.recipe-urls strong{color:var(--green);display:block;margin-bottom:.5rem}.recipe-urls ul{list-style:none;padding:0;margin:0}.recipe-urls ul li{margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem}.recipe-urls ul li a{color:var(--gold);text-decoration:none;font-size:.875rem}.recipe-urls ul li a:hover{text-decoration:underline}.recipe-url-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;font-weight:600}.recipe-url-badge--video{background:var(--green-tint);color:var(--green-2)}.meal-plans-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.meal-plan-card{background:var(--surface);padding:1.25rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line);cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;gap:1rem}.meal-plan-card:hover{transform:translateY(-2px);box-shadow:none}.meal-plan-card-body{flex:1;min-width:0}.meal-plan-card h3{color:var(--green);margin-bottom:.4rem}.meal-plan-card-meta{display:flex;gap:1.25rem;flex-wrap:wrap}.meal-plan-duration,.meal-plan-count{font-size:.875rem;color:var(--muted)}.meal-plan-card p{color:var(--muted);margin-bottom:.25rem}.meal-plans-empty{color:var(--muted);padding:2rem 0}.btn-delete-meal-plan{flex-shrink:0;background:none;border:1px solid transparent;border-radius:var(--radius);padding:.4rem .55rem;font-size:1.05rem;cursor:pointer;color:var(--muted);transition:color .15s,border-color .15s,background .15s;line-height:1}.btn-delete-meal-plan:hover{color:var(--danger);border-color:var(--danger-line);background:#c0392b12}.meal-plan-details{margin-top:1rem}.meal-plan-info{background:var(--surface-sunk);padding:1rem;border-radius:4px;margin-bottom:2rem}.meal-plan-cost{font-size:1.25rem;color:var(--ok);font-weight:700}.cost-tile{margin-top:.75rem;border:1px solid var(--green-tint-line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.cost-tile--expanded{border-color:var(--ok)}.cost-tile-summary{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface-sunk)}.cost-tile--expanded .cost-tile-summary{background:var(--green-tint)}.cost-tile-label{flex:1;color:var(--green)}.cost-tile-amount{font-size:1.15rem;font-weight:700;color:var(--ok)}.cost-tile-meta{font-size:.82rem;color:var(--muted);white-space:nowrap;margin-left:auto;padding-right:.25rem}.cost-tile-chevron{color:var(--muted);font-size:1.1rem;line-height:1;transition:transform .2s;-webkit-user-select:none;user-select:none}.cost-tile-chevron--open{transform:rotate(180deg)}.cost-tile-breakdown{padding:1rem;border-top:1px solid var(--green-tint-line)}.cost-tile-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.25rem 0 .5rem}.cost-by-day{margin-bottom:.25rem}.day-cost-table{width:100%;border-collapse:collapse;font-size:.88rem}.day-cost-table th,.day-cost-table td{padding:.35rem .6rem;text-align:left;border-bottom:1px solid var(--line)}.day-cost-table th{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface)}.day-cost-table tbody tr:hover{background:var(--surface-sunk)}.day-cost-table tfoot td{border-bottom:none;border-top:2px solid var(--green-tint-line);font-weight:700}.cost-tile-actions{margin-top:.75rem;display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}.btn-download{background:var(--ok);color:#fff;border:none;border-radius:4px;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-download:hover{background:var(--ok)}.btn-add-pantry{background:var(--surface);color:var(--gold-text);border:1px solid var(--green-tint-line);border-radius:4px;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.btn-add-pantry:hover:not(:disabled){background:var(--green-tint);border-color:var(--green-tint-line)}.btn-add-pantry:disabled{opacity:.6;cursor:default}.btn-add-pantry--done{background:var(--surface-sunk);color:var(--ok);border-color:var(--green-tint-line)}.btn-add-pantry--done:hover:not(:disabled){background:var(--green-tint)}.btn-add-pantry--error{background:var(--danger-tint);color:var(--danger);border-color:var(--danger-line)}.leftover-score{margin-top:1rem;border-radius:var(--radius);padding:.75rem 1rem;border:1px solid transparent}.leftover-score--excellent,.leftover-score--good{background:var(--surface-sunk);border-color:var(--green-tint-line)}.leftover-score--fair{background:var(--gold-soft);border-color:var(--gold-line)}.leftover-score--poor{background:var(--surface-sunk);border-color:var(--danger)}.leftover-score-bar-wrap{height:6px;border-radius:3px;background:#0000001a;overflow:hidden;margin-bottom:.6rem}.leftover-score--excellent .leftover-score-bar,.leftover-score--good .leftover-score-bar{height:100%;border-radius:3px;background:var(--ok);transition:width .4s ease}.leftover-score--fair .leftover-score-bar{height:100%;border-radius:3px;background:var(--gold);transition:width .4s ease}.leftover-score--poor .leftover-score-bar{height:100%;border-radius:3px;background:var(--danger);transition:width .4s ease}.leftover-score-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem 1.25rem}.leftover-score-pct{font-weight:700;font-size:.95rem}.leftover-score--excellent .leftover-score-pct,.leftover-score--good .leftover-score-pct{color:var(--ok)}.leftover-score--fair .leftover-score-pct{color:var(--gold-text)}.leftover-score--poor .leftover-score-pct{color:var(--danger)}.leftover-score-value{font-size:.88rem;color:var(--ink-2)}.leftover-score-hint{font-size:.82rem;color:var(--muted);font-style:italic;flex-basis:100%}.meal-plan-day{margin-bottom:2rem}.meal-plan-day-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--line)}.meal-plan-day-header h3{color:var(--green);margin:0}.day-nutrition-badge{font-size:.85rem;font-weight:600;color:var(--ok);background:var(--surface-sunk);border:1px solid var(--green-tint-line);border-radius:var(--radius);padding:.2rem .75rem;white-space:nowrap;flex-shrink:0}.day-meals{display:flex;flex-direction:column;gap:.75rem}.meal-item{background:var(--surface);border-radius:var(--radius);border-left:4px solid var(--gold);overflow:hidden;transition:border-color .15s}.meal-item--expanded{border-left-color:var(--gold-text);background:var(--surface)}.meal-item-header{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem}.meal-type{font-weight:600;color:var(--green);min-width:80px}.meal-recipe{flex:1;color:var(--ink-2)}.meal-servings{color:var(--muted);font-size:.85rem;white-space:nowrap}.meal-item-kcal{font-size:.85rem;font-weight:600;color:var(--gold-text);white-space:nowrap}.meal-item-chevron{color:var(--muted);font-size:1.1rem;line-height:1;transition:transform .2s;-webkit-user-select:none;user-select:none}.meal-item-chevron--open{transform:rotate(180deg)}.meal-item-nutrition{border-top:1px solid var(--green-tint-line);padding:.75rem 1rem;background:var(--green-tint)}.nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}@media(max-width:520px){.nutrition-grid{grid-template-columns:repeat(2,1fr)}}.nutrition-cell{display:flex;flex-direction:column;gap:.15rem}.nutrition-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.nutrition-value{font-size:.9rem;font-weight:600;color:var(--green)}.nutrition-kj{font-size:.8rem;font-weight:400;color:var(--muted)}.meal-plan-form{max-width:860px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.form-group--narrow{max-width:100px}.form-date-display{padding:.5rem .75rem;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink-2);font-size:.95rem;min-height:38px;display:flex;align-items:center}.gen-section{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--line)}.gen-section:last-of-type{border-bottom:none}.gen-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.15rem;color:var(--green);margin-bottom:.75rem}.gen-step{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--green-2);color:#fff;font-size:.8rem;font-weight:700;flex-shrink:0}.gen-section-hint{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.gen-summary-hint{font-size:.88rem;color:var(--ink-2);margin-top:.75rem}.gen-pool-count{margin-left:auto;font-size:.82rem;font-weight:600;background:var(--surface-sunk);color:var(--green-2);padding:.15rem .6rem;border-radius:var(--radius)}.gen-strategy-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem}.gen-strategy-card{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;padding:1rem 1.1rem;border:2px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}.gen-strategy-card:hover{border-color:var(--green-2);box-shadow:none}.gen-strategy-card--active{border-color:var(--green-2);background:var(--surface-sunk);box-shadow:inset 0 0 0 1px var(--green)}.gen-strategy-emoji{font-size:1.6rem;line-height:1;margin-bottom:.15rem}.gen-strategy-label{font-weight:600;font-size:.95rem;color:var(--green)}.gen-strategy-desc{font-size:.8rem;color:var(--ink-2);line-height:1.4}.meal-type-chips{display:flex;flex-wrap:wrap;gap:.75rem}.meal-type-chip{display:flex;align-items:center;gap:.45rem;padding:.55rem 1.1rem;border:2px solid var(--line-strong);border-radius:3px;background:var(--surface);color:var(--ink-2);font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.meal-type-chip:hover{border-color:var(--green-2);color:var(--green-2)}.meal-type-chip--active{border-color:var(--green-2);background:var(--green-2);color:#fff}.meal-type-chip-emoji{font-size:1rem}.gen-pool-toolbar{display:flex;gap:.75rem;margin-bottom:1rem;align-items:center}.gen-pool-search{flex:1;padding:.5rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.95rem}.gen-select-all-btn{padding:.5rem 1rem;border:1px solid var(--green-2);border-radius:var(--radius);background:transparent;color:var(--green-2);font-size:.875rem;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.gen-select-all-btn:hover{background:var(--green-2);color:#fff}.gen-fav-filter-btn{padding:.5rem 1rem;border:1px solid var(--gold);border-radius:var(--radius);background:transparent;color:var(--gold-text);font-size:.875rem;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.gen-fav-filter-btn:hover,.gen-fav-filter-btn--active{background:var(--gold);color:#fff}.gen-recipe-groups{display:flex;flex-direction:column;gap:2rem;max-height:600px;overflow-y:auto;padding-right:4px}.gen-recipe-group-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--line)}.gen-recipe-group-name{font-weight:700;font-size:1rem;color:var(--green)}.gen-recipe-group-count{font-size:.78rem;color:var(--muted);background:var(--surface-sunk);padding:.1rem .5rem;border-radius:var(--radius)}.gen-cat-toggle{margin-left:auto;padding:.25rem .75rem;font-size:.78rem;border:1px solid var(--green-2);border-radius:var(--radius);background:transparent;color:var(--green-2);cursor:pointer;transition:background .15s,color .15s}.gen-cat-toggle:hover,.gen-cat-toggle--all{background:var(--green-2);color:#fff}.gen-cat-toggle--some{border-color:var(--green-tint-line);color:var(--green-2)}.gen-recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.gen-recipe-tile{position:relative;display:flex;flex-direction:column;border:2px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;cursor:pointer;background:var(--surface);text-align:left;padding:0;transition:border-color .15s,box-shadow .15s,transform .12s}.gen-recipe-tile:hover{border-color:var(--green-2);box-shadow:none;transform:translateY(-2px)}.gen-recipe-tile--selected{border-color:var(--green-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--green)}.gen-recipe-fav-btn{top:.3rem;right:.3rem;width:1.7rem;height:1.7rem;font-size:.95rem}.gen-recipe-tile-img{width:100%;height:100px;overflow:hidden;flex-shrink:0;background:var(--surface-sunk)}.gen-recipe-tile-img img{width:100%;height:100%;object-fit:cover;display:block}.gen-recipe-tile-img--placeholder{display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--faint)}.gen-recipe-tile-info{padding:.5rem .6rem .6rem;display:flex;flex-direction:column;gap:.2rem;flex:1}.gen-recipe-tile-name{font-size:.82rem;font-weight:600;color:var(--green);line-height:1.3}.gen-recipe-tile-category{font-size:.72rem;color:var(--muted)}.gen-recipe-tile-check{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--green-2);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.gen-recipe-tile--selected .gen-recipe-tile-check{opacity:1}.btn-generate{background:var(--gold);color:#fff;font-weight:600;font-size:1rem;letter-spacing:.02em}.btn-generate:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.meal-items-section{margin-top:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{color:var(--green)}.section-header button{padding:.5rem 1rem;background-color:var(--ok);color:#fff;border:none;border-radius:4px;cursor:pointer}.section-header button:hover{background-color:var(--ok)}.meal-item-form{display:grid;grid-template-columns:2fr 1fr 1fr 80px 80px;gap:.5rem;margin-bottom:.75rem;align-items:center}.meal-item-form select,.meal-item-form input{padding:.5rem;border:1px solid var(--line-strong);border-radius:4px}.meal-item-form button{padding:.5rem;background-color:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer}.meal-item-form button:hover{background-color:var(--danger)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.form-actions button{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.form-actions button[type=button]{background-color:var(--muted);color:#fff}.form-actions button[type=submit]{background-color:var(--gold);color:#fff}.form-actions button:hover:not(:disabled){opacity:.9}.suggestions-search{display:flex;gap:1rem;margin-bottom:2rem}.suggestions-search input{flex:1;padding:.75rem;border:1px solid var(--line-strong);border-radius:4px;font-size:1rem}.suggestions-search button{padding:.75rem 1.5rem;background-color:var(--gold);color:#fff;border:none;border-radius:4px;cursor:pointer}.suggestions-search button:hover:not(:disabled){background-color:var(--gold-text)}.suggestions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.suggestion-card{background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--line)}.suggestion-card h3{color:var(--green);margin-bottom:.5rem}.suggestion-reason{color:var(--muted);margin-bottom:1rem}.suggestion-score{color:var(--ok);font-weight:600}.suggest-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--line);padding-bottom:0}.suggest-tab{padding:.6rem 1.4rem;border:none;border-bottom:3px solid transparent;background:none;color:var(--ink-2);font-size:1rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-2px}.suggest-tab:hover{color:var(--green-2)}.suggest-tab--active{color:var(--green-2);border-bottom-color:var(--green-2);font-weight:600}.suggest-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.25rem}.suggest-panel-hint{color:var(--muted);font-size:.9rem;margin-bottom:1.25rem}.suggest-chip-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.suggest-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .85rem;border-radius:3px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.suggest-chip:hover{border-color:var(--danger);color:var(--danger);background:var(--surface)}.suggest-chip--active,.suggest-chip--active:hover{background:var(--danger);border-color:var(--danger);color:#fff}.suggest-criteria-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;align-items:start}.suggest-checkbox-group{display:flex;flex-direction:column;gap:.25rem;justify-content:flex-end;padding-top:1.5rem}.suggest-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.95rem;cursor:pointer}.suggest-checkbox-hint{font-size:.8rem;color:var(--muted)}.suggest-textarea{width:100%;padding:.75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .15s}.suggest-textarea:focus{outline:none;border-color:var(--green-2)}.suggest-actions{margin-bottom:2rem}.suggest-submit-btn{padding:.8rem 2rem;background:var(--green-2);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.suggest-submit-btn:hover:not(:disabled){background:var(--green)}.suggest-submit-btn:disabled{opacity:.5;cursor:not-allowed}.suggest-results{margin-top:.5rem}.suggest-results-title{font-size:1.3rem;font-weight:600;color:var(--green);margin-bottom:1.25rem}.suggest-hero-card{display:flex;background:var(--surface);border:2px solid var(--green-2);border-radius:var(--radius);overflow:hidden;margin-bottom:1.25rem;cursor:pointer;transition:box-shadow .2s,transform .15s}.suggest-hero-card:hover{box-shadow:none;transform:translateY(-2px)}.suggest-hero-image{width:280px;flex-shrink:0;overflow:hidden}.suggest-hero-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.suggest-hero-card:hover .suggest-hero-image img{transform:scale(1.03)}.suggest-hero-body{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;flex:1}.suggest-hero-name{font-size:1.5rem;font-weight:700;color:var(--green);margin:0}.suggest-secondary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.suggest-secondary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:box-shadow .2s,transform .15s}.suggest-secondary-card:hover{box-shadow:none;transform:translateY(-2px)}.suggest-secondary-image{height:160px;overflow:hidden}.suggest-secondary-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.suggest-secondary-card:hover .suggest-secondary-image img{transform:scale(1.05)}.suggest-secondary-body{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.suggest-secondary-name{font-size:1.1rem;font-weight:600;color:var(--green);margin:0}.suggest-card-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.suggest-card-category{display:inline-block;padding:.2rem .65rem;background:var(--line);color:var(--green-2);border-radius:3px;font-size:.8rem;font-weight:600}.suggest-card-badge{display:inline-block;padding:.2rem .65rem;border-radius:3px;font-size:.8rem;font-weight:600}.suggest-card-badge--hero{background:var(--gold-soft);color:var(--gold-text)}.suggest-card-rationale{color:var(--ink-2);font-style:italic;font-size:.95rem;line-height:1.5;margin:0}.suggest-card-stats{display:flex;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:auto}.suggest-card-score{color:var(--green-2);font-weight:600}.suggest-empty{color:var(--muted);text-align:center;padding:2.5rem 1rem;font-size:.95rem}.suggest-empty--filtered{background:var(--surface);border:1.5px solid var(--gold);border-radius:var(--radius);padding:1.5rem 2rem;max-width:480px;margin:2rem auto;text-align:left}.suggest-empty-headline{font-size:1rem;font-weight:600;color:var(--danger);margin:0 0 .75rem}.suggest-empty-filters{margin:0 0 .75rem 1.25rem;padding:0;font-size:.9rem;color:var(--ink-2);line-height:1.7}.suggest-empty-hint{font-size:.85rem;color:var(--muted);margin:0}@media(max-width:640px){.suggest-hero-card{flex-direction:column}.suggest-hero-image{width:100%;height:200px}.suggest-secondary-grid,.suggest-criteria-grid{grid-template-columns:1fr}}.loading{text-align:center;padding:2rem;color:var(--muted)}.error{background-color:var(--danger-tint);color:var(--danger);padding:1rem;border-radius:4px;margin-bottom:1rem}.back-btn{background:none;border:none;color:var(--gold);cursor:pointer;font-size:.95rem;padding:0;margin-bottom:1.5rem}.back-btn:hover{text-decoration:underline}.btn-edit-recipe{padding:.5rem 1.1rem;background:var(--green-tint-line);color:#fff;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-edit-recipe:hover{background:var(--green-2)}.btn-delete-recipe{padding:.5rem 1.1rem;background:var(--danger);color:#fff;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-delete-recipe:hover:not(:disabled){background:var(--danger)}.btn-delete-recipe:disabled{opacity:.6;cursor:not-allowed}.recipe-detail{max-width:760px}.ingredient-qty{min-width:90px;font-size:.875rem;color:var(--muted);flex-shrink:0}.ingredient-name{color:var(--green);flex:1}.ingredient-cost{font-size:.875rem;color:var(--muted);text-align:right;flex-shrink:0;min-width:60px}.ingredient-total-row{border-top:2px solid var(--line)!important;border-bottom:none!important;padding-top:.65rem!important;margin-top:.2rem}.ingredient-total-label,.ingredient-total-cost{font-weight:600;color:var(--green)}.pantry-error{cursor:pointer;display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.pantry-error-dismiss{font-size:.75rem;opacity:.6}.pantry-add-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.pantry-add-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .75rem}.pantry-add-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.pantry-add-select{flex:1 1 220px;min-width:180px;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;background:var(--surface);color:var(--ink)}.pantry-add-qty{width:110px;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem}.pantry-add-date{padding:.5rem .6rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;color:var(--ink-2);cursor:pointer}.pantry-add-btn{white-space:nowrap}.pantry-search{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.pantry-search-input-wrap{position:relative;flex:1;max-width:320px}.pantry-search-input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem}.pantry-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--faint);font-size:.8rem;padding:0;line-height:1}.pantry-search-clear:hover{color:var(--ink-2)}.pantry-empty{text-align:center;padding:3rem 1.5rem;color:var(--muted)}.pantry-empty p{margin:.25rem 0}.pantry-table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line)}.pantry-table{width:100%;border-collapse:collapse;font-size:.9rem}.pantry-table thead tr{background:var(--surface);border-bottom:2px solid var(--line)}.pantry-category-header{cursor:pointer;-webkit-user-select:none;user-select:none}.pantry-category-header:hover th{background:var(--green-tint)}.pantry-category-header th{padding:.5rem 1rem;background:var(--surface-sunk);color:var(--green-2);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-top:1px solid var(--green-tint-line);border-bottom:1px solid var(--green-tint-line)}.pantry-cat-chevron{display:inline-block;font-size:.6em;margin-right:.4em;opacity:.7;vertical-align:middle}.pantry-cat-count{margin-left:.4em;opacity:.55;font-weight:500;font-size:.95em;text-transform:none;letter-spacing:0}.pantry-freshness-unknown{opacity:.4;cursor:default;font-size:.85em}.pantry-table th{padding:.65rem 1rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pantry-row{border-bottom:1px solid var(--line);transition:background .12s}.pantry-row:last-child{border-bottom:none}.pantry-row:hover{background:var(--surface)}.pantry-row--empty .pantry-cell-qty{color:var(--faint)}.pantry-table td{padding:.65rem 1rem;vertical-align:middle}.pantry-cell-name{font-weight:500;color:var(--ink)}.pantry-cell-unit{color:var(--muted)}.pantry-cell-purchased{white-space:nowrap}.pantry-date-input{border:1px solid transparent;background:transparent;font-size:.875rem;color:var(--ink-2);cursor:pointer;padding:.15rem .3rem;border-radius:4px;transition:background .1s,border-color .1s}.pantry-date-input:hover{background:var(--line)}.pantry-date-input:focus{outline:none;border-color:var(--green-tint-line);background:var(--surface);cursor:text}.pantry-cell-updated{color:var(--faint);font-size:.8rem;white-space:nowrap}.pantry-cell-actions{text-align:right;width:50px}.pantry-qty-display{cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .4rem;border-radius:4px;font-weight:500;transition:background .1s}.pantry-qty-display:hover{background:var(--line)}.pantry-qty-edit-hint{font-size:.65rem;opacity:0;color:var(--muted);transition:opacity .1s}.pantry-qty-display:hover .pantry-qty-edit-hint{opacity:1}.pantry-qty-input{width:90px;padding:.25rem .5rem;border:2px solid var(--green-tint-line);border-radius:4px;font-size:.9rem;font-weight:500;outline:none}.pantry-delete-btn{background:none;border:none;color:var(--faint);cursor:pointer;font-size:.8rem;padding:.2rem .4rem;border-radius:4px;transition:color .15s,background .15s}.pantry-delete-btn:hover{color:var(--danger);background:var(--danger-tint)}.pantry-clear-btn{padding:.35rem .9rem;border:1px solid var(--danger);border-radius:var(--radius);background:transparent;color:var(--danger);font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.pantry-clear-btn:hover:not(:disabled){background:var(--danger);color:#fff}.pantry-clear-btn:disabled{opacity:.6;cursor:not-allowed}.page-header-actions{display:flex;align-items:center;gap:1rem}.visibility-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:3px;white-space:nowrap}.visibility-badge--private{background:#ae895026;color:var(--gold-text);border:1px solid rgba(174,137,80,.4)}.visibility-badge--pending{background:#ffa5001f;color:var(--gold-text);border:1px solid rgba(255,165,0,.4)}.visibility-badge--public{background:#388e3c1a;color:var(--ok);border:1px solid rgba(56,142,60,.35)}.create-recipe-form{max-width:780px;display:flex;flex-direction:column;gap:2rem}.create-recipe-section{background:var(--surface);border-radius:var(--radius);padding:1.5rem 1.75rem;border:1px solid var(--line);box-shadow:none}.create-recipe-section h2{color:var(--green);font-size:1rem;font-weight:700;margin-bottom:1.1rem;padding-bottom:.5rem;border-bottom:1px solid var(--bg)}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.9rem}.form-group:last-child{margin-bottom:0}.form-group label{font-size:.85rem;font-weight:600;color:var(--ink-2)}.form-hint-inline{font-weight:400;color:var(--muted);font-size:.8rem}.category-group-picker{display:flex;flex-wrap:wrap;gap:.5rem}.category-group-btn{padding:.45rem 1rem;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:3px;font-size:.875rem;font-weight:600;color:var(--green);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.category-group-btn:hover{border-color:var(--gold);color:var(--gold)}.category-group-btn--active{background:var(--green);border-color:var(--green);color:#fff}.subcategory-pill-picker{display:flex;flex-wrap:wrap;gap:.4rem}.subcategory-pill-btn{padding:.35rem .85rem;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:3px;font-size:.82rem;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.subcategory-pill-btn:hover{border-color:var(--gold);color:var(--gold)}.subcategory-pill-btn--active{background:var(--gold);border-color:var(--gold);color:#fff}.subcategory-pill-btn--other{border-style:dashed;color:var(--muted)}.subcategory-pill-btn--other.subcategory-pill-btn--active{background:var(--muted);border-color:var(--line-strong);color:#fff;border-style:solid}.form-group input,.form-group textarea,.form-group select{padding:.55rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.95rem;font-family:inherit;color:var(--green);background:var(--surface);transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--green);box-shadow:var(--focus-ring);background:var(--surface)}.form-group textarea{resize:vertical;min-height:140px;line-height:1.6}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.form-hint{font-size:.78rem;color:var(--muted);margin-top:.25rem}.form-error{background:var(--surface);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius);padding:.6rem 1rem;font-size:.9rem}.ingredient-picker{display:flex;gap:.6rem;align-items:center;margin-bottom:.8rem;flex-wrap:wrap}.ingredient-picker select{flex:1;min-width:180px;padding:.5rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;background:var(--surface)}.ingredient-picker input{width:90px;padding:.5rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;background:var(--surface)}.btn-add-ingredient{padding:.5rem 1rem;background:var(--green-2);color:#fff;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-add-ingredient:hover{background:var(--green)}.new-ingredient-toggle{margin-top:.6rem}.btn-new-ingredient{background:none;border:1px dashed var(--gold);color:var(--gold);border-radius:var(--radius);padding:.35rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.btn-new-ingredient:hover{background:#ae89501a}.new-ingredient-form{margin-top:.75rem;padding:1rem;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--radius)}.new-ingredient-form .form-row{margin-bottom:.5rem}.new-ingredient-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.new-ing-error{margin-bottom:.5rem}.btn-sm{padding:.4rem 1rem;font-size:.875rem}.ingredient-list-builder{list-style:none;display:flex;flex-direction:column;gap:.4rem}.ingredient-list-builder li{display:flex;align-items:center;gap:.75rem;background:var(--surface);padding:.45rem .75rem;border-radius:var(--radius);border:1px solid var(--line);font-size:.9rem}.ingredient-list-builder .ingredient-qty{color:var(--ink-2);min-width:80px}.ingredient-list-builder .ingredient-name{flex:1;font-weight:500}.btn-remove-ingredient{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.95rem;padding:.1rem .3rem;border-radius:4px;line-height:1}.btn-remove-ingredient:hover{background:#e74c3c1a}.ingredient-list-builder--editable li{background:var(--surface);border-color:var(--line)}.ingredient-edit-row{display:flex;align-items:center;gap:.5rem}.ingredient-edit-qty{width:72px;padding:.3rem .45rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.875rem;text-align:right}.ingredient-edit-unit{width:72px;padding:.3rem .45rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.875rem}.ingredient-edit-qty:focus,.ingredient-edit-unit:focus{outline:none;border-color:var(--green-tint-line);box-shadow:var(--focus-ring)}.ingredient-edit-note{flex:1;min-width:120px;max-width:260px;padding:.3rem .45rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.825rem;color:var(--ink-2);font-style:italic;background:var(--surface)}.ingredient-edit-note:focus{outline:none;border-color:var(--green-tint-line);box-shadow:var(--focus-ring);background:var(--surface)}.ingredient-note{display:block;font-style:italic;color:var(--muted);font-size:.825rem;margin-top:.1rem}.ingredient-alias-tip{position:relative;display:inline-block;margin-left:.35rem;vertical-align:middle}.ingredient-alias-icon{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;font-size:.75rem;color:var(--green-2);border:1.5px solid var(--green-tint-line);border-radius:50%;cursor:help;line-height:1;font-style:normal;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.ingredient-alias-tip:hover .ingredient-alias-icon{background:var(--green-tint-line);color:#fff}.ingredient-alias-tooltip{visibility:hidden;opacity:0;pointer-events:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:180px;max-width:280px;background:var(--green);color:var(--muted);border-radius:var(--radius);padding:.6rem .8rem;font-size:.8rem;line-height:1.5;white-space:normal;box-shadow:0 6px 24px #1f2b2124;z-index:100;transition:opacity .15s}.ingredient-alias-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--green)}.ingredient-alias-tip:hover .ingredient-alias-tooltip{visibility:visible;opacity:1;pointer-events:auto}.ingredient-alias-tooltip-title{display:block;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.3rem}.ingredient-alias-entry{display:flex;align-items:center;gap:.4rem;padding:.1rem 0}.ingredient-alias-locale{display:inline-block;font-size:.65rem;background:#2a3b2b40;color:var(--green-2);border-radius:4px;padding:.05rem .35rem;font-style:normal;text-transform:uppercase;letter-spacing:.03em}.ingredient-data-flags{display:flex;gap:.2rem;margin-left:auto}.ing-flag{font-size:.85rem;line-height:1;cursor:help;opacity:.75}.ing-flag--warn{opacity:1;filter:grayscale(.2)}.ing-data-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .9rem;margin-bottom:.75rem;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:7px;font-size:.85rem;color:var(--gold-text);line-height:1.4}.visibility-toggle{display:flex;gap:1rem}.visibility-opt{flex:1;display:flex;flex-direction:column;gap:.3rem;align-items:flex-start;padding:.9rem 1rem;border:2px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-size:.95rem;font-weight:600;color:var(--ink-2);transition:border-color .15s,background .15s}.visibility-opt span{font-size:.78rem;font-weight:400;color:var(--muted);text-align:left}.visibility-opt--active{border-color:var(--green-2);background:#2d4f360f;color:var(--green-2)}.visibility-opt--active span{color:var(--green-2);opacity:.8}.create-recipe-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:.5rem}.btn-primary{padding:.65rem 1.5rem;background:var(--gold);color:var(--green);border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--gold-bright)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.65rem 1.5rem;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--surface-sunk);border-color:var(--ink-2)}.page-header-actions{display:flex;gap:.5rem;align-items:center}.meal-grid-wrapper{overflow-x:auto;margin-top:1.25rem;border-radius:var(--radius);border:1px solid var(--line-strong)}.meal-grid{display:grid;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}.meal-grid-corner{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface-sunk)}.meal-grid-date-header{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface-sunk);padding:.5rem .75rem;font-size:.82rem;font-weight:700;color:var(--green);white-space:nowrap;text-align:center}.meal-grid-type-label{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.6rem .3rem;gap:.15rem}.meal-grid-type-emoji{font-size:1.1rem}.meal-grid-type-name{font-size:.68rem;font-weight:700;color:var(--green-2);text-align:center;text-transform:uppercase;letter-spacing:.03em}.meal-grid-cell{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:.4rem;min-height:80px;display:flex;flex-direction:column;gap:.3rem;background:var(--surface);transition:background .1s;vertical-align:top;position:relative;overflow:visible}.meal-grid-cell--over{background:var(--surface-sunk);outline:2px dashed var(--green-tint-line);outline-offset:-3px}.meal-grid-card{background:var(--surface-sunk);border:1px solid var(--green-tint-line);border-radius:var(--radius);padding:.3rem .4rem;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;gap:.2rem;transition:box-shadow .12s,opacity .12s}.meal-grid-card:active{cursor:grabbing;opacity:.7;box-shadow:none}.meal-grid-card-name{font-size:.88rem;font-weight:600;color:var(--green);line-height:1.3;word-break:break-word}.meal-grid-card-footer{display:flex;align-items:center;gap:.2rem}.meal-grid-card-servings-icon{font-size:.7rem}.meal-grid-card-servings{width:2.6rem;font-size:.74rem;border:1px solid var(--green-tint-line);border-radius:3px;padding:.08rem .2rem;background:var(--surface);text-align:center}.meal-grid-card-remove{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--faint);font-size:.7rem;padding:.1rem .18rem;border-radius:3px;line-height:1;transition:color .12s,background .12s}.meal-grid-card-remove:hover{color:var(--danger);background:#c0392b1a}.meal-grid-add-btn{align-self:flex-start;background:none;border:1px dashed var(--line-strong);border-radius:4px;color:var(--ok);font-size:.88rem;padding:.1rem .35rem;cursor:pointer;line-height:1;transition:color .12s,border-color .12s,background .12s;margin-top:auto}.meal-grid-add-btn:hover{color:var(--ok);border-color:var(--green-tint-line);background:var(--surface-sunk)}.meal-grid-popover-backdrop{position:fixed;inset:0;z-index:199}.meal-grid-add-panel{position:fixed;z-index:200;width:320px;background:var(--surface);border:1px solid var(--green-tint-line);border-radius:var(--radius);box-shadow:0 6px 24px #1f2b2124;padding:.7rem .75rem .6rem;display:flex;flex-direction:column;gap:.35rem}.meal-grid-add-panel-label{font-size:.72rem;font-weight:700;color:var(--green-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.1rem}.meal-grid-search-input{padding:.35rem .55rem;border:1px solid var(--green-tint-line);border-radius:var(--radius);font-size:.88rem;background:var(--surface);width:100%;box-sizing:border-box}.meal-grid-search-results{display:flex;flex-direction:column;gap:.12rem;max-height:220px;overflow-y:auto}.meal-grid-search-result{text-align:left;padding:.3rem .5rem;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer;font-size:.87rem;font-weight:600;color:var(--green);display:flex;align-items:baseline;gap:.4rem;transition:background .1s;overflow:hidden}.meal-grid-search-result:hover{background:var(--surface-sunk);border-color:var(--green-tint-line)}.meal-grid-search-empty{font-size:.76rem;color:var(--muted);padding:.15rem .1rem}.meal-grid-add-cancel{align-self:flex-start;background:none;border:none;cursor:pointer;color:var(--muted);font-size:.73rem;padding:0;line-height:1;transition:color .12s}.meal-grid-add-cancel:hover{color:var(--danger)}.edit-plan-name-input{flex:1;font-size:1.15rem;font-weight:700;color:var(--green);border:2px solid var(--green-tint-line);border-radius:7px;padding:.35rem .65rem;background:var(--surface);min-width:0;max-width:400px}.edit-plan-name-input:focus{outline:none;border-color:var(--ok);box-shadow:var(--focus-ring)}.meal-grid-result-fav{color:var(--danger);font-size:.65rem;margin-right:.18rem;vertical-align:middle}.meal-grid-result-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-grid-result-cat{float:right;font-size:.68rem;color:var(--ok);font-weight:400;margin-left:.4rem;white-space:nowrap}.cal-wrap{max-width:1100px}.cal-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.cal-nav-title{font-size:1.25rem;font-weight:700;color:var(--green);min-width:14rem;text-align:center}.cal-nav-btn{background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--radius);width:36px;height:36px;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--green);display:flex;align-items:center;justify-content:center;transition:background .15s}.cal-nav-btn:hover{background:var(--line)}.cal-today-btn{margin-left:.5rem;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 .9rem;height:36px;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--green);transition:background .15s}.cal-today-btn:hover{background:var(--line)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line-strong);border-top:1px solid var(--line-strong)}.cal-weekday-row{margin-bottom:0;border-bottom:none}.cal-weekday-label{text-align:center;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--ok);padding:.4rem 0;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface)}.cal-week{border-left:none;border-right:none}.cal-day-row{border-top:none;border-left:none}.cal-day-cell{min-height:130px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:4px 6px;background:var(--surface);position:relative;overflow:visible;display:flex;flex-direction:column;gap:2px}.cal-day-cell--out{background:var(--surface)}.cal-day-cell--today{background:var(--surface-sunk)}.cal-day-num{font-size:.82rem;font-weight:600;color:var(--green);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%}.cal-day-cell--today .cal-day-num{background:var(--ok);color:#fff}.cal-day-cell--out .cal-day-num{color:var(--ok)}.cal-day-header{display:flex;align-items:center;justify-content:space-between}.cal-day-plan-badge{font-size:.65rem;font-weight:600;color:#fff;border-radius:3px;padding:1px 5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.88;transition:opacity .12s,filter .12s;text-shadow:0 1px 2px rgba(0,0,0,.2);line-height:1.4}.cal-day-plan-badge:hover{opacity:1;filter:brightness(1.08)}.cal-day-meals{display:flex;flex-direction:row;gap:1px;margin-top:auto;padding-top:3px;justify-content:space-between}.cal-day-stats{display:flex;align-items:center;justify-content:space-between;gap:4px;padding-bottom:3px;border-bottom:1px solid var(--line);margin-bottom:2px}.cal-day-stat{font-size:.62rem;line-height:1.2;white-space:nowrap}.cal-day-stat--cals{position:relative;cursor:default}.cal-day-stat-value{display:block;font-weight:600;color:var(--ok);padding:1px 3px;border-radius:3px;background:#43a0471a;transition:background .12s}.cal-day-stat--cals:hover .cal-day-stat-value{background:#43a04733}.cal-nutrition-panel{display:none;position:absolute;top:calc(100% + 5px);left:0;background:var(--green);color:#fff;border-radius:var(--radius);padding:7px 10px;z-index:100;box-shadow:0 6px 24px #1f2b2124;flex-direction:column;gap:4px;min-width:130px;pointer-events:none}.cal-day-stat--cals:hover .cal-nutrition-panel{display:flex}.cal-nutrition-panel-arrow{position:absolute;bottom:100%;left:10px;border:5px solid transparent;border-bottom-color:var(--green)}.cal-nutrition-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.72rem}.cal-nutrition-label{opacity:.75}.cal-nutrition-val{font-weight:600}.cal-day-stat--spend{color:var(--gold-text);font-weight:600;background:#79554814;padding:1px 3px;border-radius:3px}.cal-legend{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;padding:.8rem 1rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius)}.cal-legend-item{display:flex;align-items:center;gap:.45rem;cursor:pointer;text-decoration:none;font-size:.82rem}.cal-legend-item:hover .cal-legend-name{text-decoration:underline}.cal-legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}.cal-legend-name{font-weight:600;color:var(--green)}.cal-legend-dates{color:var(--green-2);font-size:.78rem}.variation-panel{border-top:2px solid var(--line);padding-top:1.5rem}.variation-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.variation-panel-header h2{margin:0}.btn-variation-new{background:var(--green-2);color:#fff;border:none;border-radius:var(--radius);padding:.45rem 1rem;font-size:.88rem;cursor:pointer;transition:background .15s}.btn-variation-new:hover{background:var(--green)}.variation-empty{color:var(--green-2);font-size:.9rem;font-style:italic}.variation-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.variation-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);gap:1rem}.variation-item-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.variation-item-name{font-weight:600;color:var(--green)}.variation-item-summary{display:flex;gap:.4rem;flex-wrap:wrap}.variation-tag{font-size:.75rem;padding:.15rem .55rem;border-radius:3px;background:var(--line);color:var(--ink-2)}.variation-tag--remove{background:var(--danger-tint);color:var(--danger)}.variation-tag--override{background:var(--green-tint);color:var(--green-2)}.variation-item-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-variation-edit,.btn-variation-delete{border:none;border-radius:5px;padding:.35rem .75rem;font-size:.8rem;cursor:pointer;transition:background .15s}.btn-variation-edit{background:var(--green-tint);color:var(--green-2)}.btn-variation-edit:hover{background:var(--green-tint)}.btn-variation-delete{background:var(--danger-tint);color:var(--danger)}.btn-variation-delete:hover{background:var(--danger-tint)}.variation-editor{border:1px solid var(--line-strong);border-radius:var(--radius);padding:1rem;background:var(--surface);display:flex;flex-direction:column;gap:.9rem}.variation-editor-name{width:100%;padding:.55rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.95rem;background:var(--surface)}.variation-editor-name:focus{outline:2px solid var(--green-2);border-color:var(--green-2)}.variation-ingredient-table{width:100%;border-collapse:collapse;font-size:.88rem}.variation-ingredient-table th{text-align:left;padding:.4rem .6rem;color:var(--ink-2);font-weight:600;border-bottom:1px solid var(--line-strong)}.variation-ingredient-table td{padding:.4rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}.variation-ingredient-table tr:last-child td{border-bottom:none}.variation-ingredient-row--removed td{opacity:.45;text-decoration:line-through}.variation-ingredient-row--removed td:first-child{opacity:1;text-decoration:none}.variation-ingredient-row--added td{background:var(--surface-sunk)}.variation-added-badge{margin-left:.4rem;font-size:.72rem;font-weight:600;color:var(--ok);background:var(--surface-sunk);border-radius:4px;padding:.05rem .35rem;vertical-align:middle}.variation-row-action-cell{text-align:center}.variation-remove-added-btn{background:none;border:1px solid var(--danger);color:var(--danger);border-radius:4px;width:24px;height:24px;font-size:1rem;line-height:1;cursor:pointer;padding:0;transition:background .12s,color .12s}.variation-remove-added-btn:hover{background:var(--danger);color:#fff}.variation-add-row{display:flex;align-items:center;gap:.6rem;padding:.65rem 0;border-top:1px dashed var(--line-strong);margin-top:.25rem;flex-wrap:wrap}.variation-add-label{font-size:.85rem;font-weight:600;color:var(--green-2);white-space:nowrap}.variation-add-fields{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.variation-add-search{padding:.3rem .55rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.88rem;min-width:180px}.btn-variation-add-ing{background:var(--green-2);color:#fff;border:none;border-radius:5px;padding:.3rem .8rem;font-size:.85rem;cursor:pointer;transition:background .12s;white-space:nowrap}.btn-variation-add-ing:hover{background:var(--green)}.variation-tag--add{background:var(--surface-sunk);color:var(--ok);border:1px solid var(--green-tint-line)}.variation-ingredient-name{font-weight:500}.variation-ingredient-unit{color:var(--green-2)}.variation-qty-input{width:80px;padding:.3rem .5rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.88rem}.variation-qty-input:disabled{background:var(--surface-sunk);color:var(--muted)}.variation-error{color:var(--danger);font-size:.88rem;margin:0}.variation-editor-actions{display:flex;gap:.6rem}.btn-variation-save{background:var(--green-2);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1.25rem;font-size:.9rem;cursor:pointer;transition:background .15s}.btn-variation-save:hover:not(:disabled){background:var(--green)}.btn-variation-save:disabled{opacity:.65;cursor:not-allowed}.btn-variation-cancel{background:var(--line);color:var(--ink-2);border:none;border-radius:var(--radius);padding:.5rem 1.1rem;font-size:.9rem;cursor:pointer;transition:background .15s}.btn-variation-cancel:hover{background:var(--line)}.gen-recipe-tile-variation{padding:.4rem .6rem;border-top:1px solid rgba(0,0,0,.07);background:#394f390d}.gen-variation-select{width:100%;padding:.3rem .4rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.78rem;background:var(--surface);cursor:pointer}.gen-section-optional{margin-left:.6rem;font-size:.72rem;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.gen-section-hint--muted{opacity:.6;font-style:italic}.gen-pin-grid{display:flex;flex-direction:column;gap:.6rem}.gen-pin-day{border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.gen-pin-day--has-pins{border-color:var(--green-2)}.gen-pin-day-label{padding:.45rem .8rem;background:var(--surface-sunk);font-size:.82rem;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--line-strong)}.gen-pin-day--has-pins .gen-pin-day-label{background:var(--surface-sunk);color:var(--green-2);border-bottom-color:var(--green-tint-line)}.gen-pin-day-slots{display:flex;flex-wrap:wrap;gap:0}.gen-pin-slot{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;flex:1 1 200px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.gen-pin-slot--pinned{background:var(--surface-sunk)}.gen-pin-slot-meal{font-size:.82rem;white-space:nowrap;min-width:80px;color:var(--ink-2)}.gen-pin-slot--pinned .gen-pin-slot-meal{color:var(--green-2);font-weight:600}.gen-pin-slot-select{flex:1;padding:.3rem .5rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.82rem;background:var(--surface);cursor:pointer;min-width:0}.gen-pin-slot--pinned .gen-pin-slot-select{border-color:var(--green-tint-line);background:var(--surface)}.import-url-form{display:flex;flex-direction:column;gap:1rem;max-width:640px}.import-url-hint{margin:0;font-size:.875rem;color:var(--ink-2)}.import-url-input-row{display:flex;gap:.75rem;align-items:center}.import-url-input{flex:1;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:1rem}.import-url-input:focus{outline:none;border-color:var(--green-tint-line);box-shadow:var(--focus-ring)}.import-loading{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:3rem 0;color:var(--ink-2)}.import-loading-spinner{width:42px;height:42px;border:4px solid var(--line-strong);border-top-color:var(--green-tint-line);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-source-banner{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem .9rem;background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--radius);font-size:.875rem;margin-bottom:.5rem}.import-source-label{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:3px;font-weight:600;font-size:.8rem;background:var(--green-tint-line);color:#fff;white-space:nowrap}.import-source-url{color:var(--green-2);word-break:break-all;flex:1}.import-source-url:hover{text-decoration:underline}.import-new-btn{margin-left:auto;padding:.25rem .6rem;font-size:.8rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap}.import-new-btn:hover{background:var(--surface-sunk);border-color:var(--line-strong)}.import-ingredient-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.import-ingredient-row{display:flex;gap:.4rem;align-items:center}.import-ingredient-qty{width:72px;padding:.35rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;text-align:right}.import-ingredient-unit{width:80px;padding:.35rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem}.import-ingredient-name{flex:1;padding:.35rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem}.import-ingredient-qty:focus,.import-ingredient-unit:focus,.import-ingredient-name:focus{outline:none;border-color:var(--green-tint-line);box-shadow:var(--focus-ring)}.import-ingredient-prepnotes-row{padding-left:calc(152px + .8rem)}.import-ingredient-prepnotes{width:100%;padding:.25rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.8rem;font-style:italic;color:var(--ink-2);background:transparent}.import-ingredient-prepnotes::placeholder{color:var(--muted)}.import-ingredient-prepnotes:focus{outline:none;border-color:var(--green-tint-line);box-shadow:var(--focus-ring);color:var(--ink-2);font-style:normal}.import-ingredient-block{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.import-ingredient-block:last-child{border-bottom:none}.import-match-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;padding-left:.25rem;min-height:1.4rem}.import-match-badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:3px;font-size:.72rem;font-weight:600;line-height:1.4;white-space:nowrap}.import-match-badge--exact{background:var(--line);color:var(--ok);border:1px solid var(--green-tint-line)}.import-match-badge--accepted{background:var(--green-tint);color:var(--green-2);border:1px solid var(--green-tint-line)}.import-match-badge--fuzzy{background:var(--gold-soft);color:var(--gold-text);border:1px solid var(--gold)}.import-match-badge--unknown{background:var(--surface);color:var(--danger);border:1px solid var(--danger-line)}.import-match-suggest-btn{padding:.15rem .6rem;background:var(--gold-soft);color:var(--gold-text);border:1px solid var(--gold);border-radius:4px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.import-match-suggest-btn:hover{background:var(--gold-soft)}.import-match-select{padding:.15rem .4rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.75rem;color:var(--ink-2);background:var(--surface);cursor:pointer;max-width:200px}.import-match-link{background:none;border:none;padding:0;font-size:.72rem;color:var(--green-2);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.import-match-link:hover{color:var(--green-2)}.import-match-loading{color:var(--muted);font-style:italic;font-size:.85rem}.settings-page{display:flex;align-items:flex-start;padding:2rem 1.5rem;gap:1.5rem;max-width:1060px;margin:0 auto;box-sizing:border-box}.settings-sidenav{flex-shrink:0;width:200px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.5rem;position:sticky;top:1.5rem;align-self:flex-start;box-shadow:none}.settings-sidenav-header{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:.4rem .75rem .6rem}.settings-sidenav-item{display:flex;align-items:center;width:100%;background:none;border:none;border-radius:var(--radius);padding:.6rem .85rem;font-size:.875rem;font-family:inherit;color:var(--ink-2);cursor:pointer;text-align:left;transition:background .12s,color .12s}.settings-sidenav-item:hover{background:var(--bg);color:var(--green)}.settings-sidenav-item.active{background:var(--green-2);color:#fff;font-weight:600}.settings-sidenav-item.danger{color:var(--danger);margin-top:.4rem;border-top:1px solid var(--line);padding-top:.75rem}.settings-sidenav-item.danger:hover{background:var(--surface-sunk);color:var(--danger)}.settings-sidenav-item.danger.active{background:var(--danger);color:#fff}.settings-sidenav-meta{margin-top:.75rem;padding:.6rem .75rem .25rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.settings-content{flex:1;min-width:0}.settings-content-title{font-size:1.4rem;font-weight:700;color:var(--green);margin:0 0 1rem}.settings-section{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:1.5rem;box-shadow:none}.settings-section-subtitle{font-size:.9rem;font-weight:600;color:var(--ink-2);margin:.75rem 0 .5rem;border-top:1px solid var(--line);padding-top:1rem}.settings-form{display:flex;flex-direction:column;gap:1.1rem}.settings-form--narrow{max-width:420px}.settings-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.25rem}.settings-form-grid--4{grid-template-columns:repeat(4,1fr)}@media(max-width:700px){.settings-form-grid{grid-template-columns:1fr}.settings-form-grid--4{grid-template-columns:repeat(2,1fr)}}.settings-field{display:flex;flex-direction:column;gap:.4rem}.settings-field label{font-size:.875rem;font-weight:500;color:var(--ink-2)}.settings-optional{color:var(--muted);font-weight:400}.settings-field-hint{font-size:.8rem;color:var(--muted);margin:0 0 .25rem;line-height:1.4}.settings-field input,.settings-field textarea,.settings-field select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);padding:.55rem .75rem;font-size:.9rem;font-family:inherit;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.settings-field input:focus,.settings-field textarea:focus,.settings-field select:focus{outline:none;border-color:var(--green-2);box-shadow:var(--focus-ring)}.settings-field select option{background:var(--surface);color:var(--ink)}.settings-field textarea{resize:vertical;min-height:80px}.settings-avatar-preview{margin-bottom:1rem}.settings-avatar-img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--line-strong)}.settings-error{background:var(--surface-sunk);border:1px solid var(--danger-line);color:var(--danger);padding:.6rem .9rem;border-radius:var(--radius);font-size:.875rem}.settings-success{background:var(--surface-sunk);border:1px solid var(--green-tint-line);color:var(--ok);padding:.6rem .9rem;border-radius:var(--radius);font-size:.875rem}.settings-loading{color:var(--muted);font-size:.9rem;padding:1.5rem 0}.settings-btn-primary{background:var(--gold);color:#fff;border:none;border-radius:var(--radius);padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;align-self:flex-start;transition:background .15s,opacity .15s}.settings-btn-primary:hover{background:var(--gold-text)}.settings-btn-primary:disabled{opacity:.55;cursor:not-allowed}.settings-btn-danger{background:var(--danger);color:#fff;border:none;border-radius:var(--radius);padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;align-self:flex-start;transition:background .15s,opacity .15s}.settings-btn-danger:hover{background:var(--danger)}.settings-btn-danger:disabled{opacity:.55;cursor:not-allowed}.settings-btn-ghost{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.65rem 1.5rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.settings-btn-ghost:hover{background:var(--surface-sunk);color:var(--ink);border-color:var(--line-strong)}.allergen-chips-wrap{display:flex;flex-direction:column;gap:.5rem}.allergen-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.4rem .5rem;min-height:42px;cursor:text;transition:border-color .15s,box-shadow .15s}.allergen-chips:focus-within{border-color:var(--green-2);box-shadow:var(--focus-ring)}.allergen-chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--surface-sunk);border:1px solid var(--green-tint-line);color:var(--green);border-radius:4px;padding:.2rem .5rem;font-size:.82rem;font-weight:500;text-transform:lowercase}.allergen-chip-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:0;display:flex;align-items:center;transition:color .1s}.allergen-chip-remove:hover{color:var(--danger)}.allergen-chip-input{background:transparent;border:none;color:var(--ink);font-size:.875rem;font-family:inherit;padding:.15rem .2rem;outline:none;flex:1;min-width:140px}.allergen-chip-input::placeholder{color:var(--muted)}.allergen-add-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);border-radius:5px;padding:.25rem .75rem;font-size:.8rem;cursor:pointer;align-self:flex-start;transition:background .12s,border-color .12s}.allergen-add-btn:hover{background:var(--bg);border-color:var(--line-strong)}.settings-current-email-display{display:flex;flex-direction:column;gap:.25rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.6rem .75rem;margin-bottom:.25rem}.settings-current-email-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.settings-current-email-value{font-size:.9rem;color:var(--ink)}.settings-delete-section{display:flex;flex-direction:column;gap:1.5rem}.settings-delete-warning{background:var(--surface);border:1px solid var(--danger-line);border-radius:var(--radius);padding:1.1rem 1.25rem;font-size:.875rem;color:var(--ink-2);line-height:1.55}.settings-delete-warning p{margin:0 0 .6rem}.settings-delete-warning p:last-child{margin-bottom:0}.settings-delete-warning ul{margin:.25rem 0 .6rem 1.2rem;padding:0}.settings-delete-warning li{margin-bottom:.25rem}.settings-delete-warning strong{color:var(--danger)}.settings-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.settings-modal{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:2rem;max-width:420px;width:100%;box-shadow:0 6px 24px #1f2b2124}.settings-modal h3{margin:0 0 .75rem;font-size:1.15rem;font-weight:700;color:var(--green)}.settings-modal p{margin:0 0 1.5rem;font-size:.9rem;color:var(--ink-2);line-height:1.5}.settings-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.page-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted);font-size:.9rem}@media(max-width:640px){.settings-page{flex-direction:column;padding:1rem}.settings-sidenav{width:100%;position:static;display:flex;flex-wrap:wrap;gap:.25rem;padding:.4rem}.settings-sidenav-header,.settings-sidenav-meta{display:none}.settings-sidenav-item{flex:1;min-width:110px;justify-content:center;font-size:.8rem;padding:.5rem .4rem}.settings-sidenav-item.danger{margin-top:0;border-top:none;padding-top:.5rem}}.admin-page{padding:2rem;max-width:1100px;margin:0 auto}.admin-title{font-size:1.8rem;font-weight:700;margin-bottom:1.5rem;color:var(--color-text, var(--ink))}.admin-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--line);margin-bottom:1.5rem;flex-wrap:wrap}.admin-tab-btn{background:none;border:none;padding:.65rem 1.2rem;font-size:.95rem;font-weight:500;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;color:var(--muted);transition:color .15s,border-color .15s}.admin-tab-btn:hover{color:var(--green)}.admin-tab-btn.active{color:var(--color-primary, var(--ok));border-bottom-color:var(--color-primary, var(--green-tint-line))}.admin-content{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);padding:1.5rem;min-height:300px}.admin-section h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th{text-align:left;padding:.6rem .8rem;border-bottom:2px solid var(--line);font-weight:600;color:var(--green)}.admin-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.admin-card{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.admin-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.admin-card-header h3{font-size:1rem;font-weight:600;margin:0}.admin-card-desc{font-size:.85rem;color:var(--muted);margin:0}.admin-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:var(--muted)}.admin-recipe-detail{border-top:1px solid var(--line);padding-top:.75rem;display:flex;flex-direction:column;gap:1rem}.admin-recipe-section h4{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .4rem}.admin-recipe-ingredients{width:100%;border-collapse:collapse;font-size:.85rem}.admin-recipe-ingredients tr+tr td{border-top:1px solid var(--line)}.admin-ing-qty{white-space:nowrap;padding:.2rem .6rem .2rem 0;color:var(--green);font-weight:500;width:1%}.admin-ing-name{padding:.2rem .4rem .2rem 0;color:var(--green)}.admin-ing-note{padding:.2rem 0;color:var(--muted);font-style:italic;font-size:.8rem}.admin-recipe-steps{padding-left:1.2rem;margin:0;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--green);line-height:1.5}.admin-badge{background:var(--surface-sunk);border:1px solid var(--line);border-radius:3px;padding:.15rem .6rem;font-size:.75rem;font-weight:500;color:var(--green)}.admin-badge--admin{background:var(--green-tint);border-color:var(--green-tint-line);color:var(--green)}.btn{border:none;border-radius:var(--radius);padding:.4rem .9rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-approve{background:var(--green-tint);color:var(--green)}.btn-approve:hover:not(:disabled){background:var(--green-tint)}.btn-reject{background:var(--danger-tint);color:var(--danger)}.btn-reject:hover:not(:disabled){background:var(--danger-tint)}.btn-neutral{background:var(--surface-sunk);color:var(--green)}.btn-neutral:hover:not(:disabled){background:var(--line)}.btn-sm{padding:.25rem .65rem;font-size:.8rem}.admin-actions{display:flex;gap:.5rem;flex-wrap:wrap}.admin-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;max-width:800px}.admin-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;color:var(--green)}.admin-form input,.admin-form select{padding:.45rem .7rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;background:var(--surface);width:100%;box-sizing:border-box}.admin-form select{appearance:none;-webkit-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' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2rem;cursor:pointer}.admin-form input:focus,.admin-form select:focus{outline:none;border-color:var(--primary, var(--green-2));box-shadow:var(--focus-ring)}.admin-form-actions{grid-column:1 / -1;display:flex;gap:.75rem;margin-top:.5rem}.admin-search{display:block;width:100%;max-width:340px;padding:.4rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;margin-bottom:1rem}.admin-back{background:none;border:none;cursor:pointer;font-size:.9rem;color:var(--muted);margin-bottom:.75rem;padding:0}.admin-back:hover{color:var(--green)}.admin-sub-tabs{display:flex;gap:.25rem;padding:.5rem 1.5rem 0;border-bottom:2px solid var(--line);margin-bottom:0;background:var(--bg-secondary, var(--surface))}.admin-sub-tab{background:none;border:none;border-bottom:3px solid transparent;padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:var(--muted);cursor:pointer;margin-bottom:-2px;border-radius:4px 4px 0 0;transition:color .15s,background .15s}.admin-sub-tab:hover{color:var(--green);background:var(--surface-sunk)}.admin-sub-tab--active{color:var(--primary, var(--green-2));border-bottom-color:var(--primary, var(--green-2));font-weight:600}.admin-form-row{display:flex;gap:1rem;flex-wrap:wrap;grid-column:1 / -1}.admin-form-row label{flex:1;min-width:120px}.admin-form-section{grid-column:1 / -1;margin-top:1.5rem}.admin-form-section h3{margin-bottom:.5rem;font-size:1rem;font-weight:600}.admin-form-checkbox{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;white-space:nowrap}.admin-form-checkbox input[type=checkbox]{width:auto;margin:0}.ingredient-picker-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap}.ingredient-picker-row select{flex:2;min-width:180px;padding:.4rem .6rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem}.ingredient-picker-row input[type=number]{flex:1;max-width:90px}.ingredient-combobox{position:relative;flex:2;min-width:180px}.ingredient-combobox input[type=text]{width:100%;padding:.4rem .6rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;box-sizing:border-box}.ingredient-combobox-list{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 6px 24px #1f2b2124;list-style:none;margin:0;padding:.25rem 0;max-height:200px;overflow-y:auto;z-index:50}.ingredient-combobox-list li{padding:.4rem .75rem;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:.35rem}.ingredient-combobox-list li:hover,.ingredient-combobox-list li.selected{background:var(--surface-sunk)}.ingredient-unit{color:var(--muted);font-size:.8rem}.ingredient-row--deleted{background:var(--surface)}.ingredient-row--deleted td{color:var(--danger)}.ingredient-deleted-badge{display:inline-block;background:var(--danger-tint);color:var(--danger);border-radius:4px;padding:.1rem .35rem;font-size:.75rem;font-weight:600;margin-right:.4rem;white-space:nowrap}.ingredient-deleted-muted{color:var(--muted)!important;font-style:italic;font-size:.85rem}.admin-loading{padding:2rem;text-align:center;color:var(--muted)}.admin-empty{text-align:center;padding:2rem;color:var(--muted)}.admin-error{background:var(--danger-tint);color:var(--danger);border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem}.admin-success{background:var(--green-tint);color:var(--green);border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:1rem;font-size:.9rem}.btn-sm{padding:.25rem .6rem;font-size:.8rem}.admin-inline-input{padding:.25rem .4rem;border:1px solid var(--line-strong);border-radius:4px;font-size:.9rem;width:100%;box-sizing:border-box;min-width:120px}.admin-inline-input--sm{min-width:70px;max-width:90px}.admin-card--error{border-left:4px solid var(--gold);background:var(--gold-soft)}.admin-badge--error{background:var(--gold-soft);color:var(--gold-text)}.admin-card-notes{font-size:.85rem;color:var(--gold-text);background:var(--gold-soft);border-radius:4px;padding:.4rem .6rem;margin:.4rem 0}.admin-section-desc{color:var(--muted);font-size:.9rem;margin-bottom:1rem}.meal-plan-generating-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:300;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.meal-plan-generating-card{background:var(--surface);border-radius:var(--radius);padding:3rem 3.5rem;display:flex;flex-direction:column;align-items:center;gap:1.25rem;max-width:440px;width:90%;text-align:center;box-shadow:0 6px 24px #1f2b2124}.meal-plan-generating-spinner{width:56px;height:56px;border:5px solid var(--line);border-top-color:var(--green-tint-line);border-radius:50%;animation:spin .9s linear infinite}.meal-plan-generating-title{font-size:1.35rem;font-weight:700;color:var(--green);margin:0}.meal-plan-generating-subtitle{font-size:.92rem;color:var(--muted);margin:0;line-height:1.5}.meal-plan-template-badge{display:inline-block;font-size:.78rem;font-weight:600;color:var(--green-2);background:var(--surface);border:1px solid var(--green-tint-line);border-radius:var(--radius);padding:2px 10px;margin-top:4px;letter-spacing:.01em}.meal-grid-card--readonly{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:box-shadow .12s,transform .12s,border-color .12s}.meal-grid-card--readonly:hover{box-shadow:none;transform:translateY(-2px);border-color:var(--green-2);background:var(--line)}.meal-grid-card--readonly:active{transform:translateY(0);box-shadow:none}.meal-grid-card--readonly:after{content:"Open the full recipe";position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);background:#1e3c1ee0;color:#fff;font-size:.68rem;font-weight:500;padding:4px 9px;border-radius:5px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;transition-delay:0s;z-index:10}.meal-grid-card--readonly:before{content:"";position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1e3c1ee0;pointer-events:none;opacity:0;transition:opacity .15s;transition-delay:0s;z-index:10}.meal-grid-card--readonly:hover:after,.meal-grid-card--readonly:hover:before{opacity:1;transition-delay:.7s}.meal-grid-card-servings-val{font-size:.72rem;color:var(--muted)}.meal-grid-cell-empty{color:var(--faint);font-size:.9rem;text-align:center;padding:6px 0;-webkit-user-select:none;user-select:none}.cal-day-apply-btn{display:none;width:20px;height:20px;border:1.5px solid var(--green-tint-line);border-radius:50%;background:transparent;color:var(--green-2);font-size:.8rem;line-height:1;cursor:pointer;padding:0;transition:background .15s,color .15s;flex-shrink:0;align-items:center;justify-content:center}.cal-day-cell:hover .cal-day-apply-btn{display:flex}.cal-day-apply-btn:hover{background:var(--green-tint-line);color:#fff}.modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:900}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border-radius:var(--radius);box-shadow:0 6px 24px #1f2b2124;z-index:901;width:min(460px,calc(100vw - 32px));max-height:80vh;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-header h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--green)}.modal-close-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--muted);padding:4px 8px;border-radius:var(--radius);transition:background .15s}.modal-close-btn:hover{background:var(--surface-sunk)}.modal-subtitle{font-size:.9rem;color:var(--green);margin:0}.modal-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 0;color:var(--muted);font-size:.9rem}.modal-template-list{display:flex;flex-direction:column;gap:10px}.modal-template-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.modal-template-info{display:flex;flex-direction:column;gap:2px}.modal-template-name{font-size:.95rem;font-weight:600;color:var(--green)}.modal-template-duration{font-size:.78rem;color:var(--green-2);font-weight:500}.modal-template-create{text-align:center;padding-top:4px}.btn-link{background:none;border:none;cursor:pointer;color:var(--green-2);font-size:.88rem;font-weight:500;padding:4px 0;text-decoration:underline;transition:color .15s}.btn-link:hover{color:var(--green-2)}.gen-section--advanced{padding:0;background:transparent;border:none;box-shadow:none}.gen-advanced-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:1px solid var(--border, var(--line-strong));border-radius:var(--radius);padding:.45rem 1rem;font-size:.85rem;color:var(--text-muted, var(--ink-2));cursor:pointer;width:100%;text-align:left;transition:border-color .15s,color .15s}.gen-advanced-toggle:hover,.gen-advanced-toggle--open{border-color:var(--accent, var(--green-2));color:var(--accent, var(--green-2))}.gen-advanced-toggle-icon{font-size:.8rem;line-height:1}.gen-diet-badge{margin-left:auto;background:var(--accent, var(--green-2));color:#fff;font-size:.7rem;font-weight:600;padding:.15rem .55rem;border-radius:3px}.gen-advanced-body{padding:1rem .25rem .25rem}.gen-advanced-heading{font-size:.9rem;font-weight:600;color:var(--text, var(--ink));margin:0 0 .35rem}.gen-diet-description,.settings-diet-description{margin:.55rem 0 0;font-size:.82rem;color:var(--text-muted, var(--ink-2));font-style:italic;line-height:1.4}.recipe-diet-compat{display:flex;justify-content:flex-start;padding:0 0 .25rem;margin:.5rem 0 0}.recipe-diet-compat-trigger{position:relative;display:inline-block;cursor:default}.recipe-diet-compat-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:500;color:var(--text-muted, var(--ink-2));background:var(--surface, var(--surface-sunk));border:1px solid var(--border, var(--line-strong));border-radius:var(--radius);padding:.3rem .75rem;-webkit-user-select:none;user-select:none;transition:border-color .15s,color .15s}.recipe-diet-compat-tooltip{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:100;background:var(--surface);border:1px solid var(--border, var(--line-strong));border-radius:var(--radius);box-shadow:0 6px 24px #1f2b2124;padding:.75rem 1rem;min-width:260px;max-width:340px}.recipe-diet-compat-trigger:hover .recipe-diet-compat-tooltip{display:flex;flex-direction:column;gap:.3rem}.recipe-diet-compat-tooltip-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.3rem}.recipe-diet-compat-row{display:grid;grid-template-columns:1.1rem 1fr;grid-template-rows:auto auto;gap:0 .4rem;padding:.2rem 0;border-bottom:1px solid var(--line);align-items:start}.recipe-diet-compat-row:last-of-type{border-bottom:none}.recipe-diet-compat-icon{grid-row:1 / 3;font-size:.85rem;font-weight:700;padding-top:.05rem}.recipe-diet-compat-row--yes .recipe-diet-compat-icon{color:var(--ok)}.recipe-diet-compat-row--no .recipe-diet-compat-icon{color:var(--danger)}.recipe-diet-compat-name{font-size:.85rem;font-weight:500;line-height:1.3}.recipe-diet-compat-row--yes .recipe-diet-compat-name{color:var(--green)}.recipe-diet-compat-row--no .recipe-diet-compat-name{color:var(--text, var(--ink))}.recipe-diet-compat-desc{grid-column:2;font-size:.73rem;color:var(--muted);line-height:1.3}.recipe-diet-compat-note{font-size:.78rem;color:var(--muted);font-style:italic;margin-top:.25rem}.cal-chip-backdrop{position:fixed;inset:0;z-index:50;background:transparent}.cal-chip-dropdown{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:51;background:var(--surface);border:1px solid var(--green-tint-line);border-radius:var(--radius);box-shadow:0 6px 24px #1f2b2124;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:148px;white-space:nowrap}.cal-chip-dropdown:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--green-tint-line)}.cal-chip-dropdown-item{display:flex;align-items:center;gap:6px;background:none;border:none;border-radius:5px;padding:6px 10px;font-size:.78rem;font-weight:500;color:var(--green);cursor:pointer;text-align:left;transition:background .1s;width:100%}.cal-chip-dropdown-icon{display:inline-flex;align-items:center;justify-content:center;width:1.4em;flex-shrink:0;font-style:normal}.cal-chip-dropdown-item:hover:not(:disabled){background:var(--surface-sunk)}.cal-chip-dropdown-item:disabled{opacity:.5;cursor:default}.cal-chip-dropdown-item--danger{color:var(--danger)}.cal-chip-dropdown-item--danger:hover:not(:disabled){background:var(--danger-tint)}.add-meal-type-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:1rem}.add-meal-type-tab{display:flex;align-items:center;gap:5px;padding:6px 14px;border:1.5px solid var(--green-tint-line);border-radius:3px;background:var(--surface);color:var(--green);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.add-meal-type-tab:hover{background:var(--line);border-color:var(--green-tint-line)}.add-meal-type-tab--active{background:var(--ok);border-color:var(--ok);color:#fff}.add-meal-type-tab-emoji{font-size:1rem}.add-meal-type-suggested{font-size:.62rem;background:#ffffff4d;border-radius:var(--radius);padding:1px 5px;margin-left:2px;color:#fff;opacity:.85}.add-meal-type-tab:not(.add-meal-type-tab--active) .add-meal-type-suggested{background:#43a0471f;color:var(--ok)}.add-meal-search-wrap{display:flex;align-items:center;gap:8px;margin-bottom:.5rem;background:var(--surface);border:1.5px solid var(--green-tint-line);border-radius:var(--radius);padding:0 10px}.add-meal-search-icon{font-size:.9rem;opacity:.5;flex-shrink:0}.add-meal-search{flex:1;border:none;background:transparent;padding:9px 0;font-size:.9rem;outline:none;color:var(--green)}.add-meal-search-clear{background:none;border:none;color:var(--muted);font-size:.8rem;cursor:pointer;padding:4px;flex-shrink:0}.add-meal-search-clear:hover{color:var(--ink)}.add-meal-count{font-size:.8rem;color:var(--green-2);margin-bottom:1rem}.add-meal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.add-meal-card{position:relative;background:var(--surface);border:1.5px solid var(--green-tint-line);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:box-shadow .12s,transform .12s,border-color .12s;display:flex;flex-direction:column;gap:4px}.add-meal-card:hover{box-shadow:none;transform:translateY(-2px);border-color:var(--green-tint-line)}.add-meal-card--match{background:var(--surface-sunk);border-color:var(--green-tint-line)}.add-meal-card--match:hover{border-color:var(--ok);box-shadow:none}.add-meal-card-top{display:flex;justify-content:space-between;align-items:center;min-height:18px}.add-meal-card-fav{color:var(--danger);font-size:.75rem}.add-meal-card-type-badge{font-size:.9rem}.add-meal-card-name{font-weight:600;font-size:.88rem;color:var(--green);line-height:1.3}.add-meal-card-cat{font-size:.7rem;color:var(--green-2);font-weight:500}.add-meal-card-time{font-size:.7rem;color:var(--muted);margin-top:2px}.add-meal-saving-overlay{position:fixed;inset:0;background:#ffffffbf;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;color:var(--ok);z-index:200}.kitchen-page{padding:2rem;max-width:900px;margin:0 auto}.kitchen-header{margin-bottom:2rem}.kitchen-header h1{font-size:1.8rem;font-weight:700;color:var(--green);margin:0 0 .5rem}.kitchen-subtitle{color:var(--green-2);font-size:.95rem;margin:0}.kitchen-section{margin-bottom:2rem}.kitchen-section-title{font-size:1rem;font-weight:600;color:var(--green);margin:0 0 .9rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.kitchen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.kitchen-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1rem .6rem;border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s,transform .1s;position:relative;text-align:center}.kitchen-card:hover:not(:disabled){border-color:var(--ok);background:var(--surface-sunk);transform:translateY(-2px)}.kitchen-card:disabled{opacity:.6;cursor:not-allowed}.kitchen-card--owned{border-color:var(--ok);background:var(--surface-sunk)}.kitchen-card--owned:hover:not(:disabled){border-color:var(--danger);background:var(--surface)}.kitchen-card-emoji{font-size:2rem;line-height:1}.kitchen-card-name{font-size:.78rem;font-weight:500;color:var(--green);line-height:1.2}.kitchen-card-check{position:absolute;top:6px;right:8px;font-size:.75rem;color:var(--ok);font-weight:700}.gen-diet-badge--warning{background:var(--gold)}.gen-diet-badge--budget{background:var(--ok)}.gen-advanced-heading--spaced{margin-top:1.5rem}.gen-kitchen-toggle-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.gen-kitchen-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.gen-kitchen-checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent, var(--green-2))}.gen-kitchen-owned{margin-top:.25rem}.gen-kitchen-owned-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted, var(--ink-2));text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem}.gen-kitchen-chips{display:flex;flex-wrap:wrap;gap:.35rem}.gen-kitchen-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--surface-alt, var(--surface-sunk));border:1px solid var(--border, var(--line-strong));border-radius:3px;padding:.2rem .6rem;font-size:.78rem;font-weight:500;color:var(--text, var(--ink))}.gen-kitchen-none{font-size:.82rem;color:var(--text-muted, var(--ink-2));font-style:italic;margin:0}.gen-kitchen-off-note{font-size:.82rem;color:var(--gold-text);margin:.25rem 0 0;font-style:italic}.gen-budget-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.gen-budget-currency{font-size:1rem;font-weight:600;color:var(--text, var(--ink));line-height:1}.gen-budget-input{width:7rem;padding:.4rem .6rem;font-size:.9rem;border:1px solid var(--border, var(--line-strong));border-radius:var(--radius);background:var(--input-bg, var(--surface));color:var(--text, var(--ink));outline:none;transition:border-color .15s}.gen-budget-input:focus{border-color:var(--accent, var(--green-2))}.gen-budget-unit{font-size:.85rem;color:var(--text-muted, var(--ink-2))}.gen-budget-clear{background:none;border:1px solid var(--line-strong);border-radius:var(--radius);padding:.3rem .65rem;font-size:.78rem;cursor:pointer;color:var(--text-muted, var(--ink-2));transition:border-color .15s,color .15s}.gen-budget-clear:hover{border-color:var(--danger, var(--danger));color:var(--danger, var(--danger))}.gen-budget-hint{margin:.5rem 0 0;font-size:.82rem;color:var(--text-muted, var(--ink-2))}.rl-count{margin-top:.25rem;color:var(--muted);font-size:.9rem}.rl-btn-link{display:inline-block;text-decoration:none}.rl-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;margin-bottom:.75rem}.rl-tabs{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.rl-tab,.rl-subtab{background:none;border:0;border-bottom:2px solid transparent;padding:.35rem 0;font-size:.95rem;color:var(--muted);cursor:pointer}.rl-tab:hover,.rl-subtab:hover{color:var(--ink)}.rl-tab--active{color:var(--ink);font-weight:600;border-bottom-color:var(--gold)}.rl-search{width:240px;max-width:100%;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:.9rem}.rl-search:focus{outline:none;border-color:var(--green);box-shadow:var(--focus-ring)}.rl-subtabs{display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:.5rem 0 .25rem;margin-bottom:.5rem;border-top:1px solid var(--line)}.rl-subtab{font-size:.85rem;border-bottom-width:1px}.rl-subtab--active{color:var(--ink);border-bottom-color:var(--gold)}.rl-group{margin-top:2rem}.rl-group-title{display:flex;align-items:baseline;gap:.5rem;padding-bottom:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--line);font-size:1.15rem}.rl-group-title button{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;color:var(--ink);cursor:pointer}.rl-group-title button:first-child{color:var(--gold-text)}.rl-group-title button:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.rl-group-sep{color:var(--faint)}.rl-group-count{margin-left:auto;font-family:var(--font-body);font-weight:400;font-size:.85rem;color:var(--muted);letter-spacing:0}.rl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.75rem 1.25rem}.rl-card{position:relative}.rl-card-link{display:block;color:inherit;text-decoration:none}.rl-photo{aspect-ratio:4 / 3;margin-bottom:.6rem;overflow:hidden;border-radius:var(--radius);background:var(--surface-sunk);display:flex;align-items:center;justify-content:center}.rl-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.rl-card-link:hover .rl-photo img{transform:scale(1.03)}.rl-photo-initial{font-family:var(--font-head);font-weight:600;font-size:2.5rem;color:var(--gold-line)}.rl-card-sub{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-text)}.rl-card-title{margin:.2rem 0 .25rem;font-size:1.05rem;line-height:1.25;color:var(--ink)}.rl-card-link:hover .rl-card-title{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.rl-card-meta{font-size:.82rem;color:var(--muted)}.rl-card-tag{margin-top:.5rem}.rl-fav{position:absolute;top:.5rem;right:.5rem;z-index:1;width:30px;height:30px;border:0;border-radius:var(--radius);background:#fffdf8eb;color:var(--line-strong);font-size:1rem;line-height:1;cursor:pointer}.rl-fav:hover,.rl-fav--on{color:var(--gold)}.rl-empty{padding:2rem 0;color:var(--muted)}@media(max-width:560px){.rl-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem .75rem}.rl-search{width:100%}}.rd-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.rd-back,.rd-link-btn{background:none;border:0;padding:0;font-size:.95rem;color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px;cursor:pointer}.rd-link-btn{font-size:.85rem;margin-top:.5rem}.rd-topbar-actions{display:flex;align-items:center;gap:1rem}.rd-topbar-actions .btn-secondary{padding:.45rem 1rem}.rd-delete{background:none;border:0;padding:0;font-size:.95rem;color:var(--danger);cursor:pointer}.rd-delete:hover{text-decoration:underline;text-underline-offset:4px}.rd-delete:disabled{opacity:.6;cursor:default}.rd-hero{display:grid;grid-template-columns:1.2fr 1fr;margin-bottom:2.5rem;background:var(--green);color:var(--green-ink)}.rd-hero--no-photo{grid-template-columns:1fr}.rd-hero-photo{min-height:320px;background:var(--green-2)}.rd-hero-photo img{width:100%;height:100%;object-fit:cover;display:block}.rd-hero-body{display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;padding:1.75rem}.rd-title{margin-top:.5rem;color:var(--green-ink);font-size:2.1rem;line-height:1.08}.rd-desc{margin-top:.75rem;color:var(--green-muted);font-size:.92rem;line-height:1.55;max-width:60ch}.rd-visibility{margin-top:.75rem;font-size:.82rem;color:var(--gold-bright)}.rd-facts{display:flex;flex-wrap:wrap;gap:1.25rem 1.75rem}.rd-facts div{display:flex;flex-direction:column-reverse}.rd-facts dd{font-family:var(--font-head);font-weight:600;font-size:1.35rem}.rd-facts dt{font-size:.75rem;color:var(--green-muted)}.rd-rating{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.rd-stars{display:inline-flex}.rd-star{background:none;border:0;padding:0 2px;font-size:1.25rem;line-height:1;color:#efe6d24d;cursor:pointer}.rd-star--on{color:var(--gold-bright)}.rd-rating-text{font-size:.85rem;color:var(--green-muted)}.rd-body{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;align-items:start}.rd-section h2{font-size:1.3rem;margin-bottom:.75rem}.rd-ingredients{list-style:none;padding:0;margin:0 0 2rem}.rd-ingredients li{display:flex;align-items:baseline;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--line);font-size:.95rem}.rd-ingredients .ingredient-qty{min-width:76px;font-size:.88rem;color:var(--muted)}.rd-ingredients .ingredient-name{color:var(--ink)}.rd-ingredients .ingredient-note{color:var(--muted);font-size:.85rem}.rd-ingredients .ingredient-note:before{content:", "}.rd-ingredients .ingredient-cost{font-size:.82rem;color:var(--faint)}.rd-ingredients .ingredient-total-row{border-top:1px solid var(--ink)!important}.rd-ingredients .ingredient-total-label,.rd-ingredients .ingredient-total-cost{color:var(--ink)}.rd-method ol{list-style:none;counter-reset:step;padding:0;margin:0}.rd-method li{counter-increment:step;display:grid;grid-template-columns:2.25rem 1fr;padding:.85rem 0;border-top:1px solid var(--line);font-size:.98rem;line-height:1.6}.rd-method li:before{content:counter(step);font-family:var(--font-head);font-weight:600;font-size:1.2rem;line-height:1.35;color:var(--gold-text)}.rd-method p{line-height:1.65;white-space:pre-line}.rd-page .variation-panel{border-top:0;padding-top:0}.rd-page .variation-panel-header h2{font-size:1.1rem}.rd-page .btn-variation-new{background:none;color:var(--ink);padding:0;font-size:.88rem;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}.rd-page .btn-variation-new:hover{background:none}.rd-page .variation-empty{color:var(--muted);font-style:normal;font-size:.88rem}.rd-info{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--ink)}.rd-info h2{font-size:1.15rem;margin-bottom:.6rem}.rd-subhead{font-size:.95rem;margin:1.25rem 0 .4rem}.rd-kv div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-top:1px solid var(--line);font-size:.92rem}.rd-kv div:first-child{border-top:0}.rd-kv dt{color:var(--muted)}.rd-note{margin-top:.5rem;font-size:.8rem;color:var(--muted)}.rd-tags{display:flex;flex-wrap:wrap;gap:.4rem}.rd-diets{list-style:none;padding:0;margin:0;font-size:.9rem}.rd-diets li{padding:.2rem 0}.rd-diet--yes{color:var(--ok)}.rd-diet--no{color:var(--faint)}.rd-links{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.rd-links h2{font-size:1.15rem;margin-bottom:.5rem}.rd-links ul{list-style:none;padding:0;margin:0}.rd-links li{padding:.3rem 0;font-size:.92rem;overflow-wrap:anywhere}@media(max-width:900px){.rd-hero,.rd-body,.rd-info{grid-template-columns:1fr}.rd-hero-photo{min-height:220px}.rd-body,.rd-info{gap:2rem}}.cal-wrap{max-width:none}.cal-nav{gap:.5rem;margin-bottom:1.25rem}.cal-nav-title{font-family:var(--font-head);font-weight:600;font-size:1.35rem;color:var(--ink);min-width:12rem;letter-spacing:-.02em}.cal-nav-btn,.cal-today-btn{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.cal-nav-btn:hover,.cal-today-btn:hover{background:var(--surface-sunk)}.cal-today-btn{font-weight:500}.cal-scroll{overflow-x:auto}.cal-board{min-width:760px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));border-left:0;border-top:0}.cal-weekday-row{border-bottom:1px solid var(--ink)}.cal-weekday-label{text-align:left;padding:.5rem;border:0;background:none;color:var(--muted);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.cal-day-cell{min-height:128px;padding:.4rem .5rem .5rem;gap:.3rem;background:transparent;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-grid>.cal-day-cell:last-child{border-right:0}.cal-day-cell--out{background:transparent}.cal-day-cell--out .cal-day-num{color:var(--faint)}.cal-day-cell--today{background:var(--surface);box-shadow:inset 0 3px 0 var(--gold)}.cal-day-num{font-family:var(--font-head);font-weight:600;font-size:1rem;color:var(--ink);background:none;width:auto;height:auto;border-radius:0}.cal-day-cell--today .cal-day-num{background:none;color:var(--ink)}.cal-day-apply-btn{background:none;border:0;color:var(--gold-text);font-size:1rem;border-radius:var(--radius)}.cal-day-plan-badge{display:block;width:100%;padding:.1rem .4rem;border:0;border-left:3px solid var(--green);border-radius:0;background:var(--surface-sunk);color:var(--ink-2);font-family:inherit;font-size:.7rem;font-weight:500;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-day-plan-badge:hover{color:var(--ink);background:var(--line)}.cal-day-meals{display:flex;flex-direction:column;gap:.1rem;flex-wrap:nowrap}.cal-meal{position:relative}.cal-meal-btn{display:flex;align-items:baseline;gap:.35rem;width:100%;padding:.1rem 0;background:none;border:0;text-align:left;font-family:inherit;font-size:.76rem;line-height:1.3;color:var(--ink);cursor:pointer}.cal-meal-type{flex-shrink:0;width:.8rem;font-size:.65rem;font-weight:600;color:var(--gold-text)}.cal-meal-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-meal-btn:hover .cal-meal-name,.cal-meal--open .cal-meal-name{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:2px}.cal-add-meal{align-self:flex-start;margin-top:.1rem;padding:0;background:none;border:0;font-family:inherit;font-size:.72rem;color:var(--faint);cursor:pointer;opacity:0;transition:opacity .15s}.cal-add-meal:before{content:"+ ";color:var(--gold)}.cal-day-cell:hover .cal-add-meal,.cal-add-meal:focus-visible{opacity:1}.cal-add-meal:hover{color:var(--ink)}.cal-day-stats{margin-top:auto;gap:.5rem}.cal-day-stat-value,.cal-day-stat--spend{font-size:.7rem;color:var(--muted);background:none;padding:0;border:0;font-weight:400}.cal-chip-dropdown{left:0;transform:none;bottom:auto;top:calc(100% + 4px);border-color:var(--line-strong)}.cal-chip-dropdown:after{display:none}.cal-chip-dropdown-title{padding:.3rem .6rem .2rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}.cal-chip-dropdown-item{font-size:.85rem;color:var(--ink)}.cal-legend{gap:.5rem 1.5rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line)}.cal-legend-dot{width:10px;height:10px;border-radius:2px}@media(hover:none){.cal-add-meal{opacity:1}}.btn-danger{padding:.65rem 1.25rem;background:var(--danger);color:var(--surface);border:0;border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer}.btn-danger:disabled{opacity:.6;cursor:default}.meal-plans-subtitle{margin-bottom:1.5rem;color:var(--muted)}.meal-plans-list{grid-template-columns:1fr;gap:.75rem;max-width:900px}.meal-plan-card{border:1px solid var(--line);border-radius:var(--radius);background:transparent;padding:1rem 1.25rem;transition:border-color .15s,background .15s}.meal-plan-card:hover{border-color:var(--line-strong);background:var(--surface)}.meal-plan-card:hover{transform:none}.meal-plan-card:hover h3{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.meal-plan-card h3{color:var(--ink)}.meal-plan-template-badge{background:none;border:0;padding:0;color:var(--muted);font-size:.9rem}.meal-grid{border-top:1px solid var(--ink);border-left:0}.meal-grid-corner{background:transparent;border-right:0;border-bottom:1px solid var(--line)}.meal-grid-date-header{background:transparent;border-right:0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-align:left}.meal-grid-type-label{background:transparent;border-right:0;border-bottom:1px solid var(--line);align-items:flex-start;padding-left:0}.meal-grid-type-name{color:var(--gold-text);font-weight:500;letter-spacing:.08em}.meal-grid-cell{background:transparent;border-right:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.meal-grid-card{background:var(--surface);border-color:var(--line)}.meal-grid-card--readonly:hover{border-color:var(--line-strong)}.meal-grid-card-name{color:var(--ink);font-weight:500}.meal-grid-card-servings-icon{font-size:.7rem;color:var(--muted)}.meal-grid-cell-empty{color:var(--faint)}.inst-back{display:inline-block;margin-bottom:1rem}.inst-dates{margin-top:.3rem;color:var(--muted);font-size:.92rem}.inst-confirm{align-self:center;font-size:.9rem;color:var(--danger)}.shop{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:3rem;align-items:start;margin-top:3rem}.shop-list-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.shop-list-head h2{font-size:1.5rem}.shop-btn-sm{padding:.45rem .9rem;font-size:.85rem}.shop-link{background:none;border:0;padding:0;font-family:inherit;font-size:.8rem;color:var(--muted);cursor:pointer;white-space:nowrap}.shop-link:hover:not(:disabled){color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.shop-link:disabled{opacity:.5;cursor:default}.shop-note{font-size:.8rem;color:var(--muted);margin:.5rem 0}.shop-note--ok{color:var(--ok)}.shop-note--error{color:var(--danger)}.shop-batches{margin-bottom:1rem}.shop-batch{display:flex;justify-content:space-between;gap:1rem;padding:.4rem .6rem;margin-bottom:.25rem;background:var(--green-tint);font-size:.85rem;color:var(--ink-2)}.shop-aisle{margin-bottom:1.75rem}.shop-aisle-head{display:flex;align-items:baseline;gap:1rem;padding-bottom:.45rem;border-bottom:1px solid var(--ink)}.shop-aisle-toggle{flex:1;display:flex;align-items:baseline;gap:.4rem;background:none;border:0;padding:0;text-align:left;font-family:inherit;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text);cursor:pointer}.shop-aisle-chevron{width:.8rem;color:var(--faint)}.shop-aisle-count{font-weight:400;color:var(--muted);letter-spacing:0}.shop-aisle-cost{font-size:.85rem;color:var(--ink-2)}.shop-item{display:grid;grid-template-columns:minmax(0,1fr) auto 4.5rem auto;align-items:baseline;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.shop-item-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .6rem;min-width:0}.shop-item-name{font-size:.98rem;color:var(--ink)}.shop-item-qty{font-size:.85rem;color:var(--muted);white-space:nowrap}.shop-item-packs{color:var(--faint)}.shop-item-price{font-size:.92rem;text-align:right;color:var(--ink)}.shop-item--covered .shop-item-name{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line-strong)}.shop-item--covered .shop-item-price{color:var(--faint)}.shop-pantry{background:none;border:0;padding:0;font-family:inherit;font-size:.78rem;color:var(--gold-text);cursor:pointer}.shop-pantry:hover{text-decoration:underline;text-underline-offset:2px}.shop-pantry-edit{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--gold-text)}.shop-pantry-input{width:4.5rem;padding:.2rem .35rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);font-family:inherit;font-size:.8rem}.shop-pantry-input:focus{outline:none;border-color:var(--green);box-shadow:var(--focus-ring)}.shop-bill{position:sticky;top:1.5rem;padding:1.25rem 1.25rem 1rem;background:var(--surface);border:1px solid var(--line)}.shop-bill h2{font-size:1.2rem;margin-bottom:.5rem}.shop-bill-rows div{display:flex;justify-content:space-between;padding:.45rem 0;border-top:1px solid var(--line);font-size:.95rem}.shop-bill-rows div:first-child{border-top:0}.shop-bill-muted{color:var(--muted)}.shop-bill-pay{display:flex;justify-content:space-between;align-items:baseline;margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--ink)}.shop-bill-pay strong{font-family:var(--font-head);font-weight:600;font-size:2rem;letter-spacing:-.02em}@media(max-width:900px){.shop{grid-template-columns:1fr;gap:2rem}.shop-bill{position:static;order:-1}}@media(max-width:560px){.shop-item{grid-template-columns:minmax(0,1fr) auto}.shop-item-qty{grid-column:1;grid-row:2}.shop-item-price{grid-column:2;grid-row:1}.shop-item>.shop-link{grid-column:2;grid-row:2;justify-self:end}}.pantry-expiry{font-size:.8rem;font-weight:500}.pantry-expiry--expired{color:var(--danger)}.pantry-expiry--soon{color:var(--gold-text)}.suggest-muted{color:var(--muted);font-size:.9rem}.ing-flag{font-size:.7rem;color:var(--gold-text);white-space:nowrap}button.btn-primary[type=submit],button.settings-btn-primary[type=submit]{width:auto}.back-btn{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px;margin-bottom:0}.back-btn:hover{color:var(--ink-2)}.page-header:has(>.back-btn){flex-wrap:wrap;justify-content:flex-start}.page-header>.back-btn{flex-basis:100%;text-align:left}.page-header:has(>.back-btn)>h1{flex:1}.create-recipe-section{display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:2.5rem;row-gap:0;align-items:start;margin:0;padding:1.75rem 0;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none}.create-recipe-section:first-of-type{border-top-color:var(--ink)}.create-recipe-section>h2{grid-column:1;grid-row:1 / span 40;font-size:1.1rem;margin:0;padding:0;border:0;color:var(--ink);font-weight:600}.create-recipe-section>:not(h2){grid-column:2}.create-recipe-section>:not(h2)+:not(h2){margin-top:.85rem}.form-group label{color:var(--ink);font-size:.88rem}.form-group input,.form-group textarea,.form-group select{background:var(--surface);color:var(--ink)}.visibility-opt{background:var(--surface);border-color:var(--line-strong)}.visibility-opt--active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--surface)}@media(max-width:760px){.create-recipe-section{grid-template-columns:1fr}.create-recipe-section>h2{grid-row:auto;margin-bottom:.75rem}.create-recipe-section>:not(h2){grid-column:1}}.suggest-submit-btn{background:var(--gold);color:var(--green)}.suggest-submit-btn:hover:not(:disabled){background:var(--gold-bright)}.settings-sidenav{background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 1rem 0 0}.settings-section{background:transparent;border:0;border-top:1px solid var(--ink);border-radius:0;padding:1.25rem 0 0}.rl-sticky{position:sticky;top:0;z-index:20;padding-top:1rem;padding-bottom:.25rem;background:var(--bg);border-bottom:1px solid var(--line)}.rl-sticky .page-header{position:static;padding-top:0;margin-bottom:1.25rem}.rl-sticky .rl-toolbar{margin-bottom:.5rem}.rl-sticky .rl-subtabs{margin-bottom:.25rem}.rl-group:first-of-type{margin-top:1.25rem}@media(max-width:760px){.page-header,.rl-sticky{position:static}}.shop-bill{top:7.5rem}.suggest-checkbox-group{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:.25rem .75rem;padding-top:.25rem}.suggest-checkbox-label{font-weight:500;color:var(--ink)}.suggest-checkbox-label input[type=checkbox]{width:16px;height:16px;margin:0;padding:0;flex-shrink:0;accent-color:var(--green);align-self:center}.suggest-checkbox-group{flex-direction:column;align-items:flex-start;gap:.2rem}.form-group .suggest-checkbox-label{display:inline-flex;align-items:center;gap:.6rem;margin:0}.suggest-checkbox-hint{padding-left:calc(16px + .6rem)}.suggest-checkbox-group{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}.suggest-checkbox-hint{padding-left:0}.suggest-checkbox-group{flex-wrap:nowrap;align-items:baseline}.form-group .suggest-checkbox-label{flex-shrink:0}.suggest-checkbox-hint{min-width:0}@media(max-width:560px){.suggest-checkbox-group{flex-wrap:wrap}}
