*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f0fdf4;max-width:480px;min-height:100vh;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-container{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:#fff;border-radius:1rem;width:100%;padding:2rem;box-shadow:0 4px 24px #00000014}.auth-card h1{text-align:center;margin-bottom:.25rem;font-size:1.5rem}.auth-card h2{text-align:center;color:#666;margin-bottom:1.5rem;font-size:1.1rem}.form-group{margin-bottom:1rem}.form-group label{color:#374151;margin-bottom:.375rem;font-size:.875rem;font-weight:600;display:block}.form-group input{border:1.5px solid #d1d5db;border-radius:.625rem;outline:none;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:#16a34a}.btn-primary{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:.625rem;width:100%;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:600;transition:background .2s}.btn-primary:hover{background:#15803d}.btn-primary:disabled{cursor:not-allowed;background:#86efac}.auth-footer{text-align:center;color:#6b7280;margin-top:1.25rem;font-size:.875rem}.auth-footer a{color:#16a34a;font-weight:600;text-decoration:none}.layout{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:10;background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;display:flex;position:sticky;top:0}.app-title{color:#16a34a;font-size:1.1rem;font-weight:700}.btn-logout{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:.8rem}.btn-logout:hover{color:#ef4444}.app-main{flex:1;padding-bottom:5rem;overflow-y:auto}.bottom-nav{width:100%;max-width:480px;padding:.5rem 0;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));z-index:10;background:#fff;border-top:1px solid #e5e7eb;justify-content:space-around;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{color:#9ca3af;border-radius:.5rem;flex-direction:column;align-items:center;gap:.2rem;padding:.25rem .75rem;font-size:.7rem;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.nav-item.active{color:#16a34a}.nav-item span{font-size:.7rem}.page-content{padding:1.25rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.page-title{color:#111827;font-size:1.3rem;font-weight:700}.page-subtitle{color:#6b7280;margin-top:.2rem;font-size:.875rem}.bmr-card{color:#fff;background:linear-gradient(135deg,#16a34a,#15803d);border-radius:1rem;margin-bottom:1.5rem;padding:1.25rem}.bmr-row{justify-content:space-around;margin-bottom:1rem;display:flex}.bmr-stat{flex-direction:column;align-items:center;display:flex}.bmr-value{font-size:1.75rem;font-weight:700}.bmr-label{opacity:.85;margin-top:.2rem;font-size:.75rem}.macro-row{justify-content:space-between;gap:.5rem;display:flex}.macro-pill{background:#ffffff26;border-radius:.625rem;flex-direction:column;flex:1;align-items:center;padding:.5rem;font-size:.8rem;display:flex}.macro-pill span:first-child{font-size:1rem;font-weight:700}.form-section{margin-bottom:1.5rem}.form-section-title{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:.75rem;font-size:.875rem;font-weight:700}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}select{background:#fff;border:1.5px solid #d1d5db;border-radius:.625rem;outline:none;width:100%;padding:.75rem 1rem;font-size:1rem}select:focus{border-color:#16a34a}.radio-group{flex-direction:column;gap:.5rem;display:flex}.radio-option{cursor:pointer;border:1.5px solid #e5e7eb;border-radius:.625rem;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:border-color .2s,background .2s;display:flex}.radio-option input{display:none}.radio-option.selected{background:#f0fdf4;border-color:#16a34a}.radio-label{font-size:.9rem;font-weight:600;display:block}.radio-desc{color:#6b7280;font-size:.75rem;display:block}.goal-group{gap:.5rem;display:flex}.goal-btn{cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:.625rem;flex:1;padding:.75rem .25rem;font-size:.8rem;font-weight:600;transition:border-color .2s,background .2s}.goal-btn.selected{color:#16a34a;background:#f0fdf4;border-color:#16a34a}.search-bar{margin-bottom:1rem;position:relative}.search-bar input{background:#fff;border:1.5px solid #e5e7eb;border-radius:.625rem;outline:none;width:100%;padding:.75rem 1rem .75rem 2.5rem;font-size:.95rem}.search-bar input:focus{border-color:#16a34a}.search-icon{color:#9ca3af;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.product-list{flex-direction:column;gap:.625rem;display:flex}.product-card{background:#fff;border-radius:.75rem;justify-content:space-between;align-items:center;padding:.875rem 1rem;display:flex;box-shadow:0 1px 4px #0000000f}.product-info{flex-direction:column;flex:1;gap:.2rem;display:flex}.product-name{font-size:.95rem;font-weight:600}.product-brand{color:#6b7280;font-size:.78rem}.product-macros{color:#9ca3af;font-size:.75rem}.product-actions{gap:.375rem;margin-left:.75rem;display:flex}.btn-icon{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.375rem;display:flex}.btn-icon:hover{background:#f3f4f6}.btn-icon.danger:hover{color:#ef4444;background:#fef2f2}.btn-icon-green{cursor:pointer;color:#16a34a;background:#f0fdf4;border:none;border-radius:.625rem;justify-content:center;align-items:center;padding:.5rem;display:flex}.btn-icon-green:hover{background:#dcfce7}.btn-secondary{color:#374151;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:.625rem;flex:1;padding:.875rem;font-size:1rem;font-weight:600}.form-actions{gap:.75rem;margin-top:.5rem;display:flex}.input-with-btn{gap:.5rem;display:flex}.input-with-btn input{flex:1}.empty-state{text-align:center;color:#9ca3af;padding:3rem 1rem}.empty-state p:first-child{margin-bottom:.25rem;font-size:1rem;font-weight:600}.scanner-overlay{z-index:100;background:#000000d9;align-items:flex-end;display:flex;position:fixed;inset:0}.scanner-container{background:#fff;border-radius:1.25rem 1.25rem 0 0;width:100%;max-height:85vh;padding:1.25rem}.scanner-header{justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1rem;font-weight:700;display:flex}.scanner-viewport{aspect-ratio:4/3;background:#000;border-radius:.75rem;position:relative;overflow:hidden}.scanner-video{object-fit:cover;width:100%;height:100%}.scanner-crosshair{border:2px solid #16a34a;border-radius:.5rem;position:absolute;inset:25%}.scanner-hint{text-align:center;color:#6b7280;margin-top:.875rem;font-size:.85rem}.scanner-error{color:#ef4444;text-align:center;padding:2rem 1rem;font-size:.9rem}.recipe-list{flex-direction:column;gap:.875rem;display:flex}.recipe-card{background:#fff;border-radius:1rem;padding:1rem;box-shadow:0 1px 4px #0000000f}.recipe-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.recipe-name{font-size:1rem;font-weight:700}.recipe-description{color:#6b7280;margin-top:.2rem;font-size:.8rem}.recipe-card-actions{gap:.25rem;display:flex}.recipe-macros{background:#f9fafb;border-radius:.625rem;justify-content:space-between;margin-bottom:.75rem;padding:.625rem;display:flex}.recipe-macro-item{flex-direction:column;align-items:center;display:flex}.recipe-macro-item .macro-value{font-size:.95rem;font-weight:700}.recipe-macro-item .macro-label{color:#6b7280;font-size:.7rem}.recipe-ingredients-preview{flex-wrap:wrap;gap:.375rem;margin-bottom:.875rem;display:flex}.ingredient-tag{color:#16a34a;background:#f0fdf4;border-radius:999px;padding:.2rem .625rem;font-size:.75rem;font-weight:500}.ingredient-tag.muted{color:#9ca3af;background:#f3f4f6}.recipe-card-footer{gap:.5rem;display:flex}.btn-recipe-action{cursor:pointer;color:#fff;background:#16a34a;border:none;border-radius:.625rem;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.625rem;font-size:.8rem;font-weight:600;transition:background .2s;display:flex}.btn-recipe-action:hover{background:#15803d}.btn-recipe-action.secondary{color:#16a34a;background:#f0fdf4}.btn-recipe-action.secondary:hover{background:#dcfce7}.recipe-macro-preview{color:#374151;background:#f0fdf4;border-radius:.75rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.ingredient-row{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:.625rem 0;display:flex}.ingredient-info{flex-direction:column;display:flex}.ingredient-name{font-size:.9rem;font-weight:600}.ingredient-macros{color:#6b7280;font-size:.75rem}.ingredient-controls{align-items:center;gap:.375rem;display:flex}.ingredient-amount{text-align:center;border:1.5px solid #e5e7eb;border-radius:.5rem;width:4rem;padding:.375rem .5rem;font-size:.875rem}.ingredient-unit{color:#6b7280;min-width:1.5rem;font-size:.8rem}.btn-add-ingredient{color:#6b7280;cursor:pointer;background:0 0;border:1.5px dashed #d1d5db;border-radius:.625rem;justify-content:center;align-items:center;gap:.375rem;width:100%;margin-top:.75rem;padding:.625rem 1rem;font-size:.875rem;display:flex}.btn-add-ingredient:hover{color:#16a34a;border-color:#16a34a}.ingredient-search{margin-top:.5rem}.ingredient-results{border:1.5px solid #e5e7eb;border-radius:.625rem;flex-direction:column;margin-top:.5rem;display:flex;overflow:hidden}.ingredient-result-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f3f4f6;flex-direction:column;gap:.2rem;padding:.75rem 1rem;display:flex}.ingredient-result-item:hover{background:#f0fdf4}.ingredient-result-item:last-child{border-bottom:none}.search-empty{color:#9ca3af;text-align:center;padding:1rem;font-size:.85rem}.date-nav{background:#fff;border-radius:.75rem;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.5rem .75rem;display:flex}.date-label{font-size:.95rem;font-weight:600}.calorie-bar-wrapper{background:#fff;border-radius:1rem;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 4px #0000000f}.calorie-bar-header{justify-content:space-between;align-items:baseline;margin-bottom:.625rem;display:flex}.calorie-consumed{font-size:1.5rem;font-weight:700}.calorie-unit,.calorie-remaining{color:#6b7280;font-size:.85rem}.over-budget{color:#ef4444;font-weight:600}.calorie-track{background:#f3f4f6;border-radius:999px;height:10px;margin-bottom:.375rem;overflow:hidden}.calorie-fill{background:#16a34a;border-radius:999px;height:100%;transition:width .4s}.calorie-fill.over{background:#ef4444}.calorie-goal-label{color:#9ca3af;font-size:.75rem}.macro-rings{background:#fff;border-radius:1rem;justify-content:space-around;margin-bottom:1rem;padding:1rem;display:flex;box-shadow:0 1px 4px #0000000f}.macro-ring{flex-direction:column;align-items:center;gap:.2rem;display:flex}.macro-ring-label{color:#374151;font-size:.78rem;font-weight:600}.macro-ring-goal{color:#9ca3af;font-size:.7rem}.meal-groups{flex-direction:column;gap:.75rem;display:flex}.meal-group{background:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 1px 4px #0000000f}.meal-group-header{background:#f9fafb;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.9rem;font-weight:700;display:flex}.meal-group-kcal{color:#6b7280;font-size:.8rem;font-weight:500}.meal-group-empty{color:#d1d5db;padding:.625rem 1rem;font-size:.8rem}.meal-entry{border-top:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:.625rem 1rem;display:flex}.meal-entry-info{flex-direction:column;display:flex}.meal-entry-name{font-size:.9rem;font-weight:600}.meal-entry-macros{color:#9ca3af;font-size:.75rem}.setup-prompt{color:#92400e;background:#fef3c7;border-radius:.75rem;margin-bottom:1rem;padding:.875rem 1rem;font-size:.875rem}.modal-overlay{z-index:50;background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:1.25rem 1.25rem 0 0;flex-direction:column;width:100%;max-width:480px;max-height:90vh;margin:0 auto;display:flex}.modal-header{justify-content:space-between;align-items:center;padding:1.25rem 1rem .75rem;font-size:1.1rem;font-weight:700;display:flex}.meal-type-row{gap:.375rem;padding:0 1rem .75rem;display:flex;overflow-x:auto}.meal-type-btn{cursor:pointer;white-space:nowrap;color:#374151;background:#fff;border:1.5px solid #e5e7eb;border-radius:999px;padding:.375rem .875rem;font-size:.8rem;font-weight:600}.meal-type-btn.selected{color:#fff;background:#16a34a;border-color:#16a34a}.modal-tabs{border-bottom:2px solid #f3f4f6;margin-bottom:.75rem;display:flex}.modal-tab{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:.625rem;font-size:.9rem;font-weight:600}.modal-tab.active{color:#16a34a;border-bottom-color:#16a34a}.modal-results{flex:1;padding:0 1rem;overflow-y:auto}.modal-result-item{text-align:left;cursor:pointer;background:#fff;border:1.5px solid #f3f4f6;border-radius:.625rem;flex-direction:column;gap:.2rem;width:100%;margin-bottom:.5rem;padding:.75rem;transition:border-color .15s;display:flex}.modal-result-item.selected{background:#f0fdf4;border-color:#16a34a}.modal-result-item:hover{border-color:#16a34a}.grocery-list{flex-direction:column;gap:.5rem;display:flex}.grocery-list.checked{opacity:.6}.grocery-item{background:#fff;border-radius:.75rem;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:opacity .2s;display:flex;box-shadow:0 1px 4px #0000000d}.grocery-item.checked .grocery-item-name{color:#9ca3af;text-decoration:line-through}.grocery-item-info{flex:1;align-items:center;gap:.75rem;display:flex}.grocery-item-name{font-size:.9rem;font-weight:600;display:block}.grocery-item-meta{color:#9ca3af;font-size:.75rem;display:block}.grocery-checkbox{cursor:pointer;background:#fff;border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .15s;display:flex}.grocery-checkbox.checked{background:#16a34a;border-color:#16a34a}.grocery-checkbox.checked:after{content:"✓";color:#fff;font-size:.75rem;font-weight:700}.checked-header{color:#6b7280;justify-content:space-between;align-items:center;margin:1rem 0 .5rem;font-size:.8rem;font-weight:600;display:flex}.btn-clear{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.8rem;font-weight:600;display:flex}.btn-clear:hover{background:#fef2f2}.grocery-form{background:#fff;border-radius:1rem;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 4px #0000000f}.star-icon{color:#f59e0b;flex-shrink:0}.meal-type-picker-btn{cursor:pointer;text-align:left;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:.75rem;width:100%;padding:.875rem;font-size:1rem;font-weight:600;transition:all .15s}.meal-type-picker-btn:hover{color:#16a34a;background:#f0fdf4;border-color:#16a34a}.assessment-card{border-radius:.875rem;margin-bottom:1rem;padding:1rem}.assessment-card.ok{background:#f0fdf4;border:1.5px solid #bbf7d0}.assessment-card.warn{background:#fffbeb;border:1.5px solid #fde68a}.assessment-stats{justify-content:space-between;margin-bottom:.75rem;display:flex}.assessment-stat{flex-direction:column;align-items:center;display:flex}.assessment-value{color:#111827;font-size:1.1rem;font-weight:700}.assessment-label{color:#6b7280;font-size:.7rem}.assessment-warning{color:#92400e;margin-bottom:.375rem;font-size:.82rem}.assessment-suggestion{color:#166534;margin-bottom:.375rem;font-size:.82rem}.goal-summary-card{background:#fff;border-radius:1rem;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1px 4px #0000000f}.goal-type-badge{margin-bottom:1rem;font-size:1rem;font-weight:700}.goal-weights{justify-content:space-between;align-items:center;display:flex}.goal-weight-item{flex-direction:column;align-items:center;display:flex}.goal-weight-item.current .goal-weight-value{color:#3b82f6}.goal-weight-item.target .goal-weight-value{color:#16a34a}.goal-weight-value{font-size:1.2rem;font-weight:700}.goal-weight-label{color:#6b7280;font-size:.72rem}.goal-weight-arrow{color:#d1d5db;font-size:1.25rem}.weighin-card{background:#fff;border-radius:1rem;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1px 4px #0000000f}.weight-chart-wrapper{width:100%;overflow-x:auto}.portion-picker{justify-content:center;align-items:center;gap:1.5rem;padding:1rem;display:flex}.portion-btn{cursor:pointer;color:#374151;background:#fff;border:2px solid #e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .15s;display:flex}.portion-btn:hover{color:#16a34a;background:#f0fdf4;border-color:#16a34a}.portion-display{flex-direction:column;align-items:center;display:flex}.portion-value{color:#111827;font-size:2.5rem;font-weight:700;line-height:1}.portion-label{color:#6b7280;margin-top:.25rem;font-size:.8rem}.fitbit-card{background:#fff;border-radius:1rem;margin-bottom:1.5rem;padding:1.25rem;box-shadow:0 1px 4px #0000000f}.fitbit-header{justify-content:space-between;align-items:center;display:flex}.fitbit-title{font-size:1rem;font-weight:700}.fitbit-subtitle{color:#6b7280;margin-top:.2rem;font-size:.78rem}.btn-fitbit{cursor:pointer;border:none;border-radius:.625rem;padding:.625rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s}.btn-fitbit.connect{color:#fff;background:#00b0b9}.btn-fitbit.connect:hover{background:#009aa3}.btn-fitbit.disconnect{color:#ef4444;background:#fef2f2}.btn-fitbit.disconnect:hover{background:#fee2e2}.btn-fitbit:disabled{opacity:.6;cursor:not-allowed}.fitbit-sync-bar{color:#0f766e;background:#f0fdfa;border:1.5px solid #99f6e4;border-radius:.75rem;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.625rem 1rem;font-size:.8rem;font-weight:600;display:flex}.fitbit-activity-section{background:#fff;border-left:4px solid #00b0b9;border-radius:1rem;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 4px #0000000f}.fitbit-activity-header{justify-content:space-between;align-items:center;margin-bottom:.875rem;display:flex}.fitbit-activity-title{font-size:.95rem;font-weight:700}.fitbit-activity-sync{color:#00b0b9;font-size:.75rem;font-weight:600}.fitbit-activity-stats{justify-content:space-around;align-items:center;display:flex}.fitbit-activity-stat{flex-direction:column;align-items:center;gap:.2rem;display:flex}.fitbit-activity-value{color:#111827;font-size:1.4rem;font-weight:700}.fitbit-activity-label{color:#6b7280;font-size:.72rem}.fitbit-activity-divider{background:#f3f4f6;width:1px;height:2.5rem}.app-logo{object-fit:cover;border-radius:6px;width:28px;height:28px}.app-title{color:#16a34a;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}
