*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#333;background-color:#f8fafc}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#2563eb;color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center}.app-header h1{font-size:1.5rem;font-weight:600}.nav-menu{display:flex;gap:1rem}.nav-menu button{padding:.5rem 1rem;border:1px solid #d1d5db;background:#f3f4f6;color:#1f2937;border-radius:.375rem;cursor:pointer;transition:all .2s}.nav-menu button:hover{background:#e5e7eb;border-color:#9ca3af}.nav-menu button.active{background:#2563eb;color:#fff;border-color:#2563eb}.dark .nav-menu button{background:#374151;color:#f3f4f6;border-color:#4b5563}.dark .nav-menu button:hover{background:#4b5563;border-color:#6b7280}.dark .nav-menu button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.app-main{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.loading{text-align:center;padding:2rem;color:#6b7280}.error-banner{background:#fee2e2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:.375rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;color:#dc2626;font-size:1.2rem;cursor:pointer;padding:.25rem}.empty-state{text-align:center;padding:3rem;color:#6b7280}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1rem;border:1px solid transparent;border-radius:.375rem;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s;gap:.5rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#f3f4f6;color:#374151;border-color:#d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-edit{background:#059669;color:#fff}.btn-edit:hover:not(:disabled){background:#047857}.btn-delete{background:#dc2626;color:#fff}.btn-delete:hover:not(:disabled){background:#b91c1c}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.dark .btn-secondary{background:#374151;color:#f3f4f6;border-color:#4b5563}.dark .btn-secondary:hover:not(:disabled){background:#4b5563;border-color:#6b7280}.dark .btn-edit{background:#059669;color:#fff}.dark .btn-edit:hover:not(:disabled){background:#047857}.dark .btn-delete{background:#dc2626;color:#fff}.dark .btn-delete:hover:not(:disabled){background:#b91c1c}.form{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.form-section{margin-bottom:2rem}.form-section h3{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:1rem}.form-section h4{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.75rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-control{width:100%;padding:.625rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-control:disabled{background:#f9fafb;color:#6b7280}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:2rem;border-top:1px solid #e5e7eb}.checkbox-group{display:flex;align-items:center}.checkbox-group label{display:flex;align-items:center;gap:.5rem;margin-bottom:0;font-weight:400}.checkbox-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:400;cursor:pointer}input[type=checkbox],.allergen-checkbox input[type=checkbox],.allergen-checkboxes input[type=checkbox]{cursor:pointer!important;width:18px!important;height:18px!important;border:2px solid #d1d5db!important;background-color:#fff!important;accent-color:#2563eb!important;-webkit-appearance:none!important;appearance:none!important;border-radius:3px!important}input[type=checkbox]:checked,.allergen-checkbox input[type=checkbox]:checked,.allergen-checkboxes input[type=checkbox]:checked{background-color:#2563eb!important;border-color:#2563eb!important;position:relative!important}input[type=checkbox]:checked:before,.allergen-checkbox input[type=checkbox]:checked:before,.allergen-checkboxes input[type=checkbox]:checked:before{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:5px!important;height:10px!important;border:solid white!important;border-width:0 3px 3px 0!important;transform:rotate(45deg)!important}.dark input[type=checkbox],.dark .allergen-checkbox input[type=checkbox],.dark .allergen-checkboxes input[type=checkbox]{border:2px solid #9ca3af!important;background-color:#374151!important;accent-color:#60a5fa!important}.dark input[type=checkbox]:checked,.dark .allergen-checkbox input[type=checkbox]:checked,.dark .allergen-checkboxes input[type=checkbox]:checked{background-color:#60a5fa!important;border-color:#60a5fa!important}.dark .checkbox-label,.dark .allergen-checkbox span{color:#e5e7eb!important}.dark .checkbox-group label,.dark .allergen-checkboxes label{color:#e5e7eb}.recipe-list{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem;max-width:1400px!important;margin:0 auto!important;width:100%!important;display:block!important}.recipe-filters{margin-bottom:2rem}.recipe-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.tab-button{padding:.75rem 1rem;border:none;background:transparent;color:#6b7280;border-radius:.375rem .375rem 0 0;cursor:pointer;transition:all .2s;font-weight:500;border-bottom:2px solid transparent}.tab-button:hover{background:#f3f4f6;color:#374151}.tab-button.active{background:#2563eb;color:#fff;border-bottom-color:#2563eb}.dark .recipe-tabs{border-bottom-color:#374151}.dark .tab-button{color:#9ca3af}.dark .tab-button:hover{background:#374151;color:#f3f4f6}.dark .tab-button.active{background:#3b82f6;color:#fff;border-bottom-color:#3b82f6}.recipe-filters{display:flex;gap:.5rem;margin-bottom:2rem;align-items:center;width:100%}.recipe-filters button{padding:.5rem 1rem;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:.375rem;cursor:pointer;transition:all .2s;font-size:.875rem}.recipe-filters button:hover{background:#f3f4f6;border-color:#9ca3af}.recipe-filters button.active{background:#2563eb;color:#fff;border-color:#2563eb}.dark .recipe-filters button{background:#374151;color:#f3f4f6;border-color:#4b5563}.dark .recipe-filters button:hover{background:#4b5563;border-color:#6b7280}.dark .recipe-filters button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.search-bar{display:flex;align-items:center;flex:1}.search-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;line-height:1.5;box-sizing:border-box;height:2.75rem}.filter-controls{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.filter-select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;min-width:150px;line-height:1.5;box-sizing:border-box;height:2.75rem}.recipes-header{margin-bottom:1.5rem}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.recipe-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;transition:box-shadow .2s}.dark .recipe-card{background:#1f2937;border:1px solid #374151}.recipe-card:hover{box-shadow:0 4px 6px #0000001a}.recipe-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.recipe-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0;flex:1}.recipe-actions{display:flex;gap:.5rem}.recipe-description{color:#6b7280;margin-bottom:1rem;line-height:1.5}.recipe-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.difficulty-badge,.category-badge,.cuisine-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;color:#fff}.category-badge{background:#7c3aed}.cuisine-badge{background:#059669}.recipe-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.75rem;margin-bottom:1rem;padding:1rem;background:#fff;border-radius:.375rem}.stat{text-align:center}.stat label{display:block;font-size:.75rem;color:#6b7280;font-weight:500;margin-bottom:.25rem}.stat span{font-size:.875rem;font-weight:600;color:#111827}.ingredient-count,.calories{font-size:.875rem;color:#6b7280;margin-bottom:.5rem}.recipe-tags{display:flex;flex-wrap:wrap;gap:.25rem}.tag{background:#e0e7ff;color:#3730a3;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;position:relative}.tag button{background:none;border:none;color:#3730a3;cursor:pointer;margin-left:.25rem;font-weight:700}.recipe-form{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.tag-input{margin-bottom:1rem}.tags-display{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.ingredients-list{border:1px solid #e5e7eb;border-radius:.375rem;padding:1rem}.ingredient-item{padding:1.25rem;border-bottom:1px solid #e5e7eb;margin-bottom:1rem;border-radius:.5rem;position:relative}.ingredient-item .form-control{position:relative;z-index:1}.ingredient-item:last-child{border-bottom:none;margin-bottom:0}.ingredient-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #f3f4f6}.ingredient-order-controls{display:flex;align-items:center;gap:.5rem}.ingredient-number{font-weight:600;color:#374151;background:#f3f4f6;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;min-width:2rem;text-align:center}.btn-order{padding:.25rem .5rem;font-size:1rem;line-height:1;min-width:2rem;height:2rem;background:#f9fafb;border:1px solid #d1d5db;color:#374151;display:flex;align-items:center;justify-content:center}.btn-order:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-order:disabled{opacity:.5;cursor:not-allowed}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.ingredient-manager{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.ingredient-form-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.ingredient-form{background:#fff;border-radius:.5rem;padding:2rem;max-width:800px;width:100%;max-height:90vh;overflow-y:auto}.ingredients-section{margin-top:2rem}.ingredients-header{margin-bottom:1rem}.ingredients-table{border:1px solid #e5e7eb;border-radius:.375rem;overflow:hidden}.table-header{display:grid;grid-template-columns:2fr 3fr 1fr 2fr 1fr;gap:1rem;padding:1rem;background:#f9fafb;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.table-row{display:grid;grid-template-columns:2fr 3fr 1fr 2fr 1fr;gap:1rem;padding:1rem;border-bottom:1px solid #f3f4f6;align-items:center}.table-row:last-child{border-bottom:none}.table-row:hover{background:#f9fafb}.ingredient-name{font-weight:600;color:#111827}.ingredient-description{color:#6b7280;font-size:.875rem}.ingredient-unit{font-size:.875rem;color:#374151}.allergen-tags{display:flex;flex-wrap:wrap;gap:.25rem}.allergen-tag{background:#fee2e2;color:#dc2626;padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.ingredient-actions{display:flex;gap:.5rem}.allergen-checkboxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}@media(max-width:768px){.app-header{flex-direction:column;gap:1rem;text-align:center}.nav-menu{flex-wrap:wrap;justify-content:center;gap:.5rem}.nav-menu button{padding:.4rem .8rem;font-size:.875rem;white-space:nowrap}.app-main{padding:.5rem}.recipe-list{padding:.5rem!important}.form-row{grid-template-columns:1fr}.recipes-grid{grid-template-columns:repeat(2,1fr)}.recipe-filters{flex-direction:column;gap:1rem}.search-bar{width:100%}.filter-controls{flex-direction:column;width:100%}.filter-select{min-width:auto;width:100%}.table-header,.table-row{grid-template-columns:1fr;gap:.5rem}.table-header{display:none}.table-row{padding:1rem;border:1px solid #e5e7eb;border-radius:.375rem;margin-bottom:1rem}.ingredient-form-overlay{padding:.5rem}.nutrition-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.allergen-checkboxes{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}@media(max-width:480px){.recipes-grid{grid-template-columns:1fr}.recipe-card{padding:12px}.recipe-stats{grid-template-columns:repeat(2,1fr)}.btn{padding:.5rem .75rem;font-size:.75rem}}.allergen-filter{margin-bottom:20px;background:#f8f9fa;border-radius:8px;padding:15px}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.filter-toggle{background:#007bff;color:#fff;border:none;padding:8px 15px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:8px}.filter-toggle:hover{background:#0056b3}.filter-badge{background:#dc3545;color:#fff;border-radius:50%;padding:2px 6px;font-size:.8em;min-width:20px;text-align:center}.clear-filters,.clear-filters-btn{background:#6c757d;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500}.clear-filters:hover,.clear-filters-btn:hover{background:#5a6268}.dark .clear-filters,.dark .clear-filters-btn{background:#4b5563;color:#f3f4f6;border:1px solid #6b7280}.dark .clear-filters:hover,.dark .clear-filters-btn:hover{background:#6b7280}.filter-panel{border-top:1px solid #dee2e6;padding-top:15px}.filter-section{margin-bottom:20px}.filter-section h4{margin:0 0 10px;color:#495057}.allergen-filter-panel{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:2rem;max-width:1400px;margin-left:auto;margin-right:auto}.dark .allergen-filter-panel{background:#1f2937;border-color:#374151}.allergen-filter-panel .filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.allergen-filter-panel .filter-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#374151}.dark .allergen-filter-panel .filter-header h3{color:#f9fafb}.allergen-filter-panel .filter-description{margin-bottom:1rem}.allergen-filter-panel .filter-description p{margin:0;color:#6b7280;font-size:.95rem}.dark .allergen-filter-panel .filter-description p{color:#9ca3af}.allergen-filter-panel .allergen-checkboxes{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.allergen-filter-panel .filter-summary{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #e5e7eb}.dark .allergen-filter-panel .filter-summary{border-top-color:#374151}.allergen-filter-panel .filter-summary p{margin:0;color:#374151;font-weight:500}.dark .allergen-filter-panel .filter-summary p{color:#f9fafb}.allergen-tags{display:flex;flex-wrap:wrap;gap:8px}.allergen-tag{display:flex;align-items:center;cursor:pointer}.allergen-tag input[type=checkbox]{display:none}.allergen-tag .tag{padding:4px 12px;border-radius:16px;border:2px solid #dee2e6;background:#fff;color:#495057;font-size:.9em;transition:all .2s}.allergen-tag .tag.include.active{background:#d4edda;border-color:#28a745;color:#155724}.allergen-tag .tag.exclude.active{background:#f8d7da;border-color:#dc3545;color:#721c24}.allergen-tag .tag:hover{border-color:#adb5bd}.allergen-display{display:flex;flex-direction:column;gap:5px}.allergen-display.small .allergen-tags{gap:4px}.allergen-display.small .allergen-tag{font-size:.8em;padding:2px 8px}.allergen-display .allergen-tag{display:inline-block;padding:3px 8px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;font-size:.85em;color:#495057}.allergen-tag.gluten{background:#fff3cd;border-color:#ffeaa7;color:#856404}.allergen-tag.dairy{background:#d1ecf1;border-color:#bee5eb;color:#0c5460}.allergen-tag.eggs{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.allergen-tag.nuts,.allergen-tag.tree-nuts{background:#d4d4aa;border-color:#c3c388;color:#533f03}.allergen-tag.soy{background:#d4edda;border-color:#c3e6cb;color:#155724}.allergen-tag.fish,.allergen-tag.shellfish{background:#cce7ff;border-color:#99d6ff;color:#004085}.allergen-tag.more{background:#e9ecef;border-color:#ced4da;color:#6c757d;font-weight:500}.allergen-tag.more.clickable{cursor:pointer;transition:all .2s ease}.allergen-tag.more.clickable:hover{background:#dee2e6;border-color:#adb5bd;transform:translateY(-1px)}.no-allergens{color:#6c757d;font-style:italic;font-size:.9em}.allergen-count{font-size:.8em;color:#6c757d}.dark .allergen-display .allergen-tag{background:#374151;border-color:#4b5563;color:#e5e7eb}.dark .allergen-tag.gluten{background:#78350f;border-color:#92400e;color:#fde68a}.dark .allergen-tag.dairy{background:#164e63;border-color:#155e75;color:#a5f3fc}.dark .allergen-tag.eggs{background:#7f1d1d;border-color:#991b1b;color:#fecaca}.dark .allergen-tag.nuts,.dark .allergen-tag.tree-nuts{background:#3f3f00;border-color:#5a5a1a;color:#e8e8a0}.dark .allergen-tag.soy{background:#064e3b;border-color:#065f46;color:#a7f3d0}.dark .allergen-tag.fish,.dark .allergen-tag.shellfish{background:#1e3a5f;border-color:#1e40af;color:#bfdbfe}.dark .allergen-tag.more{background:#374151;border-color:#4b5563;color:#d1d5db}.dark .allergen-tag.more.clickable:hover{background:#4b5563;border-color:#6b7280}.dark .allergen-count,.dark .no-allergens{color:#9ca3af}.allergen-manager{max-width:1400px;margin:0 auto}.quick-add-section{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px}.quick-add-section h3{margin:0 0 15px;color:#495057}.common-allergens{display:flex;flex-wrap:wrap;gap:8px}.search-section{margin-bottom:20px}.search-input{width:100%;max-width:400px;padding:10px;border:1px solid #ced4da;border-radius:4px;font-size:1rem}.allergen-form{background:#fff;border:1px solid #dee2e6;padding:20px;border-radius:8px;margin-bottom:20px}.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.allergen-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px;transition:box-shadow .2s}.allergen-card:hover{box-shadow:0 2px 8px #0000001a}.allergen-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.allergen-name{margin:0;color:#495057;flex:1}.allergen-actions{display:flex;gap:5px}.allergen-stats{display:flex;gap:20px;margin-bottom:10px}.stat{display:flex;flex-direction:column;align-items:center}.stat-number{font-size:1.5em;font-weight:700;color:#007bff}.stat-label{font-size:.8em;color:#6c757d}.sidebar-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.sidebar-content h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#1f2937}.stats-list{display:flex;flex-direction:column;gap:.75rem}.dark .sidebar-content{background:#1f2937;border-color:#374151}.dark .sidebar-content h3{color:#f9fafb}.dark .stat-item{background:#374151!important;border-color:#4b5563!important;color:#f9fafb!important}.dark .stat-number{color:#60a5fa!important}.dark .stat-label{color:#9ca3af!important}.usage-indicator{display:flex;justify-content:flex-end}.usage-badge{background:#28a745;color:#fff;padding:2px 8px;border-radius:12px;font-size:.8em}.ingredient-manager .search-filters{display:flex;gap:15px;margin-bottom:20px;align-items:center}.ingredient-manager .search-box{flex:1}.ingredient-manager .search-box input{width:100%;padding:8px 12px;border:1px solid #ced4da;border-radius:4px}.ingredient-manager .allergen-filter select{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;min-width:200px}.nutrition-section{border-top:1px solid #dee2e6;padding-top:15px;margin-top:15px}.nutrition-section h4{margin:0 0 10px;color:#495057}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.allergen-section{border:1px solid #dee2e6;padding:15px;margin-top:15px;background:#fff;border-radius:8px}.allergen-section h4{margin:0 0 10px;color:#495057}.allergen-checkboxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.allergen-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px;border-radius:4px;transition:background-color .2s}.allergen-checkbox span{color:#495057}.allergen-checkbox:hover{background-color:#f8f9fa}.dark .allergen-section{background:#374151;border-color:#4b5563}.dark .allergen-section h4,.dark .allergen-checkbox{color:#f9fafb}.dark .allergen-checkbox span{color:#e5e7eb}.dark .allergen-checkbox:hover{background-color:#4b5563}.ingredient-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px;margin-bottom:15px}.ingredient-main{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:start}.ingredient-info h4{margin:0 0 5px;color:#495057}.ingredient-info .description{margin:0 0 10px;color:#6c757d;font-size:.9em}.ingredient-meta{display:flex;gap:15px;font-size:.85em;color:#6c757d}.ingredient-allergens{display:flex;flex-direction:column;justify-content:center}.ingredient-actions{display:flex;flex-direction:column;gap:5px}.empty-state{text-align:center;padding:40px 20px;color:#6c757d}.empty-state p{margin-bottom:20px;font-size:1.1em}@media(max-width:768px){.allergen-tags{justify-content:center}.allergen-grid{grid-template-columns:1fr}.ingredient-main{grid-template-columns:1fr;gap:10px}.ingredient-actions{flex-direction:row;justify-content:center}.allergen-manager .search-filters{flex-direction:column;align-items:stretch}.nutrition-grid{grid-template-columns:repeat(2,1fr)}.allergen-checkboxes{grid-template-columns:1fr}}.recipe-card{border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;position:relative;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;min-height:450px!important}.recipe-card:before{content:"";position:absolute;inset:0;background:#ffffff4d;z-index:1;pointer-events:none}.dark .recipe-card:before{background:none}.recipe-card>*{position:relative!important;z-index:2!important}.recipe-card .recipe-title{color:#000!important}.dark .recipe-card .recipe-title{color:#fff!important}.recipe-card .recipe-description,.recipe-card .recipe-author{color:#000!important}.dark .recipe-card .recipe-description,.dark .recipe-card .recipe-author{color:#ffffffe6!important}.gf-flour-calculator{max-width:900px;margin:0 auto}.blend-selector{text-align:center;margin-bottom:2rem}.blend-selector h2{color:#1e293b;font-size:2rem;font-weight:600;margin-bottom:.5rem}.blend-selector p{color:#64748b;font-size:1.1rem;margin-bottom:2rem}.blend-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem}.blend-tab{padding:.75rem 1.25rem;border:2px solid #e2e8f0;background:#fff;color:#64748b;border-radius:.5rem;cursor:pointer;font-weight:500;font-size:.95rem;transition:all .2s;white-space:nowrap}.blend-tab:hover{border-color:#cbd5e1;color:#475569}.blend-tab.active{background:#2563eb;border-color:#2563eb;color:#fff}.grams-breakdown{max-width:800px;margin:0 auto;background:#fff;border-radius:.5rem;box-shadow:0 2px 8px #0000001a;overflow:hidden}.grams-breakdown-header{background:#f8fafc;padding:2rem;border-bottom:1px solid #e2e8f0;text-align:center}.grams-breakdown-header h2{color:#1e293b;font-size:1.75rem;font-weight:600;margin-bottom:.5rem}.grams-breakdown-header p{color:#64748b;font-size:1rem}.grams-breakdown-form{padding:2rem;background:#fff}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem}.form-input{width:100%;max-width:300px;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.total-display{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8fafc;border-radius:.375rem;border:1px solid #e2e8f0}.total-label{font-weight:500;color:#374151;font-size:1.1rem}.total-value{font-size:1.5rem;font-weight:700;color:#2563eb}.ingredients-breakdown{padding:2rem;background:#f8fafc;border-top:1px solid #e2e8f0}.ingredients-breakdown h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.ingredients-breakdown .ingredients-list{display:flex;flex-direction:column;gap:.75rem}.ingredients-breakdown .ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fff;border-radius:.375rem;border:1px solid #e2e8f0;transition:border-color .2s}.ingredients-breakdown .ingredient-item:hover{border-color:#cbd5e1}.ingredient-name{font-weight:500;color:#374151;flex:1}.ingredient-percentage{color:#64748b;font-size:.875rem;margin:0 1rem}.ingredient-amount{font-weight:600;color:#2563eb;font-size:1rem;min-width:80px;text-align:right}.dark .blend-selector h2{color:#f1f5f9}.dark .blend-selector p{color:#94a3b8}.dark .blend-tab{background:#1e293b;border-color:#334155;color:#94a3b8}.dark .blend-tab:hover{border-color:#475569;color:#e2e8f0}.dark .blend-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.dark .grams-breakdown{background:#1e293b}.dark .grams-breakdown-header{background:#0f172a;border-bottom-color:#334155}.dark .grams-breakdown-header h2{color:#f1f5f9}.dark .grams-breakdown-header p{color:#94a3b8}.dark .grams-breakdown-form{background:#1e293b}.dark .form-group label{color:#e2e8f0}.dark .form-input{background:#0f172a;border-color:#334155;color:#f1f5f9}.dark .form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.dark .total-display{background:#0f172a;border-color:#334155}.dark .total-label{color:#e2e8f0}.dark .total-value{color:#60a5fa}.dark .ingredients-breakdown{background:#0f172a;border-top-color:#334155}.dark .ingredients-breakdown h3{color:#f1f5f9}.dark .ingredient-item{background:#1e293b;border-color:#334155}.dark .ingredient-item:hover{border-color:#475569}.dark .ingredient-name{color:#e2e8f0}.dark .ingredient-percentage{color:#94a3b8}.dark .ingredient-amount{color:#60a5fa}.grams-breakdown-container{margin-top:1rem}@media(max-width:1100px){.blend-tabs{flex-wrap:wrap;justify-content:center;gap:.4rem;max-width:900px;margin:0 auto 2rem}.blend-tab{flex:1;min-width:160px;max-width:180px;text-align:center;font-size:.85rem;padding:.65rem .75rem}}@media(max-width:900px){.blend-selector h2{font-size:1.75rem}.blend-tabs{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:600px;margin:0 auto 2rem}.blend-tab{flex:1;min-width:140px;max-width:160px;text-align:center;font-size:.8rem;padding:.6rem .5rem}}@media(max-width:768px){.blend-selector h2{font-size:1.5rem}.blend-tabs{flex-wrap:wrap;justify-content:center;gap:.5rem}.blend-tab{flex:1 1 30%;min-width:120px;max-width:140px;text-align:center;font-size:.75rem;padding:.6rem .4rem}}@media(max-width:640px){.blend-tabs{flex-direction:column;align-items:center;gap:.75rem}.blend-tab{width:100%;max-width:300px;text-align:center;font-size:1rem;padding:.75rem 1.5rem}.grams-breakdown-header,.grams-breakdown-form,.ingredients-breakdown{padding:1rem}.ingredient-item{flex-direction:column;align-items:flex-start;gap:.5rem}.ingredient-amount{text-align:left;min-width:auto}}.recipe-card .recipe-top-section{background:#0006!important;padding:1rem!important;border-radius:.5rem!important;margin-bottom:1rem!important}.recipe-card .recipe-bottom-section{padding:1rem!important}.recipe-card .recipe-top-content{background-color:#ffffffb3!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important;padding:.75rem!important;border-radius:.5rem!important;margin-bottom:.5rem!important}.dark .recipe-card .recipe-top-content{background-color:#111827b3!important}.recipe-card .recipe-times,.recipe-card .recipe-stats,.recipe-card .allergen-section,.recipe-card .recipe-footer,.recipe-card .recipe-rating{background-color:#ffffffb3!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important;color:#1f2937!important;padding:.75rem!important;border-radius:.5rem!important;margin-bottom:.5rem!important}.recipe-card .time-item,.recipe-card .stat-item{color:#1f2937!important;background:transparent!important}.dark .recipe-card .recipe-times,.dark .recipe-card .recipe-stats,.dark .recipe-card .allergen-section,.dark .recipe-card .recipe-footer,.dark .recipe-card .recipe-rating{background-color:#111827b3!important;color:#fff!important}.dark .recipe-card .time-item,.dark .recipe-card .stat-item{color:#fff!important}.recipe-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.recipe-card.clickable{cursor:pointer}.recipe-card.clickable:hover{border-color:#4caf50}.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.recipe-title-section{flex:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.recipe-title{margin:0;font-size:1.3em;font-weight:600;color:#333;line-height:1.3}.featured-badge{background:linear-gradient(45deg,gold,#ffed4e);color:#333;padding:4px 8px;border-radius:12px;font-size:.75em;font-weight:600;white-space:nowrap;box-shadow:0 2px 4px #ffd7004d}.recipe-actions{display:flex;gap:8px;flex-shrink:0}.btn-icon{background:none;border:1px solid #ddd;border-radius:6px;padding:6px 8px;cursor:pointer;font-size:14px;transition:all .2s ease}.btn-icon:hover{background:#f5f5f5}.edit-btn:hover{border-color:#4caf50;background:#f0f8f0}.delete-btn:hover{border-color:#f44336;background:#fff5f5}.recipe-description{color:#666;margin:0 0 16px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-metadata{margin-bottom:12px}.metadata-row{display:flex;gap:12px;margin-bottom:6px;flex-wrap:wrap}.metadata-row:last-child{margin-bottom:0}.metadata-item{display:inline-flex;align-items:center;font-size:.9em;color:#555;background:#f8f9fa;padding:4px 8px;border-radius:4px;border:1px solid #e9ecef}.metadata-item.category{border-color:#007bff;background:#e7f3ff;color:#0056b3}.metadata-item.cuisine{border-color:#28a745;background:#e8f5e8;color:#155724}.metadata-item.yield{border-color:#6f42c1;background:#f0ebff;color:#4a154b}.metadata-item.difficulty{font-weight:500}.difficulty-easy{border-color:#28a745;background:#d4edda;color:#155724}.difficulty-medium{border-color:#ffc107;background:#fff3cd;color:#856404}.difficulty-hard{border-color:#dc3545;background:#f8d7da;color:#721c24}.recipe-times{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.time-item{font-size:.9em;color:#666;background:#f1f3f4;padding:4px 8px;border-radius:4px;display:inline-flex;align-items:center}.time-item.total-time{background:#e8f5e9;color:#2e7d32;font-weight:500}.allergen-section{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:12px;margin-bottom:16px}.allergen-warning{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-weight:600;color:#856404}.allergen-icon{font-size:1.1em}.allergen-list{display:flex;gap:6px;flex-wrap:wrap}.allergen-badge{background:#dc3545;color:#fff;padding:3px 8px;border-radius:12px;font-size:.8em;font-weight:500}.recipe-stats{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.stat-item{font-size:.85em;color:#666;background:#f8f9fa;padding:4px 8px;border-radius:4px;display:inline-flex;align-items:center;border:1px solid #e9ecef}.recipe-tags{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.recipe-tag{background:#e3f2fd;color:#1565c0;padding:3px 8px;border-radius:12px;font-size:.8em;border:1px solid #bbdefb}.recipe-tag.more-tags{background:#f5f5f5;color:#666;border-color:#ddd}.recipe-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #eee;font-size:.85em;color:#666;flex-wrap:wrap;gap:8px}.author-info,.date-info{display:inline-flex;align-items:center}@media(max-width:768px){.recipe-card{padding:16px}.recipe-card-header{flex-direction:column;gap:12px}.recipe-actions{align-self:flex-start}.metadata-row,.recipe-times,.recipe-stats{flex-direction:column;gap:8px}.recipe-footer{flex-direction:column;align-items:flex-start}}.recipe-card.loading{opacity:.6;pointer-events:none}.recipe-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:20px}.recipe-cards-list .recipe-card{margin-bottom:16px}.custom-bg-card{background:none!important;border:5px solid orange!important}.recipe-card-with-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#0000001a,#00000080);z-index:1;pointer-events:none}.recipe-card-with-bg>*{position:relative;z-index:2}.recipe-card-with-bg .recipe-top-section{background:#0000004d;color:#fff;padding:1rem;border-radius:.5rem;margin-bottom:1rem}.recipe-card-with-bg .recipe-bottom-section{padding:1rem}.recipe-card-with-bg .recipe-title{color:#fff}.recipe-card-with-bg .recipe-description{color:#ffffffe6}.recipe-card-with-bg .recipe-times,.recipe-card-with-bg .recipe-stats,.recipe-card-with-bg .allergen-section,.recipe-card-with-bg .recipe-footer,.recipe-card-with-bg .recipe-rating{background:#0009;color:#fff;padding:.75rem;border-radius:.5rem;margin-bottom:.5rem}.recipe-card-with-bg .time-item,.recipe-card-with-bg .stat-item,.recipe-card-with-bg .allergen-badge{color:#fff}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #e0e0e0}.list-header h2{margin:0;color:#333}.view-controls{display:flex;gap:8px}.view-controls button{background:#f8f9fa;border:1px solid #dee2e6;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:.9em;transition:all .2s ease}.view-controls button:hover{background:#e9ecef}.view-controls button.active{background:#007bff;color:#fff;border-color:#007bff}.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state h3{margin-bottom:12px;color:#333}.recipe-detail-modal{max-height:80vh;overflow-y:auto}.recipe-detail-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e0e0e0}.recipe-detail-description{font-size:1.1em;color:#555;margin-bottom:16px;line-height:1.5}.recipe-detail-meta{margin-bottom:16px}.meta-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.meta-badge{background:#f1f3f4;padding:6px 12px;border-radius:16px;font-size:.9em;color:#333;border:1px solid #e0e0e0}.time-info{display:flex;gap:16px;flex-wrap:wrap;font-size:.95em;color:#666}.time-info span{background:#f8f9fa;padding:6px 10px;border-radius:4px;border:1px solid #e9ecef}.allergen-warning-detail{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:16px;margin-top:16px}.allergen-warning-detail h4{margin:0 0 12px;color:#856404;font-size:1.1em}.allergen-badges{display:flex;gap:8px;flex-wrap:wrap}.allergen-badges .allergen-badge{background:#dc3545;color:#fff;padding:6px 12px;border-radius:16px;font-size:.85em;font-weight:500}.recipe-detail-section{margin-bottom:32px}.recipe-detail-section h3{color:#333;border-bottom:2px solid #4caf50;padding-bottom:8px;margin-bottom:16px;font-size:1.3em}.ingredients-detail{margin-bottom:16px}.ingredient-group{margin-bottom:24px}.group-name{color:#4caf50;font-size:1.1em;font-weight:600;margin-bottom:12px;padding:8px 12px;background:#f1f8e9;border-radius:4px;border-left:4px solid #4caf50}.ingredient-list{list-style:none;padding:0;margin:0}.ingredient-list .ingredient-item{align-items:center;gap:8px;border-bottom:1px solid #f0f0f0}.ingredient-list .ingredient-item:last-child{border-bottom:none}.ingredient-list .ingredient-item .quantity{font-weight:600;color:#333;min-width:80px;flex-shrink:0}.ingredient-list .ingredient-item .name{flex:1;color:#333}.ingredient-list .ingredient-item .notes{color:#666;font-style:italic;font-size:.9em}.ingredient-list .ingredient-item .optional{color:#888;font-size:.85em;background:#f8f9fa;padding:2px 6px;border-radius:12px}.instructions-detail{counter-reset:step-counter}.instruction-step{display:flex;gap:16px;margin-bottom:16px;padding:16px;background:#fafafa;border-radius:8px;border-left:4px solid #2196f3}.step-number{background:#2196f3;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0;font-size:.9em}.step-text{flex:1;line-height:1.5;color:#333;padding-top:4px}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.nutrition-item{background:#f8f9fa;padding:12px;border-radius:6px;border:1px solid #e9ecef;text-align:center}.nutrition-item .label{display:block;font-size:.85em;color:#666;margin-bottom:4px}.nutrition-item .value{display:block;font-size:1.2em;font-weight:600;color:#333}.additional-info{margin-bottom:20px}.additional-info h4{color:#333;margin-bottom:8px;font-size:1.05em}.additional-info p{color:#555;line-height:1.5;margin:0}.tags-display{display:flex;gap:6px;flex-wrap:wrap}.tag-detail{background:#e3f2fd;color:#1565c0;padding:4px 12px;border-radius:16px;font-size:.85em;border:1px solid #bbdefb}.recipe-detail-footer{margin-top:32px;padding-top:16px;border-top:1px solid #e0e0e0;color:#666;font-size:.9em}.recipe-detail-footer p{margin:4px 0}@media(max-width:768px){.list-header{flex-direction:column;gap:12px;align-items:flex-start}.recipe-detail-modal{max-height:85vh}.meta-row,.time-info{flex-direction:column;gap:8px}.instruction-step{flex-direction:column;gap:12px}.step-number{align-self:flex-start}.nutrition-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ingredient-item{flex-direction:column;align-items:flex-start;gap:4px}.ingredient-item .quantity{min-width:auto}}.allergen-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.allergen-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:500px;width:100%;max-height:80vh;overflow-y:auto}.allergen-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:8px 8px 0 0}.allergen-modal-header h3{margin:0;color:#111827;font-size:1.25rem}.allergen-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:.5rem;border-radius:4px;line-height:1;transition:all .2s ease}.allergen-modal-close:hover{background:#f3f4f6;color:#374151}.allergen-modal-content{padding:1.5rem}.all-allergen-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1rem}.all-allergen-tags .allergen-tag{font-size:.875rem;padding:6px 12px;border-radius:16px}.allergen-modal-note{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0;padding:1rem;background:#f9fafb;border-radius:6px;border-left:4px solid #f59e0b}.dark .allergen-modal-overlay{background:#000000b3}.dark .allergen-modal{background:#1f2937;color:#f9fafb}.dark .allergen-modal-header{background:#111827;border-bottom-color:#374151}.dark .allergen-modal-header h3{color:#f9fafb}.dark .allergen-modal-close{color:#9ca3af}.dark .allergen-modal-close:hover{background:#374151;color:#f3f4f6}.dark .allergen-modal-note{background:#374151;color:#d1d5db;border-left-color:#f59e0b}.dark .recipe-allergen-section{background:#1f2937;border-left-color:#f59e0b}.dark .recipe-allergen-section h2{color:#f9fafb}.dark .recipe-allergen-warning{background:#374151}.dark .recipe-allergen-warning p{color:#fbbf24}@media(max-width:480px){.allergen-modal{margin:.5rem;max-width:calc(100vw - 1rem)}.allergen-modal-header{padding:.75rem 1rem}.allergen-modal-content{padding:1rem}}.hero-section{background:linear-gradient(135deg,#2563eb,#1d4ed8,#1e40af);color:#fff;text-align:center;padding:4rem 1.5rem;margin:-1.5rem -1.5rem 0}.hero-dark{background:linear-gradient(135deg,#1e3a8a,#1e40af,#172554)}.hero-content{max-width:720px;margin:0 auto}.hero-headline{font-size:2.5rem;font-weight:800;line-height:1.15;margin:0 0 1.25rem;letter-spacing:-.02em}.hero-subheadline{font-size:1.125rem;line-height:1.7;margin:0 0 2rem;opacity:.9}.hero-bullets{list-style:none;padding:0;margin:0 0 2.5rem;display:flex;flex-direction:column;gap:.75rem;text-align:left;max-width:480px;margin-left:auto;margin-right:auto}.hero-bullets li{display:flex;align-items:center;gap:.75rem;font-size:1.05rem;line-height:1.5}.hero-bullet-icon{font-size:1.35rem;flex-shrink:0}.hero-cta{display:inline-block;background-color:#fff;color:#1d4ed8;font-size:1.125rem;font-weight:700;padding:.875rem 2.5rem;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .15s,box-shadow .2s;box-shadow:0 2px 8px #00000026}.hero-cta:hover{background-color:#f0f4ff;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.hero-cta:active{transform:translateY(0)}.hero-dark .hero-cta{background-color:#10b981;color:#fff}.hero-dark .hero-cta:hover{background-color:#059669}.hero-secondary{background-color:#f0f4ff;color:#1e293b;text-align:center;padding:3rem 1.5rem;margin:0 -1.5rem}.hero-secondary-dark{background-color:#1f2937;color:#e5e7eb}.hero-secondary-content{max-width:640px;margin:0 auto}.hero-secondary-headline{font-size:1.75rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.01em}.hero-secondary-body{font-size:1.05rem;line-height:1.75;margin:0 0 1.5rem;color:#475569}.hero-secondary-dark .hero-secondary-body{color:#9ca3af}.hero-secondary-cta{display:inline-block;font-size:1.1rem;font-weight:600;color:#2563eb;text-decoration:none;transition:color .2s}.hero-secondary-cta:hover{color:#1d4ed8;text-decoration:underline}.hero-secondary-dark .hero-secondary-cta{color:#60a5fa}.hero-secondary-dark .hero-secondary-cta:hover{color:#93bbfd}@media(max-width:768px){.hero-section{padding:3rem 1rem}.hero-headline{font-size:1.75rem}.hero-subheadline{font-size:1rem}.hero-bullets li{font-size:.95rem}.hero-cta{font-size:1rem;padding:.75rem 2rem}.hero-secondary{padding:2rem 1rem}.hero-secondary-headline{font-size:1.35rem}.hero-secondary-body{font-size:.95rem}}@media(max-width:480px){.hero-section{padding:2rem .75rem}.hero-headline{font-size:1.5rem}.hero-bullets{gap:.5rem}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}
