.health-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:2rem 1rem}.health-container{margin:0 auto;max-width:1400px}.health-header{color:#fff;margin-bottom:2rem;text-align:center}.health-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.health-header p{font-size:1.1rem;opacity:.9}.error-banner{background-color:#ff6b6b;border-radius:8px;color:#fff;margin-bottom:1rem;padding:1rem;text-align:center}.health-content{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:400px 1fr}.calendar-section{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;padding:1.5rem}.month-calendar{margin-bottom:1.5rem}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.calendar-title{align-items:center;display:flex;flex-direction:column;gap:.5rem}.calendar-title h3{color:#333;font-size:1.3rem;margin:0}.nav-button{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;transition:all .3s ease;width:36px}.nav-button:hover:not(:disabled){background:#764ba2;transform:scale(1.1)}.nav-button:disabled{background:#ccc;cursor:not-allowed}.today-button{background:#48bb78;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.4rem 1rem;transition:all .3s ease}.today-button:hover{background:#38a169}.calendar-weekdays{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem}.weekday{color:#666;font-size:.85rem;font-weight:600;padding:.5rem;text-align:center}.calendar-grid{grid-gap:5px;display:grid;gap:5px;grid-template-columns:repeat(7,1fr)}.calendar-day{align-items:center;aspect-ratio:1;background:#f7fafc;border:2px solid #0000;border-radius:8px;display:flex;flex-direction:column;justify-content:center;position:relative;transition:all .2s ease}.calendar-day.empty{background:#0000;cursor:default}.calendar-day:not(.empty):not(.future){cursor:pointer}.calendar-day:not(.empty):not(.future):hover{background:#e6fffa;transform:scale(1.05)}.calendar-day.today{background:#bee3f8;border-color:#3182ce}.calendar-day.selected{background:#667eea;border-color:#764ba2;color:#fff}.calendar-day.future{background:#f9f9f9;color:#ccc;cursor:not-allowed}.calendar-day.has-logs{background:#c6f6d5}.calendar-day.selected.has-logs{background:#48bb78}.day-number{font-size:.95rem;font-weight:600}.log-indicator{bottom:2px;color:#38a169;font-size:.6rem;position:absolute}.calendar-day.selected .log-indicator{color:#fff}.calendar-legend{border-top:1px solid #eee;display:flex;gap:1rem;justify-content:center;margin-top:1rem;padding-top:1rem}.legend-item{color:#666;gap:.5rem}.legend-dot{border-radius:50%;height:12px;width:12px}.legend-dot.today-legend{background:#bee3f8;border:2px solid #3182ce}.legend-dot.has-logs-legend{background:#c6f6d5}.action-buttons{margin-top:1rem}.btn-add-entry,.btn-cancel-add{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem;transition:all .3s ease;width:100%}.btn-add-entry{background:#48bb78;color:#fff}.btn-add-entry:hover:not(:disabled){background:#38a169;box-shadow:0 4px 12px #48bb7866;transform:translateY(-2px)}.btn-add-entry:disabled{background:#ccc;cursor:not-allowed}.btn-cancel-add{background:#fc8181;color:#fff}.btn-cancel-add:hover{background:#f56565}.food-entry-form{background:#f7fafc;border-radius:8px;margin-top:1rem;padding:1.5rem}.food-entry-form h3{color:#333;margin-bottom:1rem;margin-top:0}.form-group{margin-bottom:1rem}.form-group label{font-size:.9rem;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group textarea{border:2px solid #e2e8f0;border-radius:6px;font-size:.95rem;padding:.6rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.form-group input.error{border-color:#fc8181}.error-text{color:#e53e3e;display:block;font-size:.85rem;margin-top:.25rem}.nutrition-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.form-actions{gap:1rem;margin-top:1.5rem}.btn-cancel,.btn-submit{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem;transition:all .3s ease}.btn-cancel{background:#e2e8f0;color:#4a5568}.btn-cancel:hover{background:#cbd5e0}.btn-submit{background:#667eea;color:#fff}.btn-submit:hover{background:#764ba2;box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.summary-section{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;padding:2rem}.daily-summary{min-height:400px}.summary-header{margin-bottom:2rem}.summary-header h2{color:#333;margin:0 0 .5rem}.summary-date{color:#666;font-size:1.1rem;margin:0}.no-entries{color:#999;padding:3rem 1rem;text-align:center}.no-entries p{font-size:1.1rem;margin:.5rem 0}.totals-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:2rem;padding:1.5rem}.totals-card h3{font-size:1.3rem;margin-bottom:1rem;margin-top:0}.totals-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.total-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:8px;padding:1rem;text-align:center}.total-value{font-size:1.8rem;font-weight:700;margin-bottom:.25rem}.total-label{font-size:.9rem;opacity:.9}.entries-list h3{color:#333;margin-bottom:1rem}.entry-card{background:#f7fafc;border-left:4px solid #667eea;border-radius:8px;margin-bottom:1rem;padding:1rem;transition:all .3s ease}.entry-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.entry-header{align-items:start;display:flex;justify-content:space-between;margin-bottom:.75rem}.entry-header h4{color:#333;font-size:1.1rem;margin:0}.entry-actions{display:flex;gap:.5rem}.btn-delete-entry{background:#fc8181;border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:.4rem .6rem;transition:all .3s ease}.btn-delete-entry:hover{background:#f56565;transform:scale(1.1)}.entry-nutrition{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.nutrition-badge{border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:.3rem .8rem}.nutrition-badge.calories{background:#f6ad55}.nutrition-badge.protein{background:#fc8181}.nutrition-badge.carbs{background:#90cdf4}.nutrition-badge.fat{background:#fbb6ce}.nutrition-badge.fiber{background:#9ae6b4}.entry-notes{background:#fff;border-radius:4px;font-style:italic;margin-bottom:.5rem;padding:.5rem}.entry-time{color:#999;font-size:.85rem}.loading-spinner{color:#999;font-size:1.2rem;padding:3rem;text-align:center}.choice-modal-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.choice-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:480px;padding:2rem;text-align:center;width:90%}.choice-modal h3{color:#333;font-size:1.5rem;margin:0 0 .4rem}.choice-modal>p{color:#666;margin:0 0 1.5rem}.choice-options{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1.25rem}.choice-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:.4rem;padding:1.4rem 1rem;transition:all .2s ease}.choice-btn:hover{box-shadow:0 6px 16px #667eea33;transform:translateY(-2px)}.choice-btn.manual-choice:hover{background:#f0f4ff;border-color:#667eea}.choice-btn.recipe-choice:hover{background:#f0fff4;border-color:#48bb78}.choice-icon{font-size:2rem}.choice-title{color:#333;font-size:1rem;font-weight:700}.choice-desc{color:#888;font-size:.78rem;line-height:1.3}.choice-cancel-btn{background:#e2e8f0;border:none;border-radius:6px;color:#4a5568;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 2rem;transition:background .2s}.choice-cancel-btn:hover{background:#cbd5e0}.recipe-food-entry .recipe-search-input{border:2px solid #e2e8f0;border-radius:6px;box-sizing:border-box;font-size:.95rem;padding:.6rem;transition:border-color .3s;width:100%}.recipe-food-entry .recipe-search-input:focus{border-color:#667eea;outline:none}.recipe-scroll-list{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;max-height:200px;overflow-y:auto}.recipe-list-item{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;gap:.75rem;padding:.6rem .75rem;transition:background .15s}.recipe-list-item:last-child{border-bottom:none}.recipe-list-item:hover{background:#f0f4ff}.recipe-list-item.selected{background:#ebf4ff;border-left:3px solid #667eea}.recipe-list-thumb{border-radius:6px;flex-shrink:0;height:40px;object-fit:cover;width:40px}.recipe-list-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.recipe-list-title{color:#333;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-list-meta{color:#888;font-size:.78rem;text-transform:capitalize}.recipe-selected-tick{color:#667eea;flex-shrink:0;font-size:1.1rem;font-weight:700}.recipe-list-status{color:#999;font-size:.9rem;margin:0;padding:1.5rem;text-align:center}.recipe-servings-section{background:#f7fafc;border-radius:8px;margin-bottom:1rem;padding:.9rem 1rem}.servings-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.servings-row label{color:#555;font-size:.9rem;font-weight:600}.servings-control{align-items:center;display:flex;gap:.75rem}.servings-control button{align-items:center;background:#fff;border:2px solid #667eea;border-radius:50%;color:#667eea;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:28px;justify-content:center;line-height:1;transition:all .2s;width:28px}.servings-control button:hover{background:#667eea;color:#fff}.servings-input{-moz-appearance:textfield;border:2px solid #e2e8f0;border-radius:6px;color:#333;font-size:1.1rem;font-weight:700;padding:.2rem .3rem;text-align:center;width:64px}.servings-input:focus{border-color:#667eea;outline:none}.servings-input::-webkit-inner-spin-button,.servings-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.nutrition-status{color:#999;font-size:.85rem;margin:.25rem 0;text-align:center}.nutrition-status.error{color:#e53e3e}.nutrition-status.warning{color:#d69e2e;text-align:left}.nutrition-preview{margin-top:.5rem}.nutrition-preview-label{color:#555;font-size:.85rem;font-weight:600;margin:0 0 .5rem}@media (max-width:1024px){.health-content{grid-template-columns:1fr}.calendar-section{margin:0 auto;max-width:500px}}@media (max-width:768px){.health-header h1{font-size:2rem}.totals-grid{grid-template-columns:repeat(2,1fr)}.nutrition-grid{grid-template-columns:1fr}}.fitness-page{background:linear-gradient(135deg,#11998e,#38ef7d);min-height:100vh;padding:2rem 1rem}.fitness-container{margin:0 auto;max-width:1400px}.fitness-header{color:#fff;margin-bottom:2rem;text-align:center}.fitness-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.fitness-header p{font-size:1.1rem;opacity:.9}.fitness-content{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:400px 1fr}.fitness-left,.fitness-right{display:flex;flex-direction:column;gap:1.5rem}.fitness-card{background:#fff;border-radius:12px;box-shadow:0 10px 30px #00000026;padding:1.5rem}.fitness-loading{color:#aaa;font-size:.95rem;padding:1rem 0;text-align:center}.steps-panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.steps-panel-header h3{color:#333;font-size:1.1rem;margin:0}.btn-delete-steps{background:#fc8181;border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:.35rem .55rem;transition:all .2s}.btn-delete-steps:hover{background:#f56565;transform:scale(1.1)}.steps-form{display:flex;flex-direction:column}.steps-input-row{align-items:center;display:flex;gap:.75rem;overflow:hidden;width:100%}.steps-number-input{-moz-appearance:textfield;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#333;flex:1 1;font-size:2rem;font-weight:700;min-width:0;padding:.5rem;text-align:center;transition:border-color .2s;width:0}.steps-number-input::-webkit-inner-spin-button,.steps-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.steps-number-input:focus{border-color:#11998e;outline:none}.steps-input-label{color:#666;font-size:1.2rem;font-weight:600}.weight-input-row{align-items:center;display:flex;gap:.75rem;margin-top:.75rem;overflow:hidden;width:100%}.weight-number-input{-moz-appearance:textfield;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#333;flex:1 1;font-size:1.5rem;font-weight:700;min-width:0;padding:.4rem .5rem;text-align:center;transition:border-color .2s;width:0}.weight-number-input::-webkit-inner-spin-button,.weight-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.weight-number-input:focus{border-color:#11998e;outline:none}.weight-card{text-align:center}.weight-display{align-items:baseline;display:flex;gap:.4rem;justify-content:center;margin-top:.5rem}.weight-display-val{color:#11998e;font-size:2.5rem;font-weight:700}.weight-display-unit{color:#666;font-size:1.2rem;font-weight:600}.weight-display-empty{color:#aaa;font-size:.9rem;margin-top:.5rem}.btn-save-steps{background:#11998e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:1rem;padding:.75rem;transition:all .3s ease;width:100%}.btn-save-steps:hover:not(:disabled){background:#0d7a72;box-shadow:0 4px 12px #11998e66;transform:translateY(-2px)}.btn-save-steps.unsaved{background:#38ef7d;color:#1a3a2a}.btn-save-steps.unsaved:hover:not(:disabled){background:#2dd46e}.btn-save-steps:disabled{background:#ccc;cursor:not-allowed}.steps-overview-card h3{color:#555;font-size:1.1rem;font-weight:600;margin:0 0 1.25rem}.steps-ring-wrap{height:180px;margin:0 auto 1rem;position:relative;width:180px}.steps-ring{height:100%;transform:rotate(-90deg);width:100%}.ring-bg{fill:none;stroke:#e8f5f3;stroke-width:10}.ring-fill{fill:none;stroke:#11998e;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.steps-ring-label{align-items:center;display:flex;flex-direction:column;gap:2px;inset:0;justify-content:center;position:absolute}.steps-big{color:#11998e;font-size:1.9rem;font-weight:700;line-height:1}.steps-unit{color:#888;font-size:.85rem}.steps-goal{color:#aaa;font-size:.78rem}.steps-pct-bar{background:#e8f5f3;border-radius:4px;height:8px;margin-bottom:.4rem;overflow:hidden}.steps-pct-fill{background:linear-gradient(90deg,#11998e,#38ef7d);border-radius:4px;height:100%;transition:width .6s ease}.steps-pct-label{color:#666;font-size:.88rem;margin:0;text-align:center}.calories-card h3{color:#555;font-size:1.1rem;font-weight:600;margin:0 0 1.25rem}.cal-row{align-items:stretch;display:flex;gap:0;margin-bottom:1.25rem}.cal-item{align-items:center;border-radius:10px;display:flex;flex:1 1;flex-direction:column;gap:.2rem;padding:.75rem .5rem}.cal-item.burnt{background:linear-gradient(135deg,#fff5eb,#ffecd2)}.cal-item.consumed{background:linear-gradient(135deg,#ebf8ff,#e6fffa)}.cal-divider{background:#e2e8f0;margin:.5rem .75rem;width:1px}.cal-icon{font-size:1.5rem}.cal-val{color:#333;font-size:1.7rem;font-weight:700;line-height:1.1}.cal-item.burnt .cal-val{color:#e67e22}.cal-item.consumed .cal-val{color:#2980b9}.cal-lbl{color:#666;font-size:.82rem;font-weight:600}.cal-note{color:#aaa;font-size:.75rem}.cal-breakdown{color:#b07540;flex-direction:column;font-size:.72rem;gap:1px;margin-top:2px}.cal-balance,.cal-breakdown{align-items:center;display:flex}.cal-balance{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;padding:.65rem .9rem}.cal-balance-label{color:#666;font-size:.88rem;font-weight:600}.cal-balance-val{font-size:1rem;font-weight:700}.cal-balance-val.surplus{color:#e67e22}.cal-balance-val.deficit{color:#27ae60}.cal-profile-hint{color:#999;font-size:.78rem;margin:.75rem 0 0;text-align:center}.cal-profile-hint a{color:#11998e;text-decoration:underline}.activity-panel{display:flex;flex-direction:column;gap:.75rem}.activity-panel-header{align-items:center;display:flex;justify-content:space-between}.activity-panel-title{color:#333;font-size:1.1rem;font-weight:600;margin:0}.btn-add-activity{background:#11998e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.82rem;font-weight:600;padding:.3rem .75rem;transition:background .2s}.btn-add-activity:hover:not(:disabled){background:#0d7a72}.btn-add-activity:disabled{background:#ccc;cursor:not-allowed}.activity-profile-warning{background:#fff5f5;border:1px solid #fed7d7;border-radius:7px;color:#e53e3e;font-size:.82rem;margin:0;padding:.5rem .75rem}.activity-profile-warning a{color:#c53030;font-weight:600;text-decoration:underline}.activity-form{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:.6rem;padding:.9rem}.activity-form-row{display:flex;flex-wrap:wrap;gap:.75rem}.activity-form-group{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:140px}.activity-form-group--sm{flex:0 0 110px;min-width:90px}.activity-label{color:#555;font-size:.78rem;font-weight:600}.activity-duration-input,.activity-notes-input,.activity-select{background:#fff;border:1.5px solid #e2e8f0;border-radius:7px;box-sizing:border-box;color:#333;font-size:.88rem;padding:.45rem .65rem;transition:border-color .2s;width:100%}.activity-duration-input:focus,.activity-notes-input:focus,.activity-select:focus{border-color:#11998e;outline:none}.activity-preview{color:#11998e;font-size:.85rem;font-weight:600;margin:0}.activity-preview--warn{color:#e67e22;font-weight:400}.btn-save-activity{background:#11998e;border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.55rem;transition:all .2s}.btn-save-activity:hover:not(:disabled){background:#0d7a72}.btn-save-activity:disabled{background:#ccc;cursor:not-allowed}.activity-empty{color:#aaa;font-size:.88rem;margin:.5rem 0;text-align:center}.activity-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.activity-item{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:.5rem;justify-content:space-between;padding:.65rem .75rem}.activity-item-info{display:flex;flex-direction:column;gap:1px;min-width:0}.activity-item-name{color:#333;font-size:.9rem;font-weight:600}.activity-item-meta{color:#11998e;font-size:.78rem;font-weight:600}.activity-item-notes{color:#888;font-size:.75rem}.btn-delete-activity{background:#fc8181;border:none;border-radius:5px;cursor:pointer;flex-shrink:0;font-size:.75rem;padding:.25rem .5rem;transition:all .2s}.btn-delete-activity:hover{background:#f56565;transform:scale(1.1)}.steps-overview-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1.25rem}.steps-overview-header h3{color:#555;font-size:1.1rem;font-weight:600;margin:0}.source-badge{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.2rem .55rem;text-transform:uppercase}.source-badge.source-fitbit{background:#e6f7f5;border:1px solid #b2e4df;color:#0d7a72}.source-badge.source-stored{background:#f0f4ff;border:1px solid #c5d3ef;color:#4a6fa5}.source-badge.source-manual{background:#f7f7f7;border:1px solid #ddd;color:#888}.fitbit-card{padding:1.25rem 1.5rem}.fitbit-connected-row,.fitbit-disconnected-row{align-items:center;display:flex;gap:.6rem}.fitbit-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.fitbit-dot.connected{background:#38ef7d}.fitbit-dot.disconnected{background:#fc8181}.fitbit-status-text{color:#555;display:flex;flex:1 1;flex-direction:column;font-size:.9rem;font-weight:500;gap:1px}.fitbit-expiry{color:#aaa;font-size:.72rem;font-weight:400}.btn-fitbit-connect,.btn-fitbit-update{border:none;border-radius:6px;cursor:pointer;font-size:.82rem;font-weight:600;padding:.3rem .75rem;transition:all .2s}.btn-fitbit-connect{background:#11998e;color:#fff}.btn-fitbit-connect:hover{background:#0d7a72}.btn-fitbit-update{background:#e2e8f0;color:#555}.btn-fitbit-update:hover{background:#cbd5e0}.fitbit-token-form{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.fitbit-form-hint{color:#888;font-size:.8rem;margin:0 0 .25rem}.fitbit-token-error{color:#e53e3e;font-size:.82rem;margin:0}.fitbit-label{color:#555;font-size:.82rem;font-weight:600}.fitbit-token-input{border:1.5px solid #e2e8f0;border-radius:7px;box-sizing:border-box;color:#333;font-family:monospace;font-size:.78rem;padding:.5rem .65rem;resize:vertical;transition:border-color .2s;width:100%}.fitbit-token-input:focus{border-color:#11998e;outline:none}.fitbit-form-actions{display:flex;gap:.6rem;margin-top:.25rem}.btn-fitbit-save{background:#11998e;border:none;border-radius:7px;color:#fff;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.55rem;transition:all .2s}.btn-fitbit-save:hover:not(:disabled){background:#0d7a72}.btn-fitbit-save:disabled{background:#ccc;cursor:not-allowed}.btn-fitbit-cancel{background:#fff;border:1.5px solid #e2e8f0;border-radius:7px;color:#666;cursor:pointer;font-size:.9rem;padding:.55rem 1rem;transition:all .2s}.btn-fitbit-cancel:hover{background:#f7fafc}@media (max-width:1024px){.fitness-content{grid-template-columns:1fr}.fitness-left{margin:0 auto;max-width:500px;width:100%}}@media (max-width:480px){.fitness-header h1{font-size:2rem}.weekly-stats{grid-template-columns:1fr 1fr}}.fridge-page{min-height:calc(100vh - 120px);padding:2rem 0}.fridge-container{margin:0 auto;max-width:1100px;padding:0 1.5rem}.fridge-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:2rem}.fridge-header h1{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:2rem;font-weight:700;margin:0 0 .25rem}.fridge-header p{color:#6b7280;color:var(--text-secondary,#6b7280);margin:0}.fridge-error{background:#fee2e2;border-radius:8px;color:#dc2626;margin-bottom:1.5rem;padding:.75rem 1rem}.fridge-loading{padding:3rem}.fridge-empty,.fridge-loading{color:#6b7280;color:var(--text-secondary,#6b7280);text-align:center}.fridge-empty{padding:4rem 2rem}.fridge-empty-icon{display:block;font-size:3.5rem;margin-bottom:1rem}.fridge-empty p{font-size:1rem;margin:.25rem 0}.fridge-empty p:first-of-type{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.1rem;font-weight:600}.fridge-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.fridge-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;transition:transform .15s,box-shadow .15s}.fridge-card:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-3px)}.fridge-card-img{height:160px;object-fit:cover;width:100%}.fridge-card-body{padding:1rem}.fridge-card-title{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.05rem;font-weight:600;margin:0 0 .5rem}.fridge-card-meta{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.75rem}.fridge-portions{color:#4f46e5;color:var(--primary,#4f46e5);font-size:.95rem;font-weight:600}.fridge-cooked-at{font-size:.8rem}.fridge-cooked-at,.fridge-notes{color:#6b7280;color:var(--text-secondary,#6b7280)}.fridge-notes{font-size:.85rem;font-style:italic;margin:0 0 .75rem}.fridge-card-actions{display:flex;gap:.5rem}.fridge-cook-modal{max-width:540px;width:100%}.fridge-cook-modal .modal-header{padding:1.25rem 1.5rem}.fridge-cook-form{padding:.75rem 1.5rem 1.5rem}.fridge-cook-error{color:#dc2626;font-size:.9rem;margin:.5rem 0}.missing-ingredients-list{background:#fef9c3;border:1px solid #fde047;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.missing-ingredients-list h4{color:#854d0e;font-size:.9rem;margin:0 0 .5rem}.missing-table{border-collapse:collapse;font-size:.85rem;width:100%}.missing-table td,.missing-table th{padding:.3rem .5rem;text-align:left}.missing-table th{border-bottom:1px solid #fde047;color:#78350f;font-weight:600}.missing-qty{color:#dc2626;font-weight:600}.fridge-entry-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:1rem;padding:1.25rem}.fridge-entry-form h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;margin:0 0 1rem}.fridge-entry-empty,.fridge-entry-loading{color:#6b7280;color:var(--text-secondary,#6b7280);padding:1rem;text-align:center}.food-entry-warning{background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;color:#92400e;font-size:.875rem;margin-bottom:.5rem;padding:.6rem .85rem}.fridge-entry-error{color:#dc2626;font-size:.9rem;margin:.5rem 0}.fridge-max-hint{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-weight:400;margin-left:.25rem}.fridge-entry-actions{display:flex;gap:.75rem;margin-top:1rem}.fridge-choice{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border:2px solid #38bdf8}.fridge-choice:hover{background:linear-gradient(135deg,#bae6fd,#7dd3fc);border-color:#0ea5e9}.scan-choice{background:linear-gradient(135deg,#f0fdf4,#bbf7d0);border:2px solid #4ade80}.scan-choice:hover{background:linear-gradient(135deg,#bbf7d0,#86efac);border-color:#22c55e}.barcode-scanner-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:1rem;padding:1.25rem}.barcode-scanner-wrap h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;margin:0 0 1rem}.scanner-idle{padding:1rem 0;text-align:center}.scanner-idle p{color:#1a1a2e;color:var(--text-primary,#1a1a2e);margin:0 0 .4rem}.scanner-hint{color:#6b7280!important;color:var(--text-secondary,#6b7280)!important;font-size:.85rem;margin-bottom:1.25rem!important}.scanner-idle-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1rem}.scanner-active{align-items:center;display:flex;flex-direction:column;gap:1rem}.scanner-video-wrap{background:#000;border-radius:10px;max-width:420px;overflow:hidden;position:relative;width:100%}.scanner-video{aspect-ratio:4/3;display:block;object-fit:cover;width:100%}.scanner-overlay{align-items:center;display:flex;flex-direction:column;gap:.75rem;inset:0;justify-content:center;pointer-events:none;position:absolute}.scanner-crosshair{border:3px solid #22c55e;border-radius:8px;box-shadow:0 0 0 2000px #00000059;height:130px;width:200px}.scanner-tip{background:#00000080;border-radius:20px;color:#fff;font-size:.82rem;margin:0;padding:.3rem .75rem}.scanner-cancel-btn{max-width:420px;width:100%}.scanner-loading{padding:2rem 0;text-align:center}.scanner-spinner{animation:spin .7s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#4f46e5;height:36px;margin:0 auto .75rem;width:36px}.scanner-error-state{padding:1rem 0;text-align:center}.scanner-error-msg{color:#dc2626;font-size:.9rem;margin-bottom:1rem}.scanner-review{display:flex;flex-direction:column;gap:1rem}.product-info-box{padding:.75rem 1rem}.product-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;font-weight:600;margin:0 0 .2rem}.product-brand{font-size:.85rem;margin:0 0 .2rem}.product-brand,.product-serving{color:#6b7280;color:var(--text-secondary,#6b7280)}.product-serving{font-size:.82rem;margin:0}.scanner-serving-hint{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-weight:400}.scanner-nutrition-preview{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.75rem 1rem}.scanner-nutrition-preview h4{color:#166534;font-size:.85rem;margin:0 0 .6rem}.nutrition-preview-grid{display:flex;flex-wrap:wrap;gap:.5rem}.nutrient-cell{background:#fff;border:1px solid #d1fae5;border-radius:6px;flex:1 1;min-width:60px;padding:.4rem .5rem;text-align:center}.nutrient-val{color:#1a1a2e;color:var(--text-primary,#1a1a2e);display:block;font-size:.95rem;font-weight:700}.nutrient-label{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.72rem;margin-top:.1rem}@media (max-width:640px){.fridge-header{flex-direction:column}.fridge-grid{grid-template-columns:1fr}}.foods-page{min-height:calc(100vh - 120px);padding:2rem 0}.foods-container{margin:0 auto;max-width:1100px;padding:0 1.5rem}.foods-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.foods-header h1{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:2rem;font-weight:700;margin:0 0 .25rem}.foods-header p{color:#6b7280;color:var(--text-secondary,#6b7280);margin:0}.foods-header-actions{display:flex;flex-shrink:0;gap:.75rem}.foods-error{background:#fee2e2;border-radius:8px;color:#dc2626;font-size:.9rem;margin-bottom:1.25rem;padding:.75rem 1rem}.foods-loading{padding:3rem}.foods-empty,.foods-loading{color:#6b7280;color:var(--text-secondary,#6b7280);text-align:center}.foods-empty{padding:4rem 2rem}.foods-empty-icon{display:block;font-size:3.5rem;margin-bottom:1rem}.foods-empty p{margin:.25rem 0}.foods-empty p:first-of-type{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.1rem;font-weight:600}.foods-tabs{border-bottom:2px solid #e5e7eb;display:flex;gap:0;margin-bottom:1.5rem}.foods-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;margin-bottom:-2px;padding:.6rem 1.25rem;transition:color .15s,border-color .15s}.foods-tab:hover{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.foods-tab.active{border-bottom-color:#4f46e5;border-bottom-color:var(--primary,#4f46e5);color:#4f46e5;color:var(--primary,#4f46e5);font-weight:600}.foods-tab-count{background:#e5e7eb;border-radius:999px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;font-weight:600;line-height:1.4;min-width:20px;padding:.1rem .5rem;text-align:center}.foods-tab.active .foods-tab-count{background:#ede9fe;color:#4f46e5;color:var(--primary,#4f46e5)}.foods-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.food-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000012;display:flex;flex-direction:column;gap:.75rem;padding:1rem;transition:transform .15s,box-shadow .15s}.food-card:hover{box-shadow:0 6px 18px #0000001c;transform:translateY(-2px)}.food-card-top{align-items:flex-start;display:flex;gap:.75rem}.food-card-img{border-radius:8px;flex-shrink:0;height:56px;object-fit:cover;width:56px}.food-card-icon{flex-shrink:0;font-size:2.2rem;line-height:1}.food-card-info{min-width:0}.food-card-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.95rem;font-weight:600;margin:0 0 .2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-card-brand{font-size:.8rem;margin:0 0 .15rem}.food-card-brand,.food-card-serving{color:#6b7280;color:var(--text-secondary,#6b7280)}.food-card-serving{font-size:.78rem;margin:0}.food-card-nutrition{display:flex;flex-wrap:wrap;gap:.5rem}.food-card-nutrition span{background:#f3f4f6;border-radius:20px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.78rem;font-weight:500;padding:.2rem .55rem}.food-card-bottom{align-items:center;border-top:1px solid #f3f4f6;display:flex;gap:.5rem;justify-content:space-between;padding-top:.5rem}.food-qty-row{align-items:center;display:flex;font-size:.85rem;gap:.4rem}.food-qty-label{color:#6b7280;color:var(--text-secondary,#6b7280)}.food-qty-val{background:none;border:none;color:#4f46e5;color:var(--primary,#4f46e5);cursor:pointer;font-size:.9rem;font-weight:600;padding:0}.food-qty-edit{align-items:center;display:flex;gap:.3rem}.food-qty-input{border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;padding:3px 6px;width:60px}.food-card.out-of-stock{background:#fafafa;opacity:.75}.food-out-of-stock-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-style:italic}.food-card-actions-row{align-items:center;display:flex;flex-shrink:0;gap:.4rem}.btn.btn-danger{background:#fee2e2;border:1px solid #fca5a5;color:#dc2626}.btn.btn-danger:hover{background:#fecaca;border-color:#f87171}.foods-modal{max-width:520px;width:100%}.foods-modal .modal-header{padding:1.25rem 1.5rem}.foods-modal-body{display:flex;flex-direction:column;gap:.85rem;max-height:75vh;overflow-y:auto;padding:.75rem 1.5rem 1.5rem}.product-thumb{border:1px solid #e5e7eb;border-radius:8px;height:56px;object-fit:contain;width:56px}.product-info-box{align-items:flex-start;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:.75rem;padding:.75rem}.scan-review{display:flex;flex-direction:column;gap:.85rem}.foods-form-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.foods-nutrition-row{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(5,1fr)}.foods-section-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;font-weight:600;margin:0}.foods-choice{background:linear-gradient(135deg,#fef9c3,#fde68a);border:2px solid #f59e0b}.foods-choice:hover{background:linear-gradient(135deg,#fde68a,#fbbf24);border-color:#d97706}@media (max-width:640px){.foods-header{flex-direction:column}.foods-form-row,.foods-grid{grid-template-columns:1fr}.foods-nutrition-row{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.foods-modal-overlay{align-items:flex-end;padding:0}.foods-modal-overlay .foods-modal{border-radius:20px 20px 0 0;max-height:92vh;max-width:100%}.foods-modal-overlay .modal-header:before{background:#d1d5db;border-radius:99px;content:"";display:block;height:4px;left:50%;position:absolute;top:10px;transform:translateX(-50%);width:36px}.foods-modal-overlay .modal-header{border-radius:20px 20px 0 0;padding-top:1.75rem;position:relative}.foods-modal-body{max-height:calc(92vh - 64px);padding:.75rem 1rem 1.5rem}.foods-nutrition-row{grid-template-columns:repeat(2,1fr)}.foods-modal-overlay .modal-actions{flex-direction:column}.foods-modal-overlay .modal-actions .btn{justify-content:center;width:100%}}*{box-sizing:border-box;margin:0;padding:0}body,html{overflow-x:hidden}body{background-color:#f5f5f5;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}ul{list-style:none}img{height:auto;max-width:100%}button{border:none;cursor:pointer;font-family:inherit;outline:none}input,select,textarea{font-family:inherit;font-size:inherit}.container{margin:0 auto;max-width:1200px;padding:0 20px}.page{min-height:calc(100vh - 140px);padding:20px 0}.navbar{background-color:#2c3e50;box-shadow:0 2px 10px #0000001a;padding:15px 0;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.navbar .container{align-items:center;display:flex;justify-content:space-between}.navbar-brand{color:#fff;font-size:1.5rem;font-weight:700}.navbar-brand span{color:#e74c3c}.navbar-nav{align-items:center;display:flex;gap:20px}.navbar-nav a{color:#ecf0f1;font-weight:500;transition:color .3s}.navbar-nav a:hover{color:#e74c3c}.navbar-nav .btn{border-radius:5px;padding:8px 16px}.btn{border-radius:5px;display:inline-block;font-weight:500;padding:10px 20px;text-align:center;transition:all .3s}.btn-primary{background-color:#e74c3c;color:#fff}.btn-primary:hover{background-color:#c0392b}.btn-secondary{background-color:#3498db;color:#fff}.btn-secondary:hover{background-color:#2980b9}.btn-success{background-color:#27ae60;color:#fff}.btn-success:hover{background-color:#219a52}.btn-outline{background-color:initial;border:2px solid #e74c3c;color:#e74c3c}.btn-outline:hover{background-color:#e74c3c;color:#fff}.btn-small{font-size:.9rem;padding:6px 12px}.btn-large{font-size:1.1rem;padding:14px 28px}.btn:disabled{cursor:not-allowed;opacity:.6}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.form-control{border:1px solid #ddd;border-radius:5px;font-size:1rem;padding:12px 15px;transition:border-color .3s;width:100%}.form-control:focus{outline:none}.form-control.error,.form-control:focus{border-color:#e74c3c}.error-message{color:#e74c3c;font-size:.85rem;margin-top:5px}.success-message{font-size:.9rem}.card{background-color:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s}.card:hover{box-shadow:0 5px 20px #00000026;transform:translateY(-5px)}.card-image{background-color:#eee;height:200px;object-fit:cover;width:100%}.card-body{padding:20px}.card-title{color:#2c3e50;font-size:1.2rem;font-weight:600;margin-bottom:10px}.card-text{color:#666;font-size:.95rem;margin-bottom:15px}.card-footer{align-items:center;background-color:#f9f9f9;border-top:1px solid #eee;display:flex;justify-content:space-between;padding:15px 20px}.recipe-card{position:relative}.recipe-card .favorite-btn{background-color:#ffffffe6;right:10px;top:10px}.recipe-card .favorite-btn.active{color:#e74c3c}.recipe-meta{color:#888;display:flex;font-size:.85rem;gap:15px;margin-bottom:10px}.recipe-meta span{align-items:center;display:flex;gap:5px}.difficulty-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px}.difficulty-easy{background-color:#d5f4e6;color:#27ae60}.difficulty-medium{background-color:#fef3cd;color:#f39c12}.difficulty-hard{background-color:#f8d7da;color:#e74c3c}.match-percentage{align-items:center;border-radius:20px;display:inline-flex;font-size:.9rem;font-weight:600;gap:5px;padding:5px 12px}.match-high{background-color:#d5f4e6;color:#27ae60}.match-medium{background-color:#fef3cd;color:#f39c12}.match-low{background-color:#f8d7da;color:#e74c3c}.grid{grid-gap:20px;display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:1024px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.container{padding:0 14px}}.ingredient-tags{gap:8px}.ingredient-tag{background-color:#f0f0f0;border-radius:20px;font-size:.85rem;gap:5px;padding:6px 12px}.ingredient-tag:hover{background-color:#e0e0e0}.ingredient-tag .remove{font-size:1rem;margin-left:5px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#e74c3c;height:40px;width:40px}.alert{border-radius:5px}.alert-success{background-color:#d5f4e6;border:1px solid #27ae60;color:#27ae60}.alert-error{background-color:#f8d7da;border:1px solid #e74c3c;color:#e74c3c}.alert-warning{background-color:#fef3cd;border:1px solid #f39c12;color:#856404}.alert-info{background-color:#d1ecf1;border:1px solid #3498db;color:#0c5460}.footer{background-color:#2c3e50;color:#ecf0f1;margin-top:40px;padding:30px 0}.footer .container{align-items:center;display:flex;justify-content:space-between}.footer-links{display:flex;gap:20px}.footer-links a:hover{color:#e74c3c}.page-header h1{margin-bottom:10px}.auth-card{border-radius:10px;box-shadow:0 5px 20px #0000001a}.auth-card h2{color:#2c3e50;margin-bottom:30px;text-align:center}.auth-card .btn{margin-top:10px;width:100%}.auth-footer{color:#666;margin-top:20px}.auth-footer a{color:#e74c3c;font-weight:500}.search-bar{display:flex;gap:10px;margin-bottom:30px}.search-bar input{border:2px solid #ddd;border-radius:25px;flex:1 1;font-size:1rem;padding:12px 20px}.search-bar input:focus{border-color:#e74c3c;outline:none}.search-bar button{border-radius:25px;padding:12px 30px}.filters{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.filter-select{border:1px solid #ddd;border-radius:5px;min-width:150px}.empty-state p{margin-bottom:20px}.pantry-item{border-radius:8px;box-shadow:0 2px 5px #0000000d;justify-content:space-between;margin-bottom:10px;padding:15px}.pantry-item-info{align-items:center;display:flex;gap:15px}.pantry-item-actions{gap:10px}.navbar-nav a.active{color:#e74c3c}.navbar-user{align-items:center;display:flex}.mobile-menu-btn{background:#0000;border:none;cursor:pointer;display:none;flex-direction:column;height:21px;justify-content:space-between;padding:0;width:30px;z-index:1001}.mobile-menu-btn span{background-color:#fff;border-radius:3px;display:block;height:3px;transition:all .3s;width:100%}.mobile-menu-btn.open span:first-child{transform:rotate(45deg) translate(5px,5px)}.mobile-menu-btn.open span:nth-child(2){opacity:0}.mobile-menu-btn.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}@media (max-width:768px){.mobile-menu-btn{display:flex}.navbar-nav{background-color:#2c3e50;flex-direction:column;gap:15px;left:0;opacity:0;padding:20px;position:fixed;right:0;top:60px;transform:translateY(-100%);transition:all .3s;visibility:hidden;z-index:1000}.navbar-nav.open{opacity:1;transform:translateY(0);visibility:visible}.navbar-nav li{width:100%}.navbar-nav a,.navbar-nav button{display:block;padding:10px;text-align:center;width:100%}}.footer-content{grid-gap:40px;border-bottom:1px solid #ffffff1a;display:grid;gap:40px;grid-template-columns:2fr 1fr 1fr;padding-bottom:30px}.footer-brand h3{font-size:1.5rem;margin-bottom:10px}.footer-brand h3 span{color:#e74c3c}.footer-brand p{color:#95a5a6;font-size:.95rem}.footer-links-section h4{color:#fff;font-size:1rem;margin-bottom:15px}.footer-links-section .footer-links{flex-direction:column;gap:10px}.footer-links-section .footer-links a{color:#95a5a6;transition:color .3s}.footer-links-section .footer-links a:hover{color:#e74c3c}.footer-bottom{color:#95a5a6;display:flex;font-size:.9rem;justify-content:space-between;padding-top:20px}@media (max-width:768px){.footer-content{grid-template-columns:1fr;text-align:center}.footer-bottom{flex-direction:column;gap:10px;text-align:center}}.loading{align-items:center;display:flex;justify-content:center;min-height:200px;padding:40px}.loading-content{text-align:center}.loading-content p{color:#666;margin-top:15px}.alert{align-items:center;animation:slideIn .3s ease;border-radius:8px;display:flex;gap:10px;margin-bottom:20px;padding:15px 20px}.alert-icon{font-size:1.2rem;font-weight:700}.alert-message{flex:1 1}.alert-close{background:none;border:none;cursor:pointer;font-size:1.5rem;opacity:.7;transition:opacity .3s}.alert-close:hover{opacity:1}.modal-overlay{animation:fadeIn .3s ease;background-color:#00000080;bottom:0;left:0;right:0;top:0;z-index:2000}.modal{animation:modalSlideIn .3s ease;background-color:#fff;border-radius:10px;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid #eee;padding:20px}.modal-header h3{color:#2c3e50;margin:0}.modal-close{color:#999;font-size:1.5rem;transition:color .3s}.modal-close:hover{color:#333}.modal-body{padding:20px}.modal-footer{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:20px}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.page-header{margin-bottom:30px}.page-header-content{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.page-header h1{color:#2c3e50;font-size:2rem;margin-bottom:5px}.page-header p{color:#666;font-size:1.1rem;margin:0}.page-header-actions{display:flex;gap:10px}@media (max-width:768px){.page-header-content{align-items:flex-start;flex-direction:column}.page-header-actions{width:100%}.page-header-actions .btn{flex:1 1}}.empty-state{color:#888;padding:60px 20px;text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:20px;opacity:.8}.empty-state h3{color:#555;font-size:1.5rem;margin-bottom:10px}.empty-state p{margin-bottom:25px;margin-left:auto;margin-right:auto;max-width:400px}.badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px}.badge-primary{background-color:#e74c3c;color:#fff}.badge-secondary{background-color:#3498db;color:#fff}.badge-success{background-color:#27ae60;color:#fff}.badge-warning{background-color:#f39c12;color:#fff}.tooltip-container{display:inline-block;position:relative}.tooltip{background-color:#333;border-radius:5px;bottom:100%;color:#fff;font-size:.85rem;opacity:0;padding:8px 12px;transition:all .3s;visibility:hidden;white-space:nowrap;z-index:100}.tooltip,.tooltip:after{left:50%;position:absolute;transform:translateX(-50%)}.tooltip:after{border:6px solid #0000;border-top-color:#333;content:"";top:100%}.tooltip-container:hover .tooltip{opacity:1;visibility:visible}.section-divider{align-items:center;display:flex;margin:30px 0}.section-divider:after,.section-divider:before{background-color:#ddd;content:"";flex:1 1;height:1px}.section-divider span{color:#888;font-size:.9rem;padding:0 15px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{background-color:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000d;padding:25px;text-align:center}.stat-card-icon{font-size:2.5rem;margin-bottom:10px}.stat-card-value{color:#2c3e50;font-size:2rem;font-weight:700;margin-bottom:5px}.stat-card-label{color:#888;font-size:.95rem}.tabs{border-bottom:2px solid #eee;display:flex;margin-bottom:20px}.tab{background:none;border:none;color:#666;cursor:pointer;font-size:1rem;padding:12px 24px;position:relative;transition:color .3s}.tab:hover{color:#2c3e50}.tab.active{color:#e74c3c}.tab.active:after{background-color:#e74c3c;bottom:-2px;content:"";height:2px;left:0;position:absolute;right:0}.tab-content{padding:20px 0}.scroll-to-top{background-color:#e74c3c;border:none;border-radius:50%;bottom:30px;box-shadow:0 4px 15px #e74c3c4d;color:#fff;cursor:pointer;font-size:1.5rem;height:50px;opacity:0;position:fixed;right:30px;transition:all .3s;visibility:hidden;width:50px;z-index:1000}.scroll-to-top.visible{opacity:1;visibility:visible}.scroll-to-top:hover{background-color:#c0392b;transform:translateY(-3px)}.auth-page{align-items:center;background:linear-gradient(135deg,#f5f7fa,#e4e8ec);display:flex;justify-content:center;min-height:calc(100vh - 140px);padding:40px 20px}.auth-card{background-color:#fff;border-radius:15px;box-shadow:0 10px 40px #0000001a;max-width:450px;padding:40px;width:100%}.auth-header{margin-bottom:30px;text-align:center}.auth-icon{font-size:3rem;margin-bottom:15px}.auth-header h2{color:#2c3e50;margin-bottom:10px}.auth-header p{color:#666;font-size:.95rem}.auth-divider{align-items:center;display:flex;margin:25px 0}.auth-divider:after,.auth-divider:before{background-color:#ddd;content:"";flex:1 1;height:1px}.auth-divider span{color:#888;font-size:.9rem;padding:0 15px}.auth-footer{text-align:center}.auth-footer p{color:#666;margin-bottom:15px}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{font-size:1rem;left:15px;position:absolute;z-index:1}.input-wrapper .form-control{padding-left:45px;padding-right:45px}.password-toggle{background:none;border:none;cursor:pointer;font-size:1.2rem;opacity:.7;padding:5px;position:absolute;right:10px;transition:opacity .3s}.password-toggle:hover{opacity:1}.required{color:#e74c3c}.password-strength{align-items:center;display:flex;gap:10px;margin-top:8px}.strength-bar{background-color:#eee;border-radius:2px;flex:1 1;height:4px;overflow:hidden}.strength-fill{height:100%;transition:width .3s,background-color .3s}.password-strength span{font-size:.8rem;font-weight:500}.success-message{color:#27ae60;display:block;font-size:.85rem;margin-top:5px}.btn-block{display:block;width:100%}.btn-loading{align-items:center;display:flex;gap:10px;justify-content:center}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:18px;width:18px}.form-hint{color:#888;display:block;font-size:.8rem;margin-top:5px}.profile-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;max-width:900px}@media (max-width:768px){.profile-layout{grid-template-columns:1fr}}.card-header-flex{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.card-header-flex h3{margin:0}.profile-info{display:flex;flex-direction:column;gap:15px}.info-row{align-items:center;background-color:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:12px 15px}.info-label{color:#666;font-size:.95rem}.info-value{color:#2c3e50;font-weight:500}.form-actions{display:flex;gap:10px;margin-top:20px}.form-actions .btn{flex:1 1}.profile-stats{display:flex;flex-direction:column;gap:10px;margin-top:15px}.profile-stat-item{align-items:center;background-color:#f8f9fa;border-radius:10px;display:flex;gap:15px;padding:15px;transition:all .3s}.profile-stat-item.clickable{cursor:pointer}.profile-stat-item.clickable:hover{background-color:#e9ecef;transform:translateX(5px)}.profile-stat-item .stat-icon{font-size:2rem}.profile-stat-item .stat-details{display:flex;flex:1 1;flex-direction:column}.profile-stat-item .stat-value{color:#2c3e50;font-size:1.5rem;font-weight:700}.profile-stat-item .stat-label{color:#666;font-size:.9rem}.profile-stat-item .stat-arrow{color:#888;font-size:1.2rem}.quick-actions{display:flex;flex-direction:column;gap:10px;margin-top:15px}.quick-action-btn{align-items:center;background-color:#f8f9fa;border:1px solid #eee;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 15px;text-align:left;transition:all .3s}.quick-action-btn:hover{background-color:#e9ecef;border-color:#ddd}.quick-action-btn .action-icon{font-size:1.2rem}.card-danger{border:1px solid #f8d7da}.card-danger h3{color:#721c24}.card-danger .text-muted{color:#856404;margin-bottom:15px}.text-muted{color:#6c757d}@media (max-width:480px){.auth-card{padding:30px 20px}.auth-header h2{font-size:1.5rem}.info-row{align-items:flex-start;flex-direction:column;gap:5px}}.home-page{margin-top:-20px}.hero{background:linear-gradient(135deg,#2c3e50,#3498db);color:#fff;overflow:hidden;padding:80px 0;position:relative}.hero-background{background-image:url(https://images.unsplash.com/photo-1490818387583-1baba5e638af?w=1920&q=80);background-position:50%;background-size:cover;opacity:.2}.hero-background,.hero-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.hero-overlay{background:linear-gradient(135deg,#2c3e50e6,#3498dbcc)}.hero .container{position:relative;z-index:1}.hero-content{margin:0 auto;max-width:800px;text-align:center}.hero h1{font-size:3rem;font-weight:700;line-height:1.2;margin-bottom:20px}.hero h1 .highlight{color:#f39c12}.hero-subtitle{font-size:1.25rem;line-height:1.6;margin-bottom:40px;opacity:.9}.hero-search{display:flex;gap:10px;margin:0 auto 30px;max-width:600px}.search-input-wrapper{flex:1 1;position:relative}.search-input-wrapper .search-icon{font-size:1.2rem;left:20px;position:absolute;top:50%;transform:translateY(-50%)}.search-input{border:none;border-radius:50px;box-shadow:0 4px 20px #00000026;font-size:1.1rem;outline:none;padding:18px 20px 18px 55px;width:100%}.search-input:focus{box-shadow:0 4px 25px #0003}.hero-search .btn{border-radius:50px;padding:18px 35px;white-space:nowrap}.hero-cta{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:40px}.btn-outline-light{background:#0000;border:2px solid #fffc;color:#fff}.btn-outline-light:hover{background:#ffffff1a;border-color:#fff}.hero-stats{display:flex;gap:50px;justify-content:center}.hero-stat{text-align:center}.hero-stat .stat-number{color:#f39c12;display:block;font-size:2rem;font-weight:700}.hero-stat .stat-label{font-size:.9rem;opacity:.8}.welcome-section{background-color:#f8f9fa;padding:30px 0}.welcome-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff;display:flex;justify-content:space-between;padding:25px 35px}.welcome-content h2{font-size:1.5rem;margin-bottom:5px}.welcome-content p{margin:0;opacity:.9}.welcome-actions{display:flex;gap:10px}.welcome-actions .btn{background-color:#fff3;border:1px solid #ffffff4d;color:#fff}.welcome-actions .btn:hover{background-color:#ffffff4d}.section-header{margin-bottom:40px;text-align:center}.section-header h2{color:#2c3e50;font-size:2rem;margin-bottom:10px}.section-header p{color:#666;font-size:1.1rem}.how-it-works{background-color:#fff;padding:80px 0}.steps-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(3,1fr)}.step-card{background-color:#f8f9fa;border-radius:15px;padding:40px 30px;position:relative;text-align:center;transition:transform .3s,box-shadow .3s}.step-card:hover{box-shadow:0 10px 30px #0000001a;transform:translateY(-5px)}.step-number{align-items:center;background-color:#e74c3c;border-radius:50%;color:#fff;display:flex;font-weight:700;height:35px;justify-content:center;left:50%;position:absolute;top:-15px;transform:translateX(-50%);width:35px}.step-icon{font-size:3rem;margin-bottom:20px}.step-card h3{color:#2c3e50;margin-bottom:10px}.step-card p{color:#666;font-size:.95rem}.featured-section,.recent-section{padding:80px 0}.featured-section{background-color:#f8f9fa}.recent-section{background-color:#fff}.recipes-grid{margin-bottom:20px}.features-section{background-color:#f8f9fa;padding:80px 0}.features-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(4,1fr)}.feature-card{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;padding:30px 20px;text-align:center;transition:transform .3s,box-shadow .3s}.feature-card:hover{box-shadow:0 10px 30px #0000001a;transform:translateY(-5px)}.feature-icon{font-size:2.5rem;margin-bottom:15px}.feature-card h3{color:#2c3e50;font-size:1.1rem;margin-bottom:10px}.feature-card p{color:#666;font-size:.9rem;line-height:1.5}.cta-section{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;padding:80px 0}.cta-content{margin:0 auto;max-width:600px;text-align:center}.cta-content h2{font-size:2.5rem;margin-bottom:15px}.cta-content p{font-size:1.1rem;margin-bottom:30px;opacity:.9}.cta-buttons{display:flex;gap:15px;justify-content:center}.cta-buttons .btn-primary{background-color:#fff;color:#e74c3c}.cta-buttons .btn-primary:hover{background-color:#f8f8f8}.recipe-card{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #00000014;color:inherit;display:block;overflow:hidden;text-decoration:none;transition:transform .3s,box-shadow .3s}.recipe-card:hover{box-shadow:0 15px 40px #00000026;transform:translateY(-8px)}.recipe-card-image{height:200px;overflow:hidden;position:relative}.recipe-card-image img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.recipe-card:hover .recipe-card-image img{transform:scale(1.05)}.recipe-card .favorite-btn{align-items:center;background-color:#fffffff2;border:none;border-radius:50%;box-shadow:0 2px 10px #0000001a;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .3s;width:40px}.recipe-card .favorite-btn:hover{background-color:#fff;transform:scale(1.1)}.recipe-card .favorite-btn.active{animation:heartBeat .3s ease}@keyframes heartBeat{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.match-badge{border-radius:20px;bottom:12px;box-shadow:0 2px 10px #0000001a;font-size:.85rem;font-weight:600;left:12px;padding:6px 12px;position:absolute}.recipe-card .card-body{padding:20px}.recipe-card-title{color:#2c3e50;font-size:1.15rem;font-weight:600;line-height:1.3;margin-bottom:8px}.recipe-card-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:15px}.recipe-card .recipe-meta{color:#888;display:flex;font-size:.85rem;gap:15px;margin-bottom:15px}.recipe-card-footer{align-items:center;display:flex;justify-content:space-between}.recipe-card .servings{color:#888;font-size:.85rem}@media (max-width:1024px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.hero{padding:60px 0}.hero h1{font-size:2rem}.hero-subtitle{font-size:1rem}.hero-search{flex-direction:column}.hero-search .btn{width:100%}.hero-stats{gap:30px}.hero-stat .stat-number{font-size:1.5rem}.welcome-card{flex-direction:column;gap:20px;text-align:center}.features-grid,.steps-grid{grid-template-columns:1fr}.cta-content h2{font-size:1.8rem}.cta-buttons{flex-direction:column}.cta-buttons .btn{width:100%}}@media (max-width:480px){.hero h1{font-size:1.75rem}.hero-cta{flex-direction:column}.hero-cta .btn{width:100%}.section-header h2{font-size:1.5rem}}.recipes-page{padding:20px 0 60px}.filters-section{background-color:#fff;border-radius:15px;box-shadow:0 2px 15px #0000000d;margin-bottom:30px;padding:25px}.search-form{display:flex;gap:15px;margin-bottom:20px}.search-input-group{align-items:center;display:flex;flex:1 1;position:relative}.search-input-group .search-icon{color:#888;font-size:1.1rem;left:18px;position:absolute}.search-input-group .search-input{border:2px solid #eee;border-radius:10px;font-size:1rem;padding:14px 45px;transition:border-color .3s;width:100%}.search-input-group .search-input:focus{border-color:#e74c3c;outline:none}.search-input-group .clear-search{background:none;border:none;color:#888;cursor:pointer;font-size:1rem;padding:5px;position:absolute;right:15px}.search-input-group .clear-search:hover{color:#333}.filters-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:20px}.filter-group{display:flex;flex-direction:column;gap:8px;min-width:160px}.filter-group label{color:#555;font-size:.85rem;font-weight:500}.filter-select{background-color:#fff;border:2px solid #eee;border-radius:8px;cursor:pointer;font-size:.95rem;padding:10px 15px;transition:border-color .3s}.filter-select:focus{border-color:#e74c3c;outline:none}.clear-filters{height:-webkit-fit-content;height:fit-content}.active-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.active-filters-label{color:#666;font-size:.9rem}.filter-tag{align-items:center;background-color:#e8f4f8;border-radius:20px;color:#2c3e50;display:inline-flex;font-size:.85rem;gap:8px;padding:6px 12px}.filter-tag button{background:none;border:none;color:#888;cursor:pointer;font-size:.9rem;line-height:1;padding:0}.filter-tag button:hover{color:#e74c3c}.results-info{color:#666;font-size:.95rem;margin-bottom:20px}.recipe-detail-page{padding:20px 0 60px}.breadcrumb{align-items:center;display:flex;font-size:.9rem;gap:10px;margin-bottom:25px}.breadcrumb a{color:#666;transition:color .3s}.breadcrumb a:hover{color:#e74c3c}.breadcrumb span{color:#999}.breadcrumb span:last-child{color:#2c3e50;font-weight:500}.recipe-detail-header{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr 1fr;margin-bottom:40px}.recipe-detail-image{border-radius:20px;box-shadow:0 10px 40px #00000026;overflow:hidden;position:relative}.recipe-detail-image img{height:400px;object-fit:cover;width:100%}.favorite-btn-large{background-color:#fffffff2;border:none;border-radius:30px;bottom:20px;box-shadow:0 4px 15px #0000001a;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;position:absolute;right:20px;transition:all .3s}.favorite-btn-large:hover{background-color:#fff;transform:scale(1.05)}.favorite-btn-large.active{background-color:#fee2e2;color:#e74c3c}.recipe-detail-info{display:flex;flex-direction:column;justify-content:center}.recipe-detail-title-row{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:15px}.recipe-detail-title-row h1{color:#2c3e50;font-size:2.5rem;line-height:1.2;margin:0}.owner-actions{display:flex;flex-shrink:0;gap:10px}.recipe-detail-description{color:#666;font-size:1.1rem;line-height:1.6;margin-bottom:25px}.recipe-detail-meta{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:25px}.meta-item{align-items:center;background-color:#f8f9fa;border-radius:12px;display:flex;gap:12px;padding:15px}.meta-icon{font-size:1.5rem}.meta-content{display:flex;flex-direction:column}.meta-value{color:#2c3e50;font-size:1.1rem;font-weight:600}.meta-label{color:#888;font-size:.8rem}.recipe-detail-badges{display:flex;gap:10px;margin-bottom:20px}.recipe-detail-badges .difficulty-badge,.recipe-detail-badges .match-badge{font-size:.9rem;padding:8px 16px}.recipe-author{align-items:center;display:flex;font-size:.95rem;gap:8px}.author-label{color:#888}.author-name{color:#2c3e50;font-weight:500}.recipe-detail-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr;margin-bottom:40px}.recipe-section{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;padding:30px}.recipe-section h2{color:#2c3e50;font-size:1.5rem;margin-bottom:10px}.section-subtitle{color:#888;font-size:.9rem;margin-bottom:20px}.section-subtitle .pantry-status{color:#27ae60}.ingredients-list{list-style:none;margin:0;padding:0}.ingredient-item{align-items:center;background-color:#f8f9fa;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px 15px;transition:all .3s}.ingredient-item.in-pantry{background-color:#d5f4e6}.ingredient-info{align-items:center;display:flex;gap:12px}.ingredient-status{align-items:center;background-color:#fff;border-radius:50%;color:#27ae60;display:flex;font-size:.85rem;height:24px;justify-content:center;width:24px}.ingredient-item.in-pantry .ingredient-status{background-color:#27ae60;color:#fff}.ingredient-quantity{color:#2c3e50;font-weight:500;min-width:80px}.ingredient-name{color:#555}.add-to-pantry-btn{font-size:.8rem;padding:5px 10px}.ingredients-actions{margin-top:20px;text-align:center}.instructions-list{flex-direction:column}.instruction-item,.instructions-list{display:flex;gap:20px}.instruction-number{align-items:center;background-color:#e74c3c;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:600;height:40px;justify-content:center;width:40px}.instruction-text{color:#444;flex:1 1;font-size:1.05rem;line-height:1.7;padding-top:8px}.recipe-detail-actions{border-top:1px solid #eee;display:flex;justify-content:space-between;padding-top:30px}@media (max-width:1024px){.recipe-detail-header{grid-template-columns:1fr}.recipe-detail-image img{height:300px}.recipe-detail-content{grid-template-columns:1fr}.recipe-detail-meta{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.filters-row,.search-form{flex-direction:column}.filters-row{align-items:stretch}.filter-group{width:100%}.recipe-detail-title-row{flex-direction:column}.owner-actions{flex-wrap:wrap;width:100%}.owner-actions .btn{flex:1 1;min-width:0}.recipe-detail-meta{grid-template-columns:1fr 1fr}.recipe-detail-actions{flex-direction:column;gap:15px}.recipe-detail-actions .btn{text-align:center;width:100%}}@media (max-width:480px){.recipe-detail-title-row h1{font-size:1.8rem}.recipe-detail-meta{grid-template-columns:1fr}.instruction-item{flex-direction:column;gap:10px}.instruction-number{font-size:.9rem;height:35px;width:35px}}.recipe-form{max-width:900px}.form-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:30px}.form-section{background-color:#fff;border-radius:15px;box-shadow:0 2px 15px #0000000d;margin-bottom:25px;padding:25px}.form-section h3{color:#2c3e50;font-size:1.2rem}.form-section h3,.section-header-flex{border-bottom:2px solid #f0f0f0;margin-bottom:20px;padding-bottom:10px}.section-header-flex{align-items:center;display:flex;justify-content:space-between}.section-header-flex h3{border:none;margin:0;padding:0}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.ingredients-editor{display:flex;flex-direction:column;gap:12px}.ingredient-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:2fr 1fr 1fr auto}.ingredient-row input,.ingredient-row select{padding:10px 12px}.ingredient-row .btn-danger{padding:10px 15px}.form-control textarea,textarea.form-control{min-height:100px;resize:vertical}.recipe-form .form-actions{border-top:1px solid #eee;display:flex;gap:15px;justify-content:flex-end;padding-top:20px}@media (max-width:768px){.form-grid,.form-row,.ingredient-row{grid-template-columns:1fr}.ingredient-row{background-color:#f8f9fa;border-radius:10px;gap:8px;padding:15px}.recipe-form .form-actions{flex-direction:column}.recipe-form .form-actions .btn{width:100%}}.ingredient-match-page{padding:20px 0 60px}.match-tabs{display:flex;gap:10px;margin-bottom:30px}.match-tab{background-color:#fff;border:2px solid #eee;border-radius:10px;color:#666;cursor:pointer;font-size:1rem;font-weight:500;padding:15px 30px;text-decoration:none;transition:all .3s}.match-tab:hover{border-color:#e74c3c;color:#e74c3c}.match-tab.active{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.match-tab.disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.match-content{grid-gap:30px;align-items:start;display:grid;gap:30px;grid-template-columns:400px 1fr}.match-sidebar{display:flex;flex-direction:column;gap:20px}.ingredient-selector{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;overflow:hidden}.ingredient-selector.error,.ingredient-selector.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px;text-align:center}.selected-ingredients-section{background-color:#f8f9fa;border-bottom:1px solid #eee;padding:20px}.section-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.section-header-row h3{align-items:center;color:#2c3e50;display:flex;font-size:1rem;gap:10px;margin:0}.count-badge{background-color:#e74c3c;border-radius:20px;color:#fff;font-size:.85rem;padding:2px 10px}.selected-tags{display:flex;flex-wrap:wrap;gap:8px}.ingredient-tag{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:25px;cursor:pointer;display:inline-flex;font-size:.9rem;gap:6px;padding:8px 14px;transition:all .3s}.ingredient-tag:hover{border-color:#e74c3c}.ingredient-tag.selected{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.remove-tag{font-size:1.1rem;opacity:.7}.ingredient-tag:hover .remove-tag{opacity:1}.empty-selection{color:#888;font-size:.9rem;padding:10px;text-align:center}.ingredient-controls{border-bottom:1px solid #eee;padding:15px 20px}.ingredient-controls .search-box{margin-bottom:15px;position:relative}.ingredient-controls .search-icon{color:#888;left:15px;position:absolute;top:50%;transform:translateY(-50%)}.ingredient-controls .search-input{border:2px solid #eee;border-radius:10px;font-size:.95rem;padding:12px 40px;width:100%}.ingredient-controls .search-input:focus{border-color:#e74c3c;outline:none}.ingredient-controls .clear-search{background:none;border:none;color:#888;cursor:pointer;font-size:1.2rem;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.category-tabs{display:flex;flex-wrap:wrap;gap:8px}.category-tab{background-color:#f0f0f0;border:none;border-radius:20px;cursor:pointer;font-size:.85rem;padding:8px 14px;transition:all .3s}.category-tab:hover{background-color:#e0e0e0}.category-tab.active{background-color:#2c3e50;color:#fff}.ingredients-list{max-height:400px;overflow-y:auto;padding:15px 20px}.ingredient-group{margin-bottom:20px}.group-header{justify-content:space-between;margin-bottom:12px}.group-header,.group-header h4{align-items:center;display:flex}.group-header h4{color:#2c3e50;font-size:.95rem;gap:8px;margin:0}.group-count{color:#888;font-weight:400}.btn-tiny{font-size:.75rem;padding:4px 10px}.ingredient-grid{display:flex;flex-wrap:wrap;gap:8px}.ingredient-grid.single-category{padding:10px 0}.ingredient-btn{align-items:center;background-color:#f8f9fa;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;font-size:.9rem;gap:6px;padding:10px 16px;transition:all .3s}.ingredient-btn:hover{background-color:#e9ecef;border-color:#e74c3c}.ingredient-btn.selected{background-color:#fef2f2;border-color:#e74c3c;color:#e74c3c}.ingredient-btn .check{font-weight:700}.no-results{color:#888;padding:30px;text-align:center}.match-filters{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;padding:20px}.match-filters h4{color:#2c3e50;font-size:1rem}.match-filters .filter-group,.match-filters h4{margin-bottom:15px}.match-filters .filter-group label{color:#666;display:block;font-size:.85rem;margin-bottom:6px}.match-filters .filter-select{border:2px solid #eee;border-radius:8px;font-size:.9rem;padding:10px 12px;width:100%}.match-action{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;padding:20px;text-align:center}.match-action .btn-block{align-items:center;display:flex;gap:10px;justify-content:center}.selection-info{color:#666;font-size:.9rem;margin-top:10px}.pantry-preview{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #0000000d;padding:20px}.pantry-preview h3{color:#2c3e50;font-size:1.1rem;margin-bottom:15px}.pantry-count{color:#666;margin-bottom:15px}.pantry-tags{display:flex;flex-wrap:wrap;gap:8px;max-height:200px;overflow-y:auto}.match-results{min-height:500px}.results-placeholder{align-items:center;background-color:#fff;border-radius:15px;display:flex;flex-direction:column;justify-content:center;padding:80px 40px;text-align:center}.placeholder-icon{font-size:4rem;margin-bottom:20px}.results-placeholder h3{color:#2c3e50;margin-bottom:10px}.results-placeholder p{color:#666;max-width:400px}.results-summary{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px}.results-summary h3{color:#2c3e50;margin:0}.summary-badges{display:flex;gap:10px}.summary-badge{border-radius:20px;font-size:.85rem;font-weight:500;padding:6px 14px}.summary-badge.perfect{background-color:#d5f4e6;color:#27ae60}.summary-badge.high{background-color:#fef3cd;color:#f39c12}.match-results-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.match-result-card{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #00000014;overflow:hidden;transition:transform .3s,box-shadow .3s}.match-result-card:hover{box-shadow:0 10px 30px #0000001f;transform:translateY(-5px)}.match-result-card .card-link{color:inherit;display:block;text-decoration:none}.match-card-image{height:180px;overflow:hidden;position:relative}.match-card-image img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.match-result-card:hover .match-card-image img{transform:scale(1.05)}.match-percentage-badge{border-radius:10px;box-shadow:0 2px 10px #00000026;left:12px;padding:8px 14px;position:absolute;text-align:center;top:12px}.match-percentage-badge .percentage{display:block;font-size:1.2rem;font-weight:700}.match-percentage-badge .label{font-size:.7rem;text-transform:uppercase}.match-percentage-badge.match-high{background-color:#27ae60;color:#fff}.match-percentage-badge.match-medium{background-color:#f39c12;color:#fff}.match-percentage-badge.match-low{background-color:#e74c3c;color:#fff}.match-result-card .favorite-btn{position:absolute;right:12px;top:12px}.match-card-body{padding:20px}.match-card-title{color:#2c3e50;font-size:1.15rem;margin-bottom:8px}.match-card-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:15px}.match-card-meta{color:#888;display:flex;flex-wrap:wrap;font-size:.85rem;gap:12px;margin-bottom:15px}.match-card-meta .difficulty-badge{padding:4px 10px}.ingredient-match-summary{border-top:1px solid #eee;padding-top:15px}.match-bar{background-color:#eee;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.match-bar-fill{background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:4px;height:100%;transition:width .5s ease}.match-stats{display:flex;font-size:.85rem;justify-content:space-between}.match-stats .have{color:#27ae60}.match-stats .need{color:#e74c3c}.match-card-footer{border-top:1px solid #eee}.toggle-ingredients-btn{background:none;border:none;color:#666;cursor:pointer;font-size:.9rem;padding:12px;transition:background-color .3s;width:100%}.ingredients-breakdown,.toggle-ingredients-btn:hover{background-color:#f8f9fa}.ingredients-breakdown{padding:15px 20px}.ingredients-group{margin-bottom:12px}.ingredients-group:last-child{margin-bottom:0}.ingredients-group h5{font-size:.85rem;margin-bottom:8px}.ingredients-group.have h5{color:#27ae60}.ingredients-group.need h5{color:#e74c3c}.ingredient-tags{display:flex;flex-wrap:wrap;gap:6px}.ing-tag{border-radius:15px;font-size:.8rem;padding:4px 10px}.ing-tag.have{background-color:#d5f4e6;color:#27ae60}.ing-tag.need{background-color:#fce4e4;color:#e74c3c}@media (max-width:1024px){.match-content{grid-template-columns:350px 1fr}.match-results-grid{grid-template-columns:1fr}}@media (max-width:768px){.match-tabs{flex-direction:column}.match-tab{text-align:center}.match-content{grid-template-columns:1fr}.match-sidebar{order:2}.match-results{order:1}.ingredients-list{max-height:300px}.match-results-grid{grid-template-columns:1fr}}@media (max-width:480px){.section-header-row{gap:10px}.results-summary,.section-header-row{align-items:flex-start;flex-direction:column}.summary-badges{flex-wrap:wrap}}.pantry-page{padding:20px 0 60px}.pantry-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-bottom:30px}.pantry-stats .stat-card{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 15px #0000000d;display:flex;gap:15px;padding:20px 25px;transition:all .3s}.pantry-stats .stat-card.clickable{cursor:pointer}.pantry-stats .stat-card.clickable:hover{box-shadow:0 5px 20px #0000001a;transform:translateY(-3px)}.pantry-stats .stat-icon{font-size:2.5rem}.pantry-stats .stat-info{display:flex;flex-direction:column}.pantry-stats .stat-value{color:#2c3e50;font-size:1.5rem;font-weight:700}.pantry-stats .stat-label{color:#888;font-size:.9rem}.pantry-filters{align-items:center;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:25px}.pantry-filters .search-box{flex:1 1;min-width:min(250px,100%);position:relative}.pantry-filters .search-icon{color:#888;left:15px;position:absolute;top:50%;transform:translateY(-50%)}.pantry-filters .search-input{border:2px solid #eee;border-radius:10px;font-size:.95rem;padding:12px 40px;width:100%}.pantry-filters .search-input:focus{border-color:#e74c3c;outline:none}.pantry-filters .clear-search{background:none;border:none;color:#888;cursor:pointer;font-size:1.2rem;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}.filter-btn{background-color:#f0f0f0;border:none;border-radius:20px;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .3s;white-space:nowrap}.filter-btn:hover{background-color:#e0e0e0}.filter-btn.active{background-color:#2c3e50;color:#fff}.btn-danger-outline{border-color:#e74c3c;color:#e74c3c}.btn-danger-outline:hover{background-color:#e74c3c;color:#fff}.pantry-content{margin-bottom:30px}.pantry-group{margin-bottom:25px}.pantry-group .group-header{margin-bottom:15px}.pantry-group .group-header h3{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;gap:10px}.pantry-group .group-count{background-color:#e9ecef;border-radius:20px;color:#666;font-size:.85rem;font-weight:400;padding:2px 10px}.pantry-items-list{display:flex;flex-direction:column;gap:10px}.pantry-item{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;display:flex;gap:15px;padding:15px 20px;transition:all .3s}.pantry-item:hover{box-shadow:0 4px 15px #00000014}.pantry-item.loading{opacity:.6;pointer-events:none}.pantry-item-icon{font-size:2rem;text-align:center;width:50px}.pantry-item-info{flex:1 1;min-width:0}.pantry-item-name{color:#2c3e50;font-size:1rem;font-weight:600;margin-bottom:2px}.pantry-item-category{color:#888;font-size:.85rem}.pantry-item-quantity{min-width:150px}.quantity-display{align-items:center;background-color:#f8f9fa;border-radius:8px;cursor:pointer;display:flex;gap:5px;padding:8px 12px;transition:background-color .3s}.quantity-display:hover{background-color:#e9ecef}.quantity-display .qty-value{color:#2c3e50;font-weight:600}.quantity-display .qty-unit{color:#888;font-size:.9rem}.quantity-display .qty-empty{color:#aaa;font-size:.9rem;font-style:italic}.quantity-display .edit-icon{margin-left:auto;opacity:0;transition:opacity .3s}.quantity-display:hover .edit-icon{opacity:1}.quantity-edit{align-items:center;display:flex;gap:8px}.quantity-edit input{border:2px solid #e74c3c;border-radius:8px;font-size:.95rem;padding:8px 12px;width:80px}.quantity-edit .unit{color:#888;font-size:.9rem}.pantry-item.low-stock{background-color:#fffbeb;border-left:3px solid #f59e0b}.low-stock-badge{color:#d97706;font-size:.75rem;font-weight:600;margin-left:6px}.quantity-edit-block{display:flex;flex-direction:column;gap:6px}.threshold-edit{align-items:center;display:flex;gap:6px}.threshold-label{color:#888;font-size:.8rem;white-space:nowrap}.threshold-input{border:1.5px solid #f59e0b;border-radius:8px;font-size:.9rem;padding:6px 8px;width:70px}.pantry-item-threshold{color:#d97706;font-size:.78rem;white-space:nowrap}.pantry-item-date{color:#aaa;font-size:.85rem;min-width:100px;text-align:center}.pantry-item-actions{display:flex;gap:8px}.pantry-item-actions .btn-small{padding:8px 12px}.no-results-box{background-color:#f8f9fa;border-radius:12px;padding:40px;text-align:center}.no-results-box p{color:#666;margin-bottom:15px}.pantry-actions{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.action-card{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 15px #0000000d;color:inherit;display:flex;gap:20px;padding:25px;text-decoration:none;transition:all .3s}.action-card:hover{box-shadow:0 5px 25px #0000001a;transform:translateY(-3px)}.action-card .action-icon{font-size:2.5rem}.action-card .action-info{flex:1 1}.action-card .action-info h4{color:#2c3e50;margin-bottom:5px}.action-card .action-info p{color:#888;font-size:.9rem;margin:0}.action-card .action-arrow{color:#ccc;font-size:1.5rem;transition:color .3s,transform .3s}.action-card:hover .action-arrow{color:#e74c3c;transform:translateX(5px)}.modal-large{display:flex;flex-direction:column;max-height:85vh;max-width:700px}.modal-large .modal-body{flex:1 1;overflow-y:auto;padding:20px}.modal-controls{display:flex;gap:15px;margin-bottom:20px}.modal-controls .search-box{flex:1 1;position:relative}.modal-controls .search-icon{color:#888;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.modal-controls .search-input{border:2px solid #eee;border-radius:8px;padding:10px 35px;width:100%}.modal-controls .filter-select{border:2px solid #eee;border-radius:8px;min-width:150px;padding:10px 12px}.selected-preview{background-color:#f8f9fa;border-radius:10px;margin-bottom:20px;padding:15px}.selected-preview h4{color:#2c3e50;font-size:.95rem;margin-bottom:12px}.selected-items{display:flex;flex-direction:column;gap:8px;max-height:150px;overflow-y:auto}.selected-item{align-items:center;background-color:#fff;border-radius:8px;display:flex;gap:10px;padding:8px 12px}.selected-item .item-name{color:#2c3e50;flex:1 1;font-weight:500}.qty-with-unit{align-items:center;display:flex;gap:.4rem}.selected-item .qty-input{border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:6px 10px;width:80px}.qty-unit-label{color:#6b7280;font-size:.82rem;white-space:nowrap}.qty-unit-select{background:#fff;border:1px solid #ddd;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:.85rem;max-width:110px;min-width:80px;padding:5px 8px}.qty-unit-select:focus{border-color:#e74c3c;outline:none}.selected-item .remove-btn{background:none;border:none;color:#e74c3c;cursor:pointer;font-size:1.2rem;padding:0 5px}.ingredients-grid-modal{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);max-height:300px;overflow-y:auto;padding:5px}.ingredient-btn-modal{align-items:center;background-color:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;gap:8px;padding:12px 15px;text-align:left;transition:all .3s}.ingredient-btn-modal:hover{background-color:#e9ecef;border-color:#e74c3c}.ingredient-btn-modal.selected{background-color:#fef2f2;border-color:#e74c3c}.ingredient-btn-modal .ing-icon{font-size:1.2rem}.ingredient-btn-modal .ing-name{color:#2c3e50;flex:1 1;font-size:.9rem}.ingredient-btn-modal .check{color:#e74c3c;font-weight:700}.loading-center{align-items:center;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:40px}.loading-center p{color:#666;margin-top:15px}@media (max-width:1024px){.ingredients-grid-modal,.pantry-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.pantry-stats{gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.pantry-stats .stat-card{gap:10px;padding:14px 10px}.pantry-stats .stat-icon{font-size:1.8rem}.pantry-stats .stat-value{font-size:1.2rem}.pantry-stats .stat-label{font-size:.78rem}.pantry-filters{align-items:stretch;flex-direction:column;gap:12px;margin-bottom:18px}.pantry-filters .search-box{min-width:0;width:100%}.filter-buttons{-webkit-overflow-scrolling:touch;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-buttons::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0;font-size:.85rem;padding:7px 13px;white-space:nowrap}.pantry-item{grid-gap:8px 12px;align-items:center;display:grid;gap:8px 12px;grid-template-areas:"info actions" "qty  qty";grid-template-columns:1fr auto;padding:12px 14px}.pantry-item-info{flex:initial;grid-area:info}.pantry-item-actions{grid-area:actions;order:0}.pantry-item-quantity{grid-area:qty;min-width:0;order:0;width:100%}.pantry-item-date{display:none}.quantity-display{justify-content:flex-start;padding:10px 12px;width:100%}.quantity-edit{width:100%}.quantity-edit input{flex:1 1}.pantry-actions{gap:12px;grid-template-columns:1fr}.action-card{gap:14px;padding:16px 18px}.action-card .action-icon{font-size:2rem}.modal-controls{flex-direction:column;gap:10px}.ingredients-grid-modal{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.pantry-stats{gap:8px;grid-template-columns:repeat(3,1fr)}.pantry-stats .stat-card{align-items:flex-start;flex-direction:column;gap:4px;padding:10px 8px}.pantry-stats .stat-icon{font-size:1.4rem}.pantry-stats .stat-value{font-size:1rem;line-height:1.2}.pantry-stats .stat-label{font-size:.7rem;line-height:1.2}.pantry-item{gap:6px 10px;padding:10px 12px}.pantry-item-name{font-size:.95rem}.pantry-item-category{font-size:.78rem}.pantry-item-quantity{width:100%}.quantity-display{font-size:.9rem;padding:9px 10px}.action-card{gap:10px;padding:14px}.action-card .action-icon{font-size:1.6rem}.action-card .action-info h4{font-size:.95rem}.action-card .action-info p{font-size:.82rem}.ingredients-grid-modal{grid-template-columns:1fr}}.favorites-page{padding:20px 0 60px}.header-actions{align-items:center;display:flex;gap:15px}.view-toggle{background-color:#f0f0f0;border-radius:8px;display:flex;overflow:hidden}.view-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:8px 14px;transition:all .3s}.view-btn:hover{background-color:#e0e0e0}.view-btn.active{background-color:#2c3e50;color:#fff}.favorites-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-bottom:30px}.favorites-stats .stat-card{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 15px #0000000d;display:flex;gap:15px;padding:20px 25px;position:relative;transition:all .3s}.favorites-stats .stat-card.clickable{cursor:pointer}.favorites-stats .stat-card.clickable:hover{box-shadow:0 5px 20px #0000001a;transform:translateY(-3px)}.favorites-stats .stat-card.active{background-color:#fef2f2;border:2px solid #e74c3c}.favorites-stats .stat-icon{font-size:2.5rem}.favorites-stats .stat-info{display:flex;flex-direction:column}.favorites-stats .stat-value{color:#2c3e50;font-size:1.5rem;font-weight:700}.favorites-stats .stat-value.mini-stats{display:flex;font-size:.9rem;gap:8px}.favorites-stats .stat-value.mini-stats span{border-radius:10px;font-weight:500;padding:2px 8px}.favorites-stats .stat-value.mini-stats .difficulty-easy{background-color:#d5f4e6;color:#27ae60}.favorites-stats .stat-value.mini-stats .difficulty-medium{background-color:#fef3cd;color:#f39c12}.favorites-stats .stat-value.mini-stats .difficulty-hard{background-color:#f8d7da;color:#e74c3c}.favorites-stats .stat-label{color:#888;font-size:.9rem}.loading-dot{color:#888;font-size:.8rem;position:absolute;right:10px;top:10px}.favorites-filters{align-items:center;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.favorites-filters .search-box{flex:1 1;min-width:200px;position:relative}.favorites-filters .search-icon{color:#888;left:15px;position:absolute;top:50%;transform:translateY(-50%)}.favorites-filters .search-input{border:2px solid #eee;border-radius:10px;font-size:.95rem;padding:10px 40px;width:100%}.favorites-filters .search-input:focus{border-color:#e74c3c;outline:none}.favorites-filters .clear-search{background:none;border:none;color:#888;cursor:pointer;font-size:1.2rem;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.filter-group{min-width:150px}.filter-btn-toggle{background-color:#f0f0f0;border:2px solid #0000;border-radius:8px;cursor:pointer;font-size:.9rem;padding:10px 16px;transition:all .3s;white-space:nowrap}.filter-btn-toggle:hover{background-color:#e0e0e0}.filter-btn-toggle.active{background-color:#fef2f2;border-color:#e74c3c;color:#e74c3c}.favorites-grid{grid-gap:20px;display:grid;gap:20px;margin-bottom:30px}.favorites-grid.grid{grid-template-columns:repeat(3,1fr)}.favorites-grid.list{grid-template-columns:1fr}.favorite-card{background-color:#fff;border-radius:15px;box-shadow:0 5px 20px #00000014;overflow:hidden;transition:all .3s}.favorite-card:hover{box-shadow:0 10px 30px #0000001f;transform:translateY(-5px)}.favorite-card.removing{opacity:.5;pointer-events:none}.favorite-card-link{color:inherit;display:block;text-decoration:none}.favorite-card-image{height:180px;overflow:hidden;position:relative}.favorites-grid.list .favorite-card-link{display:grid;grid-template-columns:200px 1fr}.favorites-grid.list .favorite-card-image{height:100%;min-height:150px}.favorite-card-image img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.favorite-card:hover .favorite-card-image img{transform:scale(1.05)}.remove-favorite-btn{align-items:center;background-color:#fffffff2;border:none;border-radius:50%;box-shadow:0 2px 10px #0000001a;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .3s;width:40px}.remove-favorite-btn:hover{background-color:#fff;transform:scale(1.1)}.pantry-match-badge{border-radius:20px;bottom:12px;box-shadow:0 2px 10px #0000001a;font-size:.8rem;font-weight:600;left:12px;padding:6px 12px;position:absolute}.favorite-card-body{padding:20px}.favorite-card-title{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:8px}.favorite-card-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:12px}.favorite-card-meta{color:#888;display:flex;flex-wrap:wrap;font-size:.85rem;gap:10px;margin-bottom:12px}.favorite-card-meta .difficulty-badge{padding:3px 10px}.favorite-pantry-info{border-top:1px solid #eee;margin-bottom:10px;padding-top:12px}.pantry-bar{background-color:#eee;border-radius:3px;height:6px;margin-bottom:6px;overflow:hidden}.pantry-bar-fill{background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:3px;height:100%;transition:width .5s ease}.pantry-stats{display:flex;font-size:.8rem;justify-content:space-between}.pantry-stats .have{color:#27ae60}.pantry-stats .need{color:#e74c3c}.favorite-card-footer{align-items:center;display:flex;font-size:.8rem;justify-content:space-between}.saved-date{color:#aaa}.can-make-badge{background-color:#d5f4e6;border-radius:15px;color:#27ae60;font-weight:500;padding:4px 10px}.favorite-card-expand{border-top:1px solid #eee}.expand-btn{background:none;border:none;color:#666;cursor:pointer;font-size:.85rem;padding:10px;transition:background-color .3s;width:100%}.expand-btn:hover,.missing-ingredients{background-color:#f8f9fa}.missing-ingredients{padding:15px}.missing-ingredients h5{color:#666;font-size:.85rem;margin-bottom:10px}.missing-tags{display:flex;flex-wrap:wrap;gap:6px}.missing-tag{background-color:#fce4e4;border-radius:15px;color:#e74c3c;font-size:.8rem;padding:4px 10px}.favorites-actions{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}@media (max-width:1024px){.favorites-grid.grid,.favorites-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.favorites-stats{grid-template-columns:1fr}.favorites-filters{align-items:stretch;flex-direction:column}.favorites-filters .search-box,.filter-group,.filter-group .filter-select{width:100%}.favorites-grid.grid,.favorites-grid.list .favorite-card-link{grid-template-columns:1fr}.favorites-grid.list .favorite-card-image{height:180px}.favorites-actions{grid-template-columns:1fr}.view-toggle{display:none}}@media (max-width:480px){.favorites-stats .stat-value.mini-stats{flex-direction:column;gap:4px}.favorite-card-meta{flex-direction:column;gap:5px}}.not-found-page{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 200px);padding:40px 20px}.not-found-content{max-width:600px;text-align:center}.not-found-icon{animation:float 3s ease-in-out infinite;font-size:5rem;margin-bottom:20px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.not-found-content h1{color:#e74c3c;font-size:8rem;font-weight:800;line-height:1;margin-bottom:10px}.not-found-content h2{color:#2c3e50;font-size:2rem;margin-bottom:15px}.not-found-content p{color:#666;font-size:1.1rem;margin-bottom:30px}.not-found-actions{display:flex;gap:15px;justify-content:center;margin-bottom:50px}.not-found-suggestions{border-top:1px solid #eee;padding-top:30px}.not-found-suggestions h3{color:#888;font-size:1rem;margin-bottom:20px}.suggestion-links{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr)}.suggestion-link{align-items:center;background-color:#f8f9fa;border-radius:12px;color:#2c3e50;display:flex;flex-direction:column;gap:10px;padding:20px;text-decoration:none;transition:all .3s}.suggestion-link:hover{background-color:#e9ecef;transform:translateY(-3px)}.suggestion-icon{font-size:2rem}.toast-container{bottom:20px;display:flex;flex-direction:column;gap:10px;position:fixed;right:20px;z-index:9999}.toast{align-items:center;animation:slideIn .3s ease;background-color:#333;border-radius:10px;box-shadow:0 5px 20px #0003;color:#fff;display:flex;gap:12px;max-width:400px;min-width:280px;padding:14px 20px}.toast.exiting{animation:slideOut .3s ease forwards}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.toast-success{background-color:#27ae60}.toast-error{background-color:#e74c3c}.toast-warning{background-color:#f39c12}.toast-info{background-color:#3498db}.toast-icon{align-items:center;background-color:#fff3;border-radius:50%;display:flex;font-size:.85rem;font-weight:700;height:24px;justify-content:center;width:24px}.toast-message{flex:1 1;font-size:.95rem}.toast-close{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:1.3rem;line-height:1;padding:0;transition:color .3s}.toast-close:hover{color:#fff}.mt-10{margin-top:10px}.mt-15{margin-top:15px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.mt-40{margin-top:40px}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.mb-40{margin-bottom:40px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:#888}.text-success{color:#27ae60}.text-error{color:#e74c3c}.text-warning{color:#f39c12}.font-bold{font-weight:600}.font-normal{font-weight:400}.hidden{display:none!important}.visible{display:block!important}.flex{display:flex}.flex-center{justify-content:center}.flex-between,.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.gap-10{gap:10px}.gap-15{gap:15px}.gap-20{gap:20px}.fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-up{animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scale-in{animation:scaleIn .2s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.skeleton{animation:skeleton-loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:8px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-title{height:24px;margin-bottom:12px;width:70%}.skeleton-image{height:200px;width:100%}.skeleton-card{background-color:#fff;border-radius:15px;padding:20px}@media print{.btn,.favorite-btn,.footer,.navbar,.toast-container{display:none!important}.page{margin:0;padding:0}.container{max-width:100%;padding:0}.recipe-detail-page{padding:0}.recipe-detail-content,.recipe-detail-header{grid-template-columns:1fr}}:focus{outline:2px solid #e74c3c;outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid #e74c3c;outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){.btn{border:2px solid}.card{border:1px solid #333}}@media (max-width:768px){.not-found-content h1{font-size:5rem}.not-found-content h2{font-size:1.5rem}.suggestion-links{grid-template-columns:repeat(2,1fr)}.toast-container{bottom:10px;left:20px;right:20px}.toast{max-width:none;min-width:auto}}@media (max-width:480px){.not-found-content h1{font-size:4rem}.not-found-actions{flex-direction:column}.not-found-actions .btn{width:100%}.suggestion-links{grid-template-columns:1fr}}.nutrition-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;margin-bottom:24px;padding:24px}.nutrition-card.error,.nutrition-card.loading{align-items:center;color:#888;display:flex;justify-content:center;min-height:200px}.nutrition-loading{text-align:center}.nutrition-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#4caf50;display:inline-block;height:30px;margin-bottom:10px;width:30px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.nutrition-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:8px}.nutrition-header h3{color:#2c3e50;font-size:1.25rem;margin:0}.nutrition-toggle{background:#f5f5f5;border-radius:8px;display:flex;padding:4px}.nutrition-toggle .toggle-btn{background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:.85rem;padding:6px 12px;transition:all .2s ease}.nutrition-toggle .toggle-btn.active{background:#fff;box-shadow:0 1px 4px #0000001a;color:#4caf50;font-weight:600}.nutrition-subtitle{color:#888;font-size:.85rem;margin-bottom:20px}.nutrition-calories{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;margin-bottom:24px;padding:20px;text-align:center}.nutrition-calories .calories-value{color:#2c3e50;display:block;font-size:3rem;font-weight:700;line-height:1}.nutrition-calories .calories-label{color:#666;display:block;font-size:1rem;margin-top:4px}.nutrition-macros{margin-bottom:24px}.macro-item{margin-bottom:16px}.macro-item.fiber-item{border-top:1px dashed #eee;padding-top:12px}.macro-header{display:flex;justify-content:space-between;margin-bottom:6px}.macro-name{color:#444;font-weight:500}.macro-value{color:#2c3e50;font-weight:600}.macro-bar{background:#f0f0f0;border-radius:4px;height:8px;margin-bottom:4px;overflow:hidden}.macro-fill{border-radius:4px;height:100%;transition:width .5s ease}.macro-fill.protein-fill{background:linear-gradient(90deg,#4caf50,#66bb6a)}.macro-fill.carbs-fill{background:linear-gradient(90deg,#2196f3,#42a5f5)}.macro-fill.fat-fill{background:linear-gradient(90deg,#ff9800,#ffb74d)}.macro-percentage{color:#888;font-size:.75rem}.nutrition-chart{align-items:center;background:#f8f9fa;border-radius:12px;display:flex;gap:24px;justify-content:center;margin-bottom:16px;padding:16px}.pie-chart{height:100px;width:100px}.circular-chart{transform:rotate(-90deg)}.chart-legend{display:flex;flex-direction:column;gap:8px}.legend-item{align-items:center;color:#555;display:flex;font-size:.85rem;gap:8px}.legend-color{border-radius:3px;height:12px;width:12px}.legend-color.protein-color{background:#4caf50}.legend-color.carbs-color{background:#2196f3}.legend-color.fat-color{background:#ff9800}.nutrition-warning{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;display:flex;gap:12px;margin-top:16px;padding:12px 16px}.warning-icon{font-size:1.25rem}.warning-content{flex:1 1}.warning-title{color:#f57c00;font-size:.9rem;font-weight:600;margin:0 0 4px}.warning-text{color:#666;font-size:.8rem;margin:0}@media (max-width:480px){.nutrition-header{align-items:flex-start}.nutrition-chart,.nutrition-header{flex-direction:column}.nutrition-calories .calories-value{font-size:2.5rem}}.recipes-tabs-header{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:1.5rem}.recipes-tabs{border-bottom:2px solid #e2e8f0;display:flex;gap:0}.recipes-tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:.6rem 1.25rem;transition:color .2s,border-color .2s}.recipes-tab:hover{color:#11998e}.recipes-tab.active{border-bottom-color:#11998e;color:#11998e;font-weight:700}.btn-create-recipe{white-space:nowrap}.my-recipe-wrapper{display:flex;flex-direction:column;position:relative}.my-recipe-badges{display:flex;gap:.4rem;left:.5rem;position:absolute;top:.5rem;z-index:2}.visibility-badge{border-radius:99px;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.visibility-badge.public{background:#d1fae5;color:#065f46}.visibility-badge.private{background:#fee2e2;color:#991b1b}.my-recipe-actions{display:flex;gap:.5rem;margin-top:.5rem}.my-recipe-actions .btn{flex:1 1;justify-content:center}.modal-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.modal-box{border-radius:12px;box-shadow:0 20px 60px #00000040;flex-direction:column;max-height:90vh;overflow-y:auto;width:100%}.modal-box,.modal-header{background:#fff;display:flex}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;justify-content:space-between;padding:1.25rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-header h2,.modal-header h3{font-size:1.2rem;margin:0}.modal-close{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:1.1rem;padding:.25rem .5rem;transition:background .15s}.modal-close:hover{background:#f1f5f9}.modal-error{background:#fee2e2;border-radius:6px;color:#991b1b;font-size:.9rem;margin:.75rem 1.5rem;padding:.6rem 1rem}.modal-form{display:flex;flex-direction:column;gap:0;padding:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.new-ingredient-modal{max-width:420px}.create-recipe-modal{max-width:780px}.cr-section{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;padding:1rem 1.25rem}.cr-section h4{color:#444;font-size:.95rem;letter-spacing:.5px;margin:0 0 .75rem;text-transform:uppercase}.cr-row-4{grid-gap:.75rem;grid-template-columns:repeat(4,1fr)}.cr-row-2,.cr-row-4{display:grid;gap:.75rem}.cr-row-2{grid-gap:.75rem;grid-template-columns:1fr 1fr;margin-top:.75rem}.cr-public-toggle .cr-toggle-label{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:.5rem}.cr-public-toggle input[type=checkbox]{cursor:pointer;height:16px;width:16px}.cr-toggle-hint{color:#888;font-size:.8rem;margin:.25rem 0 0}.cr-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.btn-add-ingredient-row{background:none;border:1px dashed #11998e;border-radius:6px;color:#11998e;cursor:pointer;font-size:.85rem;font-weight:600;padding:.25rem .75rem;transition:background .15s}.btn-add-ingredient-row:hover{background:#f0fdf9}.cr-ingredient-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.cr-ing-select-wrap{display:flex;flex:3 1;flex-direction:column;gap:.25rem;min-width:160px}.cr-ing-search{padding:.35rem .6rem}.cr-ing-search,.cr-ing-select{font-size:.85rem}.cr-qty-input{flex:1 1;max-width:90px;min-width:70px}.cr-unit-select{flex:1.5 1;font-size:.85rem;max-width:130px;min-width:100px}.btn-new-ingredient{background:none;border:1px solid #6366f1;border-radius:6px;color:#6366f1;cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .6rem;transition:background .15s;white-space:nowrap}.btn-new-ingredient:hover{background:#eef2ff}.btn-remove-ingredient-row{background:none;border:1px solid #e74c3c;border-radius:6px;color:#e74c3c;cursor:pointer;font-size:.85rem;padding:.35rem .6rem;transition:background .15s}.btn-remove-ingredient-row:hover{background:#fee2e2}@media (max-width:600px){.cr-row-4{grid-template-columns:1fr 1fr}.cr-row-2{grid-template-columns:1fr}.cr-ingredient-row{align-items:stretch;flex-direction:column}.cr-qty-input,.cr-unit-select{max-width:100%}}.image-upload-wrap{display:flex;flex-direction:column;gap:.4rem}.image-drop-zone{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:8px;color:#666;cursor:pointer;padding:2rem 1rem;text-align:center;transition:border-color .2s,background .2s}.image-drop-zone:hover{background:#f0fdf9;border-color:#11998e}.image-drop-icon{display:block;font-size:2rem;margin-bottom:.4rem}.image-drop-zone p{font-size:.9rem;margin:.15rem 0}.image-drop-hint{color:#aaa;font-size:.78rem}.image-preview-box{display:flex;flex-direction:column;gap:.5rem}.image-preview-img{border:1px solid #e2e8f0;border-radius:8px;max-height:200px;object-fit:cover;width:100%}.image-preview-actions{display:flex;gap:.5rem}.image-upload-error{color:#dc2626;font-size:.85rem;margin:0}.image-upload-progress{color:#11998e;font-size:.85rem;font-weight:500;margin:.25rem 0 0}.re-toggle-label{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:.5rem;margin-top:.4rem}.re-toggle-label input[type=checkbox]{cursor:pointer;height:16px;width:16px}.share-modal{animation:modalSlideIn .2s ease;border-radius:14px;max-width:480px;width:100%}.share-modal .modal-header{border-bottom:1px solid #f0f0f0;padding:1.1rem 1.4rem}.share-modal .modal-header h2{color:#1a1a2e;font-size:1.1rem;margin:0}.share-modal-body{display:flex;flex-direction:column;gap:0;padding:1.25rem 1.4rem 1.5rem}.share-section{align-items:flex-start;display:flex;gap:1rem;padding:1.1rem 0}.share-section-icon{flex-shrink:0;font-size:1.6rem;line-height:1;margin-top:.1rem}.share-section-content{flex:1 1;min-width:0}.share-section-content h3{color:#1a1a2e;font-size:.95rem;font-weight:600;margin:0 0 .3rem}.share-desc{color:#6b7280;font-size:.85rem;line-height:1.45;margin:0 0 .75rem}.share-private-note{color:#9ca3af;font-style:italic;margin-bottom:0}.share-divider{border:none;border-top:1px solid #f0f0f0;margin:0}.share-toggle-row{align-items:center;display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:.75rem}.toggle-visibility-btn{border:2px solid;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem 1rem;transition:all .2s}.toggle-visibility-btn.is-public{background:#d1fae5;border-color:#34d399;color:#065f46}.toggle-visibility-btn.is-public:hover{background:#a7f3d0}.toggle-visibility-btn.is-private{background:#f3f4f6;border-color:#d1d5db;color:#374151}.toggle-visibility-btn.is-private:hover{background:#e5e7eb}.share-toggle-hint{color:#9ca3af;font-size:.78rem}.share-url-row{align-items:center;display:flex;gap:.5rem}.share-url-input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:text;flex:1 1;font-size:.82rem;min-width:0;padding:.45rem .7rem}.share-copy-btn{flex-shrink:0;transition:background .2s}.share-copy-btn.copied{background:#059669!important;border-color:#059669!important;color:#fff!important}.share-text-btn{justify-content:center;transition:all .2s;width:100%}.share-text-btn.copied{background:#d1fae5!important;border-color:#34d399!important;color:#065f46!important}@media (max-width:480px){.share-modal{margin:0 1rem}.share-url-row{align-items:stretch;flex-direction:column}}
/*# sourceMappingURL=main.f620cc7b.css.map*/