:root{color:#20312b;background:#f7faf4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-canvas: #f7faf4;--color-panel: #ffffff;--color-panel-muted: #eef5ea;--color-text: #20312b;--color-muted: #60756b;--color-border: #d8e3d4;--color-primary: #2f7d5a;--color-primary-strong: #245142;--color-accent: #b64e72;--color-warm: #f2c56b;--shadow-soft: 0 16px 44px rgb(32 49 43 / 10%);--radius: 8px;--sidebar-width: 17rem;--mobile-nav-height: 4.75rem}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:var(--color-canvas);color:var(--color-text)}button,input{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}:focus-visible{outline:3px solid var(--color-warm);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-screen{display:grid;min-height:100vh;padding:1rem;place-items:center}.auth-panel{width:min(100%,28rem);padding:clamp(1.25rem,4vw,2.25rem);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-soft)}.brand-lockup{display:flex;align-items:center;gap:.8rem}.brand-mark{display:inline-grid;width:2.75rem;height:2.75rem;flex:0 0 auto;place-items:center;border-radius:var(--radius);background:var(--color-panel-muted);color:var(--color-primary)}.sidebar-brand .brand-mark{width:2.25rem;height:2.25rem}.eyebrow{margin:0 0 .25rem;color:var(--color-muted);font-size:.78rem;font-weight:700;text-transform:uppercase}h1,h2,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}h2{margin:0;font-size:1.05rem;line-height:1.2}.stack{display:grid;gap:1rem;margin-top:1.75rem}label{display:grid;gap:.45rem;color:var(--color-muted);font-weight:700}input{width:100%;min-height:2.85rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;color:var(--color-text);padding:.75rem .85rem}.primary-action,.secondary-action,.icon-button,.profile-choice,.link-action{min-height:2.75rem;border-radius:var(--radius);border:1px solid transparent}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.72rem 1rem;font-weight:800}.primary-action{background:var(--color-primary);color:#fff}.secondary-action{border-color:var(--color-border);background:var(--color-panel);color:var(--color-primary-strong)}.link-action{margin-top:1rem;padding:0;background:transparent;color:var(--color-primary-strong);font-weight:800}.icon-button{display:inline-grid;width:2.75rem;height:2.75rem;place-items:center;border-color:var(--color-border);background:var(--color-panel);color:var(--color-primary-strong)}.form-message{margin:0;padding:.8rem;border-radius:var(--radius);background:var(--color-panel-muted);color:var(--color-primary-strong);font-weight:700}.form-message.error{background:#fae9eb;color:#8f2944}.form-message.warning{background:#fff2cf;color:#735512}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}.profile-grid.compact{margin-top:.75rem}.profile-choice{display:grid;min-height:6.5rem;place-items:center;gap:.45rem;border-color:var(--color-border);background:var(--color-panel-muted);color:var(--color-primary-strong);font-weight:800}.profile-choice[aria-pressed=true]{border-color:var(--color-primary);background:#d8ead4}.app-shell{min-height:100vh}.sidebar{display:none}.main-column{min-height:100vh;padding-bottom:var(--mobile-nav-height)}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem;padding:.85rem 1rem;border-bottom:1px solid var(--color-border);background:#f7faf4f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.status-pill{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;padding:.35rem .7rem;border-radius:999px;font-size:.82rem;font-weight:800}.status-pill.online{background:#d8ead4;color:var(--color-primary-strong)}.status-pill.offline{background:#fae9eb;color:#8f2944}.status-pill.neutral{background:#edf2ee;color:var(--color-primary-strong)}.content-area{width:min(100%,72rem);margin:0 auto;padding:clamp(1rem,3vw,2rem)}.primary-nav.mobile{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:var(--mobile-nav-height);border-top:1px solid var(--color-border);background:#fffffff5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.primary-nav.desktop{display:grid;gap:.25rem}.nav-link{display:flex;align-items:center;justify-content:center;min-width:0;min-height:3.25rem;gap:.45rem;padding:.4rem;color:var(--color-muted);font-size:.76rem;font-weight:800;text-align:center;text-decoration:none}.nav-link.active{color:var(--color-primary-strong)}.primary-nav.mobile .nav-link{flex-direction:column}.page-grid{display:grid;gap:1.25rem}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.planner-board{display:grid;gap:.75rem}.meal-card,.empty-state,.recipe-preview,.settings-panel{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel)}.meal-card{display:grid;gap:1rem;min-height:8rem;padding:1rem}.meal-card>div{display:flex;align-items:center;gap:.6rem;color:var(--color-primary-strong)}.meal-card p,.empty-state p,.recipe-preview p{margin:0;color:var(--color-muted)}.search-field{position:relative;display:flex;align-items:center;gap:.55rem;min-height:3.2rem;padding:0 .85rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel);color:var(--color-muted)}.search-field input{min-height:3rem;padding:0;border:0;background:transparent}.recipe-preview{display:grid;overflow:hidden}.recipe-preview img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--color-panel-muted)}.recipe-preview div{padding:1rem}.recipe-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.9rem}.recipe-card{display:grid;overflow:hidden;min-height:100%;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel);color:inherit;text-decoration:none}.recipe-card:focus-visible,.recipe-card:hover{border-color:var(--color-primary)}.recipe-card img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--color-panel-muted)}.recipe-card-body{display:grid;gap:.55rem;padding:.85rem}.recipe-card h2{font-size:1rem}.recipe-meta-row,.recipe-fact-row,.badge-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.recipe-meta-row{color:var(--color-muted);font-size:.88rem;font-weight:700}.recipe-meta-row span,.recipe-fact-row span{display:inline-flex;align-items:center;gap:.35rem}.load-more-action{justify-self:center}.recipe-detail{display:grid;gap:1rem}.back-link{justify-self:start;text-decoration:none}.recipe-hero{width:100%;max-height:22rem;aspect-ratio:16 / 9;object-fit:cover;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel-muted)}.recipe-detail-header{display:grid;gap:.8rem}.badge{display:inline-flex;align-items:center;width:fit-content;min-height:2rem;padding:.35rem .65rem;border-radius:999px;background:#d8ead4;color:var(--color-primary-strong);font-size:.8rem;font-weight:800}.badge.warning{background:#fff2cf;color:#735512}.detail-panel{display:grid;gap:.85rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel)}.detail-panel h2,.warning-panel h2{display:inline-flex;align-items:center;gap:.4rem}.recipe-fact-row{color:var(--color-muted);font-weight:800}.serving-control{display:inline-grid;grid-template-columns:2.75rem minmax(8rem,auto) 2.75rem;align-items:center;justify-self:start;gap:.5rem}.serving-control output{display:inline-grid;min-height:2.75rem;place-items:center;padding:0 .9rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel-muted);font-weight:800}.ingredient-list,.step-list,.warning-panel ul{margin:0;padding-left:1.25rem}.ingredient-list{display:grid;gap:.45rem}.food-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.6rem}.food-group-item{display:grid;gap:.25rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel-muted)}.food-group-item span{color:var(--color-muted);font-size:.86rem;font-weight:800}.food-group-item strong{font-size:1.15rem}.step-list{display:grid;gap:1rem}.step-list h3{margin:0 0 .45rem;font-size:1rem}.rich-text{color:var(--color-text)}.rich-text p,.rich-text ul,.rich-text ol{margin:0 0 .7rem}.rich-text :last-child{margin-bottom:0}.step-note{display:grid;gap:.35rem;margin-top:.7rem;padding:.7rem;border-radius:var(--radius);background:var(--color-panel-muted)}.warning-panel{border-color:#e0c36d}.empty-state{display:grid;min-height:13rem;place-items:center;align-content:center;gap:.65rem;padding:1rem;text-align:center}.settings-grid{display:grid;gap:1rem}.settings-panel{display:grid;gap:1rem;padding:1rem}.inline-form{display:grid;gap:.75rem}.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;padding:1rem;place-items:center;background:#20312b73}.modal{display:grid;width:min(100%,26rem);gap:1rem;padding:1rem;border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-soft)}.modal p{margin:0}.update-banner{position:fixed;right:1rem;bottom:calc(var(--mobile-nav-height) + 1rem);z-index:15;display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-soft);font-weight:800}@media (min-width: 720px){.planner-board{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-preview{grid-template-columns:minmax(14rem,.9fr) minmax(18rem,1fr)}.recipe-preview img{height:100%}.recipe-detail-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.detail-panel{padding:1.15rem}.settings-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.inline-form{grid-template-columns:minmax(12rem,1fr) auto;align-items:end}}@media (min-width: 900px){.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{position:sticky;top:0;display:grid;align-content:start;gap:1.5rem;height:100vh;padding:1.25rem;border-right:1px solid var(--color-border);background:#fff}.main-column{padding-bottom:0}.primary-nav.mobile{display:none}.primary-nav.desktop .nav-link{justify-content:flex-start;padding:.75rem;border-radius:var(--radius);font-size:.96rem}.primary-nav.desktop .nav-link.active{background:var(--color-panel-muted)}.topbar{min-height:4.9rem;padding-inline:2rem}.update-banner{bottom:1rem}}
