:root{--primary: #7c3aed;--primary-hover: #6d28d9;--primary-soft: rgba(124, 58, 237, .1);--protein: #059669;--bg: #f6f7fb;--card-bg: #ffffff;--text: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--danger: #dc2626;--warn: #d97706;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--radius: 12px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--primary: #a78bfa;--primary-hover: #8b5cf6;--primary-soft: rgba(167, 139, 250, .16);--protein: #34d399;--bg: #0b1020;--card-bg: #151b2e;--text: #e5e7eb;--text-muted: #94a3b8;--border: #263049;--danger: #f87171;--warn: #fbbf24;color-scheme:dark}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}.app-container{max-width:480px;margin:0 auto;min-height:100vh;background-color:var(--bg);display:flex;flex-direction:column}.main-content{flex:1;padding:1rem 1rem calc(5.5rem + env(safe-area-inset-bottom))}h1,h2,h3{color:var(--text);font-weight:700}h1{font-size:1.4rem;margin-bottom:.25rem}h2{font-size:1.15rem}h3{font-size:1rem}p,.muted{color:var(--text-muted)}.small{font-size:.8rem}.card{background:var(--card-bg);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--shadow-sm);margin-bottom:.75rem;border:1px solid var(--border)}.card.empty{text-align:center;display:grid;gap:.75rem;justify-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.75rem 1.1rem;border-radius:var(--radius);font-weight:600;cursor:pointer;border:none;font-size:.9rem;transition:transform .1s,background .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%;margin:.75rem 0}.btn-primary{background-color:var(--primary);color:#fff}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--border);background:var(--card-bg);cursor:pointer;flex-shrink:0}.icon-btn.add{background:var(--primary-soft);border-color:transparent;color:var(--primary)}.link-btn{background:none;border:none;color:var(--primary);font-weight:600;font-size:.85rem;cursor:pointer;margin:.25rem 0 .5rem}.button-row{display:flex;gap:.5rem;margin-top:1rem}.grow{flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;background:var(--card-bg);display:flex;justify-content:space-around;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:10}.nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--text-muted);text-decoration:none;font-size:.72rem;padding:.4rem .9rem;border-radius:10px}.nav-item.active{color:var(--primary);background:var(--primary-soft)}.nav-item svg{width:22px;height:22px}.form-group,.field{margin-bottom:1rem}.form-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.4rem;color:var(--text)}.form-input{width:100%;padding:.7rem;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:1rem;background:var(--card-bg);color:var(--text);outline:none}.form-input:focus{border-color:var(--primary)}textarea.form-input{resize:vertical}.macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .75rem}.segmented{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}.segmented button{flex:1;padding:.6rem;border:none;background:var(--card-bg);cursor:pointer;font-weight:600;font-size:.85rem}.segmented button.active{background:var(--primary);color:#fff}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.date-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.date-title{text-align:center}.date-title h1{margin:0}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.day{display:flex;flex-direction:column;align-items:center;padding:.4rem 0;border-radius:10px;border:1px solid var(--border);background:var(--card-bg);cursor:pointer}.day.today{border-color:var(--primary)}.day.active{background:var(--primary);color:#fff;border-color:var(--primary)}.day-name{font-size:.68rem;text-transform:uppercase;opacity:.8}.day-num{font-weight:700;font-size:1rem}.day-kcal{font-size:.65rem;opacity:.85}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:.75rem 0 .25rem}.stat-box{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;padding:1rem;border-radius:var(--radius);text-align:center}.stat-box.protein{background:linear-gradient(135deg,#10b981,#047857)}.stat-box h3{color:#ffffffd9;font-size:.8rem;font-weight:500}.stat-box p{color:#fff;font-size:1.6rem;font-weight:700}.stat-box small{font-size:.85rem;font-weight:500}.macro-sub{text-align:center;margin-bottom:.75rem}.meal-section{padding:.75rem .9rem}.meal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.entry{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--border);padding:.6rem 0;margin-top:.5rem;cursor:pointer}.entry-name{font-size:.92rem}.qty{color:var(--primary);font-weight:700}.entry-macros{display:flex;flex-direction:column;align-items:flex-end;font-weight:600;font-size:.88rem;white-space:nowrap}.entry-macros small{color:var(--protein);font-weight:500}.tabs{display:flex;gap:.4rem;overflow-x:auto;padding:.25rem 0 .5rem;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;padding:.45rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--card-bg);font-size:.85rem;font-weight:600;cursor:pointer}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.tab-count{margin-left:.35rem;opacity:.7;font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.45rem .8rem;border-radius:999px;border:1px solid var(--border);background:var(--card-bg);font-size:.85rem;cursor:pointer}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chips.dates{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.chip.date{display:flex;flex-direction:column;align-items:center;padding:.35rem 0;border-radius:10px;font-size:.72rem;text-transform:capitalize}.chip.date strong{font-size:.9rem}.search{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;margin-bottom:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--card-bg);color:var(--text-muted)}.search input{flex:1;border:none;outline:none;background:transparent;padding:.7rem 0;font:inherit;font-size:1rem;color:var(--text)}.recipe-list{display:grid;gap:.5rem}.recipe-card{display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%;text-align:left;padding:.75rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);cursor:pointer;box-shadow:var(--shadow-sm)}.recipe-card-main{display:grid;gap:.15rem;min-width:0}.recipe-name{font-weight:600;font-size:.95rem}.recipe-card-meta{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.badge{font-size:.7rem;padding:.15rem .45rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:600}.warn{color:var(--warn)}.macro-row{display:flex;flex-wrap:wrap;gap:.25rem .8rem;font-size:.9rem;margin:.35rem 0}.macro-row.compact{font-size:.8rem;margin:0;color:var(--text-muted)}.macro.protein strong{color:var(--protein)}.stepper{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.stepper input{width:4.5rem;text-align:center;padding:.55rem;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:1.05rem;font-weight:700;background:var(--card-bg);color:var(--text)}.stepper-label{color:var(--text-muted);font-size:.85rem;flex:1}.sheet-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;max-height:92vh;display:flex;flex-direction:column;background:var(--bg);border-radius:18px 18px 0 0;box-shadow:var(--shadow-md);animation:slide-up .18s ease-out}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1rem .5rem}.sheet-body{overflow-y:auto;padding:0 1rem calc(1.25rem + env(safe-area-inset-bottom))}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.notice{background:#d977061f;color:var(--text);border-left:3px solid var(--warn);padding:.5rem .75rem;border-radius:8px;font-size:.82rem;margin:.5rem 0;display:grid;gap:.2rem}.details{border-top:1px solid var(--border);padding:.6rem 0}.details summary{cursor:pointer;font-weight:600}.details ul{padding-left:1.2rem;margin-top:.4rem;font-size:.9rem}.instructions{color:var(--text);white-space:pre-wrap;margin-top:.4rem;font-size:.9rem}.attachment{width:100%;max-height:220px;object-fit:cover;border-radius:10px;margin:.5rem 0}.footer-actions{margin-top:1.25rem;display:grid;gap:.5rem;justify-items:start}
