.user-menu{position:relative}.user-menu-button{background:none;border:none;padding:0;cursor:pointer;border-radius:50%;overflow:hidden;width:40px;height:40px}.user-avatar{width:100%;height:100%;object-fit:cover}.user-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#4a7c2d;color:#fff;font-weight:600;font-size:.9rem}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:240px;z-index:1000;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:1rem}.user-info strong{display:block;color:#333;margin-bottom:.25rem}.user-info small{display:block;color:#666;font-size:.85rem}.admin-badge{display:inline-block;background-color:#4a7c2d;color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;margin-top:.5rem;text-transform:uppercase}.user-menu-divider{height:1px;background-color:#eee;margin:.5rem 0}.user-menu-links{padding:.5rem 0}.user-menu-link{display:block;padding:.75rem 1rem;color:#333;text-decoration:none;transition:background-color .2s}.user-menu-link:hover{background-color:#f5f5f5}.user-menu-link.admin{color:#4a7c2d;font-weight:600}.user-menu-logout{width:100%;padding:.75rem 1rem;background:none;border:none;color:#c33;font-weight:600;cursor:pointer;text-align:left;transition:background-color .2s}.user-menu-logout:hover{background-color:#fee}.user-menu-auth-links{display:flex;gap:1rem}.auth-link{padding:.5rem 1rem;text-decoration:none;color:#333;border-radius:6px;font-weight:500;transition:all .2s}.auth-link:hover{background-color:#ffffff1a}.auth-link.primary{background-color:#2d5016;color:#fff}.auth-link.primary:hover{background-color:#3d6020}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2d5016,#4a7c2d);padding:2rem 1rem}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;max-width:420px;width:100%;padding:2.5rem}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:2.5rem;margin:0 0 .5rem;color:#2d5016}.auth-header h2{font-size:1.5rem;margin:0 0 .5rem;color:#333}.auth-header p{color:#666;margin:0}.auth-error{background-color:#fee;border:1px solid #fcc;color:#c33;padding:.75rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.9rem}.auth-success{background-color:#efe;border:1px solid #cfc;color:#363;padding:1rem;border-radius:6px;margin-bottom:1.5rem}.auth-success p{margin:.5rem 0}.auth-form{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500;font-size:.9rem}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#4a7c2d;box-shadow:0 0 0 3px #4a7c2d1a}.form-help{display:block;margin-top:.25rem;color:#666;font-size:.8rem}.form-footer{margin-bottom:1rem;text-align:right}.forgot-password-link{color:#4a7c2d;text-decoration:none;font-size:.9rem}.forgot-password-link:hover{text-decoration:underline}.auth-button{width:100%;padding:.875rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-button.primary{background-color:#2d5016;color:#fff}.auth-button.primary:hover:not(:disabled){background-color:#3d6020}.auth-button.google{background-color:#fff;color:#333;border:1px solid #ddd}.auth-button.google:hover:not(:disabled){background-color:#f8f8f8;border-color:#ccc}.google-icon{width:20px;height:20px}.auth-divider{margin:1.5rem 0;text-align:center;position:relative}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:#ddd}.auth-divider span{position:relative;background-color:#fff;padding:0 1rem;color:#666;font-size:.9rem}.auth-links{text-align:center;margin-top:1.5rem}.auth-links p{color:#666;font-size:.9rem;margin:0}.auth-links a{color:#4a7c2d;text-decoration:none;font-weight:600}.auth-links a:hover{text-decoration:underline}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem}.loading-spinner{border:3px solid #f3f3f3;border-top:3px solid #4a7c2d;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{text-align:center;padding:3rem 2rem}.error-container h2{color:#c33;margin-bottom:1rem}@media (max-width: 480px){.auth-card{padding:2rem 1.5rem}.auth-header h1{font-size:2rem}.auth-header h2{font-size:1.25rem}}.cookbooks-page{max-width:1400px;margin:0 auto;padding:2rem}.cookbooks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.cookbooks-header h1{font-size:2.5rem;color:#2e7d32;margin:0}.header-actions{display:flex;gap:1rem}.cookbooks-section{margin-bottom:3rem}.cookbooks-section h2{font-size:1.8rem;color:#1b5e20;margin-bottom:1.5rem}.cookbooks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.cookbook-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.cookbook-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.cookbook-cover{width:100%;height:200px;object-fit:cover}.cookbook-cover-placeholder{width:100%;height:200px;background:linear-gradient(135deg,#81c784,#4caf50);display:flex;align-items:center;justify-content:center;font-size:4rem}.cookbook-info{padding:1.25rem}.cookbook-info h3{font-size:1.3rem;color:#212121;margin:0 0 .5rem}.cookbook-info .description{font-size:.95rem;color:#666;margin:0 0 .75rem;line-height:1.4}.cookbook-info .recipe-count{font-size:.9rem;color:#2e7d32;font-weight:600;margin:0}.recent-recipes-section{margin-top:3rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-size:1.8rem;color:#1b5e20;margin:0}.recipe-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.recipe-meta{display:flex;gap:1rem;font-size:.85rem;color:#757575}.empty-state{text-align:center;padding:3rem 1rem;color:#757575}.empty-state p{margin-bottom:1.5rem}.btn-primary:hover{background-color:#1b5e20}.btn-link{background:none;border:none;color:#2e7d32;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:color .2s}.btn-link:hover{color:#1b5e20;text-decoration:underline}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:90%;box-shadow:0 8px 32px #0003}.modal h2{margin:0 0 1.5rem;color:#1b5e20}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}@media (max-width: 768px){.cookbooks-page{padding:1rem}.cookbooks-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-actions{width:100%;flex-direction:column}.header-actions button{width:100%}.cookbooks-grid,.recipes-grid{grid-template-columns:1fr}}.cookbook-detail-page{max-width:1400px;margin:0 auto;padding:2rem}.cookbook-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e0e0e0}.back-btn{background:none;border:none;color:#2e7d32;font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:1rem;padding:.5rem 0;transition:color .2s}.cookbook-title-section{margin-bottom:1rem}.cookbook-title-section h1{font-size:2.5rem;color:#2e7d32;margin:0 0 .5rem}.cookbook-description{font-size:1.1rem;color:#666;margin:0 0 .5rem;line-height:1.5}.recipe-count{font-size:.95rem;color:#757575;margin:0}.cookbook-actions{margin-top:1rem;display:flex;gap:1rem}.btn-edit{background-color:#2e7d32;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-edit:hover{background-color:#1b5e20}.btn-delete{background-color:#d32f2f;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-delete:hover{background-color:#b71c1c}.quick-filters-section{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;border:2px solid #2e7d32;box-shadow:0 4px 12px #2e7d3226}.quick-filters-section h3{color:#1b5e20;font-size:1.1rem;margin:0 0 1rem;font-weight:600}.quick-tag-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.quick-tag-btn{padding:.75rem 1.5rem;border:2px solid #2e7d32;background:#fff;border-radius:24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;color:#2e7d32;box-shadow:0 2px 4px #0000001a}.quick-tag-btn:hover{background-color:#f1f8e9;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.quick-tag-btn.active{background-color:#2e7d32;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #2e7d324d}.quick-tag-btn .checkmark{font-weight:700;font-size:1.2rem}.filters-section{background:#fff;padding:1.5rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.search-box{margin-bottom:1.5rem}.search-box input{width:100%;padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s}.search-box input:focus{outline:none;border-color:#2e7d32}.filter-group{margin-bottom:1rem}.filter-group label{display:block;font-weight:600;color:#424242;margin-bottom:.5rem;font-size:.95rem}.tag-filters{display:flex;flex-wrap:wrap;gap:.5rem}.tag-filter{padding:.5rem 1rem;border:2px solid #e0e0e0;background:#fff;border-radius:20px;font-size:.9rem;cursor:pointer;transition:all .2s}.tag-filter:hover{border-color:#2e7d32;background-color:#f1f8e9}.tag-filter.active{background-color:#2e7d32;color:#fff;border-color:#2e7d32}.filter-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-row .filter-group{flex:1;min-width:200px;margin-bottom:0}.filter-group select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;cursor:pointer;transition:border-color .2s}.filter-group select:focus{outline:none;border-color:#2e7d32}.btn-clear-filters{background-color:#757575;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .2s}.btn-clear-filters:hover{background-color:#616161}.results-section{margin-top:2rem}.results-count{font-size:.95rem;color:#757575;margin-bottom:1.5rem}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.recipe-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;position:relative;transition:transform .2s,box-shadow .2s}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.recipe-card>div:first-child{cursor:pointer}.recipe-image{width:100%;height:200px;object-fit:cover}.recipe-image-placeholder{width:100%;height:200px;background:linear-gradient(135deg,#ffb74d,#ff9800);display:flex;align-items:center;justify-content:center;font-size:4rem}.recipe-info{padding:1.25rem}.recipe-info h3{font-size:1.2rem;color:#212121;margin:0 0 .5rem}.recipe-info .description{font-size:.9rem;color:#666;margin:0 0 .75rem;line-height:1.4}.recipe-meta{display:flex;gap:1rem;font-size:.85rem;color:#757575;margin-bottom:.75rem}.recipe-tags{display:flex;flex-wrap:wrap;gap:.5rem}.recipe-tags .tag{padding:.25rem .75rem;background-color:#e8f5e9;color:#2e7d32;border-radius:12px;font-size:.8rem;font-weight:500}.remove-recipe-btn{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;background-color:#d32f2fe6;color:#fff;border:none;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:0}.recipe-card:hover .remove-recipe-btn{opacity:1}.remove-recipe-btn:hover{background-color:#b71c1c;transform:scale(1.1)}.empty-state{text-align:center;padding:3rem 1rem;color:#757575;font-size:1.1rem}@media (max-width: 768px){.cookbook-detail-page{padding:1rem}.cookbook-title-section h1{font-size:2rem}.filters-section{padding:1rem}.filter-row{flex-direction:column}.filter-row .filter-group{width:100%}.recipes-grid{grid-template-columns:1fr}}.edit-cookbook-page{max-width:800px;margin:0 auto;padding:2rem}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;color:#2e7d32;margin:1rem 0 0}.back-btn{background:none;border:none;color:#2e7d32;font-size:1rem;font-weight:600;cursor:pointer;padding:.5rem 0;transition:color .2s}.back-btn:hover{color:#1b5e20;text-decoration:underline}.edit-cookbook-form{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.form-group label{display:block;font-weight:600;color:#424242;margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#2e7d32}.help-text{font-size:.85rem;color:#757575;margin:0 0 .75rem;font-weight:400}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;min-height:2rem}.filter-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:#e8f5e9;color:#2e7d32;border-radius:16px;font-size:.9rem;font-weight:500}.filter-chip button{background:none;border:none;color:#2e7d32;font-size:1.2rem;font-weight:700;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.filter-chip button:hover{background-color:#2e7d3233}.input-with-button{display:flex;gap:.5rem}.input-with-button input{flex:1}.btn-add-filter{background-color:#2e7d32;color:#fff;border:none;width:40px;height:40px;border-radius:8px;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;flex-shrink:0}.btn-add-filter:hover{background-color:#1b5e20}.image-preview{margin-bottom:1rem}.image-preview img{max-width:300px;max-height:200px;object-fit:cover;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:.5rem}.image-url{font-size:.85rem;color:#666;margin:0;word-break:break-all}.image-upload-section{background-color:#f9f9f9;padding:1rem;border-radius:8px;border:2px dashed #e0e0e0}.file-input-label{display:inline-block;padding:.75rem 1.5rem;background-color:#2e7d32;color:#fff;border-radius:8px;cursor:pointer;transition:background-color .2s;font-weight:600;margin-bottom:1rem}.file-input-label:hover{background-color:#1b5e20}.file-selected{display:flex;align-items:center;gap:1rem;margin-top:.75rem;padding:.75rem;background-color:#fff;border-radius:8px;border:1px solid #e0e0e0}.file-selected span{flex:1;font-size:.9rem;color:#424242}.btn-upload{background-color:#1976d2;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:600;transition:background-color .2s}.btn-upload:hover:not(:disabled){background-color:#1565c0}.btn-upload:disabled{background-color:#ccc;cursor:not-allowed}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:2px solid #e0e0e0}.btn-primary{background-color:#2e7d32;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#1b5e20}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.btn-secondary{background-color:#fff;color:#2e7d32;border:2px solid #2e7d32;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:#f1f8e9}.loading,.error{text-align:center;padding:3rem;font-size:1.1rem;color:#757575}@media (max-width: 768px){.edit-cookbook-page{padding:1rem}.edit-cookbook-form{padding:1.5rem}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.unified-recipe-edit{background-color:#fafafa;min-height:100vh;padding:1.5rem;font-size:1.05rem}.unified-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:3px solid #1976d2}.unified-title h1{font-size:2rem;margin:0;color:#1976d2;line-height:1.2}.unified-title h2{font-size:1.5rem;margin:.5rem 0 0;color:#555;font-weight:400}.unified-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.unified-controls button{padding:.75rem 1.5rem;font-size:1rem;border:none;border-radius:8px;cursor:pointer;background-color:#1976d2;color:#fff;font-weight:500;transition:background-color .2s}.unified-controls button:hover:not(:disabled){background-color:#0d47a1}.unified-controls button:disabled{background-color:#ccc;cursor:not-allowed}.unified-controls .save-btn{background-color:#2e7d32}.unified-controls .save-btn:hover:not(:disabled){background-color:#1b5e20}.unified-controls .regenerate-btn{background-color:#ff9800}.unified-controls .regenerate-btn:hover:not(:disabled){background-color:#f57c00}.unified-controls .cancel-btn{background-color:#757575}.unified-controls .cancel-btn:hover{background-color:#424242}.unsaved-changes-banner{background-color:#fff3e0;border:2px solid #ff9800;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem;font-weight:500;color:#e65100}.basic-info-section{background-color:#fff;border:2px solid #1976d2;border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.basic-info-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:#e3f2fd;cursor:pointer;-webkit-user-select:none;user-select:none}.basic-info-header:hover{background-color:#bbdefb}.basic-info-header h3{margin:0;font-size:1.1rem;color:#1976d2}.collapse-icon{font-size:1.2rem;color:#1976d2;transition:transform .3s}.collapse-icon.collapsed{transform:rotate(-90deg)}.basic-info-content{padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{display:block;font-weight:500;margin-bottom:.25rem;color:#333;font-size:.9rem}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.95rem;font-family:inherit}.form-group textarea{min-height:60px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.image-upload-section{padding:.75rem;background-color:#f5f5f5;border-radius:6px}.current-image{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.5rem}.current-image img{max-width:200px;border-radius:6px;box-shadow:0 2px 4px #0000001a}.image-actions{display:flex;flex-direction:column;gap:.5rem}.image-note{color:#666;font-size:.9rem;margin:0}.btn-delete-image{padding:.5rem 1rem;background-color:#d32f2f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.file-input-label{display:inline-block;padding:.5rem 1rem;background-color:#1976d2;color:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;border:none;font-weight:500;transition:background-color .2s}.file-input-label:hover{background-color:#0d47a1}.image-upload-control{display:inline-block}.edit-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.ingredients-panel{position:sticky;top:1.5rem;background-color:#fff;padding:1.5rem;border-radius:12px;border:2px solid #2e7d32;max-height:calc(100vh - 10rem);overflow-y:auto;display:flex;flex-direction:column}.ingredients-panel h3{margin-top:0;font-size:1.5rem;color:#2e7d32;margin-bottom:1rem}.ingredients-list{list-style:none;padding:0;margin:0 0 1rem;flex:1;overflow-y:auto;min-height:0}.ingredient-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:4px;transition:background-color .2s;border-bottom:1px solid #e0e0e0;margin-bottom:.5rem}.ingredient-item:hover{background-color:#e8f5e9}.ingredient-item.selected{background-color:#c8e6c9;border:2px solid #2e7d32}.ingredient-checkbox{width:1.25rem;height:1.25rem;cursor:pointer}.drag-handle{color:#9e9e9e;font-size:1rem;cursor:grab;-webkit-user-select:none;user-select:none}.ingredient-item.dragging{opacity:.5;cursor:grabbing}.ingredient-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.ingredient-inputs{display:grid;grid-template-columns:60px 60px 1fr;gap:.25rem;margin-bottom:.25rem}.ingredient-inputs input{padding:.25rem .5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.ingredient-notes-input{width:100%;padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem;font-style:italic;color:#666}.ingredient-notes-input::placeholder{color:#999;font-style:italic}.ingredient-notes-input:focus{outline:none;border-color:#2e7d32;color:#333}.ingredient-display{font-size:1.05rem;cursor:pointer}.ingredient-display:hover{color:#1b5e20}.btn-remove-ingredient{background:none;border:none;color:#d32f2f;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s;line-height:1}.btn-remove-ingredient:hover{background-color:#ffebee}.ingredient-actions{display:flex;gap:.5rem;margin-bottom:1rem;flex-shrink:0}.btn-add-ingredient,.btn-delete-selected{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500}.btn-add-ingredient{background-color:#2e7d32;color:#fff}.btn-add-ingredient:hover{background-color:#1b5e20}.btn-delete-selected{background-color:#d32f2f;color:#fff}.btn-delete-selected:hover:not(:disabled){background-color:#b71c1c}.btn-delete-selected:disabled{background-color:#ccc;cursor:not-allowed}.bulk-actions{margin-top:1rem;padding-top:1rem;border-top:2px solid #e0e0e0;flex-shrink:0}.bulk-actions p{font-size:.9rem;color:#666;margin:0 0 .5rem}.bulk-actions select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;margin-bottom:.5rem}.bulk-actions button{width:100%;padding:.5rem 1rem;background-color:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.bulk-actions button:hover:not(:disabled){background-color:#0d47a1}.bulk-actions button:disabled{background-color:#ccc;cursor:not-allowed}.instructions-panel{background-color:transparent}.instructions-panel h3{font-size:1.75rem;color:#1976d2;margin-bottom:1.5rem;margin-top:0}.instructions-list{list-style:none;padding:0;margin:0}.instruction-item{background-color:#fff;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;border:2px solid #e0e0e0;transition:all .3s ease}.instruction-item:hover{border-color:#1976d2}.instruction-item.drag-over{border-color:#2e7d32;background-color:#f1f8e9;box-shadow:0 4px 12px #2e7d3233}.instruction-item.dragging{opacity:.6;background-color:#f5f5f5;box-shadow:0 8px 16px #0003;border-color:#1976d2;transform:rotate(2deg)}.instruction-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.instruction-header-left{display:flex;align-items:center;gap:.75rem}.instruction-drag-handle{cursor:grab;color:#999;font-size:1.3rem;display:flex;align-items:center;padding:.25rem;-webkit-user-select:none;user-select:none;transition:color .2s}.instruction-drag-handle:hover{color:#1976d2}.step-number{font-size:1.3rem;font-weight:700;color:#1976d2}.instruction-controls{display:flex;gap:.5rem}.btn-edit-instruction,.btn-delete-instruction{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500}.btn-edit-instruction{background-color:#1976d2;color:#fff}.btn-edit-instruction:hover{background-color:#0d47a1}.btn-delete-instruction{background-color:#d32f2f;color:#fff}.btn-delete-instruction:hover{background-color:#b71c1c}.instruction-timing-input{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;margin-bottom:.5rem}.instruction-timing-display{font-size:1rem;color:#d84315;background-color:#fff3e0;padding:.5rem 1rem;border-radius:6px;font-weight:500;display:inline-block}.instruction-text-display{font-size:1.2rem;line-height:1.8;color:#212121;margin-bottom:1rem;cursor:pointer;padding:.5rem;border-radius:4px}.instruction-text-display:hover{background-color:#f5f5f5}.instruction-text-input{width:100%;min-height:80px;padding:.75rem;border:2px solid #1976d2;border-radius:4px;font-size:1.1rem;font-family:inherit;resize:vertical;margin-bottom:.5rem}.instruction-edit-actions{display:flex;gap:.5rem;margin-bottom:1rem}.btn-save-instruction,.btn-cancel-instruction{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-save-instruction{background-color:#2e7d32;color:#fff}.btn-save-instruction:hover{background-color:#1b5e20}.btn-cancel-instruction{background-color:#757575;color:#fff}.btn-cancel-instruction:hover{background-color:#424242}.drop-zone{background-color:#f1f8e9;padding:1rem 1.25rem;border-radius:8px;margin-top:1rem;border-left:4px solid #2e7d32;min-height:60px}.drop-zone-header{color:#1b5e20;font-size:1.05rem;font-weight:500;display:block;margin-bottom:.5rem}.mapped-ingredients-list{list-style:none;padding:0;margin:0}.mapped-ingredient-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;border-radius:4px;transition:background-color .2s;margin-bottom:.25rem}.mapped-ingredient-item:hover{background-color:#dcedc8}.mapped-ingredient-text{flex:1;font-size:1.05rem}.no-ingredients-mapped{color:#757575;font-style:italic;margin:.5rem 0;text-align:center;padding:1rem}.btn-add-instruction{padding:.75rem 1.5rem;background-color:#1976d2;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;margin-top:1rem}.btn-add-instruction:hover{background-color:#0d47a1}.section-container{margin-bottom:3rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem;background-color:#e3f2fd;border-radius:8px;border:2px solid #1976d2}.section-header h4{font-size:1.5rem;margin:0;color:#0d47a1}.section-timing{font-size:1rem;color:#666;background-color:#fff3e0;padding:.5rem 1rem;border-radius:6px;font-weight:500}.btn-remove-section{padding:.5rem 1rem;background-color:#d32f2f;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-remove-section:hover{background-color:#b71c1c}.btn-add-section{padding:.75rem 1.5rem;background-color:#1976d2;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;margin-top:2rem}.btn-add-section:hover{background-color:#0d47a1}.loading,.error{text-align:center;padding:3rem;font-size:1.2rem}.error{color:#d32f2f}.unified-footer{position:sticky;bottom:0;background-color:#fff;border-top:3px solid #1976d2;padding:1rem 1.5rem;margin-top:2rem;display:flex;justify-content:center;gap:1rem;box-shadow:0 -2px 8px #0000001a;z-index:10}.unified-footer button{padding:.75rem 2rem;font-size:1.1rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:background-color .2s}.unified-footer .save-btn-large{background-color:#2e7d32;color:#fff}.unified-footer .save-btn-large:hover:not(:disabled){background-color:#1b5e20}.unified-footer .save-btn-large:disabled{background-color:#ccc;cursor:not-allowed}.unified-footer .cancel-btn-large{background-color:#757575;color:#fff}.unified-footer .cancel-btn-large:hover{background-color:#424242}@media (max-width: 1024px){.edit-content{grid-template-columns:300px 1fr;gap:1rem}.ingredients-panel{font-size:.95rem}}@media (max-width: 768px){.unified-recipe-edit{padding:1rem}.unified-title h1{font-size:1.75rem}.unified-controls{flex-direction:column;width:100%}.unified-controls button{width:100%}.edit-content{grid-template-columns:1fr;gap:1.5rem}.ingredients-panel{position:static;max-height:none}.form-row{grid-template-columns:1fr}}.tags-input-container{border:2px solid #e0e0e0;border-radius:8px;padding:.75rem;background:#fff}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;min-height:2rem}.tags-list .tag{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background-color:#e8f5e9;color:#2e7d32;border-radius:16px;font-size:.9rem;font-weight:500}.tag-remove{background:none;border:none;color:#2e7d32;font-size:1.2rem;font-weight:700;cursor:pointer;padding:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.tag-remove:hover{background-color:#2e7d3233}.tag-input-row{display:flex;gap:.5rem}.tag-input-row input{flex:1;padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.95rem}.tag-input-row input:focus{outline:none;border-color:#2e7d32}.btn-add-tag{padding:.5rem 1rem;background-color:#2e7d32;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .2s}.btn-add-tag:hover{background-color:#1b5e20}.field-help{font-size:.85rem;color:#757575;margin-top:.5rem;font-style:italic}.cooking-mode{background-color:#fafafa;min-height:100vh;padding:1.5rem}.cooking-mode.font-size-1{--content-font-scale: .7}.cooking-mode.font-size-2{--content-font-scale: .8}.cooking-mode.font-size-3{--content-font-scale: .9}.cooking-mode.font-size-4{--content-font-scale: .95}.cooking-mode.font-size-5{--content-font-scale: 1}.cooking-mode.font-size-6{--content-font-scale: 1.1}.cooking-mode.font-size-7{--content-font-scale: 1.2}.cooking-mode.font-size-8{--content-font-scale: 1.3}.cooking-mode.font-size-9{--content-font-scale: 1.4}.cooking-mode.font-size-10{--content-font-scale: 1.5}.cooking-mode.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;overflow-y:auto;padding:2rem;background-color:#fafafa}.cooking-mode-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:3px solid #2e7d32}.cooking-mode-title h1{font-size:2rem;margin:0;color:#1b5e20;line-height:1.2}.cooking-mode-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.cooking-mode-controls button{padding:.6rem 1rem;font-size:.95rem;border:none;border-radius:8px;cursor:pointer;background-color:#2e7d32;color:#fff;font-weight:500;transition:background-color .2s}.cooking-mode-controls button:hover{background-color:#1b5e20}.cooking-mode-controls button:disabled{background-color:#ccc;cursor:not-allowed}.cooking-mode-controls .exit-btn{background-color:#d32f2f}.cooking-mode-controls .exit-btn:hover{background-color:#b71c1c}.cooking-mode-controls .fullscreen-btn{background-color:#1976d2}.cooking-mode-controls .fullscreen-btn:hover{background-color:#0d47a1}.cooking-mode-controls .manage-btn{background-color:#757575}.cooking-mode-controls .manage-btn:hover{background-color:#424242}.cooking-mode-controls .reset-mappings-btn{background-color:#ff9800}.cooking-mode-controls .reset-mappings-btn:hover{background-color:#f57c00}.servings-control{display:flex;align-items:center;gap:.75rem;background-color:#fff;padding:.5rem 1rem;border-radius:8px;border:2px solid #e0e0e0}.servings-control button{width:2.5rem;height:2.5rem;padding:0;border-radius:50%;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.servings-control span{font-weight:600;font-size:.95rem;white-space:nowrap}.toggle-inline-ingredients{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#fff;padding:.75rem 1rem;border-radius:8px;border:2px solid #e0e0e0;font-size:.95rem}.toggle-inline-ingredients input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.cooking-mode-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;font-size:1rem;color:#555}.cooking-mode-meta span{background-color:#fff;padding:.75rem 1.25rem;border-radius:8px;border:1px solid #e0e0e0;font-weight:500}.cooking-mode-content{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}@media (min-width: 1024px){.cooking-mode-content{grid-template-columns:350px 1fr;align-items:start}.cooking-mode-ingredients-section{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}}.cooking-mode-ingredients-section{background-color:#fff;padding:1.5rem;border-radius:12px;border:2px solid #2e7d32}.cooking-mode-ingredients-section .hint-text{font-size:.9rem;color:#666;font-weight:400;font-style:italic}.cooking-mode-ingredients-section h2{margin-top:0;font-size:calc(1.5rem * var(--content-font-scale, 1));color:#2e7d32;margin-bottom:1rem;line-height:1.2}.cooking-mode-ingredients-section h3{font-size:calc(1.2rem * var(--content-font-scale, 1));color:#1b5e20;margin-top:1rem;margin-bottom:.5rem;line-height:1.2}.cooking-mode-ingredients-section ul{list-style:none;padding:0;margin:0}.cooking-mode-ingredients-section li{padding:.5rem;border-bottom:1px solid #e0e0e0}.cooking-mode-ingredients-section li:last-child{border-bottom:none}.ingredient-main{font-size:calc(1.05rem * var(--content-font-scale, 1));line-height:1.4;color:#212121}.ingredient-note{font-size:calc(.9rem * var(--content-font-scale, 1));line-height:1.3;color:#666;font-style:italic;margin-top:.15rem;padding-left:.5rem}.ingredient-section{margin-bottom:2rem}.cooking-mode-instructions h2{font-size:calc(1.5rem * var(--content-font-scale, 1));color:#2e7d32;margin-bottom:1rem;line-height:1.2}.instruction-section{margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #2e7d32}.section-header h3{font-size:calc(1.3rem * var(--content-font-scale, 1));margin:0;color:#1b5e20;line-height:1.2}.section-timing{font-size:calc(.9rem * var(--content-font-scale, 1));color:#666;background-color:#fff3e0;padding:.4rem .8rem;border-radius:6px;font-weight:500}.instruction-step{background-color:#fff;padding:1rem;border-radius:12px;margin-bottom:1rem;border:2px solid #e0e0e0;transition:all .3s ease}.instruction-step.completed{background-color:#e8f5e9;border-color:#2e7d32;opacity:.7}.instruction-step.completed .step-text{text-decoration:line-through;color:#666}.step-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.step-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.step-checkbox input[type=checkbox]{width:1.5rem;height:1.5rem;cursor:pointer;flex-shrink:0}.step-number{font-size:calc(1.2rem * var(--content-font-scale, 1));font-weight:700;color:#2e7d32;line-height:1.2}.instruction-timing{font-size:calc(.9rem * var(--content-font-scale, 1));color:#d84315;background-color:#fff3e0;padding:.4rem .8rem;border-radius:6px;font-weight:500}.step-text{font-size:calc(1.1rem * var(--content-font-scale, 1));line-height:1.5;color:#212121;margin-bottom:.75rem}.inline-ingredients{background-color:#f1f8e9;padding:.75rem 1rem;border-radius:8px;margin-top:.75rem;border-left:4px solid #2e7d32}.inline-ingredients strong{color:#1b5e20;font-size:calc(1rem * var(--content-font-scale, 1));display:block;margin-bottom:.4rem;line-height:1.2}.inline-ingredients ul{list-style:none;padding:0;margin:0}.inline-ingredients li{padding:.25rem 0;font-size:calc(1rem * var(--content-font-scale, 1));line-height:1.4;color:#33691e}.step-image{width:100%;max-width:600px;border-radius:8px;margin-top:1rem;box-shadow:0 2px 8px #0000001a}.cooking-mode-footer{text-align:center;padding:2rem 0;border-top:2px solid #e0e0e0}.exit-btn-large{padding:1rem 3rem;font-size:1rem;border:none;border-radius:8px;cursor:pointer;background-color:#d32f2f;color:#fff;font-weight:600;transition:background-color .2s}.exit-btn-large:hover{background-color:#b71c1c}@media (max-width: 768px){.cooking-mode-title h1{font-size:2rem}.cooking-mode-controls{flex-direction:column;width:100%}.cooking-mode-controls button{width:100%}.step-text{font-size:1.2rem}.inline-ingredients li{font-size:1.05rem}}@media print{.cooking-mode-header,.cooking-mode-controls,.cooking-mode-footer{display:none}.cooking-mode{background-color:#fff;padding:0}.instruction-step{page-break-inside:avoid;border:1px solid #ccc}}.collapsible-header{display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none}.collapse-icon{display:inline-block;font-size:.9em;margin-right:.25rem;transition:transform .2s ease}.step-number{display:flex;align-items:center;gap:.25rem}.instruction-step.collapsed{opacity:.6}.instruction-step.collapsed .step-header{margin-bottom:0}.toggle-auto-collapse{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#fff;padding:.75rem 1rem;border-radius:8px;border:2px solid #e0e0e0;font-size:.95rem}.toggle-auto-collapse input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.font-size-control{display:flex;align-items:center;gap:.5rem;background-color:#fff;padding:.5rem .75rem;border-radius:8px;border:2px solid #e0e0e0}.font-size-btn{height:2.5rem;min-width:2.5rem;padding:0 .5rem;border:2px solid #2e7d32;border-radius:6px;cursor:pointer;background-color:#fff;color:#2e7d32;font-weight:700;font-size:1rem!important;display:flex;align-items:center;justify-content:center;transition:all .2s;white-space:nowrap}.font-size-btn.reset{font-size:.85rem!important;padding:0 .75rem}.font-size-btn:hover:not(:disabled){background-color:#2e7d32;color:#fff}.font-size-btn:disabled{opacity:.3;cursor:not-allowed;border-color:#ccc;color:#ccc}.font-size-label{font-size:.9rem!important;font-weight:500;color:#555;white-space:nowrap;margin:0 .25rem}.meal-card{position:relative;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0000001f;transition:all .2s}.meal-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.meal-card-content{cursor:pointer;display:flex;gap:.75rem}.meal-card.compact .meal-card-content{flex-direction:row;align-items:center;padding:.5rem;gap:.5rem}.meal-card-image{width:80px;height:80px;object-fit:cover;border-radius:4px;flex-shrink:0}.meal-card.compact .meal-card-image{width:50px;height:50px;align-self:center}.meal-card-info{flex:1;padding:.5rem;min-width:0}.meal-card.compact .meal-card-info{padding:0}.meal-card-title{margin:0 0 .25rem;font-size:.95rem;font-weight:600;color:#2d5016;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-card.compact .meal-card-title{font-size:.85rem}.meal-card-description{margin:0 0 .5rem;font-size:.85rem;color:#666;line-height:1.4}.meal-card-meta{display:flex;gap:1rem;font-size:.8rem;color:#757575;margin-bottom:.5rem}.meal-notes{font-size:.8rem;color:#666;padding:.5rem;background:#f9f9f9;border-radius:4px;margin-top:.5rem}.btn-remove-meal{position:absolute;top:.25rem;right:.25rem;width:24px;height:24px;border-radius:50%;border:none;background:#d32f2fe6;color:#fff;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:0}.meal-card:hover .btn-remove-meal{opacity:1}.btn-remove-meal:hover{background:#c62828;transform:scale(1.1)}.calendar-view{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);background:#2e7d32;color:#fff}.calendar-header-cell{padding:1rem;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2)}.calendar-header-cell:last-child{border-right:none}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e0e0e0}.calendar-cell{min-height:150px;background:#fff;padding:.5rem;display:flex;flex-direction:column}.calendar-cell.other-month{background:#f9f9f9;opacity:.6}.calendar-cell.today{background:#fff3e0;border:2px solid #ff9800}.date-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.date-number{font-weight:600;font-size:1.1rem;color:#333}.calendar-cell.today .date-number{color:#ff9800}.meals-container{flex:1;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.meal-type-group{margin-bottom:.5rem}.meal-type-label{font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase;margin-bottom:.25rem}.btn-add-meal{width:100%;padding:.5rem;background:#f5f5f5;border:1px dashed #ccc;border-radius:4px;cursor:pointer;font-size:.85rem;color:#666;transition:all .2s;margin-top:auto}.btn-add-meal:hover{background:#e8f5e9;border-color:#2e7d32;color:#2e7d32}@media (max-width: 1200px){.calendar-cell{min-height:120px}}@media (max-width: 768px){.calendar-grid{grid-template-columns:1fr}.calendar-header{display:none}.calendar-cell{min-height:200px;border-bottom:1px solid #e0e0e0}.date-header:before{content:attr(data-day);margin-right:.5rem;font-weight:600;color:#666}}.weekly-list-view{display:flex;flex-direction:column;gap:2rem}.day-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.day-section.today{border:2px solid #ff9800;background:#fff3e0}.day-header{display:flex;align-items:center;gap:1rem;margin:0 0 1rem;color:#2d5016}.today-badge{background:#ff9800;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.day-notes{padding:.75rem;background:#f5f5f5;border-radius:6px;margin-bottom:1rem;font-size:.95rem}.meal-types-list{display:flex;flex-direction:column;gap:1.5rem}.meal-type-section{border-left:3px solid #e0e0e0;padding-left:1rem}.meal-type-header{margin:0 0 .75rem;color:#2e7d32;font-size:1.1rem}.meals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:.75rem}.no-meals{padding:1rem;background:#f9f9f9;border-radius:6px;text-align:center;color:#666;font-style:italic}.btn-add-meal-list{padding:.5rem 1rem;background:#f5f5f5;border:1px dashed #ccc;border-radius:6px;cursor:pointer;font-size:.9rem;color:#666;transition:all .2s}.btn-add-meal-list:hover{background:#e8f5e9;border-color:#2e7d32;color:#2e7d32}@media (max-width: 768px){.day-section{padding:1rem}.meals-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.add-meal-modal{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;color:#2d5016}.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close:hover{background:#f5f5f5;color:#333}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.selected-date{font-size:1.1rem;font-weight:600;color:#2e7d32;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2e7d32}.recipe-list{max-height:300px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:6px;margin-top:.5rem}.recipe-item{display:flex;align-items:center;gap:1rem;padding:.75rem;cursor:pointer;transition:background .2s;border-bottom:1px solid #f0f0f0;position:relative}.recipe-item:last-child{border-bottom:none}.recipe-item:hover{background:#f5f5f5}.recipe-item.selected{background:#e8f5e9;border-left:3px solid #2e7d32}.recipe-item img{width:60px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0}.recipe-item-info{flex:1;min-width:0}.recipe-item-info h4{margin:0 0 .25rem;font-size:.95rem;color:#2d5016}.recipe-item-info p{margin:0;font-size:.85rem;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkmark{color:#2e7d32;font-size:1.5rem;font-weight:700}.loading,.no-recipes{text-align:center;padding:2rem;color:#666}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:1rem}.btn-primary{background:#2e7d32;color:#fff}.btn-primary:hover:not(:disabled){background:#27632a}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover{background:#e0e0e0}@media (max-width: 768px){.modal-content{max-height:95vh}.modal-header,.modal-body{padding:1rem}.recipe-list{max-height:200px}.modal-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%}}.shopping-list-modal{max-width:800px}.date-range-selector{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;padding:1rem;background:#f5f5f5;border-radius:6px}.date-range-selector .form-group{flex:1;margin-bottom:0}.btn-generate{padding:.75rem 1.5rem;background:#2e7d32;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s;white-space:nowrap}.btn-generate:hover{background:#27632a}.shopping-list-info{text-align:center;padding:1rem;background:#e8f5e9;border-radius:6px;margin-bottom:1.5rem}.shopping-list-info p{margin:0;color:#2d5016}.shopping-list-items{border:1px solid #e0e0e0;border-radius:6px;max-height:400px;overflow-y:auto}.shopping-list-item{padding:1rem;border-bottom:1px solid #f0f0f0}.shopping-list-item:last-child{border-bottom:none}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:1rem}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.ingredient-name{flex:1;font-weight:600;color:#333;text-transform:capitalize}.ingredient-amount{font-weight:500;color:#2e7d32;white-space:nowrap}.ingredient-recipes{margin-top:.5rem;padding-left:2.5rem;font-size:.85rem;color:#666;font-style:italic}.empty-state{text-align:center;padding:3rem 1rem;color:#666;font-size:1.1rem}@media print{.modal-overlay{position:static;background:none}.modal-content{box-shadow:none;max-height:none;max-width:none}.modal-header,.modal-actions,.btn-close,.btn-generate{display:none}.shopping-list-items{max-height:none;border:none}.shopping-list-item{page-break-inside:avoid}.checkbox-label input[type=checkbox]{border:1px solid #333}}@media (max-width: 768px){.date-range-selector{flex-direction:column;align-items:stretch}.btn-generate{width:100%}.shopping-list-items{max-height:300px}.checkbox-label{flex-wrap:wrap}.ingredient-amount{margin-left:auto}}.meal-planner-page{max-width:1400px;margin:0 auto;padding:2rem}.meal-planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.meal-planner-header h1{margin:0;color:#2d5016}.view-toggle{display:flex;gap:0;border:2px solid #ddd;border-radius:8px;overflow:hidden}.view-toggle button{padding:.5rem 1.5rem;border:none;background:#e8e8e8;color:#333;cursor:pointer;transition:all .2s;font-weight:500}.view-toggle button:hover{background:#d0d0d0}.view-toggle button.active{background:#2e7d32;color:#fff}.view-toggle button:not(:last-child){border-right:1px solid #ddd}.btn-shopping-list{padding:.75rem 1.5rem;background:#2196f3;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:background .2s}.btn-shopping-list:hover{background:#1976d2}.navigation-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem;background:#f5f5f5;border-radius:8px}.nav-btn{padding:.5rem 1rem;background:#e8e8e8;color:#333;border:1px solid #bbb;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.nav-btn:hover{background:#d0d0d0;border-color:#999}.date-range{display:flex;align-items:center;gap:1rem}.date-range h2{margin:0;font-size:1.5rem;color:#333}.btn-today{padding:.5rem 1rem;background:#2e7d32;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s;font-weight:500}.btn-today:hover{background:#27632a}.loading,.error{text-align:center;padding:2rem;font-size:1.1rem}.error{color:#d32f2f;background:#ffebee;border-radius:8px}@media (max-width: 768px){.meal-planner-page{padding:1rem}.meal-planner-header{flex-direction:column;align-items:stretch}.view-toggle{width:100%}.view-toggle button{flex:1}.navigation-bar{flex-direction:column;gap:1rem}.date-range{flex-direction:column;text-align:center}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}.app{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:0 20px;width:100%}.header{background-color:#2d5016;color:#fff;padding:1rem 0;box-shadow:0 2px 4px #0000001a}.header .container{display:flex;justify-content:space-between;align-items:center;gap:2rem}.logo{font-size:1.5rem;font-weight:700}.logo a{color:#fff;text-decoration:none}.logo a:hover{opacity:.9}nav{display:flex;gap:1.5rem}nav a{color:#fff;text-decoration:none;font-weight:500}nav a:hover{text-decoration:underline}.main{flex:1;padding:2rem 0}.footer{background-color:#2d5016;color:#fff;padding:1rem 0;text-align:center;margin-top:auto}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2rem}.recipe-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:transform .2s;cursor:pointer}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.recipe-card img{width:100%;height:200px;object-fit:cover}.recipe-card-content{padding:1rem}.recipe-card h3{margin-bottom:.5rem;color:#2d5016}.recipe-card p{color:#666;font-size:.9rem}.recipe-detail{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.recipe-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.recipe-actions-right{display:flex;gap:.75rem}.recipe-detail img{width:100%;max-height:400px;object-fit:cover;border-radius:8px;margin-bottom:2rem}.recipe-detail h2{color:#2d5016;margin-bottom:1rem}.recipe-meta{display:flex;gap:2rem;margin-bottom:2rem;color:#666;align-items:center;flex-wrap:wrap}.servings-control{display:flex;flex-direction:column;gap:.75rem}.servings-adjuster{display:flex;align-items:center;gap:.5rem}.servings-adjuster button{width:32px;height:32px;padding:0;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:4px;background-color:#2d5016;color:#fff;border:none;cursor:pointer;transition:background-color .2s}.servings-adjuster button:hover:not(:disabled){background-color:#3d6821}.servings-adjuster button:disabled{background-color:#ccc;cursor:not-allowed}.servings-adjuster .reset-button{width:auto;height:auto;padding:.25rem .75rem;font-size:.85rem;font-weight:400;background-color:#666}.quick-scale-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.quick-scale-buttons .scale-button{width:auto;height:auto;min-width:50px;padding:.4rem .75rem;font-size:.9rem;font-weight:600;border-radius:4px;background-color:#4a7c2d;color:#fff;border:none;cursor:pointer;transition:all .2s}.quick-scale-buttons .scale-button:hover{background-color:#5a8c3d;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.quick-scale-buttons .scale-button:active{transform:translateY(0);box-shadow:0 1px 2px #0003}.servings-control .reset-button:hover{background-color:#777}.servings-control span{margin:0 .25rem;white-space:nowrap}.recipe-sections{margin-top:2rem}.recipe-section{margin-bottom:3rem;padding:1.5rem;background-color:#f9f9f9;border-radius:8px;border-left:4px solid #2d5016}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.section-header h3{color:#2d5016;margin:0}.section-timing{background-color:#2d5016;color:#fff;padding:.4rem .8rem;border-radius:4px;font-size:.9rem;font-weight:500}.instruction-timing{color:#2d5016;font-weight:600;font-size:.95rem}.recipe-section h4{color:#2d5016;margin-bottom:1rem;font-size:1.1rem}.ingredients,.instructions{margin-bottom:2rem}.ingredients h3,.instructions h3{color:#2d5016;margin-bottom:1rem}.ingredients ul{list-style:none;padding:0}.ingredients li{padding:.5rem 0;border-bottom:1px solid #eee}.instructions ol{padding-left:1.5rem}.instructions li{margin-bottom:1rem;line-height:1.6}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group textarea{min-height:100px;resize:vertical}button{background-color:#2d5016;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}button:hover{background-color:#1f3710}button:disabled{background-color:#ccc;cursor:not-allowed}.error{color:#d32f2f;background-color:#ffebee;padding:1rem;border-radius:4px;margin-bottom:1rem}.loading{text-align:center;padding:2rem;color:#666}.recipe-form{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;margin:0}.sections-container{margin-top:2rem}.section-form{background-color:#f9f9f9;border-radius:8px;border-left:4px solid #2d5016;padding:1.5rem;margin-bottom:2rem}.section-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-form-header h4{margin:0;color:#2d5016}.subsection{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ddd}.subsection h5{color:#2d5016;margin-bottom:1rem}.ingredient-row{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:center}.ingredient-row .input-small{width:80px}.ingredient-row .input-flex{flex:1}.instruction-row{display:flex;gap:.75rem;margin-bottom:1rem;align-items:flex-start;background-color:#fff;padding:.75rem;border-radius:6px;border:2px solid transparent;transition:all .2s ease}.instruction-row:hover{border-color:#e0e0e0;box-shadow:0 2px 4px #0000000d}.instruction-row.dragging{opacity:.5;background-color:#f5f5f5;box-shadow:0 4px 8px #00000026;border-color:#2d5016}.instruction-drag-handle{cursor:grab;color:#999;font-size:1.2rem;display:flex;align-items:center;padding:.25rem;-webkit-user-select:none;user-select:none;margin-top:.5rem}.instruction-drag-handle:hover{color:#2d5016}.instruction-drag-handle:active{cursor:grabbing}.instruction-number{min-width:30px;height:30px;background-color:#2d5016;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;margin-top:.5rem}.instruction-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.instruction-timing-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.btn-secondary{background-color:#666;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;margin-top:.5rem}.btn-secondary:hover{background-color:#555}.btn-remove{background-color:#d32f2f;color:#fff;border:none;width:30px;height:30px;border-radius:4px;cursor:pointer;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-remove:hover{background-color:#b71c1c}.btn-danger-small{background-color:#d32f2f;color:#fff;border:none;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.85rem}.btn-danger-small:hover{background-color:#b71c1c}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:2px solid #eee}.form-section{margin-top:2rem}.image-upload-section{padding:1.5rem;background-color:#f9f9f9;border-radius:8px;border:1px solid #ddd}.current-image{margin-bottom:1rem}.current-image img{max-width:300px;max-height:200px;object-fit:cover;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:.75rem}.image-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.image-note{font-size:.9rem;color:#666;margin:0}.btn-delete-image{background-color:#d32f2f;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-delete-image:hover:not(:disabled){background-color:#b71c1c}.btn-delete-image:disabled{background-color:#ccc;cursor:not-allowed}.image-upload-control{margin:1rem 0}.file-input{display:none}.file-input-label{display:inline-block;padding:.5rem 1rem;background-color:#a8d08d;color:#1a3a0d;border-radius:4px;cursor:pointer;transition:background-color .2s;font-weight:500;font-size:.9rem}.file-input-label:hover{background-color:#8cc269;color:#0f2408}.file-input:disabled+.file-input-label{background-color:#ccc;cursor:not-allowed}.image-help-text{font-size:.85rem;color:#666;margin-top:.5rem}.info-note{background-color:#e3f2fd;color:#1976d2;padding:.75rem;border-radius:4px;font-size:.9rem;border-left:4px solid #1976d2}.cookbook-list{max-height:400px;overflow-y:auto;margin:1.5rem 0}.cookbook-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-bottom:.75rem;background-color:#f5f5f5;border-radius:8px;cursor:pointer;transition:all .2s}.cookbook-item:hover{background-color:#e8f5e9;transform:translate(4px)}.cookbook-item h3{margin:0 0 .25rem;font-size:1.1rem;color:#2e7d32}.cookbook-item p{margin:0 0 .5rem;font-size:.9rem;color:#666}.cookbook-item .recipe-count{font-size:.85rem;color:#757575}.btn-add{width:2.5rem;height:2.5rem;border-radius:50%;background-color:#2e7d32;color:#fff;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-add:hover{background-color:#1b5e20;transform:scale(1.1)}
