:root{--green-primary: #758064;--green-dark: #5a6350;--green-light: #8a9674;--tan-background: #f7f2e2;--cream-white: #fdf8ed;--white: #ffffff;--bg-primary: #f7f2e2;--bg-secondary: #f0ebe0;--bg-card: #fdf8ed;--bg-card-hover: #ffffff;--bg-surface: #fdf8ed;--bg-elevated: #ffffff;--bg-subtle: #f9f5e9;--bg-error: #fee;--bg-code: #f5f0e0;--bg-code-secondary: #ede8d8;--bg-blockquote: #f9f5e9;--text-primary: #758064;--text-heading: #5a6350;--text-body: #4a5040;--text-white: #fdf8ed;--text-muted: #6b7560;--text-subtle: #8a9674;--text-disabled: #a8b4a0;--text-code: #5a6350;--text-error: #c0392b;--accent-primary: #758064;--accent-secondary: #8a9674;--accent-hover: #5a6350;--accent-selection: #758064;--accent-red: #e74c3c;--accent-red-secondary: #c0392b;--border-primary: #d4cfc0;--border-subtle: #e8e3d3;--border-light: #f0ebe0;--border-error: #e74c3c;--shadow-light: rgba(117, 128, 100, .1);--shadow-medium: rgba(117, 128, 100, .15);--shadow-strong: rgba(117, 128, 100, .2);--syntax-comment: #7c7c7c;--syntax-property: #f92672;--syntax-number: #ae81ff;--syntax-string: #a6e22e;--syntax-function: #e6db74;--syntax-keyword: #66d9ef;--syntax-regex: #fd971f;--syntax-terminal-red: #ff5f56;--hover-lift: 0 8px 25px;--transition-fast: all .2s ease;--transition-medium: all .3s ease;--transition-slow: left .5s ease}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg-primary);min-height:100vh}body{font-family:Gulzar,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);min-height:100vh;display:flex;flex-direction:column;position:relative}.container{max-width:1200px;margin:0 auto;padding:0}.offline{position:relative}.offline:before{content:"⚡ Offline Mode";position:fixed;top:0;left:0;right:0;background:#ff9500;color:#fff;text-align:center;padding:.5rem;font-size:.875rem;font-weight:600;z-index:1000;animation:slideDown .3s ease-out}.offline #root{margin-top:2.5rem}h1,h2,h3,h4,h5,h6{font-family:Borel,cursive;color:var(--text-heading);font-weight:400;margin-bottom:.5rem;padding-bottom:.2em;text-box-trim:trim-both;text-box-edge:cap alphabetic}h1{transform:translateY(.8rem)}p{margin-bottom:1rem;color:var(--text-body)}a{color:var(--accent-primary);text-decoration:none;transition:var(--transition-fast)}a:hover{color:var(--accent-hover)}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header{background:var(--bg-card);border-bottom:2px solid var(--border-primary);padding:1rem 0;box-shadow:0 2px 8px var(--shadow-light);position:relative}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.75rem}.header-actions{margin-left:auto}.title{font-size:2rem;font-weight:400;color:var(--text-heading);font-family:Borel,cursive;line-height:1;margin:-.1em 0 0;padding-bottom:.1em}.back-chevron{background:transparent;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;border-radius:8px;transition:var(--transition-medium);display:flex;align-items:center;justify-content:center}.back-chevron:hover{background:var(--bg-elevated);color:var(--accent-hover)}.back-chevron svg{width:20px;height:20px;stroke-width:2}.install-btn{background:var(--accent-primary);color:var(--cream-white);border:2px solid var(--accent-primary);padding:.5rem 1rem;border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:500;transition:var(--transition-medium);margin-right:.5rem}.install-btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.install-btn{display:flex;align-items:center;gap:.5rem}.install-btn svg{flex-shrink:0}.main{flex:1;padding:1rem}.search-clear-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-subtle);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition-fast)}.search-clear-btn:hover{color:var(--text-primary);background:var(--bg-subtle)}.nav-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--border-medium);border-radius:8px;color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.nav-btn:hover{background:var(--bg-subtle);border-color:var(--border-dark)}.nav-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.nav-btn.active:hover{background:var(--accent-secondary);border-color:var(--accent-secondary)}.view-recipe-btn{background:var(--accent-primary);border:none;border-radius:6px;color:#fff;padding:.375rem;cursor:pointer;transition:var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;margin-left:.5rem}.view-recipe-btn:hover{background:var(--accent-secondary);transform:translateY(-1px)}.refresh-btn{background:var(--bg-card);border:2px solid var(--border-primary);color:var(--text-primary);padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.refresh-btn:hover:not(:disabled){background:var(--accent-secondary);border-color:var(--accent-secondary);color:var(--text-white);transform:translateY(-1px)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-btn .spin{animation:spin 1s linear infinite}.filter-toggle-btn{background:var(--bg-card);border:2px solid var(--border-primary);color:var(--text-primary);padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.filter-toggle-btn:hover{background:var(--accent-primary);transform:scale(1.05)}.filter-toggle-btn.active{background:var(--accent-primary);color:var(--bg-card)}.filter-clear-btn{background:transparent;border:2px solid var(--border-primary);color:var(--text-primary);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:var(--transition-fast)}.filter-clear-btn:hover{background:var(--accent-red);color:var(--text-white);border-color:var(--accent-red)}.filter-clear-btn:disabled{opacity:.5;cursor:not-allowed}.floating-add-btn{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;border-radius:50%;background:var(--accent-primary);border:none;color:var(--text-white);box-shadow:0 4px 12px var(--shadow-medium);cursor:pointer;transition:all .3s ease;z-index:1000;display:flex;align-items:center;justify-content:center}.floating-add-btn:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 6px 20px var(--shadow-heavy)}.floating-add-btn:active{transform:scale(.95)}.add-to-week-btn{background:var(--accent-primary);color:var(--text-white);border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;box-shadow:0 2px 4px var(--shadow-light)}.add-to-week-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.add-to-week-btn svg{transition:transform .2s ease}.add-to-week-btn:hover:not(:disabled) svg{transform:rotate(90deg)}.add-to-week-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.day-selector-btn{background:var(--bg-subtle);border:2px solid var(--border-light);color:var(--text-primary);padding:.5rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.day-selector-btn:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-white);transform:translateY(-1px)}.day-selector-btn:disabled{opacity:.5;cursor:not-allowed}.add-meal-btn{background:var(--bg-subtle);border:2px dashed var(--border-light);color:var(--text-muted);padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.add-meal-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-white)}.recipe-menu-container{position:relative;display:inline-block}.recipe-menu-trigger{background:var(--bg-card);border:2px solid var(--border-medium);color:var(--text-primary);padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.recipe-menu-trigger:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--accent-primary);color:var(--accent-primary)}.recipe-menu-trigger:disabled{opacity:.5;cursor:not-allowed}.recipe-menu-dropdown{position:absolute;top:100%;right:0;background:var(--bg-card);border:2px solid var(--border-primary);border-radius:12px;padding:.5rem;box-shadow:0 8px 24px var(--shadow-medium);z-index:100;min-width:180px;animation:slideDown .2s ease}.recipe-menu-item{width:100%;background:transparent;border:none;padding:.75rem 1rem;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;border-radius:6px;transition:all .2s ease;text-align:left}.recipe-menu-item:hover:not(:disabled){background:var(--bg-subtle)}.recipe-menu-item:disabled{opacity:.5;cursor:not-allowed}.recipe-menu-item-danger{color:var(--text-error, #dc2626)}.recipe-menu-item-danger:hover:not(:disabled){background:var(--bg-error, rgba(220, 38, 38, .1));color:var(--text-error, #dc2626)}.search-container{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.search-actions{display:flex;align-items:center;gap:.75rem}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1}.search-icon{position:absolute;left:1rem;width:20px;height:20px;color:var(--text-disabled);z-index:1;pointer-events:none}.search-input{width:100%;padding:1rem 1.5rem 1rem 3rem;background:var(--bg-card);border:2px solid var(--border-primary);border-radius:25px;color:var(--text-primary);font-size:1rem;transition:var(--transition-medium);box-shadow:0 2px 8px var(--shadow-light)}.search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}.search-input:focus+.search-icon,.search-input-wrapper:focus-within .search-icon{color:var(--accent-primary)}.search-input::placeholder{color:var(--text-disabled)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:2px solid var(--border-primary);border-top:none;border-radius:0 0 15px 15px;box-shadow:0 4px 15px var(--shadow-medium);z-index:1000;max-height:300px;overflow-y:auto}.filter-panel{background:var(--bg-card);border:2px solid var(--border-primary);border-radius:12px;padding:1.5rem;margin:1rem 0;box-shadow:0 4px 12px var(--shadow-light);animation:slideDown .3s ease}.filter-section{margin-bottom:1rem}.filter-section h3{font-size:1.2rem;font-weight:400;color:var(--text-heading);font-family:Borel,cursive;line-height:1;margin-bottom:.75rem;margin-top:-.1em;padding-bottom:.2em}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.filter-section label{display:block;font-weight:500;color:var(--text-body);margin-bottom:.5rem}.filter-select{width:100%;padding:.5rem;border:2px solid var(--border-primary);border-radius:6px;background:var(--bg-card);color:var(--text-primary);font-size:.9rem}.filter-select:focus{outline:none;border-color:var(--accent-primary)}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.filter-chip{padding:.375rem .75rem;font-size:.875rem;background:var(--bg-card);border:1px solid var(--border-light);border-radius:20px;cursor:pointer;transition:var(--transition-fast);color:var(--text-primary)}.filter-chip:hover{background:var(--bg-subtle);border-color:var(--border-medium)}.filter-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.filter-actions{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border-light)}.filter-count{font-size:.9rem;color:var(--text-muted);font-weight:500}.no-options{color:var(--text-subtle);font-style:italic;font-size:.875rem}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease}.modal-content{background:var(--bg-card);border-radius:16px;width:90%;max-width:500px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.5rem .25rem;border-bottom:1px solid var(--border-light)}.modal-header h2{margin:1rem 0 0;font-family:Borel,cursive;font-size:1.5rem;color:var(--text-heading)}.modal-close-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;transition:all .2s ease;border-radius:8px}.modal-close-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-label{display:block;margin-bottom:.75rem;font-weight:500;color:var(--text-body)}.modal-textarea{width:100%;padding:.75rem;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-subtle);color:var(--text-primary);font-size:1rem;font-family:inherit;resize:vertical;transition:all .2s ease;line-height:1.4}.modal-textarea:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-card)}.modal-textarea::placeholder{color:var(--text-disabled)}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid var(--border-light)}.modal-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:.5rem}.modal-btn-secondary{background:transparent;color:var(--text-muted);border:2px solid var(--border-primary)}.modal-btn-secondary:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-btn-primary{background:var(--accent-primary);color:var(--text-white)}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.modal-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal-btn-danger{background:var(--text-error, #dc2626);color:var(--text-white)}.modal-btn-danger:hover:not(:disabled){background:var(--text-error-dark, #b91c1c);transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}.modal-btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.input-hint{margin-top:.75rem;font-size:.875rem;color:var(--text-subtle);font-style:italic;text-align:center}.date-selector-container{display:flex;justify-content:center;margin:1.5rem 0}.date-selector-input{background:var(--bg-card);border:2px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:1rem;font-weight:500;padding:.75rem 1rem;cursor:pointer;transition:var(--transition-fast);min-width:200px;text-align:center}.date-selector-input:hover:not(:disabled){border-color:var(--accent-primary);box-shadow:0 0 0 3px #7580641a}.date-selector-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #75806426}.date-selector-input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-subtle)}.date-selector-input::-webkit-calendar-picker-indicator{background:var(--accent-primary);border-radius:4px;cursor:pointer;padding:4px;color:var(--text-white)}.date-selector-input::-webkit-calendar-picker-indicator:hover{background:var(--accent-secondary)}.recipe-selector-modal{max-width:800px;width:95%;max-height:90vh}.modal-title-section{display:flex;flex-direction:column;gap:.25rem}.modal-subtitle{margin:0;font-size:.9rem;color:var(--text-subtle);font-weight:500}.recipe-selector-search{margin-bottom:1.5rem}.recipe-selector-list{max-height:50vh;overflow-y:auto;border:1px solid var(--border-light);border-radius:12px;padding:1rem}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recipe-card{background:var(--bg-card);border:2px solid var(--border-light);border-radius:12px;padding:1rem;cursor:pointer;transition:var(--transition-fast)}.recipe-card:hover{border-color:var(--accent-primary);background:var(--bg-subtle);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.recipe-grid-adding .recipe-card:not(.recipe-card-loading){opacity:.5;pointer-events:none}.recipe-card-loading{position:relative;cursor:wait;border-color:var(--accent-primary)}.recipe-card-spinner{position:absolute;top:.75rem;right:.75rem;border-color:#00000026;border-top-color:var(--accent-primary)}.recipe-card-header{margin-bottom:.75rem}.recipe-name{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary);line-height:1.3}.recipe-description{margin:0 0 .75rem;color:var(--text-body);font-size:.9rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;align-items:center;gap:.75rem;font-size:.8rem}.recipe-time{color:var(--text-subtle);display:flex;align-items:center;gap:.25rem}.recipe-difficulty{padding:.25rem .5rem;border-radius:8px;font-weight:600;text-transform:capitalize}.recipe-difficulty.easy{background:#e8f5e8;color:#2d5a2d}.recipe-difficulty.medium{background:#fff3e0;color:#cc7a00}.recipe-difficulty.hard{background:#ffebee;color:#c62828}.no-recipes{text-align:center;padding:2rem;color:var(--text-muted);font-style:italic}.meal-type-selector-modal{max-width:500px;width:90%}.meal-type-description{margin:0 0 1.5rem;color:var(--text-body);text-align:center}.meal-type-options{display:flex;flex-direction:column;gap:1rem}.meal-type-option{background:var(--bg-card);border:2px solid var(--border-light);border-radius:12px;padding:1.5rem;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;gap:1rem;text-align:left}.meal-type-option:hover{border-color:var(--accent-primary);background:var(--bg-subtle);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.meal-type-icon{color:var(--accent-primary);flex-shrink:0}.meal-type-content h3{margin:0 0 .5rem;font-size:1.5rem;color:var(--text-heading)}.meal-type-content p{margin:0;color:var(--text-body);font-size:.9rem;line-height:1.4}.free-text-meal-modal{max-width:500px;width:90%}.form-group{margin-bottom:1.5rem}.form-group:last-of-type{margin-bottom:0}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-heading)}.form-input{width:100%;padding:.75rem;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem;transition:var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7580641a}.form-input:disabled{opacity:.6;background:var(--bg-subtle);cursor:not-allowed}.form-textarea{width:100%;padding:.75rem;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem;font-family:inherit;resize:vertical;transition:var(--transition-fast);min-height:80px}.form-textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7580641a}.form-textarea:disabled{opacity:.6;background:var(--bg-subtle);cursor:not-allowed}.form-examples{background:var(--bg-subtle);border-radius:8px;padding:1rem;margin-top:1rem}.examples-title{margin:0 0 .5rem;font-weight:500;color:var(--text-heading);font-size:.9rem}.examples-list{margin:0;padding-left:1.2rem;color:var(--text-body);font-size:.85rem}.examples-list li{margin-bottom:.25rem}@media (max-width: 768px){.recipe-grid{grid-template-columns:1fr;gap:.75rem}.recipe-selector-modal{width:95%;margin:1rem}.recipe-selector-list{max-height:40vh}.meal-type-selector-modal,.free-text-meal-modal{width:95%;margin:1rem}.meal-type-option{padding:1rem;flex-direction:column;text-align:center;gap:.75rem}.meal-type-content h3{font-size:1.5rem}}.modal-content-large{max-width:800px;width:95%;max-height:90vh}.yaml-editor{width:100%;min-height:400px;padding:1rem;border:2px solid var(--border-primary);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-family:Menlo,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.5;resize:vertical;transition:all .2s ease;white-space:pre;overflow-wrap:normal;overflow-x:auto}.yaml-editor:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-subtle);box-shadow:0 0 0 3px #7580641a}.yaml-editor::placeholder{color:var(--text-disabled);font-family:Menlo,Monaco,Courier New,monospace;font-size:.85rem}.yaml-editor:disabled{opacity:.6;background:var(--bg-subtle);cursor:not-allowed}.modal-content-large .modal-body{max-height:60vh;overflow-y:auto}.edit-mode-selector{margin-bottom:1.5rem}.mode-tabs{display:flex;background:var(--bg-subtle);border-radius:8px;padding:4px;gap:4px}.mode-tab{flex:1;padding:.75rem 1rem;border:none;background:transparent;color:var(--text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:6px}.mode-tab:hover:not(:disabled){color:var(--text-primary);background:var(--bg-card)}.mode-tab.active{background:var(--accent-primary);color:var(--text-white);box-shadow:0 2px 4px #0000001a}.mode-tab:disabled{opacity:.6;cursor:not-allowed}.modal-description{margin:0 0 1.5rem;color:var(--text-body);text-align:center}.edit-mode-options{display:flex;flex-direction:column;gap:1rem}.edit-mode-option{background:var(--bg-card);border:2px solid var(--border-light);border-radius:12px;padding:1.5rem;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;gap:1rem;text-align:left;width:100%}.edit-mode-option:hover{border-color:var(--accent-primary);background:var(--bg-subtle);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.edit-mode-icon{font-size:2rem;flex-shrink:0}.edit-mode-content h3{margin:0 0 .5rem;font-size:1.2rem;color:var(--text-heading)}.edit-mode-content p{margin:0;color:var(--text-body);font-size:.9rem;line-height:1.4}.file-list{list-style:none;padding:0;margin:0}.file-item{background:var(--bg-card);border:1px solid var(--border-light);border-radius:8px;margin-bottom:.75rem;transition:var(--transition-medium);box-shadow:0 2px 4px var(--shadow-light)}.file-item:hover{background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium);border-color:var(--accent-primary)}.file-link{display:block;padding:1rem 1.5rem;text-decoration:none;color:var(--text-primary);cursor:pointer}.file-link:hover{color:var(--accent-primary)}.file-name{font-weight:500;font-size:1.1rem}.file-item.recipe-yaml{border-left:4px solid var(--accent-primary)}.header-nav{display:flex;gap:.5rem;align-items:center}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:var(--text-subtle)}.spinner{width:40px;height:40px;border:4px solid var(--border-subtle);border-top:4px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.success-notification{position:fixed;top:1rem;right:1rem;background:var(--bg-success, #10b981);color:#fff;padding:.75rem 1rem;border-radius:8px;display:flex;align-items:center;gap:.5rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1000;animation:slideIn .3s ease-out}.recipe .success-notification{position:static;background:#e8f5e8;border:2px solid #4caf50;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;color:#2d5a2d;font-weight:500;display:flex;align-items:center;gap:.5rem;animation:slideDown .3s ease}.error{background:var(--bg-error);border:1px solid var(--border-error);border-radius:8px;padding:1rem;margin:1rem 0;color:var(--text-error);text-align:center}.icon.size-4{width:1.5rem;height:1.5rem}.icon.size-5{width:2rem;height:2rem}.icon.size-6{width:2.5rem;height:2.5rem}.yaml-recipe{max-width:none;color:var(--text-primary)}.recipe-title{font-size:2rem;font-weight:400;color:var(--text-heading);font-family:Borel,cursive;line-height:1;margin-bottom:.75rem;margin-top:-.1em;padding-bottom:.5rem;border-bottom:2px solid var(--border-primary)}.recipe-subtitle{font-size:1.1rem;color:var(--text-muted);font-style:italic;margin-bottom:1rem;margin-top:-.5rem;line-height:1.4}.recipe-meta{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;margin:0;padding:.5rem;background:var(--bg-subtle);border-radius:12px;border:1px solid var(--border-subtle)}.recipe-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-body)}.recipe-meta-icon{width:18px;height:18px;color:var(--accent-primary)}.recipe-meta-text{font-weight:500}.recipe-meta-label{font-weight:500;color:var(--text-body)}.difficulty-stars{display:flex;gap:2px}.difficulty-star{width:16px;height:16px;color:var(--border-subtle);transition:var(--transition-fast)}.difficulty-star.filled{color:var(--accent-primary);fill:var(--accent-primary)}.meta-item{color:var(--text-body)}.meta-item strong{color:var(--text-heading)}.recipe-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;padding:.25rem 0 .75rem}.recipe-tag{background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-body);padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:500}.recipe-section{margin-bottom:1.5rem}.recipe-section h2{font-size:1.5rem;font-weight:400;color:var(--text-heading);font-family:Borel,cursive;line-height:1;text-box:trim-both cap alphabetic}.recipe-section hr{height:2px;outline:none;border:none;background-color:var(--text-primary)}.recipe-ingredients{list-style:none;padding:0;margin:0}.task-list-item{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem;margin-bottom:.25rem;background:var(--bg-card);border-radius:6px;border:1px solid var(--border-light);transition:all .2s ease}.task-list-item:hover{background:var(--bg-card-hover)}.task-list-checkbox{margin-top:.15rem;min-width:16px;height:16px;accent-color:var(--accent-primary)}.task-text{font-size:.9rem;line-height:1.4;color:var(--text-body);flex:1}.recipe-instructions{counter-reset:step-counter;list-style:none;padding:0;margin:0}.recipe-instructions li{counter-increment:step-counter;margin-bottom:.5rem;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-light);position:relative;padding:.75rem .75rem .75rem 2.5rem;line-height:1.5;font-size:.9rem;color:var(--text-body)}.recipe-notes{font-style:italic;color:var(--text-body);background:var(--bg-card);padding:1rem;border-radius:8px;border:1px solid var(--border-light);border-left:4px solid var(--accent-primary);font-size:.95rem;line-height:1.6}.serving-adjuster{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;padding:.5rem;background:var(--bg-subtle);border-radius:8px;border:2px solid var(--border-light)}.serving-btn{background:var(--accent-primary);color:var(--text-white);border:none;width:2rem;height:2rem;border-radius:50%;cursor:pointer;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.serving-btn:hover{background:var(--accent-hover);transform:scale(1.1)}.serving-btn:disabled{background:var(--text-disabled);cursor:not-allowed;transform:none}.serving-count{font-weight:600;font-size:1.1rem;color:var(--text-heading);min-width:2rem;text-align:center}.clickable-serving{cursor:pointer;border-radius:4px;transition:var(--transition-fast)}.clickable-serving:hover{background:var(--bg-subtle)}.task-list-checkbox:checked+.task-text{opacity:.7;text-decoration:line-through;color:var(--text-disabled)}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;padding:1.25rem;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-light)}.nutrition-item{text-align:center;padding:.75rem;background:var(--bg-subtle);border-radius:6px;border:1px solid var(--border-light)}.nutrition-item strong{display:block;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:.25rem;font-weight:600}.nutrition-item span{font-size:1.1rem;font-weight:700;color:var(--text-heading)}.recipe-rating{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.rating-star{font-size:1.5rem;color:var(--text-disabled);transition:var(--transition-fast)}.rating-star.star-filled{color:#f1c40f}.rating-text{margin-left:.5rem;font-weight:600;color:var(--text-body)}.copy-notification{position:fixed;top:2rem;right:2rem;background:var(--accent-primary);color:var(--text-white);padding:1rem 1.5rem;border-radius:8px;font-weight:500;box-shadow:0 4px 12px var(--shadow-strong);z-index:1000;animation:slideInRight .3s ease,fadeOut .3s ease 2.7s forwards}@media print{.yaml-recipe{color:#000;background:#fff}.serving-adjuster button{display:none}.recipe-meta{border:1px solid #ddd;background:#fff;flex-direction:row}.task-list-checkbox{print-color-adjust:exact;-webkit-print-color-adjust:exact}}@media (max-width: 1194px) and (min-width: 834px){.recipe{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;height:100%;column-gap:2rem;row-gap:1rem}.recipe-tags{grid-column:2 / 3}.recipe-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}.recipe-card{padding:1.5rem}.recipe-title{font-size:1.8rem;margin-bottom:.75rem}.recipe-meta-compact{font-size:.9rem;gap:1rem}.recipe-section{margin-bottom:2.5rem}.recipe-section h2{font-size:1.4rem}.recipe-instructions li{padding:.5rem;margin-bottom:.25rem;font-size:.95rem}.search-container{justify-content:space-between}.recipe-meta{grid-column:1 / 2;padding:.8rem;gap:1rem;flex-direction:row}.recipe-meta-item{font-size:.85rem}.recipe-meta-icon{width:16px;height:16px}.difficulty-star{width:14px;height:14px}}.this-week-container{padding:0}.week-header{text-align:center;padding:1rem;background-color:var(--accent-primary);color:var(--bg-primary);border-radius:16px;margin-bottom:1rem}.week-header h2{text-box-trim:trim-both;text-box-edge:cap alphabetic;margin-bottom:.5rem}.week-navigation{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.week-nav-btn{background:var(--bg-card);border:2px solid var(--border-primary);color:var(--text-primary);padding:.75rem;border-radius:12px;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px var(--shadow-light)}.week-nav-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-white);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.week-nav-btn:active{transform:translateY(0)}.week-title-container{display:flex;flex-direction:column;align-items:center;min-width:300px}.week-dates{font-size:.9rem;color:var(--bg-subtle);font-weight:500;margin:0;transform:translateY(.4rem)}.current-week-btn{background:var(--bg-subtle);border:1px solid var(--border-primary);color:var(--text-primary);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;transition:var(--transition-fast);margin-top:.25rem}.current-week-btn:hover{background:var(--accent-secondary);border-color:var(--accent-secondary);color:var(--text-white);transform:translateY(-1px)}.week-title{margin:0;font-family:Borel,cursive;font-size:2rem;color:var(--bg-primary);text-align:center}.meal-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:0}.meal-day-card{background:var(--bg-card);border:2px solid var(--border-light);border-radius:16px;padding:1.5rem;transition:all .3s ease;cursor:pointer;box-shadow:0 2px 8px var(--shadow-light)}.meal-day-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow-medium);border-color:var(--accent-primary)}.meal-day-card.today{border-color:var(--accent-primary);background:linear-gradient(135deg,var(--bg-card) 0%,rgba(var(--accent-primary-rgb),.05) 100%)}.day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem;margin-bottom:0}.day-name{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-heading)}.day-date{font-size:.9rem;color:var(--text-subtle);font-weight:500}.day-date.today{font-weight:600;color:var(--accent-primary)}.today-badge{background:var(--accent-primary);color:var(--text-white);font-size:.75rem;font-weight:600;padding:.45rem .5rem .25rem;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;margin-left:auto}.meal-content{cursor:pointer}.meal-header{display:flex;justify-content:space-between;align-items:center}.meal-actions{display:flex;align-items:center;gap:.25rem}.meal-name{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary);line-height:1.3;transform:translateY(9px)}.meal-description{margin:0 0 1rem;color:var(--text-body);font-size:.95rem;line-height:1.4}.meal-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.prep-time{display:flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-subtle);font-weight:500}.prep-time svg{flex-shrink:0}.difficulty{font-size:.8rem;font-weight:600;padding:.25rem .5rem;border-radius:12px;text-transform:capitalize}.difficulty.easy{background:#e8f5e8;color:#2d5a2d}.difficulty.medium{background:#fff3e0;color:#cc7a00}.difficulty.hard{background:#ffebee;color:#c62828}.meal-tags{display:flex;flex-wrap:wrap;gap:.5rem}.meal-tag{background:var(--bg-subtle);color:var(--text-body);font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:10px;border:1px solid var(--border-light)}.no-meal{text-align:center;color:var(--text-muted);margin-top:.5rem}.no-meal p{text-box-trim:trim-both;text-box-edge:cap alphabetic;margin:.5rem;font-style:italic;color:var(--text-disabled)}.clickable-no-meal{cursor:pointer;padding:.25rem;border:2px dashed var(--border-light);border-radius:12px;transition:var(--transition-fast)}.clickable-no-meal:hover{border-color:var(--accent-primary);background:var(--bg-subtle);color:var(--text-primary)}.clickable-no-meal:hover p{color:var(--text-primary)}.add-meal-hint{font-size:.85rem;margin-top:.5rem;opacity:.8}.delete-meal-btn{background:transparent;border:none;border-radius:4px;color:var(--text-subtle);padding:.25rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.delete-meal-btn:hover:not(:disabled){background:var(--bg-error, rgba(220, 38, 38, .1));color:var(--text-error, #dc2626);transform:scale(1.1)}.delete-meal-btn:disabled{opacity:.5;cursor:not-allowed}.error-badge{display:inline-flex;align-items:center;margin-left:.5rem;color:var(--text-error)}.day-selector-dropdown{position:absolute;top:100%;right:0;background:var(--bg-card);border:2px solid var(--border-primary);border-radius:12px;padding:1rem;box-shadow:0 8px 24px var(--shadow-medium);z-index:100;min-width:280px;animation:slideDown .2s ease}.day-selector-header{font-weight:500;color:var(--text-heading);margin-bottom:.75rem;font-size:.9rem}.day-selector-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.recipe-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}@media (max-width: 1200px) and (min-width: 834px){.meal-plan-grid{display:flex;flex-direction:column}}@media (max-width: 768px){.week-header h2{transform:translateY(.2em)}.week-dates{transform:none}.week-title{font-size:1.5rem}.week-title-container{min-width:200px}.week-nav-btn{padding:.6rem;transform:translateY(-6px)}.current-week-btn{font-size:.75rem;padding:.4rem .8rem}.meal-day-card{padding:1rem}.day-selector-dropdown{right:0;left:0;min-width:auto}.day-selector-grid{grid-template-columns:1fr}}@media (max-width: 480px){.week-nav-btn{padding:.5rem;width:44px;height:44px}.week-title-container{min-width:auto;text-align:center}.week-header{padding-top:2rem}.week-dates{font-size:.8rem}}.shopping-list-add-form{display:flex;gap:.75rem;margin-bottom:1.5rem}.shopping-list-add-form .form-input{flex:1}.shopping-list-add-btn{background:var(--accent-primary);color:var(--text-white);border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;transition:var(--transition-fast)}.shopping-list-add-btn:hover:not(:disabled){background:var(--accent-secondary)}.shopping-list-add-btn:disabled{opacity:.6;cursor:not-allowed}.shopping-list-clear-btn{background:transparent;color:var(--text-subtle);border:1px solid var(--border-primary);padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;margin-top:.75rem;transition:var(--transition-fast)}.shopping-list-clear-btn:hover{background:var(--bg-subtle);color:var(--text-error);border-color:var(--border-error)}.shopping-list-section{margin:.5rem 0 1rem;text-align:center;border-top:1px solid var(--border-light)}.generate-shopping-list-btn{background:var(--accent-primary);color:var(--text-white);border:none;padding:.875rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.75rem;transition:all .3s ease;box-shadow:0 4px 12px #00000026;text-transform:uppercase;letter-spacing:.5px;float:right;margin:1rem 0}.generate-shopping-list-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 24px #0003;background:var(--accent-secondary)}.generate-shopping-list-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:0 2px 6px #0000001a}.generate-shopping-list-btn svg{transition:transform .3s ease}.generate-shopping-list-btn:hover:not(:disabled) svg{transform:scale(1.1)}.back-button-container{margin-bottom:1.5rem}.back-to-week-btn{background:transparent;color:var(--text-primary);border:2px solid var(--border-medium);padding:.75rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s ease;text-decoration:none}.back-to-week-btn:hover{background:var(--bg-subtle);border-color:var(--accent-primary);color:var(--accent-primary);transform:translate(-2px)}.back-to-week-btn svg{transition:transform .2s ease}.back-to-week-btn:hover svg{transform:translate(-2px)}.task-list-item.checked{opacity:.6}.task-text.strikethrough{text-decoration:line-through;color:var(--text-subtle)}.shopping-list-summary{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-light);text-align:center}.items-summary{font-size:.9rem;color:var(--text-subtle);font-weight:500;margin:0}.empty-shopping-list{text-align:center;padding:2rem;color:var(--text-subtle)}.empty-shopping-list p{margin:.5rem 0}.error-message{text-align:center;padding:2rem;color:var(--text-error);background:var(--bg-error);border:1px solid var(--border-error);border-radius:8px;margin:1rem 0}.error-message p{margin:0;font-weight:500}@media (max-width: 768px){.shopping-list-section{margin-top:.5rem;padding-top:.5rem}.generate-shopping-list-btn{max-width:300px;padding:1rem 1.25rem;font-size:.9rem}.back-to-week-btn{width:100%;max-width:200px;justify-content:center}.shopping-list-summary{margin-top:1rem;padding-top:1rem}}@media (max-width: 1194px) and (min-width: 834px){.container{max-width:1100px;padding:0 2rem}.header-content{align-items:center;justify-content:space-between}.title{font-size:2rem;line-height:1.3}.nav{gap:1rem;margin-top:0}.nav-btn{padding:.6rem 1.2rem;font-size:.9rem}.nutrition-grid{grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.5rem}.modal-content{max-width:600px;width:85%}.filter-panel{padding:1.5rem}.filter-row{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (max-width: 768px){.container{padding:0 15px}.header-content{align-items:center}.title{font-size:1.3rem;line-height:1.2}.nav{width:100%;justify-content:flex-start;margin-top:.75rem}.search-input-wrapper{flex-direction:column;gap:.75rem}.file-name{font-size:1rem}.main{padding:.5rem}.search-container{margin-bottom:1.5rem}.markdown-content{font-size:.95rem}.markdown-content h1{font-size:1.8rem}.markdown-content h2{font-size:1.5rem}.markdown-content h3{font-size:1.3rem}.markdown-content .task-list-checkbox{width:32px;height:32px;min-width:32px;min-height:32px;margin-top:0}.markdown-content .task-list-item{padding:.5rem;border-radius:8px}.markdown-content .task-text{font-size:1.1rem;line-height:1.6}}@media (max-width: 768px){.recipe-title{font-size:1.6rem;line-height:1.2;margin-bottom:.5rem}.recipe-meta-compact{flex-direction:column;gap:.5rem;font-size:.85rem}.recipe-tags-compact{gap:.2rem}.recipe-tag-compact{font-size:.7rem;padding:.1rem .4rem}.task-list-item{padding:.4rem;font-size:.85rem}.recipe-instructions li{padding:.6rem .6rem .6rem 2.2rem;font-size:.85rem}.recipe-section{margin-bottom:2rem}.recipe-section h2{font-size:1.2rem;margin-bottom:0}}@media (max-width: 480px){.recipe-title{font-size:1.5rem}.recipe-section h2{font-size:1.3rem}.recipe-notes{padding:1rem;font-size:.9rem}.task-list-item{padding:.75rem 1rem}}@media (max-width: 768px){.filter-row{grid-template-columns:1fr}.filter-panel{padding:1rem}.search-input-wrapper{flex-direction:row}}@media (max-width: 768px){.nutrition-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;padding:1rem}.nutrition-item{padding:.5rem}.nutrition-item strong{font-size:.7rem}.nutrition-item span{font-size:1rem}.rating-star{font-size:1.2rem}}
