*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#eef1f5;color:#333;-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;min-height:100vh;background:#fff;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom));box-shadow:0 0 30px #00000014}@media(min-width:768px){body{padding:1.5rem 0}.app{max-width:720px;border-radius:20px;overflow:hidden;min-height:auto;padding-bottom:5rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.bottom-nav{max-width:720px;border-radius:0 0 20px 20px}}@media(min-width:1024px){.app,.bottom-nav{max-width:800px}}.topbar{display:flex;justify-content:space-between;align-items:center;padding:calc(1rem + env(safe-area-inset-top)) 1.5rem 1rem;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.brand{font-size:1.4rem;font-weight:700}.subtitle{font-size:.75rem;opacity:.85}.date{font-size:.85rem;opacity:.9}.container{padding:1.25rem 1.25rem 0;display:flex;flex-direction:column;gap:1rem}.card{background:#f8f9fa;border-radius:16px;padding:1.25rem}.hero{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;border-radius:16px;padding:1.5rem}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;opacity:.7}.hero h1{font-size:1.4rem;margin:.25rem 0}.hero p{font-size:.85rem;opacity:.8}.target-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff26;border-radius:50%;width:5.5rem;height:5.5rem;flex-shrink:0}.target-circle strong{font-size:1.3rem}.target-circle span{font-size:.65rem;opacity:.8}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.stat{display:flex;align-items:center;gap:.6rem;background:#f8f9fa;border-radius:12px;padding:.85rem}.stat-icon{font-size:1.5rem}.stat-content{flex:1;min-width:0}.stat-label{font-size:.7rem;color:#888;text-transform:uppercase;font-weight:600}.stat-value{font-size:1.1rem;font-weight:700}.stat-value small{font-size:.75rem;color:#888;font-weight:400}.stat-mini-bar{height:4px;background:#eee;border-radius:2px;margin-top:.3rem;overflow:hidden}.stat-mini-fill{height:100%;border-radius:2px;transition:width .3s}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.section-title h2{font-size:1rem}.section-title span{font-size:.8rem;color:#888}.progress{height:12px;background:#eee;border-radius:6px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;border-radius:6px;transition:width .5s}.muted{color:#888;font-size:.85rem}.feedback{padding:.75rem 1.5rem;font-weight:500;font-size:.9rem}.feedback-success{background:#d4edda;color:#155724}.feedback-error{background:#f8d7da;color:#721c24}.inline-form{display:flex;gap:.5rem;align-items:center}.inline-form input{flex:1;padding:.6rem .75rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;min-width:0}.save-btn{padding:.6rem 1rem;background:#27ae60;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;white-space:nowrap;font-size:.85rem}.save-btn.secondary{background:#6c757d}.save-btn:disabled{opacity:.5}.save-btn:hover:not(:disabled){opacity:.85}.add-btn{padding:.6rem 1rem;background:#3498db;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;white-space:nowrap;font-size:.85rem}.add-btn:disabled{opacity:.5}.add-btn:hover:not(:disabled){opacity:.85}.workout-toggle{width:100%;padding:.8rem;border:2px solid #ddd;border-radius:12px;background:#fff;font-size:1rem;cursor:pointer;transition:all .2s}.workout-toggle.active{background:#d4edda;border-color:#27ae60;color:#155724;font-weight:600}.big-number{font-size:2.5rem;font-weight:800;text-align:center;color:#2c3e50;padding:.5rem 0}.meal-tabs{display:flex;gap:.5rem;margin-bottom:.75rem;overflow-x:auto}.meal-tabs button{padding:.5rem 1rem;border:1px solid #ddd;border-radius:20px;background:#fff;cursor:pointer;font-size:.85rem;white-space:nowrap}.meal-tabs button.active{background:#27ae60;color:#fff;border-color:#27ae60;font-weight:600}.recipe-grid{display:flex;flex-direction:column;gap:.5rem}.recipe-card{background:#fff;border:1px solid #eee;border-radius:12px;padding:.85rem 1rem}.recipe-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recipe-main h3{font-size:.95rem}.recipe-meta{display:flex;gap:.75rem;margin-top:.2rem;font-size:.8rem;color:#666}.add-button{background:#27ae60;color:#fff;border:none;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.3rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.add-button:hover:not(:disabled){background:#219a52}.add-button:disabled{opacity:.5;cursor:wait}.loading,.empty{text-align:center;padding:1.5rem;color:#888}.error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:12px}.meals-list{display:flex;flex-direction:column;gap:.5rem}.meal-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #eee;border-radius:12px;padding:.75rem 1rem;gap:.5rem}.meal-info{display:flex;flex-direction:column;gap:.15rem}.meal-type{font-size:.7rem;text-transform:uppercase;color:#888;font-weight:600}.meal-kcal{font-size:.85rem;color:#555}.meal-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.icon-button{background:#f0f4f8;border:none;border-radius:50%;width:2rem;height:2rem;font-size:1rem;color:#2c3e50;cursor:pointer;flex-shrink:0}.icon-button:hover{background:#e0e8f0}.delete-button{background:#fee;border:none;border-radius:50%;width:2rem;height:2rem;font-size:1rem;color:#e74c3c;cursor:pointer;flex-shrink:0}.delete-button:hover{background:#fdd}.weight-stats{display:flex;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.weight-stats>div{text-align:center;flex:1}.weight-stats .lost{color:#27ae60}.weight-line{height:10px;background:#eee;border-radius:5px;overflow:hidden}.weight-progress{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:5px;transition:width .5s}.weight-labels{display:flex;justify-content:space-between;margin-top:.25rem;font-size:.8rem;color:#888}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;background:#fff;border-top:1px solid #eee;z-index:100;box-shadow:0 -2px 10px #0000000d;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:.6rem 0;border:none;background:none;cursor:pointer;color:#aaa;transition:color .2s}.bottom-nav button:hover{color:#555}.bottom-nav .nav-active{color:#27ae60}.nav-icon{font-size:1.3rem}.nav-label{font-size:.65rem;margin-top:.15rem;font-weight:600}:focus-visible{outline:3px solid #3498db;outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.status-badge{font-size:.75rem;font-weight:600;background:#0003;padding:.3rem .65rem;border-radius:20px;white-space:nowrap}.feedback-info{background:#fff3cd;color:#664d03}.day-nav{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid #eee}.day-nav>button{border:none;background:#f1f3f5;border-radius:10px;min-width:2.4rem;height:2.4rem;font-size:1.3rem;line-height:1;cursor:pointer;color:#2c3e50}.day-nav>button:disabled{opacity:.35;cursor:default}.day-nav .day-today{font-size:.8rem;font-weight:600;padding:0 .75rem;color:#27ae60}.day-nav-label{flex:1;display:flex;flex-direction:column;text-align:center;min-width:0}.day-nav-label strong{font-size:.95rem;text-transform:capitalize}.day-nav-label span{font-size:.75rem;color:#888;text-transform:capitalize}.hero h1{margin-top:0}.hero-left{margin-top:.4rem;font-weight:600;opacity:1!important}.stat-check{color:#1e8449;font-weight:800}.link-button{background:none;border:none;padding:0;margin-top:.35rem;color:#2980b9;font-size:.8rem;cursor:pointer;text-decoration:underline}.recipe-servings{font-weight:700;color:#27ae60}.meal-servings{color:#27ae60;font-weight:600;font-size:.85rem}.recipe-detail{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #e3e3e3}.recipe-detail ul{list-style:none;display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.recipe-detail li{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}.recipe-detail li span:last-child{color:#666;white-space:nowrap}.video-link{display:inline-block;margin-top:.5rem;padding:.65rem .9rem;border-radius:10px;background:#3498db;color:#fff;font-weight:600;text-align:center;text-decoration:none}.video-embed{position:relative;width:100%;margin-top:.5rem;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:#000}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.meal-info-button{background:none;border:none;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit;flex:1;min-width:0}.servings-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.chips{display:flex;gap:.4rem}.chips-wrap{flex-wrap:wrap;margin-bottom:.75rem}.chip{padding:.4rem .8rem;border:1px solid #ddd;border-radius:20px;background:#fff;font-size:.85rem;cursor:pointer}.chip.active{background:#27ae60;border-color:#27ae60;color:#fff;font-weight:600}.chip:disabled{opacity:.5}.quick-hint{margin-bottom:.75rem;font-size:.8rem}.quick-form{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.quick-form input:first-child{grid-column:1 / -1}.quick-form input,.settings-grid input,.modal input,.modal textarea{padding:.6rem .75rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;min-width:0;width:100%}.quick-form .save-btn{grid-column:1 / -1;padding:.7rem}.section-actions{display:flex;align-items:center;gap:.75rem}.copy-day-panel{background:#f8fafc;border:1px solid #eee;border-radius:12px;padding:.75rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.6rem}.copy-day-panel .inline-form{display:flex;gap:.5rem}.copy-day-panel input[type=date]{flex:1;padding:.55rem .65rem;border:1px solid #ddd;border-radius:10px;font-size:.9rem;min-width:0}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:#fff;border-radius:16px;padding:1.25rem;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.modal h3{font-size:1.05rem}.modal label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:#666}.modal textarea{resize:vertical;font-family:inherit}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.ingredient-row{display:grid;grid-template-columns:1fr 4.5rem 3.5rem 2rem;gap:.4rem;align-items:center}.ingredient-row input{padding:.5rem .6rem;font-size:.9rem}.recipe-meta{flex-wrap:wrap}.chart{width:100%;height:auto;display:block}.chart-label{font-size:9px;fill:#888}.chart-axis{stroke:#ddd;stroke-width:1}.chart-target{stroke:#3498db;stroke-width:1;stroke-dasharray:4 3}.chart-line{fill:none;stroke:#27ae60;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:#b8c2cc}.chart-empty{fill:#e3e6ea}.week-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.6rem;margin-top:.85rem}.week-stats>div{display:flex;flex-direction:column;background:#fff;border-radius:10px;padding:.55rem .6rem}.week-stats strong{font-size:1rem}.week-stats span{font-size:.7rem;color:#888}.trend-stats{grid-template-columns:repeat(3,1fr)}.trend-note{margin-top:.75rem;font-size:.8rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.settings-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:#666}.wide{width:100%;padding:.75rem;font-size:.95rem}.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#eef1f5;padding:1rem}.login-card{background:#fff;border-radius:16px;padding:2rem 1.5rem;width:100%;max-width:360px;box-shadow:0 4px 24px #0000001a}.login-card .brand{font-size:1.6rem;font-weight:700;text-align:center;margin-bottom:1.5rem}.login-card form{display:flex;flex-direction:column;gap:1rem}.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#666}.login-card input{padding:.7rem .8rem;border:1px solid #ddd;border-radius:8px;font-size:1rem}.login-card input:focus{outline:none;border-color:#27ae60;box-shadow:0 0 0 2px #27ae6026}.login-card .error{color:#e74c3c;font-size:.85rem;text-align:center}.week-nav{margin-bottom:.75rem}.plan-grid{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.plan-day{background:#fff;border-radius:12px;padding:.6rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.plan-day-head{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem}.plan-day-total{font-size:.75rem;color:#666}.plan-slot{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.5rem .6rem;border:1px dashed #ddd;border-radius:10px;background:#fafbfc;text-align:left;cursor:pointer;min-height:3.4rem}.plan-slot.empty{color:#999}.plan-slot-type{font-size:.65rem;color:#888;text-transform:uppercase;letter-spacing:.02em}.plan-slot-name{font-size:.85rem;font-weight:600;line-height:1.2}.plan-slot-meta{font-size:.7rem;color:#666}.plan-slot-empty{font-size:1.1rem;line-height:1}.plan-actions{display:flex;flex-direction:column;gap:.6rem}.plan-actions label{display:flex;align-items:center;gap:.35rem;font-size:.85rem}@media(min-width:768px){.plan-day{grid-template-columns:repeat(4,1fr)}}.shopping-list{list-style:none;display:flex;flex-direction:column;gap:.45rem}.shopping-item{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .65rem;background:#fff;border-radius:10px}.shopping-item label{display:flex;align-items:center;gap:.5rem;font-size:.95rem}.shopping-name{flex:1}.shopping-qty{color:#555;font-size:.85rem;white-space:nowrap}.shopping-from{font-size:.7rem;padding-left:1.6rem}.shopping-item.checked .shopping-name,.shopping-item.checked .shopping-qty{text-decoration:line-through;color:#999}.filter-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.85rem}.filter-row input[type=search]{padding:.6rem .75rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;width:100%}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.export-actions .save-btn{width:100%}.recipe-picker .picker-item{display:flex;align-items:center;gap:.5rem;cursor:pointer}.recipe-picker .picker-item input{flex-shrink:0}.modal select{padding:.6rem .75rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;width:100%;background:#fff}
