*{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #a5b4fc;--success: #10b981;--success-light: #d1fae5;--danger: #ef4444;--danger-light: #fee2e2;--warning: #f59e0b;--warning-light: #fef3c7;--background: #f8fafc;--surface: #ffffff;--text: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--radius: 16px;--radius-sm: 10px;--radius-xs: 6px}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none;-webkit-tap-highlight-color:transparent}input,select{font-family:inherit;font-size:16px}ul{list-style:none}.app{min-height:100vh;min-height:100dvh;max-width:430px;margin:0 auto;display:flex;flex-direction:column;background-color:var(--background)}.main-content{flex:1;padding:16px 16px 100px;overflow-y:auto}.navigation{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--surface);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 16px 28px}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-muted);transition:color .2s;padding:8px 20px;border-radius:var(--radius-sm)}.nav-btn svg{width:24px;height:24px}.nav-btn span{font-size:11px;font-weight:600}.nav-btn.active{color:var(--primary)}.tracker{display:flex;flex-direction:column;gap:16px}.streak-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;padding:16px 20px;border-radius:var(--radius)}.streak-icon{font-size:32px}.streak-info{flex:1}.streak-count{font-size:28px;font-weight:800;line-height:1}.streak-label{font-size:13px;opacity:.9;margin-top:2px}.date-navigation{display:flex;align-items:center;justify-content:space-between;padding:4px}.date-nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-secondary);transition:background .2s}.date-nav-btn:active{background:var(--border)}.date-nav-btn svg{width:24px;height:24px}.date-display{display:flex;flex-direction:column;align-items:center;cursor:pointer}.date-text{font-size:18px;font-weight:700}.today-badge{font-size:12px;color:var(--primary);font-weight:600}.progress-card{background:var(--surface);padding:16px;border-radius:var(--radius);box-shadow:var(--shadow)}.progress-header{display:flex;justify-content:space-between;margin-bottom:10px;font-size:14px}.progress-label{font-weight:600;color:var(--text-secondary)}.progress-value{color:var(--primary);font-weight:700}.progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-dark));border-radius:4px;transition:width .3s ease}.empty-state{text-align:center;padding:48px 24px;color:var(--text-secondary)}.empty-state p{margin-bottom:8px}.empty-hint{font-size:14px;color:var(--text-muted)}.meals-timeline{display:flex;flex-direction:column}.now-marker{display:flex;align-items:center;gap:8px;padding:8px 0}.now-marker-dot{width:10px;height:10px;background:var(--danger);border-radius:50%;box-shadow:0 0 0 3px var(--danger-light);flex-shrink:0}.now-marker-line{flex:1;height:2px;background:var(--danger)}.now-marker-label{font-size:12px;font-weight:700;color:var(--danger);text-transform:uppercase;letter-spacing:.5px}.meal-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;overflow:hidden}.meal-card.completed{opacity:.6}.meal-card.overdue{border-left:3px solid var(--warning)}.meal-header{display:flex;align-items:center;padding:14px 16px;gap:14px}.meal-time{font-size:13px;font-weight:700;color:var(--primary);min-width:44px}.meal-info{flex:1;min-width:0}.meal-name{font-size:15px;font-weight:600}.meal-card.completed .meal-name{text-decoration:line-through;color:var(--text-muted)}.meal-count{font-size:13px;color:var(--text-muted);margin-top:1px}.check-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--border);border:2px solid var(--border);transition:all .2s}.check-btn svg{width:20px;height:20px}.check-btn.checked{color:#fff;background:var(--success);border-color:var(--success)}.meal-details{padding:0 16px 14px}.ingredients-list{display:flex;flex-direction:column;gap:6px}.ingredient-item{display:flex;justify-content:space-between;font-size:14px;padding:10px 12px;background:var(--background);border-radius:var(--radius-xs)}.ingredient-name{color:var(--text)}.ingredient-amount{color:var(--text-muted);font-weight:500}.settings{display:flex;flex-direction:column;gap:20px}.settings-title{font-size:28px;font-weight:800;letter-spacing:-.5px}.settings-header{display:flex;align-items:center;gap:12px}.back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.back-btn svg{width:22px;height:22px}.settings-section{display:flex;flex-direction:column;gap:10px}.section-title{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding-left:4px}.days-list{display:flex;flex-direction:column;gap:8px}.day-button{display:flex;align-items:center;padding:14px 16px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);gap:12px}.day-button .day-name{flex:1;font-weight:600;font-size:15px}.day-button .day-count{color:var(--text-muted);font-size:13px}.day-button svg{width:18px;height:18px;color:var(--text-muted)}.settings-button{display:flex;align-items:center;padding:14px 16px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);gap:12px}.settings-button span:first-child{flex:1;font-weight:600;font-size:15px}.settings-button .badge{background:var(--primary);color:#fff;padding:3px 10px;border-radius:10px;font-size:12px;font-weight:700}.settings-button svg{width:18px;height:18px;color:var(--text-muted)}.meals-list{display:flex;flex-direction:column;gap:8px}.meal-item{display:flex;align-items:stretch;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.meal-item-content{flex:1;display:flex;align-items:center;padding:14px 16px;gap:12px;cursor:pointer}.meal-item-time{font-size:13px;font-weight:700;color:var(--primary);min-width:44px}.meal-item-info{flex:1}.meal-item-name{font-weight:600;font-size:15px}.meal-item-count{font-size:13px;color:var(--text-muted);margin-top:1px}.meal-item-content svg{width:18px;height:18px;color:var(--text-muted)}.delete-btn{width:56px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:#fff}.delete-btn svg{width:20px;height:20px}.add-btn{width:100%;padding:14px;background:var(--primary);color:#fff;border-radius:var(--radius-sm);font-size:15px;font-weight:600}.form-section{background:var(--surface);padding:16px;border-radius:var(--radius);box-shadow:var(--shadow)}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-secondary)}.form-group input,.form-group select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--background);font-size:15px}.form-group input:focus{outline:none;border-color:var(--primary)}.section-subtitle{font-size:15px;font-weight:700;margin-bottom:12px}.ingredients-edit-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.ingredient-edit-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--background);border-radius:var(--radius-xs)}.ingredient-edit-item .ing-name{flex:1;font-weight:500;font-size:14px}.ingredient-edit-item .ing-amount{color:var(--text-muted);font-size:13px}.remove-ing-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:#fff;border-radius:50%;font-size:16px;font-weight:700}.add-ingredient-form{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--background);border-radius:var(--radius-xs)}.add-ingredient-form input,.add-ingredient-form select{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);font-size:14px}.ingredient-row{display:flex;gap:8px}.ingredient-row input{flex:1}.ingredient-row select{width:90px}.add-ingredient-btn{padding:10px;background:var(--primary-light);color:var(--primary-dark);border-radius:var(--radius-xs);font-weight:600;font-size:14px}.form-actions{display:flex;gap:10px;margin-top:20px}.cancel-btn{flex:1;padding:14px;background:var(--background);color:var(--text);border-radius:var(--radius-sm);font-weight:600;font-size:15px}.save-btn{flex:1;padding:14px;background:var(--primary);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:15px}.section-desc{color:var(--text-muted);font-size:14px;margin-bottom:14px}.add-exclusion{display:flex;gap:8px;margin-bottom:14px}.add-exclusion input{flex:1;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);font-size:15px}.add-exclusion button{padding:12px 18px;background:var(--primary);color:#fff;border-radius:var(--radius-xs);font-weight:600;font-size:14px}.exclusions-list{display:flex;flex-wrap:wrap;gap:8px}.exclusion-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);font-size:14px}.exclusion-item button{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--text-muted);color:#fff;border-radius:50%;font-size:14px}.reset-btn{width:100%;padding:14px;background:var(--danger-light);color:var(--danger);border-radius:var(--radius-sm);font-weight:600;font-size:15px}.shopping{display:flex;flex-direction:column;gap:16px}.shopping-title{font-size:28px;font-weight:800;letter-spacing:-.5px}.date-range{display:flex;gap:10px;background:var(--surface);padding:14px;border-radius:var(--radius);box-shadow:var(--shadow)}.date-input{flex:1;display:flex;flex-direction:column;gap:4px}.date-input label{font-size:12px;color:var(--text-muted);font-weight:600}.date-input input{padding:10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--background);font-size:14px}.shopping-summary{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.shopping-summary span{font-weight:600;color:var(--text-secondary);font-size:14px}.clear-checked-btn{color:var(--primary);font-weight:600;font-size:14px}.shopping-list{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.shopping-item{display:flex;align-items:center;padding:14px 16px;gap:14px;border-bottom:1px solid var(--border);cursor:pointer}.shopping-item:last-child{border-bottom:none}.shopping-item.checked{opacity:.5}.shopping-item.checked .item-name{text-decoration:line-through}.check-circle{width:26px;height:26px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.shopping-item.checked .check-circle{background:var(--success);border-color:var(--success);color:#fff}.check-circle svg{width:14px;height:14px}.item-info{flex:1;display:flex;justify-content:space-between;align-items:center}.item-name{font-weight:500;font-size:15px}.item-amount{color:var(--text-muted);font-size:13px}.section-divider{padding:10px 16px;background:var(--background);color:var(--text-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.shopping-item.custom{background:#6366f108}.remove-custom-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:#fff;border-radius:50%;font-size:18px;flex-shrink:0}.add-custom-btn{width:100%;padding:14px;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);color:var(--primary);font-weight:600;font-size:15px}.add-custom-form{background:var(--surface);padding:16px;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}.add-custom-form input,.add-custom-form select{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--background);font-size:15px}.amount-row{display:flex;gap:8px}.amount-row input{flex:1}.amount-row select{width:100px}.form-buttons{display:flex;gap:10px;margin-top:6px}.form-buttons .cancel-btn,.form-buttons .add-btn{flex:1;padding:12px;border-radius:var(--radius-xs);font-weight:600;font-size:15px}.form-buttons .cancel-btn{background:var(--background);color:var(--text)}.form-buttons .add-btn{background:var(--primary);color:#fff}
