.app{max-width:900px;margin:0 auto;padding:30px 20px 60px}.app-header{text-align:center;margin-bottom:30px}.app-header h1{font-size:2.2rem;font-weight:800;color:#1a1a2e;margin-bottom:6px}.subtitle{color:#888;font-size:1rem}.progress-bar{position:relative;margin:0 auto 40px;max-width:500px}.progress-dots{display:flex;justify-content:space-between;position:relative;z-index:2}.progress-line{position:absolute;top:18px;left:30px;right:30px;height:4px;background:#e0e0e0;border-radius:2px;z-index:1}.progress-fill{height:100%;background:#3ba5f7;border-radius:2px;transition:width .4s ease}.progress-dot{display:flex;flex-direction:column;align-items:center;gap:6px}.dot-circle{width:36px;height:36px;border-radius:50%;background:#e0e0e0;color:#999;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;transition:all .3s}.progress-dot.active .dot-circle{background:#3ba5f7;color:#fff}.dot-label{font-size:11px;color:#aaa;font-weight:600}.progress-dot.active .dot-label{color:#3ba5f7}.step-container{background:#fff;border-radius:16px;padding:36px 32px;box-shadow:0 2px 20px #0000000f}.step-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:6px;text-align:center}.step-desc{color:#888;font-size:.9rem;text-align:center;margin-bottom:28px}.btn{padding:12px 32px;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}.btn-primary{background:#3ba5f7;color:#fff}.btn-primary:hover{background:#2890e0}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#f0f0f0;color:#555}.btn-secondary:hover{background:#e0e0e0}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#219a52}.btn-row{display:flex;justify-content:space-between;margin-top:30px;gap:12px}.goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.goal-card{padding:20px 16px;border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .2s;text-align:center}.goal-card:hover{border-color:#3ba5f7;background:#f7fbff}.goal-card.selected{border-color:#3ba5f7;background:#eef6ff}.goal-card h3{font-size:1rem;margin-bottom:4px;color:#1a1a2e}.goal-card p{font-size:.78rem;color:#999}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:#555}.field input,.field select{padding:12px 14px;border:2px solid #e8e8e8;border-radius:10px;font-size:15px;outline:none;transition:border-color .2s}.field input:focus,.field select:focus{border-color:#3ba5f7}.activity-section{margin-bottom:24px}.activity-section-title{font-size:1rem;font-weight:700;color:#1a1a2e;margin-bottom:12px}.optional-tag{font-size:.75rem;font-weight:400;color:#bbb}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.work-card{padding:16px;border:2px solid #e8e8e8;border-radius:12px;cursor:pointer;transition:all .2s;text-align:center}.work-card:hover{border-color:#3ba5f7;background:#f7fbff}.work-card.selected{border-color:#3ba5f7;background:#eef6ff}.work-card h4{font-size:.9rem;color:#1a1a2e;margin-bottom:4px}.work-card p{font-size:.72rem;color:#999}.exercise-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exercise-card{border:2px solid #e8e8e8;border-radius:12px;overflow:hidden;transition:all .2s}.exercise-card.selected{border-color:#3ba5f7;background:#f7fbff}.exercise-header{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer}.exercise-header:hover{background:#fafbfc}.exercise-icon{font-size:1.5rem;flex-shrink:0}.exercise-info h4{font-size:.82rem;color:#1a1a2e;margin-bottom:2px}.exercise-info p{font-size:.68rem;color:#999;line-height:1.3}.session-picker{padding:10px 14px 12px;background:#eef6ff;border-top:1px solid #d6e8f7;display:flex;flex-direction:column;gap:8px}.session-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.session-label{font-size:.75rem;color:#555;font-weight:600;white-space:nowrap}.session-controls{display:flex;align-items:center;gap:8px}.duration-picker{display:flex;flex-wrap:wrap;gap:4px}.duration-btn{padding:3px 8px;border:1.5px solid #d0d8e0;border-radius:6px;background:#fff;font-size:.68rem;font-weight:600;color:#666;cursor:pointer;transition:all .15s}.duration-btn:hover{border-color:#3ba5f7;color:#3ba5f7}.duration-btn.active{border-color:#3ba5f7;background:#3ba5f7;color:#fff}.session-summary{font-size:.72rem;color:#888;text-align:right;padding-top:2px;border-top:1px dashed #d6e8f7}.activity-summary{margin-top:24px;padding:20px;background:#f8f9fa;border-radius:12px}.activity-meter{margin-bottom:12px}.meter-bar{height:10px;background:#e8e8e8;border-radius:5px;overflow:hidden;margin-bottom:6px}.meter-fill{height:100%;border-radius:5px;transition:all .4s ease}.meter-labels{display:flex;justify-content:space-between;font-size:.65rem;color:#bbb}.activity-result{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.activity-badge{padding:5px 16px;border-radius:20px;color:#fff;font-weight:700;font-size:.85rem}.activity-detail{font-size:.8rem;color:#888}.food-select-actions{display:flex;align-items:center;gap:10px;margin-bottom:16px}.btn-add-all{padding:8px 18px;border:2px solid #3ba5f7;border-radius:8px;background:#eef6ff;color:#3ba5f7;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}.btn-add-all:hover{background:#3ba5f7;color:#fff}.btn-clear-all{padding:8px 18px;border:2px solid #e74c3c;border-radius:8px;background:#fff;color:#e74c3c;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}.btn-clear-all:hover{background:#e74c3c;color:#fff}.btn-clear-all:disabled{border-color:#ddd;color:#ccc;cursor:not-allowed;background:#fff}.food-count{font-size:.8rem;color:#999;font-weight:600;margin-left:auto}.btn-regenerate{padding:12px 32px;border:2px solid #f5a623;border-radius:10px;background:#fff8ee;color:#c57d15;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}.btn-regenerate:hover{background:#f5a623;color:#fff}.food-select-layout{display:flex;gap:24px;min-height:400px}.food-shelf{flex:1}.food-shelf h3{font-size:1rem;margin-bottom:12px;color:#1a1a2e}.food-shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;max-height:500px;overflow-y:auto;padding-right:6px}.food-mini-card{border:2px solid #e8e8e8;border-radius:10px;padding:10px 8px 8px;text-align:center;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;position:relative}.food-mini-card:hover{border-color:#3ba5f7;transform:translateY(-2px)}.food-mini-card.selected{border-color:#3ba5f7;background:#eef6ff}.food-mini-card.must-have{border-color:#e74c3c;background:#fff5f5;box-shadow:0 0 0 2px #e74c3c26}.must-have-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:50%;background:#ffffffe6;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ccc;transition:all .15s;z-index:2;padding:0;line-height:1}.must-have-btn:hover:not(:disabled){color:#e74c3c;background:#fff;transform:scale(1.15)}.must-have-btn.active{color:#e74c3c;background:#fff}.must-have-btn:disabled{opacity:.3;cursor:not-allowed}.must-have-info{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff5f5;border:1px solid #ffcdd2;border-radius:8px;margin-bottom:14px;font-size:.78rem;color:#555}.must-have-heart{font-size:1.1rem;color:#e74c3c;flex-shrink:0}.must-have-counter{display:inline-block;margin-left:8px;padding:1px 8px;background:#e74c3c;color:#fff;border-radius:10px;font-size:.68rem;font-weight:700}.tummy-item.tummy-must-have{border-color:#e74c3c;background:#fff5f5}.tummy-heart{color:#e74c3c;font-size:.7rem;flex-shrink:0}.food-mini-card img{width:60px;height:60px;object-fit:contain;display:block;margin:0 auto 6px}.food-mini-card .food-mini-name{font-size:.7rem;font-weight:700;color:#333;line-height:1.2}.food-mini-card .food-mini-kcal{font-size:.65rem;color:#999;margin-top:2px}.tummy-zone{width:260px;min-width:260px;background:#fafbfc;border:3px dashed #d0d0d0;border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:center;transition:all .3s}.tummy-zone.drag-over{border-color:#3ba5f7;background:#eef6ff}.tummy-icon{font-size:3rem;margin-bottom:8px}.tummy-zone h3{font-size:.9rem;color:#888;margin-bottom:4px}.tummy-zone p{font-size:.75rem;color:#bbb;margin-bottom:12px}.tummy-items{width:100%;display:flex;flex-direction:column;gap:6px;max-height:350px;overflow-y:auto}.tummy-item{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:600}.tummy-item img{width:30px;height:30px;object-fit:contain}.tummy-item .remove-btn{margin-left:auto;background:none;border:none;color:#e74c3c;cursor:pointer;font-size:1rem;padding:0 4px}.food-category-label{grid-column:1 / -1;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:8px 0 2px}.cat-protein{color:#3ba5f7}.cat-carb{color:#f5a623}.cat-fat{color:#e74c3c}.plan-header{text-align:center;margin-bottom:20px}.plan-deficit-label{margin-top:8px;font-size:.82rem;color:#888;background:#f8f9fa;display:inline-block;padding:6px 16px;border-radius:20px}.plan-comparison{background:linear-gradient(135deg,#f8faf8,#f0faf0);border:2px solid #c8e6c9;border-radius:14px;padding:20px 24px;margin-bottom:24px}.plan-guidance-mini{font-size:.75rem;color:#888;text-align:center;margin-top:10px;line-height:1.5}.fiber-tip-inline{color:#27ae60;font-weight:600}.recalc-toggle{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;padding-top:10px;border-top:1px dashed #ddd;font-size:.75rem;position:relative;flex-wrap:wrap}.recalc-toggle-label{display:flex;align-items:center;gap:6px;cursor:pointer}.recalc-toggle input[type=checkbox]{accent-color:#3ba5f7;width:16px;height:16px;cursor:pointer}.recalc-label{color:#666;font-weight:600}.recalc-hint{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#3ba5f7;color:#fff;font-size:.7rem;font-weight:800;cursor:pointer;flex-shrink:0;transition:transform .15s;-webkit-user-select:none;user-select:none}.recalc-hint:hover{transform:scale(1.15)}.recalc-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;padding:10px 14px;border-radius:8px;font-size:.72rem;font-weight:400;line-height:1.5;max-width:320px;width:max-content;box-shadow:0 4px 16px #0003;z-index:100;text-align:left}.recalc-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1a1a2e}.plan-food-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.plan-food-header h3{font-size:1.05rem;color:#1a1a2e;margin:0}.plan-food-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:24px}.plan-food-card{background:#fafbfc;border:1px solid #e8e8e8;border-radius:10px;padding:12px 10px;text-align:center;position:relative}.plan-food-qty{position:absolute;top:8px;right:8px;background:#3ba5f7;color:#fff;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:10px}.plan-food-card img{width:60px;height:60px;object-fit:contain;display:block;margin:0 auto 6px}.plan-food-card .plan-food-name{font-size:.75rem;font-weight:700;color:#333}.plan-food-card .plan-food-serving{font-size:.65rem;color:#999}.plan-food-card .plan-food-kcal{font-size:.75rem;font-weight:700;color:#3ba5f7;margin-top:4px}.plan-food-card .plan-food-macro{font-size:.6rem;color:#999;margin-top:2px}.plan-sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #e8e8e8;margin:0 -32px -36px;padding:14px 32px;display:flex;gap:12px;justify-content:center;z-index:10;box-shadow:0 -4px 12px #0000000d;border-radius:0 0 16px 16px}.meal-split-controls{display:flex;justify-content:center;gap:8px;margin:0 0 16px;flex-wrap:wrap;align-items:center}.meal-split-label{font-size:.8rem;color:#888;margin-right:4px}.meal-split-btn{padding:8px 16px;border-radius:8px;border:2px solid #d0d0d0;background:#fff;color:#555;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s}.meal-split-btn.active{border-color:#2d8a4e;background:#2d8a4e;color:#fff}.meal-split-btn.shuffle{border-color:#f5a623;background:#fff8ee;color:#c57d15}.meal-split-btn.reset{border-color:#ddd;background:#fff;color:#999}.fiber-note{margin-top:8px;font-size:.72rem;color:#27ae60;font-style:italic}.customise-layout{max-width:1100px;margin:0 auto;padding:30px 20px}.customise-header{text-align:center;margin-bottom:24px}.customise-header h1{font-size:1.8rem;font-weight:800;color:#1a1a2e}.customise-body{display:flex;gap:24px}.customise-sidebar{width:280px;min-width:280px}.customise-main{flex:1}.customise-targets{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d;margin-bottom:16px;position:sticky;top:20px}.customise-targets h3{font-size:1rem;margin-bottom:12px;color:#1a1a2e}.target-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.85rem;border-bottom:1px solid #f0f0f0}.target-row:last-child{border-bottom:none}.target-row .target-label{color:#888}.target-row .target-val{font-weight:700;color:#333}.target-row .over{color:#e74c3c}.target-row .under{color:#f5a623}.target-row .good{color:#27ae60}.warnings-box{margin-top:12px}.warning-item{padding:8px 12px;border-radius:8px;font-size:.78rem;font-weight:600;margin-bottom:6px}.warning-item.error{background:#ffeeed;color:#e74c3c}.warning-item.warn{background:#fff8ee;color:#c57d15}.customise-food-grid{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d}.customise-food-grid h3{font-size:1rem;margin-bottom:16px;color:#1a1a2e}.customise-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.customise-item{background:#fafbfc;border:1px solid #e8e8e8;border-radius:10px;padding:10px 8px;text-align:center;position:relative}.customise-item img{width:50px;height:50px;object-fit:contain}.customise-item .ci-name{font-size:.7rem;font-weight:700;margin:4px 0 2px}.customise-item .ci-kcal{font-size:.65rem;color:#999}.qty-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}.qty-btn{width:26px;height:26px;border:2px solid #e0e0e0;border-radius:6px;background:#fff;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#555}.qty-btn:hover{border-color:#3ba5f7;color:#3ba5f7}.qty-val{font-size:.85rem;font-weight:800;min-width:20px;text-align:center}.add-food-section{margin-top:20px;padding-top:20px;border-top:2px dashed #e8e8e8}.add-food-section h4{font-size:.9rem;color:#888;margin-bottom:12px}.add-food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.add-food-btn{border:2px dashed #d0d0d0;border-radius:10px;padding:8px;text-align:center;cursor:pointer;transition:all .2s;background:#fff}.add-food-btn:hover{border-color:#3ba5f7;background:#eef6ff}.add-food-btn img{width:40px;height:40px;object-fit:contain}.add-food-btn .af-name{font-size:.6rem;font-weight:600;color:#888;margin-top:4px}.customise-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.print-page{max-width:900px;margin:0 auto;padding:30px 20px}.print-header{text-align:center;margin-bottom:24px}.print-header h1{font-size:1.8rem;font-weight:800;color:#1a1a2e;margin-bottom:4px}.print-header p{color:#888;font-size:.85rem}.print-section-box{border-radius:14px;padding:20px 24px;margin-bottom:8px;text-align:center}.print-section-box.target-box{background:linear-gradient(135deg,#f7fbff,#f0f7ff);border:2px solid #d6e8f7}.print-section-box.totals-box{background:linear-gradient(135deg,#f8faf8,#f0faf0);border:2px solid #c8e6c9;margin-top:24px}.print-section-label{font-size:.9rem;font-weight:700;color:#1a1a2e;margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px}.print-section-sub{font-size:.72rem;font-weight:400;color:#999;text-transform:none;letter-spacing:0}.print-targets-row{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:nowrap}.print-target-item{padding:8px 16px;text-align:center;min-width:80px}.pt-divider{width:1px;height:36px;background:#d0d8e0;flex-shrink:0}.pt-value{display:block;font-size:1.5rem;font-weight:800;color:#1a1a2e}.pt-label{display:block;font-size:.65rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.print-target-item.highlight .pt-value{color:#27ae60}.print-target-item.protein .pt-value{color:#3ba5f7}.print-target-item.carbs .pt-value{color:#f5a623}.print-target-item.fat .pt-value{color:#e74c3c}.print-target-item.fiber .pt-value{color:#27ae60}.print-target-item.fiber-low .pt-value,.print-target-item.fiber-low .pt-label{color:#e74c3c}.print-food-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;margin-bottom:8px}.print-food-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:12px 8px;text-align:center}.print-food-card img{width:60px;height:60px;object-fit:contain;display:block;margin:0 auto 4px}.print-food-card .pf-name{font-size:.75rem;font-weight:700;color:#333}.print-food-card .pf-serving{font-size:.65rem;color:#999}.print-food-card .pf-macros{font-size:.6rem;color:#777;margin-top:4px}.comparison-table{width:100%;max-width:500px;margin:0 auto 16px;border-collapse:collapse;font-size:.85rem}.comparison-table th{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#999;padding:6px 12px 8px;border-bottom:2px solid #ddd;text-align:center}.comparison-table th:first-child{text-align:left}.comparison-table td{padding:8px 12px;border-bottom:1px solid #eee;text-align:center}.comparison-table tr:last-child td{border-bottom:none}.ct-label{text-align:left!important;font-weight:700;color:#555}.ct-target{color:#888}.ct-actual{font-weight:700;color:#1a1a2e}.ct-actual.good{color:#27ae60}.ct-actual.low{color:#e74c3c}.diff-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:700}.diff-badge.good{background:#eafaf1;color:#27ae60}.diff-badge.over{background:#ffeeed;color:#e74c3c}.diff-badge.under{background:#fff8ee;color:#c57d15}.plan-guidance{margin-top:16px;padding:14px 18px;background:#fff;border-radius:10px;border:1px solid #e0e0e0;text-align:left}.plan-guidance p{font-size:.78rem;color:#666;line-height:1.6;margin:0}.plan-guidance .fiber-tip{margin-top:10px;padding-top:10px;border-top:1px dashed #ddd;color:#27ae60}.print-btn-row{display:flex;gap:12px;justify-content:center;margin-top:24px}.print-disclaimer{margin-top:24px;font-size:.7rem;color:#bbb;text-align:center;line-height:1.5}.print-macro-row{display:flex;justify-content:center;align-items:center;gap:0;flex-wrap:nowrap}.print-macro-item{padding:6px 14px;text-align:center;min-width:70px}.print-macro-val{display:block;font-size:1.4rem;font-weight:800}.print-macro-label{display:block;font-size:.6rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.print-macro-divider{width:1px;height:32px;background:#d0d8e0;flex-shrink:0}.resume-btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.resume-btn{padding:14px 36px;font-size:1rem;white-space:nowrap}@media print{.print-btn-row,.no-print{display:none!important}.print-page{padding:0}.print-food-card{break-inside:avoid}}.family-members-list{display:flex;flex-direction:column;gap:12px;max-width:500px;margin:0 auto}.family-member-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fafbfc;border:2px solid #e8e8e8;border-radius:12px}.member-avatar{width:42px;height:42px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;flex-shrink:0}.member-name-input{flex:1;padding:10px 14px;border:2px solid #e8e8e8;border-radius:10px;font-size:15px;outline:none;transition:border-color .2s}.member-name-input:focus{border-color:#3ba5f7}.member-remove-btn{padding:6px 14px!important;font-size:12px!important}.member-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:2px solid #e8e8e8;overflow-x:auto}.member-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;background:none;cursor:pointer;font-size:.85rem;font-weight:600;color:#888;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap}.member-tab:hover{color:#555;background:#fafbfc}.member-tab.active{color:#1a1a2e}.member-tab-avatar{width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.7rem;flex-shrink:0}.member-tab-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.member-tab-check{color:#27ae60;font-weight:800;font-size:1rem}.member-setup-panel{display:flex;flex-direction:column;gap:28px}.member-section{padding-bottom:20px;border-bottom:1px solid #f0f0f0}.member-section:last-child{border-bottom:none}.family-grocery-section{background:#fffbf0;border:2px solid #f5d89a;border-radius:14px;padding:20px 24px;margin-bottom:24px}.family-grocery-title{text-align:center;font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:4px}.family-grocery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.family-grocery-item{background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:10px 8px;text-align:center}.family-grocery-item img{width:50px;height:50px;object-fit:contain;display:block;margin:0 auto 4px}.family-grocery-name{font-size:.72rem;font-weight:700;color:#333}.family-grocery-qty{font-size:.8rem;font-weight:800;color:#f5a623}.family-grocery-serving{font-size:.6rem;color:#999}.family-member-plan{border:2px solid #e8e8e8;border-radius:12px;margin-bottom:14px;overflow:hidden}.family-member-plan-header{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;background:#fafbfc;border-left:4px solid;transition:background .2s}.family-member-plan-header:hover{background:#f0f4f8}.family-member-plan-info{flex:1;display:flex;flex-direction:column;gap:2px}.family-expand-icon{font-size:.8rem;color:#999}.family-member-plan-body{padding:18px;border-top:1px solid #e8e8e8}.knowmeal-register-prompt{background:linear-gradient(135deg,#f7fbff,#eef6ff);border:2px solid #3ba5f7;border-radius:14px;padding:24px;text-align:center;margin:16px 0}.knowmeal-register-prompt h3{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:8px}.knowmeal-register-prompt p{font-size:.85rem;color:#888;margin-bottom:16px}.knowmeal-register-prompt input[type=email]{padding:12px 16px;border:2px solid #e8e8e8;border-radius:10px;font-size:15px;width:280px;max-width:100%;outline:none;margin-right:8px}.knowmeal-register-prompt input[type=email]:focus{border-color:#3ba5f7}.knowmeal-register-error{color:#e74c3c;font-size:.8rem;margin-top:8px}.knowmeal-register-success{color:#27ae60;font-size:.85rem;margin-top:8px;font-weight:600}.knowmeal-upgrade-prompt{background:linear-gradient(135deg,#fffbf0,#fff8ee);border:2px solid #f5a623;border-radius:14px;padding:20px;text-align:center;margin:12px 0}.knowmeal-upgrade-prompt h3{font-size:1rem;font-weight:700;color:#c57d15;margin-bottom:6px}.knowmeal-upgrade-prompt p{font-size:.82rem;color:#888;margin-bottom:12px}.pt-dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.pt-dashboard-header .step-title{margin-bottom:2px}.pt-empty-state{text-align:center;padding:48px 20px;color:#888}.pt-empty-icon{font-size:4rem;margin-bottom:12px}.pt-empty-state h3{font-size:1.2rem;font-weight:700;color:#1a1a2e;margin-bottom:8px}.pt-empty-state p{font-size:.9rem;color:#999}.pt-client-list{display:flex;flex-direction:column;gap:12px}.pt-client-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#fafbfc;border:2px solid #e8e8e8;border-radius:12px;transition:border-color .2s}.pt-client-card:hover{border-color:#3ba5f7}.pt-client-avatar{width:48px;height:48px;border-radius:50%;background:#3ba5f7;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;flex-shrink:0}.pt-client-info{flex:1;min-width:0}.pt-client-name{font-size:1rem;font-weight:700;color:#1a1a2e;margin-bottom:2px}.pt-client-email{font-size:.78rem;color:#888;margin-bottom:4px}.pt-client-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.72rem;color:#999}.pt-client-meta span{background:#f0f0f0;padding:2px 8px;border-radius:6px}.pt-client-goal{background:#eef6ff!important;color:#3ba5f7!important;font-weight:600}.pt-client-has-plan{background:#eafaf1!important;color:#27ae60!important;font-weight:600}.pt-client-notes{font-size:.72rem;color:#aaa;margin-top:4px;font-style:italic}.pt-client-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}.pt-confirm-delete{display:flex;align-items:center;gap:4px}.btn-sm{padding:6px 14px!important;font-size:12px!important;border-radius:8px!important}.meal-slot-drag-over{outline:3px dashed #3ba5f7!important;outline-offset:-3px;background:#eef6ff!important}.meal-food-dragging{opacity:.35}.draggable-meal-food{cursor:grab}.draggable-meal-food:active{cursor:grabbing}@media(max-width:768px){.food-select-layout{flex-direction:column}.tummy-zone{width:100%;min-width:auto}.form-grid,.work-grid,.exercise-grid{grid-template-columns:1fr}.customise-body{flex-direction:column}.customise-sidebar{width:100%;min-width:auto}.customise-targets{position:static}.goal-grid{grid-template-columns:1fr 1fr}.print-targets-row{flex-wrap:wrap;gap:4px}.print-target-item{min-width:60px;padding:6px 10px}.pt-value{font-size:1.2rem}.pt-divider{height:24px}.member-tabs{gap:2px}.member-tab{padding:8px 10px;font-size:.78rem}.family-grocery-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.pt-client-card{flex-direction:column;align-items:flex-start;gap:12px}.pt-client-actions{width:100%;justify-content:flex-start}.pt-dashboard-header{flex-direction:column;gap:12px}.app{padding:16px 12px 80px}.app-header h1{font-size:1.5rem}.step-container{padding:20px 16px;border-radius:12px}.plan-sticky-actions{margin:0 -16px -20px;padding:10px 12px;gap:8px;flex-wrap:wrap}.plan-sticky-actions .btn{padding:10px 16px;font-size:13px;flex:1;min-width:0;white-space:nowrap}.btn{padding:10px 20px;font-size:13px}.btn-row{flex-wrap:wrap}.btn-row .btn{flex:1;min-width:0;white-space:nowrap}.comparison-table{font-size:.75rem}.comparison-table th,.comparison-table td{padding:6px 8px}.plan-comparison{padding:14px 12px}.plan-food-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.plan-food-card{padding:8px 6px}.plan-food-card img{width:45px;height:45px}.plan-food-card .plan-food-name{font-size:.65rem}.plan-food-card .plan-food-serving{font-size:.55rem}.food-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px}.food-mini-card{padding:8px 4px 6px}.food-mini-card img{width:45px;height:45px}.food-mini-card .food-mini-name{font-size:.6rem}.food-mini-card .food-mini-kcal{font-size:.55rem}.food-select-actions{flex-wrap:wrap;gap:6px}.must-have-info{font-size:.72rem;padding:8px 10px}.draggable-meal-section{gap:12px}.progress-dots{gap:0}.dot-circle{width:30px;height:30px;font-size:12px}.dot-label{font-size:9px}.progress-line{top:14px;left:20px;right:20px}.recalc-toggle{font-size:.7rem}.recalc-tooltip{max-width:260px;font-size:.68rem;left:50%;transform:translate(-50%)}.plan-deficit-label{font-size:.72rem;padding:5px 12px}.plan-food-header{flex-direction:column;gap:8px;align-items:flex-start}.btn-regenerate{padding:8px 16px;font-size:13px}.print-food-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.knowmeal-register-prompt{padding:20px 16px}.knowmeal-register-prompt h3{font-size:1.1rem}.goal-grid{grid-template-columns:1fr}.meal-split-controls{gap:6px}.meal-split-label{width:100%;text-align:center;margin:0 0 2px;font-size:.75rem}.meal-split-btn{padding:6px 12px;font-size:.75rem;flex:1;min-width:0}.print-macro-row{flex-wrap:wrap;gap:2px}.print-macro-item{min-width:50px;padding:4px 8px}.print-macro-val{font-size:1rem}.print-macro-label{font-size:.5rem}.print-macro-divider{height:22px}.resume-btn-row{flex-direction:column;align-items:stretch;gap:10px;padding:0 12px}.resume-btn{padding:12px 20px;font-size:.9rem;text-align:center}.plan-food-list{grid-template-columns:repeat(3,1fr);gap:6px}.plan-food-card .plan-food-kcal{font-size:.65rem}.plan-food-card .plan-food-macro{font-size:.5rem}.plan-food-qty{font-size:.6rem;padding:1px 6px;top:4px;right:4px}}#knowmeal-root{max-width:100%;margin:0 auto}#knowmeal-root *,#knowmeal-root *:before,#knowmeal-root *:after{box-sizing:border-box}#knowmeal-root{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:#333;line-height:1.5}.knowmeal-loading{text-align:center;padding:60px 20px;color:#888;font-size:1rem}
