body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.google-signin-container{width:100%;margin:10px 0}.google-signin-button{color:#3c4043;cursor:pointer;background-color:#fff;border:2px solid #dadce0;border-radius:6px;justify-content:center;align-items:center;width:100%;min-width:120px;height:44px;padding:0 12px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:500;transition:all .2s;display:flex}.google-signin-button:hover{background-color:#f8f9fa;border-color:#c1c7cd;box-shadow:0 1px 3px #0000001a}.google-signin-button:active{background-color:#f1f3f4;border-color:#9aa0a6;box-shadow:0 1px 2px #0000001a}.google-signin-button:disabled{color:#9aa0a6;cursor:not-allowed;background-color:#f8f9fa;border-color:#e8eaed}.google-signin-button:disabled:hover{box-shadow:none;background-color:#f8f9fa;border-color:#e8eaed}.google-signin-button.loading{cursor:not-allowed;opacity:.7}.google-signin-button-content{justify-content:center;align-items:center;gap:12px;display:flex}.google-icon{flex-shrink:0;width:20px;height:20px}.google-signin-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.google-signin-spinner{border:2px solid #f3f3f3;border-top-color:#4285f4;border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:1s linear infinite google-signin-spin}@keyframes google-signin-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=480px){.google-signin-button{height:40px;font-size:13px}.google-signin-button-content{gap:8px}.google-icon,.google-signin-spinner{width:18px;height:18px}}@media (prefers-color-scheme:dark){.google-signin-button{color:#e8eaed;background-color:#303134;border-color:#5f6368}.google-signin-button:hover{background-color:#3c4043;border-color:#6e7175}.google-signin-button:active{background-color:#454649;border-color:#80868b}.google-signin-button:disabled{color:#5f6368;background-color:#202124;border-color:#3c4043}.google-signin-spinner{border-color:#4285f4 #3c4043 #3c4043}}.auth-form .google-signin-container{margin:16px 0}.auth-form .google-signin-button{border-radius:8px}.auth-divider{color:#5f6368;align-items:center;margin:20px 0;font-size:14px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background-color:#dadce0;flex:1;height:1px}.auth-divider:before{margin-right:16px}.auth-divider:after{margin-left:16px}@media (prefers-color-scheme:dark){.auth-divider{color:#9aa0a6}.auth-divider:before,.auth-divider:after{background-color:#5f6368}}.auth-icon{text-align:center;margin-bottom:16px;font-size:48px}.auth-icon.success{color:#22c55e}.auth-icon.error{color:#ef4444}.spinner-large{border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;width:48px;height:48px;margin:0 auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.redirect-message{color:#6b7280;margin-top:16px;font-style:italic}.verification-expired{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:20px 0;padding:16px}.verification-expired p:first-child{margin-top:0}.auth-note{color:#6b7280;margin-top:8px;font-size:12px}.auth-actions{justify-content:center;gap:12px;margin-top:24px;display:flex}.auth-button{text-align:center;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:10px 20px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.auth-button.primary{color:#fff;background:#3b82f6}.auth-button.primary:hover{background:#2563eb;transform:translateY(-1px)}.auth-button.secondary{color:#374151;background:#f3f4f6;border:1px solid #d1d5db}.auth-button.secondary:hover{background:#e5e7eb;transform:translateY(-1px)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.registration-success{text-align:center;padding:20px 0}.verification-instructions{text-align:left;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin:20px 0;padding:16px}.verification-note{color:#1e40af;margin-top:12px;font-size:14px}.verification-instructions p{color:#1e3a8a;margin:8px 0}.auth-wrapper{background-color:#0000;justify-content:center;align-items:center;max-width:1200px;height:calc(100vh - 140px);margin:0 auto;padding:.5rem 0;display:flex}.auth-split-layout{border-radius:1rem;width:100%;height:100%;min-height:500px;max-height:700px;margin:0 1rem;display:flex;overflow:hidden;box-shadow:0 8px 25px #00000026}.auth-welcome-section{color:#fff;background:linear-gradient(135deg,#92400e 0%,#d97706 100%);flex-direction:column;flex:1;justify-content:center;padding:1.75rem;display:flex;position:relative;overflow:hidden}.auth-welcome-section:before{content:"";opacity:.3;background:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><defs><pattern id=\"grain\" patternUnits=\"userSpaceOnUse\" width=\"4\" height=\"4\"><circle cx=\"2\" cy=\"2\" r=\"1\" fill=\"rgba(255,255,255,0.1)\"/></pattern></defs><rect width=\"100\" height=\"100\" fill=\"url(%23grain)\"/></svg>");position:absolute;inset:0}.auth-welcome-content{z-index:1;position:relative}.auth-welcome-title{margin-bottom:.75rem;font-size:2rem;font-weight:700;line-height:1.2}.auth-welcome-subtitle{opacity:.9;margin-bottom:1.25rem;font-size:1.05rem}.auth-features-list{margin:0;padding:0;list-style:none}.auth-feature-item{opacity:.9;align-items:center;margin-bottom:.6rem;font-size:1rem;display:flex}.auth-feature-icon{text-align:center;width:24px;margin-right:.75rem;font-size:1.25rem}.auth-form-section{background-color:#fff;flex-direction:column;flex:1;justify-content:center;max-width:480px;padding:1.5rem 1.75rem;display:flex}.auth-container{width:100%;box-shadow:none;background-color:#0000;border:none;border-radius:0;min-height:fit-content;margin:0;padding:0}.auth-title{text-align:center;color:#92400e;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.auth-subtitle{color:#6b7280;text-align:center;margin-top:0;margin-bottom:1.25rem;font-size:.9rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-form-group{flex-direction:column;display:flex}.auth-form-group:last-of-type{margin-bottom:.5rem}.auth-label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.auth-input{color:#758191;box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.auth-input:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.auth-input:disabled{color:#6b7280;cursor:not-allowed;background-color:#f3f4f6}.auth-input::placeholder{color:#9ca3af}.auth-submit-button{color:#fff;cursor:pointer;background-color:#d97706;border:none;border-radius:.375rem;width:100%;margin-top:.5rem;padding:.75rem 1rem;font-size:1rem;font-weight:500;transition:background-color .2s,transform .1s}.auth-submit-button:hover:not(:disabled){background-color:#b45309}.auth-submit-button:active{transform:translateY(1px)}.auth-submit-button:disabled{opacity:.6;cursor:not-allowed;background-color:#9ca3af}.auth-submit-button.loading{color:#0000;position:relative}.auth-submit-button.loading:after{content:"";border:2px solid #0000;border-top-color:#fff;border-radius:50%;width:1.25rem;height:1.25rem;animation:1s linear infinite auth-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes auth-spin{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.auth-error{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.auth-error:before{content:"⚠️";flex-shrink:0}.auth-success{color:#059669;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.auth-success:before{content:"✅";flex-shrink:0}.auth-nav{text-align:center;border-top:1px solid #e5e7eb;margin-top:1rem;padding-top:1rem}.auth-nav-text{color:#6b7280;margin-bottom:.25rem;font-size:.8rem}.auth-nav-link{color:#d97706;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .2s}.auth-nav-link:hover{color:#b45309;text-decoration:underline}.auth-requirements{background-color:#fffbeb;border:1px solid #fcd34d;border-radius:.375rem;margin-top:.5rem;padding:.75rem}.auth-requirements-title{color:#92400e;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.auth-requirements-list{color:#b45309;margin:0;padding:0;font-size:.75rem;list-style:none}.auth-requirements-list li{align-items:center;gap:.25rem;margin-bottom:.25rem;display:flex}.auth-requirements-list li:last-child{margin-bottom:0}.auth-requirements-list li:before{content:"•";color:#fbbf24;font-weight:700}.auth-requirements-list li.requirement-met{color:#059669}.auth-requirements-list li.requirement-met:before{content:"✓";color:#10b981}.auth-requirements-list li.requirement-unmet{color:#d97706}.auth-requirements-list li.requirement-unmet:before{content:"○";color:#f59e0b}.auth-input.valid{border-color:#10b981}.auth-input.invalid{border-color:#ef4444}.auth-input.valid:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.auth-input.invalid:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.auth-field-error{color:#dc2626;align-items:center;gap:.25rem;margin-top:.25rem;font-size:.75rem;display:flex}.auth-field-error:before{content:"⚠";font-size:.75rem}.auth-field-success{color:#059669;align-items:center;gap:.25rem;margin-top:.25rem;font-size:.75rem;display:flex}.auth-field-success:before{content:"✓";font-size:.75rem}.auth-input.validating{border-color:#f59e0b;position:relative}.auth-input.validating:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.auth-field-info{color:#f59e0b;align-items:center;gap:.25rem;margin-top:.25rem;font-size:.75rem;display:flex}.auth-suggestions{margin-top:.5rem}.auth-suggestions-title{color:#6b7280;margin-bottom:.25rem;font-size:.75rem}.auth-suggestions-list{flex-wrap:wrap;gap:.5rem;display:flex}.auth-suggestion-button{color:#374151;cursor:pointer;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;transition:background-color .2s,border-color .2s}.auth-suggestion-button:hover{background-color:#e5e7eb;border-color:#9ca3af}.auth-suggestion-button:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 2px #d977061a}@media (width<=768px){.auth-wrapper{height:calc(100vh - 140px);padding:.5rem 0}.auth-split-layout{flex-direction:column;max-height:none;margin:0 .5rem}.auth-welcome-section{min-height:180px;padding:1.5rem 1.25rem}.auth-welcome-title{font-size:1.5rem}.auth-welcome-subtitle{margin-bottom:1rem;font-size:.95rem}.auth-feature-item{margin-bottom:.5rem;font-size:.85rem}.auth-form-section{padding:1.5rem 1.25rem}.auth-title{font-size:1.5rem}.auth-form{gap:1rem}}@media (width<=480px){.auth-wrapper{height:calc(100vh - 120px)}.auth-welcome-section{min-height:160px;padding:1.25rem 1rem}.auth-form-section{padding:1.25rem 1rem}}.dashboard-container{background-color:#0000;width:100%;min-height:100vh;margin:0;padding:2rem 1rem}.dashboard-header{margin-bottom:2rem}.dashboard-title{color:#1f2937;margin:0 0 .5rem;font-size:2rem;font-weight:700}.dashboard-subtitle{color:#6b7280;margin:0;font-size:1rem}.dashboard-loading{color:#6b7280;justify-content:center;align-items:center;height:400px;font-size:18px;display:flex}.dashboard-error{color:#dc2626;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin:1rem 0;padding:1rem}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{text-align:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.stat-value{color:#d97706;margin-bottom:.25rem;font-size:2rem;font-weight:700}.stat-value.ferments{color:#8b5cf6}.stat-value.completed{color:#059669}.stat-value.rating{color:#dc2626}.dashboard-content{grid-template-columns:1fr 1fr;gap:2rem;display:grid}@media (width<=768px){.dashboard-content{grid-template-columns:1fr}}.dashboard-section{flex-direction:column;display:flex}.section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.primary-button{color:#fff;cursor:pointer;background-color:#d97706;border:none;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s}.primary-button:hover{background-color:#b45309}.cards-container{flex-direction:column;flex-grow:1;gap:1rem;display:flex}.recipe-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;box-shadow:0 1px 3px #0000001a}.recipe-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.recipe-info{flex-grow:1}.recipe-name{color:#92400e;margin:0 0 .25rem;font-size:1.125rem;font-weight:600}.recipe-style{color:#b45309;margin:0;font-size:.875rem}.color-swatch{border:2px solid #fff;border-radius:50%;flex-shrink:0;width:3rem;height:3rem;box-shadow:0 0 0 1px #e5e7eb}.recipe-metrics{grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:.5rem;width:100%;margin-bottom:1rem;display:grid}.metric{text-align:center;min-width:0;overflow:hidden}.metric-value{color:#92400e;margin-bottom:.25rem;font-size:.875rem;font-weight:700}.metric-label{color:#6b7280;font-size:.6rem}.session-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;box-shadow:0 1px 3px #0000001a}.session-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.session-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.session-info{flex-grow:1}.session-date{color:#6b7280;margin:0;font-size:.875rem}.status-badge{text-transform:capitalize;white-space:nowrap;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.session-metrics{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.session-metrics .metric-value{color:#1f2937;font-size:.875rem}.session-rating{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.rating-label{color:#6b7280;font-size:.875rem}.stars{display:flex}.card-actions{gap:.5rem;display:flex}.action-button{cursor:pointer;border:none;border-radius:.375rem;flex:1;padding:.5rem;font-size:.75rem;font-weight:500;transition:background-color .2s}.action-button.view{color:#fff;background-color:#f59e0b}.action-button.view:hover{background-color:#d97706}.action-button.edit{color:#fff;background-color:#6b7280}.action-button.edit:hover{background-color:#4b5563}.action-button.brew{color:#fff;background-color:#10b981}.action-button.brew:hover{background-color:#059669}.section-footer{text-align:center;margin-top:1rem}.view-all-link{color:#d97706;font-size:.875rem;font-weight:500;text-decoration:none}.view-all-link:hover{color:#b45309;text-decoration:underline}.dashboard-container .recipe-card-actions{gap:.5rem;display:flex}.dashboard-container .recipe-card-actions .recipe-card-button:not(.brew-button){flex:1}.dashboard-container .recipe-card-actions .recipe-card-button.brew-button{flex:3}@media (width<=640px){.dashboard-container{padding:1rem .5rem}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.section-header{flex-direction:column;align-items:flex-start;gap:.5rem}.recipe-metrics{grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:.4rem}.recipe-metrics .metric-value{font-size:.875rem}.recipe-metrics .metric-label{font-size:.6rem}.session-metrics{grid-template-columns:repeat(2,1fr)}.card-actions{flex-direction:column}.dashboard-title{font-size:1.5rem}}.all-recipes-container{max-width:1600px;margin:0 auto;padding:2rem 1rem}.all-recipes-header{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}@media (width>=768px){.all-recipes-header{flex-direction:row;align-items:center}}.all-recipes-title{color:#1f2937;font-size:1.5rem;font-weight:700}.primary-button{background-color:var(--color-amber-600);border:1px solid var(--color-amber-600);color:#fff;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal);text-align:center;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-block}.primary-button:hover{background-color:var(--color-amber-700);border-color:var(--color-amber-700)}.sort-container{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}@media (width>=768px){.search-and-sort-container{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.search-container{flex:1;min-width:300px;margin-bottom:0}.sort-container{flex-shrink:0;margin-bottom:0}.search-results-count{flex-basis:100%;margin-top:.75rem}}.empty-state,.no-search-results{text-align:center;padding:2.5rem 1rem}@media (width<=768px){.recipes-grid{grid-template-columns:1fr;gap:1rem}}.compact-recipe-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;flex-direction:column;min-height:150px;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000001a}.compact-recipe-metrics.dashboard-variant{grid-template-columns:repeat(5,1fr)}.compact-metric-SRM{flex-direction:column;justify-content:center;align-items:center;margin-top:7px;display:flex}.compact-recipes-empty{text-align:center;color:#6b7280;padding:3rem 1rem}.compact-recipes-empty h3{color:#374151;margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.compact-recipes-empty p{margin-bottom:1.5rem;font-size:1rem}.compact-session-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;flex-direction:column;min-height:175px;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000001a}.compact-session-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.compact-session-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.compact-session-info{flex-grow:1;min-width:0}.compact-session-name{color:var(--color-amber-800);word-wrap:break-word;margin:0 0 .25rem;font-size:1.125rem;font-weight:600;line-height:1.3}.compact-session-meta{color:#6b7280;margin:0;font-size:.875rem;line-height:1.4}.compact-session-status-badge{text-transform:capitalize;white-space:nowrap;border:1px solid;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.compact-session-status-badge.planned{color:#3b82f6;background-color:#3b82f620}.compact-session-status-badge.in-progress{color:#f59e0b;background-color:#f59e0b20}.compact-session-status-badge.fermenting{color:#8b5cf6;background-color:#8b5cf620}.compact-session-status-badge.conditioning{color:#10b981;background-color:#10b98120}.compact-session-status-badge.completed{color:#059669;background-color:#05966920}.compact-session-status-badge.archived,.compact-session-status-badge.unknown{color:#6b7280;background-color:#6b728020}.compact-session-metrics{border-top:1px solid #f3f4f6;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem;padding:1rem 0;display:grid}.compact-session-metric{text-align:center}.compact-session-metric-value{color:var(--color-amber-800);margin-bottom:.25rem;font-size:1rem;font-weight:700;line-height:1.2}.compact-session-metric-label{color:#6b7280;text-transform:uppercase;letter-spacing:.025em;font-size:.65rem;font-weight:500}.compact-session-rating{background-color:#fafbfc;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.75rem;display:flex}.compact-session-rating-label{color:#6b7280;font-size:.875rem;font-weight:500}.compact-session-stars{gap:.125rem;display:flex}.compact-session-star{color:#e5e7eb;font-size:1rem}.compact-session-star.filled{color:#fbbf24}.compact-session-actions{border-top:1px solid #f3f4f6;gap:.5rem;margin-top:auto;padding-top:1rem;display:flex}.compact-session-action-button{cursor:pointer;border:none;border-radius:.375rem;flex:1;padding:.5rem;font-size:.875rem;font-weight:500;transition:all .2s}.compact-session-action-button.view{background-color:var(--color-amber-600);color:#fff}.compact-session-action-button.view:hover{background-color:var(--color-amber-700)}.compact-session-action-button.edit{background-color:var(--color-slate-600);color:#fff}.compact-session-action-button.edit:hover{background-color:var(--color-slate-700)}@media (width<=768px){.compact-session-metrics{gap:.5rem}.compact-session-action-button{padding:.4rem;font-size:.75rem}}.ingredient-matching-review{max-width:900px;margin:0 auto;padding:1.5rem}.review-header{margin-bottom:2rem}.review-title h2{color:#374151;margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.review-title p{color:#6b7280;margin:0;line-height:1.5}.progress-info{margin-top:1rem}.progress-text{color:#6b7280;margin-bottom:.5rem;font-size:.875rem}.progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden}.matching-summary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;gap:2rem;margin-bottom:2rem;padding:1rem;display:flex}.summary-stat{text-align:center}.stat-value{color:#374151;font-size:1.5rem;font-weight:600;display:block}.stat-label{color:#6b7280;font-size:.875rem}.review-content{grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem;display:grid}.imported-ingredient h3,.matching-options h3{color:#374151;margin:0 0 1rem;font-size:1.125rem;font-weight:600}.ingredient-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.ingredient-card.imported{background:#f8faff;border-color:#3b82f6}.ingredient-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.type-badge{border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.type-badge.grain{color:#92400e;background:#fef3c7}.type-badge.hop{color:#065f46;background:#d1fae5}.type-badge.yeast{color:#3730a3;background:#e0e7ff}.type-badge.other{color:#374151;background:#f3f4f6}.ingredient-header h4{color:#374151;margin:0;font-size:1.125rem;font-weight:600}.ingredient-details{flex-direction:column;gap:.5rem;display:flex}.detail-item{justify-content:space-between;display:flex}.detail-item .label{color:#6b7280;font-weight:500}.detail-item .value{color:#374151}.option-section{margin-bottom:1.5rem}.option-header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.option-header input[type=radio]{margin:0}.option-header label{cursor:pointer;color:#374151;font-weight:500}.matches-list{flex-direction:column;gap:.75rem;display:flex}.match-item{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;transition:all .2s}.match-item:hover{background:#f8faff;border-color:#3b82f6}.match-item.selected{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.match-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.match-name{color:#374151;font-weight:500}.confidence-badge{color:#6b7280;align-items:center;gap:.25rem;font-size:.75rem;display:flex}.confidence-dot{border-radius:50%;width:8px;height:8px}.match-details{flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;display:flex}.match-details .detail{color:#6b7280;background:#f9fafb;border-radius:.25rem;padding:.125rem .375rem;font-size:.75rem}.match-reasons{flex-wrap:wrap;gap:.5rem;display:flex}.reason-tag{color:#3730a3;background:#e0e7ff;border-radius:3px;padding:.125rem .375rem;font-size:.625rem;font-weight:500}.new-ingredient-preview{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:1rem}.preview-header{color:#059669;margin-bottom:.75rem;font-size:.875rem;font-weight:500}.preview-details{flex-direction:column;gap:.25rem;display:flex}.preview-details .detail-item{justify-content:space-between;font-size:.875rem;display:flex}.preview-details .detail-item .label{color:#065f46;font-weight:500}.preview-details .detail-item .value{color:#047857}.review-navigation{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.5rem 0;display:flex}.nav-buttons{align-items:center;gap:1rem;display:flex}.ingredient-navigator{gap:.5rem;display:flex}.nav-dot{cursor:pointer;border:none;border-radius:50%;width:12px;height:12px;transition:all .2s}.nav-dot.matched{background:#10b981}.nav-dot.new{background:#f59e0b}.nav-dot.active{transform:scale(1.5);box-shadow:0 0 0 2px #fff,0 0 0 4px}.action-buttons{gap:1rem;display:flex}.btn-outline{color:#6b7280;background:0 0;border-color:#d1d5db}.btn-outline:hover:not(:disabled){background:#f9fafb}@media (width<=768px){.ingredient-matching-review{padding:1rem}.review-content{grid-template-columns:1fr;gap:1.5rem}.matching-summary{flex-wrap:wrap;justify-content:center;gap:1rem}.summary-stat{min-width:80px}.review-navigation{flex-direction:column;align-items:stretch;gap:1rem}.nav-buttons,.action-buttons{flex-wrap:wrap;justify-content:center}.btn{flex:1;min-width:120px}.match-header{flex-direction:column;align-items:flex-start;gap:.25rem}.match-details{flex-direction:column;gap:.5rem}.ingredient-navigator{flex-wrap:wrap;justify-content:center}}@media (width<=480px){.ingredient-matching-review{padding:.75rem}.review-header{margin-bottom:1.5rem}.review-title h2{font-size:1.25rem}.matching-summary{text-align:center;flex-direction:column}.summary-stat,.ingredient-card,.match-item{padding:.75rem}.option-header{flex-direction:column;align-items:flex-start;gap:.25rem}.nav-buttons{flex-direction:column;gap:.75rem}.action-buttons{flex-direction:column}.btn{width:100%;min-width:unset}}.btn:focus-visible,.match-item:focus-visible,.nav-dot:focus-visible,.option-header input[type=radio]:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}@media (prefers-contrast:high){.ingredient-card,.match-item{border-width:2px}.type-badge,.confidence-dot{border:1px solid}}@media (prefers-reduced-motion:reduce){.match-item,.btn,.nav-dot,.progress-fill,.button-spinner{transition:none;animation:none}}.ingredient-matching-review.loading{opacity:.8;pointer-events:none}.matches-list.loading{opacity:.6}.matches-list.loading:after{content:"Loading matches...";text-align:center;color:#6b7280;padding:2rem;font-style:italic;display:block}.beerxml-import-export{max-width:600px;margin:0 auto}.section-title{color:#374151;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.beerxml-import-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.beerxml-export-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem}.file-upload-area{margin-bottom:1rem}.file-input{display:none}.upload-dropzone{text-align:center;cursor:pointer;background:#fff;border:2px dashed #d1d5db;border-radius:8px;padding:2rem;transition:all .2s}.upload-dropzone:hover{background:#f8faff;border-color:#3b82f6}.upload-dropzone.has-file{background:#f0fdf4;border-color:#10b981}.upload-prompt{flex-direction:column;align-items:center;gap:.5rem;display:flex}.upload-icon{font-size:2rem}.upload-text{color:#374151;font-weight:500}.upload-hint{color:#6b7280;font-size:.875rem}.file-info{align-items:center;gap:1rem;display:flex}.file-icon{font-size:2rem}.file-details{text-align:left}.file-name{color:#374151;font-weight:500}.file-size{color:#6b7280;font-size:.875rem}.import-actions,.export-actions{gap:1rem;margin-top:1rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.25;transition:all .2s}.btn-primary{color:#fff;background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{color:#fff;background:#6b7280}.recipe-selection{background:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-top:1.5rem;padding:1rem}.recipe-selection h4{color:#374151;margin:0 0 1rem;font-size:1.125rem}.recipe-selector{margin-bottom:1rem}.recipe-selector label{color:#374151;margin-bottom:.5rem;font-weight:500;display:block}.form-select{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.5rem;font-size:.875rem}.form-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.recipe-preview{background:#fafafa;border:1px solid #e5e7eb;border-radius:6px;margin-top:1rem;padding:1rem}.recipe-preview h5{color:#374151;margin:0 0 1rem;font-size:1rem;font-weight:600}.recipe-details{margin:1rem 0}.detail-row{justify-content:space-between;padding:.25rem 0;display:flex}.detail-row .label{color:#6b7280;font-weight:500}.detail-row .value{color:#374151}.ingredient-summary{margin-top:1rem}.ingredient-summary h6{color:#374151;margin:0 0 .5rem;font-size:.875rem;font-weight:600}.ingredient-types{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.ingredient-type-badge{border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.ingredient-type-badge.grain{color:#92400e;background:#fef3c7}.ingredient-type-badge.hop{color:#065f46;background:#d1fae5}.ingredient-type-badge.yeast{color:#3730a3;background:#e0e7ff}.ingredient-type-badge.other{color:#374151;background:#f3f4f6}.import-recipe-actions{margin-top:1rem}.export-info{margin-bottom:1.5rem}.export-info p{color:#6b7280;margin:0 0 1rem;line-height:1.5}.current-recipe-info{background:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-top:1rem;padding:1rem}.recipe-name{margin-bottom:.5rem}.recipe-name strong{color:#374151;font-size:1rem}.recipe-stats{color:#6b7280;font-size:.875rem}.error-message{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:.5rem;margin-top:1rem;padding:1rem;display:flex}.error-text{flex:1;line-height:1.4}.export-info-message{color:#1d4ed8;text-align:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:4px;margin-top:.5rem;padding:.5rem;font-size:.875rem}@media (width<=768px){.beerxml-import-export{max-width:100%;margin:0}.beerxml-import-section,.beerxml-export-section{margin-bottom:1.5rem;padding:1rem}.upload-dropzone{padding:1.5rem 1rem}.upload-icon{font-size:1.5rem}.upload-text{font-size:.875rem}.upload-hint{font-size:.8125rem}.import-actions,.export-actions{flex-direction:column;gap:.75rem}.btn{text-align:center;width:100%}.detail-row{flex-direction:column;gap:.25rem}.detail-row .label{font-size:.8125rem}.detail-row .value{font-size:.875rem;font-weight:500}.ingredient-types{flex-direction:column;align-items:flex-start}.ingredient-type-badge{align-self:flex-start}}@media (width<=480px){.section-title{font-size:1.125rem}.recipe-preview,.current-recipe-info{padding:.75rem}.upload-dropzone{padding:1rem}.file-info{text-align:center;flex-direction:column;gap:.75rem}.file-details{text-align:center}}.btn:focus-visible,.form-select:focus-visible,.upload-dropzone:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}@media (prefers-contrast:high){.upload-dropzone{border-width:3px}.btn{border-width:2px}.ingredient-type-badge{border:1px solid}}@media (prefers-reduced-motion:reduce){.upload-dropzone,.btn,.button-spinner{transition:none;animation:none}}.beerxml-import-section.loading,.beerxml-export-section.loading{opacity:.7;pointer-events:none}.recipe-selection.loading{opacity:.8}.recipe-selection.loading:after{content:"";background:#fffc;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.success-message{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:.5rem;margin-top:1rem;padding:1rem;display:flex}.success-icon{flex-shrink:0;font-size:1.25rem}.success-text{flex:1;line-height:1.4}.progress-container{margin:1rem 0}.progress-bar{background:#e5e7eb;border-radius:4px;width:100%;height:8px;overflow:hidden}.progress-fill{background:#3b82f6;height:100%;transition:width .3s}.progress-text{color:#6b7280;text-align:center;margin-top:.5rem;font-size:.875rem}.unit-conversion-choice-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.unit-conversion-choice-dialog{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.unit-conversion-choice-dialog h3{color:#111827;margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.unit-mismatch-info{background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.unit-mismatch-info .info-icon{flex-shrink:0;font-size:1.5rem}.unit-mismatch-info p{color:#92400e;margin:0;line-height:1.5}.conversion-choices{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.choice-card{border:2px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:1rem;padding:1.5rem;transition:all .2s;display:flex}.choice-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a}.choice-card:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}@media (prefers-reduced-motion:reduce){.choice-card{transition:none}}.choice-card.recommended{background:#eff6ff;border-color:#3b82f6}.choice-card.recommended:hover{border-color:#2563eb}.choice-header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.choice-icon{font-size:1.5rem}.choice-header h4{color:#111827;flex:1;margin:0;font-size:1.125rem;font-weight:600}.recommended-badge{color:#fff;text-transform:uppercase;background:#3b82f6;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.choice-description{color:#6b7280;flex-grow:1;margin:0;font-size:.875rem;line-height:1.5}.choice-card .btn{width:100%;margin-top:auto}.dialog-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;padding-top:1rem;display:flex}.btn-text{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-weight:500;transition:color .2s}.btn-text:hover:not(:disabled){color:#111827}.btn-text:disabled{opacity:.5;cursor:not-allowed}.btn-text:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}@media (width<=640px){.conversion-choices{grid-template-columns:1fr}.unit-conversion-choice-dialog{padding:1.5rem}.choice-header{flex-direction:column;align-items:flex-start}.recommended-badge{align-self:flex-start}}.attenuation-badge{background:linear-gradient(135deg,#f8f9fa 0%,#fff 100%);border:1px solid #e0e0e0;border-radius:8px;margin:8px 0;padding:8px 12px;box-shadow:0 2px 4px #0000000d}.attenuation-badge.loading{background:#f9f9f9;border-color:#ddd;align-items:center;gap:8px;display:flex}.loading-spinner{border:2px solid #f3f3f3;border-top-color:#007bff;border-radius:50%;width:12px;height:12px;animation:1s linear infinite spin}.loading-text{color:#666;font-size:.8rem}.badge-main{align-items:center;gap:8px;font-size:.9rem;display:flex}.badge-icon{font-size:1rem}.badge-text{color:#333;font-weight:600}.confidence-indicator{background:#f0f0f0;border-radius:12px;padding:2px 6px;font-size:.75rem;font-weight:500}.attenuation-badge.none{border-color:#ddd}.attenuation-badge.low{background:linear-gradient(135deg,#fff8e1 0%,#fff 100%);border-color:#ffa726}.attenuation-badge.medium{background:linear-gradient(135deg,#fffde7 0%,#fff 100%);border-color:#ffcc02}.attenuation-badge.high{background:linear-gradient(135deg,#e8f5e8 0%,#fff 100%);border-color:#66bb6a}.confidence-indicator.text-gray-500{color:#6b7280;background:#f9fafb}.confidence-indicator.text-orange-500{color:#f97316;background:#fef3c7}.confidence-indicator.text-yellow-500{color:#eab308;background:#fefce8}.confidence-indicator.text-green-500{color:#22c55e;background:#dcfce7}.badge-details{border-top:1px solid #e9ecef;margin-top:8px;padding-top:8px;font-size:.8rem}.detail-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.detail-row:last-child{margin-bottom:0}.detail-label{color:#666;font-weight:500}.detail-value{color:#333;font-weight:600}.detail-value.positive{color:#22c55e}.detail-value.negative{color:#ef4444}.badge-error{background:#fee;border:1px solid #fcc;border-radius:4px;margin-top:4px;padding:4px 8px}.error-text{color:#d32f2f;font-size:.75rem}@media (width<=768px){.attenuation-badge{margin:6px 0;padding:6px 10px}.badge-main{gap:6px;font-size:.85rem}.badge-details{font-size:.75rem}}.selected-ingredient-info .attenuation-badge{margin-top:8px;margin-bottom:0}.yeast-attenuation{flex-direction:column;gap:4px;display:flex}.traditional-attenuation{justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.yeast-attenuation .attenuation-badge{margin:0}.attenuation-badge.compact{margin:4px 0;padding:4px 8px;font-size:.8rem}.attenuation-badge.compact .badge-main{gap:4px}.attenuation-badge.compact .badge-icon{font-size:.9rem}.attenuation-badge.compact .confidence-indicator{padding:1px 4px;font-size:.7rem}.analytics-page{max-width:1200px;margin:0 auto;padding:20px}.analytics-header{text-align:center;margin-bottom:30px}.analytics-header h1{color:#333;margin-bottom:8px;font-size:2.5rem}.header-description{color:#666;margin:0;font-size:1.1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px;display:grid}.stat-card{text-align:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:20px;transition:transform .2s;box-shadow:0 2px 4px #0000000d}.stat-card:hover{transform:translateY(-2px)}.stat-card.highlight{background:linear-gradient(135deg,#e3f2fd 0%,#fff 100%);border-color:#007bff}.stat-card.success{background:linear-gradient(135deg,#e8f5e8 0%,#fff 100%);border-color:#28a745}.stat-number{color:#333;margin-bottom:8px;font-size:2.5rem;font-weight:700}.stat-label{color:#666;font-size:.9rem;font-weight:500}.analytics-section{margin-bottom:40px}.analytics-section h2{color:#333;margin-bottom:8px;font-size:1.8rem}.section-description{color:#666;margin-bottom:20px}.yeast-list{gap:16px;display:grid}.yeast-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;align-items:center;gap:16px;padding:16px;display:flex;box-shadow:0 2px 4px #0000000d}.yeast-rank{color:#007bff;min-width:40px;font-size:1.5rem;font-weight:700}.yeast-info{flex:1}.yeast-name{color:#333;margin:0 0 4px;font-size:1.1rem;font-weight:600}.yeast-manufacturer,.yeast-code{color:#666;background:#f0f0f0;border-radius:12px;margin-right:8px;padding:2px 8px;font-size:.8rem;display:inline-block}.yeast-stats{flex-direction:column;gap:4px;min-width:200px;display:flex}.stat-item{justify-content:space-between;font-size:.9rem;display:flex}.stat-item .stat-label{color:#666}.stat-item .stat-value{color:#333;font-weight:600}.improvement-list{gap:16px;display:grid}.improvement-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex;box-shadow:0 2px 4px #0000000d}.improvement-info{flex:1}.improvement-stats{flex-direction:column;gap:4px;min-width:250px;display:flex}.stat-row{justify-content:space-between;font-size:.9rem;display:flex}.stat-row .stat-value.positive{color:#22c55e}.stat-row .stat-value.negative{color:#ef4444}.no-data-state{text-align:center;color:#666;padding:60px 20px}.no-data-icon{margin-bottom:20px;font-size:4rem}.no-data-state h2{color:#333;margin-bottom:16px;font-size:1.5rem}.no-data-state p{max-width:500px;margin:0 auto;font-size:1rem;line-height:1.6}.loading-spinner.large{border:4px solid #f3f3f3;border-top-color:#007bff;width:40px;height:40px}.error-container{text-align:center;padding:40px 20px}.retry-button{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:6px;margin-top:16px;padding:10px 20px}.retry-button:hover{background:#0056b3}@media (width<=768px){.analytics-page{padding:16px}.analytics-header h1{font-size:2rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.yeast-card,.improvement-card{flex-direction:column;align-items:flex-start;gap:12px}.yeast-stats,.improvement-stats{width:100%;min-width:auto}}.searchable-select{width:100%;position:relative}.searchable-select-input-container{align-items:center;display:flex;position:relative}.searchable-select-input{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;width:100%;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.searchable-select-input:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.searchable-select-input:disabled{color:#6b7280;cursor:not-allowed;background-color:#f3f4f6}.searchable-select-clear{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;padding:0;font-size:1.25rem;transition:background-color .2s,color .2s;display:flex;position:absolute;top:50%;right:2rem;transform:translateY(-50%)}.searchable-select-clear:hover{color:#374151;background-color:#f3f4f6}.searchable-select-arrow{color:#6b7280;pointer-events:none;transition:transform .2s;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.searchable-select.open .searchable-select-arrow{transform:translateY(-50%)rotate(180deg)}.searchable-select-dropdown{z-index:1000;background-color:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 .25rem .25rem;max-height:300px;animation:.15s ease-out dropdown-appear;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.searchable-select-option{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:.75rem;transition:background-color .15s}.searchable-select-option:last-child{border-bottom:none}.searchable-select-option:hover,.searchable-select-option.highlighted{background-color:#fffbeb}.searchable-select-option.highlighted{background-color:#fef3c7}.option-name{color:#111827;margin-bottom:.125rem;font-weight:500;line-height:1.3}.option-description{color:#6b7280;margin-bottom:.125rem;font-size:.875rem;line-height:1.3}.option-metadata{color:#6b7280;word-break:break-word;overflow-wrap:break-word;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.125rem;margin-top:.25rem;padding:.125rem .25rem;font-size:.75rem;font-weight:500;line-height:1.3;display:block}.option-manufacturer{color:#9ca3af;font-size:.75rem;font-style:italic}.option-score{color:#9ca3af;background-color:#f9fafb;border-radius:.125rem;margin-top:.25rem;padding:.125rem .25rem;font-family:monospace;font-size:.6875rem;display:inline-block}.searchable-select-no-results:before{content:"🔍 ";margin-right:.5rem}.searchable-select-dropdown::-webkit-scrollbar{width:6px}.searchable-select-dropdown::-webkit-scrollbar-track{background:#f3f4f6}.searchable-select-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.searchable-select-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.searchable-select-option:focus{outline-offset:-2px;outline:2px solid #d97706}.searchable-select-loading{text-align:center;color:#6b7280;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;display:flex}.searchable-select-loading:before{content:"";border:2px solid #f3f4f6;border-top-color:#d97706;border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin}.search-highlight::selection{color:#fff;background-color:#d97706}.searchable-select-option{position:relative}.searchable-select-option .option-name{word-break:break-word;font-weight:600}.searchable-select-option .option-description{word-break:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:2.6em;display:-webkit-box;overflow:hidden}@media (width<=640px){.searchable-select-dropdown{max-height:250px}.searchable-select-option{padding:.625rem}.option-name{font-size:.875rem}.option-description{font-size:.8125rem}.search-highlight{margin:0 .03125rem;padding:.0625rem .125rem}}@keyframes highlight-pulse{0%{background-color:#fef3c7;transform:scale(1)}50%{background-color:#fcd34d;transform:scale(1.05)}to{background-color:#fef3c7;transform:scale(1)}}.search-highlight{animation:.3s ease-in-out highlight-pulse}@media (prefers-contrast:high){.search-highlight{color:#fff;background-color:#000;font-weight:700}.searchable-select-option.highlighted{color:#fff;background-color:#000}}@media (prefers-reduced-motion:reduce){.dropdown-appear,.highlight-pulse,.spin{animation:none}.searchable-select-arrow{transition:none}}.option-manufacturer{color:#9ca3af;word-break:break-word;overflow-wrap:break-word;margin-top:.25rem;font-size:.75rem;font-style:italic;line-height:1.3;display:block}.option-manufacturer mark.search-highlight,.option-manufacturer .search-highlight{color:#78716c;background-color:#fde68a;border-radius:.0625rem;padding:.0625rem .125rem;font-weight:500}.searchable-select-dropdown{width:100%;min-width:200px}.searchable-select-option{padding:.75rem .875rem;line-height:1.4}.option-name{color:#111827;word-break:break-word;margin-bottom:.125rem;font-weight:600;line-height:1.4}.option-description{color:#6b7280;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.25rem;font-size:.875rem;line-height:1.4;display:-webkit-box;overflow:hidden}.search-highlight,mark.search-highlight{color:#92400e;background-color:#fef3c7;border:none;border-radius:.125rem;margin:0 .0625rem;padding:.125rem .25rem;font-weight:600}.option-name .search-highlight,.option-description .search-highlight{word-break:normal;display:inline}.searchable-select-option[data-ingredient-type=yeast] .option-name{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.yeast-code{color:#374151;text-transform:uppercase;background-color:#f3f4f6;border-radius:.25rem;padding:.125rem .375rem;font-family:monospace;font-size:.6875rem;font-weight:500;display:inline-block}.searchable-select-dropdown{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.searchable-select-option:focus{outline-offset:-2px;background-color:#fef3c7;outline:2px solid #d97706}.searchable-select-option.highlighted{outline-offset:-1px;background-color:#fef3c7;outline:1px solid #fbbf24}@media (width<=640px){.searchable-select-dropdown{width:100%;min-width:200px;max-height:60vh}.searchable-select-option{padding:.625rem}.option-name{font-size:.875rem}.option-description{-webkit-line-clamp:1;line-clamp:1;font-size:.8125rem}.option-metadata{margin-top:.1875rem;padding:.0625rem .125rem;font-size:.6875rem}.option-manufacturer{font-size:.6875rem}.search-highlight{margin:0 .03125rem;padding:.0625rem .125rem}}.searchable-select-loading{text-align:center;color:#6b7280;justify-content:center;align-items:center;gap:.75rem;padding:1rem .75rem;font-size:.875rem;display:flex}.searchable-select-no-results{text-align:center;color:#6b7280;border-bottom:none;padding:1rem .75rem;font-style:italic}.searchable-select-no-results:before{content:"🔍 ";margin-right:.5rem;font-style:normal}:root{--color-amber-50:#fffbeb;--color-amber-100:#fef3c7;--color-amber-200:#fde68a;--color-amber-300:#fcd34d;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-amber-600:#d97706;--color-amber-700:#b45309;--color-amber-800:#92400e;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#4b5563;--color-gray-800:#374151;--color-red-50:#fef2f2;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-blue-50:#f0f9ff;--color-blue-200:#bae6fd;--color-blue-600:#2563eb;--color-blue-700:#0369a1;--color-blue-800:#1e40af;--color-green-500:#10b981;--color-green-600:#059669;--color-green-700:#047857;--color-teal-600:#0891b2;--color-teal-700:#0e7490;--color-slate-600:#475569;--color-slate-700:#334155;--input-height:42px;--amount-container-width:120px;--grain-type-filter-width:140px;--button-width:100px;--border-radius:.375rem;--border-radius-sm:.25rem;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--transition-fast:.1s;--transition-normal:.2s;--transition-slow:.3s}.container{max-width:1600px;margin:0 auto;padding:2rem 1rem}.page-title{margin-bottom:var(--spacing-xl);color:#333;font-size:1.5rem;font-weight:700}.section-title{margin:2rem 0 var(--spacing-lg);color:#333;font-size:1.5rem;font-weight:700}.about-photo-section{text-align:center;margin:2rem 0;padding:1rem}.about-photo{border-radius:12px;width:100%;max-width:500px;height:auto;margin:0 auto 1rem;transition:transform .3s,box-shadow .3s;display:block;box-shadow:0 8px 25px #00000026}.about-photo:hover{transform:translateY(-2px);box-shadow:0 12px 35px #0003}.homebrew-photo{max-width:600px}.photo-caption{color:#6b7280;max-width:600px;margin-top:1rem;margin-left:auto;margin-right:auto;font-size:.95rem;font-style:italic;line-height:1.5}@media (width<=768px){.about-photo-section{margin:1.5rem 0;padding:.5rem}.about-photo{border-radius:8px;max-width:100%;box-shadow:0 4px 15px #0000001a}.photo-caption{padding:0 1rem;font-size:.9rem}}.loading-container{text-align:center;padding:2.5rem 1rem}.loading-container p{color:#6b7280;margin-top:1rem;font-size:1rem}.loading-spinner{border:3px solid #e5e7eb;border-top-color:#d97706;border-radius:50%;width:2rem;height:2rem;animation:1s linear infinite spin;display:inline-block}.loading-indicator{color:var(--color-gray-600);justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.loading-indicator .spinner{border:2px solid var(--color-gray-300);border-top:2px solid var(--color-amber-600);border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-6{margin-bottom:var(--spacing-xl)}.mt-2{margin-top:var(--spacing-sm)}.mt-4{margin-top:var(--spacing-lg)}.mt-6{margin-top:var(--spacing-xl)}.error-banner{background-color:var(--color-red-50);border:1px solid var(--color-red-200);border-radius:var(--border-radius);margin-bottom:1.5rem;padding:1rem}.error-content{align-items:center;gap:.75rem;display:flex}.error-icon{flex-shrink:0;font-size:1.25rem}.error-message{color:var(--color-red-700);flex:1;font-weight:500}.error-dismiss{color:var(--color-red-500);cursor:pointer;width:2rem;height:2rem;transition:background-color var(--transition-normal);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.25rem;font-size:1.5rem;display:flex}.search-highlight{background-color:var(--color-amber-200);color:var(--color-amber-800);border-radius:.125rem;padding:.125rem .25rem;font-weight:600}.srm-1{background-color:#f8f6e8}.srm-2{background-color:#f5f2d4}.srm-3{background-color:#f2edc0}.srm-4{background-color:#ede8ac}.srm-5{background-color:#e8e298}.srm-6{background-color:#e3dd84}.srm-7{background-color:#ded870}.srm-8{background-color:#d9d35c}.srm-9{background-color:#d4ce48}.srm-10{background-color:#cfc934}.srm-11{background-color:#c4b82e}.srm-12{background-color:#b8a728}.srm-13{background-color:#ac9622}.srm-14{background-color:#a0851c}.srm-15{background-color:#947416}.srm-16{background-color:#886310}.srm-17{background-color:#7c520a}.srm-18{background-color:#704108}.srm-19{background-color:#643006}.srm-20{background-color:#581f04}.srm-21{background-color:#4c1e04}.srm-22{background-color:#451b03}.srm-23{background-color:#3e1803}.srm-24{background-color:#371503}.srm-25{background-color:#301202}.srm-26{background-color:#290f02}.srm-27{background-color:#220c02}.srm-28{background-color:#1b0901}.srm-29{background-color:#140601}.srm-30{background-color:#0d0301}.srm-31{background-color:#0b0201}.srm-32{background-color:#090201}.srm-33{background-color:#070101}.srm-34{background-color:#050101}.srm-35{background-color:#030000}.srm-36{background-color:#020000}.srm-37{background-color:#010000}.srm-38,.srm-39,.srm-40{background-color:#000}.recipe-builder-layout{gap:2rem;min-height:100vh;display:flex;position:relative}.recipe-builder-main{flex-direction:column;flex:2;min-width:0;display:flex}.recipe-builder-sidebar{flex:1;min-width:300px;max-width:400px}.sticky-metrics-wrapper{z-index:10;height:fit-content;position:sticky;top:1rem}.recipe-builder-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.header-main{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.beerxml-actions{align-items:center;gap:.5rem;display:flex}.status-indicators{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.status-indicator{border-radius:var(--border-radius);white-space:nowrap;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:flex;box-shadow:0 2px 4px #0000001a}.status-indicator.calculating{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);color:var(--color-blue-800)}.status-indicator.adding{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);color:var(--color-amber-800)}.status-indicator.updating{color:#0369a1;background-color:#f0f9ff;border:1px solid #bae6fd}.status-indicator.saving{color:#166534;background-color:#dcfce7;border:1px solid #bbf7d0}.status-indicator.importing{color:#0369a1;background-color:#f0f9ff;border:1px solid #bae6fd}.status-indicator.success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.beerxml-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:2rem;box-shadow:0 1px 3px #0000001a}.panel-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.panel-header h3{color:#374151;margin:0;font-size:1.125rem;font-weight:600}.panel-close{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1.5rem;transition:all .2s;display:flex}.panel-content{padding:0}.recipe-card-container{gap:var(--spacing-xl);grid-template-columns:repeat(1,1fr);display:grid}@media (width>=640px){.recipe-card-container{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.recipe-card-container{grid-template-columns:repeat(3,1fr)}}.form-row{gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);grid-template-columns:1fr;display:grid}@media (width>=768px){.form-row{grid-template-columns:1fr 1fr;gap:1.5rem}}.form-row .form-group{min-width:0;margin-left:0;margin-right:0;overflow:hidden}.form-row .form-group input.form-control{box-sizing:border-box;width:100%;max-width:100%}.form-row .form-group .input-group{width:100%;max-width:100%}@media (width<=768px){.recipe-builder-layout{flex-direction:column}.recipe-builder-sidebar{min-width:unset;max-width:unset;order:-1}.sticky-metrics-wrapper{position:static}.header-main{flex-direction:column;align-items:stretch;gap:1rem}.beerxml-actions{justify-content:flex-end;width:100%}.status-indicators{flex-flow:wrap;justify-content:flex-start;align-items:stretch}.status-indicator{flex:1;justify-content:center;min-width:0}.panel-header{padding:.75rem 1rem}.panel-header h3{font-size:1rem}.beerxml-actions{flex-wrap:wrap}}@media (width<=480px){.recipe-builder-header{margin-bottom:1rem}.beerxml-actions{justify-content:stretch}.status-indicator{padding:.375rem .75rem;font-size:.8rem}}.card{border-radius:var(--spacing-sm);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);background-color:#fff;box-shadow:0 2px 5px #0000001a}.card-title{margin-bottom:var(--spacing-lg);color:var(--color-amber-800);border-bottom:1px solid var(--color-amber-200);padding-bottom:var(--spacing-sm);font-size:1.25rem;font-weight:600}.recipe-card{border-radius:var(--spacing-sm);height:100%;transition:transform var(--transition-normal), box-shadow var(--transition-normal);background-color:#fff;flex-direction:column;padding:1.25rem;display:flex;box-shadow:0 2px 5px #0000001a}.recipe-card-header{margin-bottom:var(--spacing-md)}.recipe-card-title{color:var(--color-amber-800);margin-bottom:var(--spacing-xs);font-size:1.25rem;font-weight:600}.recipe-card-style{color:var(--color-amber-700);margin-bottom:var(--spacing-sm);font-size:.875rem}.recipe-card-description{color:var(--color-gray-700);margin-bottom:var(--spacing-lg);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.4;display:-webkit-box;overflow:hidden}.recipe-card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-100);color:var(--color-gray-500);justify-content:space-between;align-items:center;margin-top:auto;font-size:.75rem;display:flex}.recipe-card-version{background-color:var(--color-amber-50);color:var(--color-amber-700);padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-sm);border:1px solid var(--color-amber-300);border-radius:9999px;font-size:.75rem;display:inline-block}.recipe-card-actions{padding-top:var(--spacing-md);align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-top:auto;display:flex}.recipe-card-button{border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-fast);text-align:center;white-space:nowrap;border:1px solid #0000;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.recipe-card-button.view-button{background-color:var(--color-amber-600);color:#fff}.recipe-card-button.view-button:hover{background-color:var(--color-amber-700)}.recipe-card-button.edit-button{background-color:var(--color-slate-600);color:#fff}.recipe-card-button.edit-button:hover{background-color:var(--color-slate-700)}.recipe-card-button.clone-button{background-color:var(--color-blue-600);color:#fff}.recipe-card-button.clone-button:hover{background-color:var(--color-blue-700)}.recipe-card-button.delete-button{border-color:var(--color-red-500);color:var(--color-red-500);background-color:#fff}.recipe-card-button.delete-button:hover{background-color:var(--color-red-50);color:var(--color-red-600)}.recipe-card-button.brew-button{background-color:var(--color-green-600);color:#fff;flex-grow:1}.recipe-card-button.brew-button:hover{background-color:var(--color-green-700)}@media (width<=480px){.recipe-card-actions{gap:.25rem}.recipe-card-button{padding:.3rem .6rem;font-size:.675rem}}.form-group{margin-bottom:var(--spacing-lg)}.form-label{margin-bottom:var(--spacing-xs);color:var(--color-gray-700);font-weight:500;display:block}.form-control,.input-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);font-size:1rem}.form-control:focus,.input-control:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.form-check{margin-top:var(--spacing-xl);align-items:center;display:flex}.form-check-input{margin-right:var(--spacing-sm)}.form-actions{margin-top:var(--spacing-xl);justify-content:flex-end;display:flex}.input-group{width:100%;display:flex}.input-group .input-control{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;flex:3}.input-group .input-addon{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);border-top-right-radius:var(--border-radius-sm);border-bottom-right-radius:var(--border-radius-sm);flex:1}.prefilled-input{border-color:var(--color-amber-600)!important;background-color:var(--color-amber-50)!important}.prefilled-input:focus{background-color:#fff!important;box-shadow:0 0 0 3px #d977061a!important}.btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal);text-align:center;font-size:.875rem;font-weight:500}.btn-default{background-color:var(--color-gray-50);border:1px solid var(--color-gray-300);color:var(--color-gray-700)}.btn-default:hover{background-color:var(--color-gray-100)}.btn-primary{background-color:var(--color-amber-600);border:1px solid var(--color-amber-600);color:#fff}.btn-primary:hover{background-color:var(--color-amber-700);border-color:var(--color-amber-700)}.btn-secondary{background-color:var(--color-amber-500);border:1px solid var(--color-amber-500);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--color-amber-600);border-color:var(--color-amber-600)}.btn-outline{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.25;transition:all .2s}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-outline:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-full{width:100%;display:block}.btn+.btn{margin-left:var(--spacing-sm)}.calculate-button{background-color:var(--color-amber-500);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;width:100%;transition:background-color var(--transition-normal);border:none;justify-content:center;align-items:center;padding:.625rem;font-size:.875rem;font-weight:600;display:flex}.calculate-button:hover{background-color:var(--color-amber-600)}.version-history{padding:var(--spacing-lg);background-color:var(--color-amber-50);border-radius:var(--spacing-sm);border:1px solid var(--color-amber-300);margin-top:2rem}.version-history-title{color:var(--color-amber-800);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-amber-200);padding-bottom:var(--spacing-sm);font-size:1.25rem;font-weight:600}.parent-version,.current-version,.child-versions{margin-bottom:var(--spacing-lg)}.parent-version h4,.current-version h4,.child-versions h4{color:var(--color-amber-700);margin-bottom:var(--spacing-xs);font-size:.875rem;font-weight:500}.parent-link{color:var(--color-amber-600);font-weight:500;text-decoration:none}.parent-link:hover{text-decoration:underline}.version-badge{background-color:var(--color-amber-200);color:var(--color-amber-800);padding:var(--spacing-xs) var(--spacing-sm);border-radius:9999px;font-size:.75rem;font-weight:600;display:inline-block}.derived-recipes-list{margin-left:var(--spacing-xl);list-style-type:disc}.derived-recipes-list a{color:var(--color-amber-600);text-decoration:none}.derived-recipes-list a:hover{text-decoration:underline}.version-history-loading{padding:var(--spacing-lg);text-align:center;color:var(--color-gray-500)}.version-history-error{padding:var(--spacing-lg);text-align:center;color:var(--color-red-500)}.type-badge{border-radius:var(--border-radius-sm);background-color:var(--color-amber-100);color:var(--color-amber-800);padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.type-badge.grain,.type-badge.hop,.type-badge.yeast,.type-badge.other,.type-badge.adjunct{color:#fff}.unsaved-indicator{color:var(--color-amber-600);font-weight:700;animation:2s infinite pulse}.ai-suggestions-card{border-radius:var(--spacing-sm);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);background-color:#fef7e0;border:1px solid #fed7aa;box-shadow:0 2px 4px #0000000d}.ai-suggestions-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.ai-suggestions-title{color:var(--color-amber-800);align-items:center;gap:var(--spacing-sm);margin:0;font-size:1.1rem;font-weight:600;display:flex}.ai-suggestions-toggle{color:var(--color-amber-600);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--border-radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.2rem;display:flex}.ai-suggestions-content{space-y:var(--spacing-md)}.ai-suggestion-item{border-radius:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background-color:#fff;border:1px solid #e5e7eb}.ai-suggestion-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-start;display:flex}.ai-suggestion-title{color:var(--color-gray-800);margin:0;font-size:1rem;font-weight:600}.ai-suggestion-confidence{border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.ai-suggestion-confidence.high{color:#166534;background-color:#dcfce7}.ai-suggestion-confidence.medium{color:#92400e;background-color:#fef3c7}.ai-suggestion-confidence.low{color:#991b1b;background-color:#fecaca}.ai-suggestion-description{color:var(--color-gray-600);margin-bottom:var(--spacing-md);line-height:1.4}.ai-suggestion-changes{margin-bottom:var(--spacing-md)}.ai-suggestion-change{padding:var(--spacing-sm);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-xs);background-color:#f9fafb;flex-direction:column;font-size:.875rem;display:flex}.ai-suggestion-change:last-child{margin-bottom:0}.change-ingredient{color:var(--color-amber-700);margin-bottom:.25rem;font-weight:600}.change-detail{color:var(--color-gray-700);margin-bottom:.25rem;font-family:monospace}.change-reason{color:var(--color-gray-500);font-size:.8rem;font-style:italic}.ai-suggestion-actions{gap:var(--spacing-sm);display:flex}.ai-suggestion-actions .btn{padding:.5rem 1rem;font-size:.875rem}.ai-suggestion-cascading-effects{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-md);padding:var(--spacing-md);margin-top:var(--spacing-md)}.cascading-effects-title{color:var(--color-amber-800);margin:0 0 var(--spacing-sm) 0;font-size:.875rem;font-weight:600}.cascading-effects-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.cascading-effect-item{padding:var(--spacing-sm);background-color:var(--color-white);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm);flex-direction:column;align-items:center;display:flex}.metric-name{color:var(--color-gray-600);margin-bottom:.25rem;font-size:.75rem;font-weight:600}.metric-change{color:var(--color-gray-800);text-align:center;font-size:.875rem;font-weight:500}.loading-spinner{border:2px solid #fed7aa;border-top:2px solid var(--color-amber-600);width:1rem;height:1rem;margin-left:var(--spacing-sm);border-radius:50%;animation:1s linear infinite spin;display:inline-block}.analyze-recipe-section{padding:var(--spacing-lg);text-align:center;background-color:var(--color-white);border-radius:var(--border-radius-md);border:1px solid var(--color-amber-200)}.analyze-description{color:var(--color-gray-600);margin-bottom:var(--spacing-lg);font-size:.875rem;line-height:1.5}.analyze-button{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-amber-600);color:#fff;border-radius:var(--border-radius-md);cursor:pointer;transition:background-color var(--transition-normal);align-items:center;gap:var(--spacing-sm);border:none;font-size:1rem;font-weight:600;display:inline-flex;box-shadow:0 2px 4px #0000001a}.analyze-button:hover:not(:disabled){background-color:var(--color-amber-700);box-shadow:0 4px 8px #00000026}.analyze-button:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-gray-400)}.help-text{color:var(--color-gray-500);margin-top:var(--spacing-md);font-size:.875rem;font-style:italic}.priority-indicator{margin-left:var(--spacing-xs);font-size:.875rem}.priority-indicator.critical{color:#dc2626}.priority-indicator.important{color:#d97706}.ai-suggestion-meta{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.ai-suggestion-priority{border-radius:var(--border-radius-sm);background-color:var(--color-gray-100);color:var(--color-gray-700);padding:.25rem .5rem;font-size:.75rem;font-weight:500}.ai-suggestion-style-impact{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-md);align-items:center;gap:var(--spacing-sm);display:flex}.ai-suggestion-item.comprehensive{border:2px solid var(--color-amber-300);border-radius:var(--border-radius-md);background:linear-gradient(135deg,#fefbf3 0%,#fef7e0 100%);box-shadow:0 4px 12px #d9770626}.ai-suggestion-breakdown{background-color:var(--color-white);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm);padding:var(--spacing-md);margin:var(--spacing-md) 0;font-size:.875rem;line-height:1.6}.ai-suggestion-breakdown h4{color:var(--color-amber-800);margin:0 0 var(--spacing-sm) 0;font-size:.9rem;font-weight:600}.ai-suggestion-breakdown ul{padding-left:var(--spacing-lg);margin:0;list-style:none}.ai-suggestion-breakdown li{margin-bottom:var(--spacing-xs);position:relative}.ai-suggestion-breakdown li:before{content:"✓";color:var(--color-amber-600);font-weight:700;position:absolute;left:-1.2rem}.style-impact-label{color:var(--color-blue-800);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.style-impact-text{color:var(--color-blue-700);font-size:.875rem}.ai-suggestion-item.critical{background-color:#fef2f2;border-left:4px solid #dc2626}.ai-suggestion-item.important{background-color:#fffbeb;border-left:4px solid #d97706}.ai-suggestion-item.nice-to-have{border-left:4px solid var(--color-gray-300)}.ai-suggestion-item.no-suggestions{border-radius:var(--border-radius-md);background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border:2px solid #86efac;box-shadow:0 4px 12px #22c55e26}.bottom-save-section{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-amber-50);border-radius:var(--border-radius-sm);border:1px solid var(--color-amber-200)}.bottom-save-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.bottom-save-section .validation-info{text-align:center;margin-top:var(--spacing-sm);margin-bottom:0}.bottom-save-section .validation-message{color:var(--color-amber-700);font-style:italic}@media (width<=768px){.form-row{grid-template-columns:1fr}.btn+.btn{margin-left:0;margin-top:var(--spacing-sm)}.ai-suggestion-actions{flex-direction:column}.ai-suggestion-change{font-size:.8rem}}.metrics-container{background-color:var(--color-amber-50);border-radius:var(--spacing-sm);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:0 2px 5px #0000001a}.metrics-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.metric-box{text-align:center;padding:var(--spacing-md) var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:#fff;box-shadow:0 1px 2px #0000000d}.metric-label{color:var(--color-gray-500);margin-bottom:var(--spacing-xs);font-size:.75rem}.metric-value{color:var(--color-amber-800);font-size:1.5rem;font-weight:700;line-height:1.2}.color-display{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--border-radius);background-color:#fff;align-items:center;display:flex;box-shadow:0 1px 2px #0000000d}.color-info{margin-right:var(--spacing-lg);flex-grow:1}.color-swatch{width:4rem;height:4rem;box-shadow:0 0 0 1px var(--color-gray-200);border:3px solid #fff;border-radius:50%}.balance-meter-container{padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);background-color:#fff;box-shadow:0 1px 2px #0000000d}.balance-labels{color:var(--color-gray-500);margin-bottom:var(--spacing-xs);justify-content:space-between;font-size:.75rem;display:flex}.balance-meter{height:var(--spacing-sm);background-color:var(--color-gray-200);border-radius:9999px;overflow:hidden}.balance-meter-progress{background-color:var(--color-amber-600);height:100%;transition:width var(--transition-slow) ease}.balance-description{text-align:center;margin-top:var(--spacing-xs);color:var(--color-gray-700);font-size:.75rem}.card-metrics-container{border-radius:var(--spacing-sm);padding:var(--spacing-lg) 0;margin-top:var(--spacing-sm);background-color:#0000}.card-metrics-grid{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.card-metrics-grid .metric-box{padding:var(--spacing-sm) var(--spacing-xs);background-color:var(--color-amber-50)}.card-metrics-grid .metric-label{font-size:.65rem}.card-metrics-grid .metric-value{font-size:1rem}.card-color-display{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-amber-50);border-radius:var(--border-radius);align-items:center;display:flex;box-shadow:0 1px 2px #0000000d}.card-color-display .color-info{margin-right:var(--spacing-sm)}.card-color-display .color-swatch{border:2px solid #fff;width:2rem;height:2rem}.card-balance-meter-container{background-color:var(--color-amber-50);padding:var(--spacing-sm);border-radius:var(--border-radius);box-shadow:0 1px 2px #0000000d}.card-balance-meter-container .balance-labels{font-size:.65rem}.card-balance-meter-container .balance-meter{height:.375rem}.card-balance-meter-container .balance-description{font-size:.65rem}.scaling-container{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.scaling-title{margin-bottom:var(--spacing-sm);font-size:1rem;font-weight:500}.scaling-input-group{display:flex}.scaling-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-300);border-top-left-radius:var(--border-radius-sm);border-bottom-left-radius:var(--border-radius-sm);border-right:none;flex-grow:1}.scaling-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.scaling-button{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-amber-600);color:#fff;border:1px solid var(--color-amber-600);border-top-right-radius:var(--border-radius-sm);border-bottom-right-radius:var(--border-radius-sm);cursor:pointer}.scaling-button:hover{background-color:var(--color-amber-700);border-color:var(--color-amber-700)}.current-vs-target{background-color:var(--color-gray-50);border-radius:var(--border-radius);border:1px solid var(--color-gray-200);margin-top:1rem;padding:1rem}.current-vs-target h5{color:var(--color-gray-800);border-bottom:1px solid var(--color-gray-200);margin:0 0 .75rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.metrics-comparison{flex-direction:column;gap:.5rem;display:flex}.metric-comparison{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);background-color:#fff;align-items:center;gap:.75rem;padding:.5rem;display:flex}.metric-comparison .metric-label{color:var(--color-gray-800);min-width:3rem;font-weight:600}.metric-comparison .current-value{color:var(--color-amber-700);min-width:4rem;font-weight:600}.metric-comparison .target-range{color:var(--color-gray-600);font-size:.875rem;font-style:italic}.match-status{border-radius:var(--border-radius);justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.match-status.success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.match-status.warning{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.match-status.danger{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.match-percentage{font-size:1.125rem;font-weight:600}.match-details{opacity:.8;font-size:.875rem}.spec-breakdown{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.spec-match{border-radius:var(--border-radius-sm);align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;display:flex}.spec-match.match{color:#166534;background-color:#f0fdf4}.spec-match.no-match{color:#991b1b;background-color:#fef2f2}.spec-name{text-transform:uppercase;letter-spacing:.025em;font-size:.75rem}.match-indicator{font-weight:700}.spec-range{color:var(--color-gray-600);margin-left:auto;font-size:.75rem;font-weight:400}.style-analysis-result{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-bottom:1rem;padding:1rem}.style-analysis-content{flex-direction:column;gap:.75rem;display:flex}.style-match-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.style-name{color:var(--color-gray-800);font-size:1rem;font-weight:600}.match-percentage{border-radius:var(--border-radius-sm);padding:.25rem .5rem;font-size:.875rem;font-weight:600}.match-percentage.success{color:#166534;background-color:#f0fdf4}.match-percentage.warning{color:#92400e;background-color:#fffbeb}.match-percentage.danger{color:#991b1b;background-color:#fef2f2}.style-targets{background-color:var(--color-gray-50);border-radius:var(--border-radius);padding:1rem}.style-targets h5{color:var(--color-gray-800);margin:0 0 .75rem;font-size:1rem}.targets-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;display:grid}.target{text-align:center;flex-direction:column;display:flex}.target .label{color:var(--color-gray-600);text-transform:uppercase;font-size:.75rem;font-weight:500}.target .value{color:var(--color-gray-800);font-size:1rem;font-weight:600}@media (width<=768px){.metrics-grid{gap:var(--spacing-sm);grid-template-columns:1fr}.color-display{text-align:center;gap:var(--spacing-sm);flex-direction:column}.color-info{margin-right:0}.targets-grid{grid-template-columns:repeat(2,1fr)}.metric-comparison{flex-direction:column;align-items:flex-start;gap:.25rem}.scaling-input-group{flex-direction:column}.scaling-input{border-radius:var(--border-radius-sm);border-right:1px solid var(--color-gray-300);margin-bottom:var(--spacing-xs)}.scaling-button{border-radius:var(--border-radius-sm)}}.temperature-adjustment-indicator{margin-left:var(--spacing-xs);cursor:help;vertical-align:middle;font-size:.875rem;animation:2s ease-in-out infinite alternate temperatureGlow;display:inline-block}.temperature-adjustment-indicator:hover{transition:transform .2s;transform:scale(1.1)}@keyframes temperatureGlow{0%{opacity:.8}to{opacity:1}}.metric-value{position:relative}.temperature-adjustment-indicator[title]:hover:after{content:attr(title);background-color:var(--color-gray-900);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);white-space:nowrap;z-index:1000;margin-bottom:var(--spacing-xs);font-size:.75rem;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.temperature-adjustment-indicator[title]:hover:before{content:"";border:5px solid #0000;border-top-color:var(--color-gray-900);z-index:1001;position:absolute;bottom:calc(100% - 5px);left:50%;transform:translate(-50%)}.ingredients-table-container{overflow-x:auto}.ingredients-table{border-collapse:collapse;width:100%}.ingredients-table th{background-color:var(--color-amber-50);color:var(--color-amber-800);text-align:left;padding:var(--spacing-md) var(--spacing-lg);border-bottom:2px solid var(--color-amber-200);font-weight:600}.ingredients-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-gray-200)}.ingredient-type{text-transform:capitalize;color:#000}.ingredient-action{padding:var(--spacing-xs) var(--spacing-sm);color:var(--color-red-500);cursor:pointer;background:0 0;border:none;align-items:center;display:flex}.ingredient-action:hover{color:var(--color-red-700)}.ingredients-section{margin-top:2rem}.ingredients-header{margin-bottom:1rem}.ingredients-section .section-title{border-bottom:2px solid var(--color-amber-200);margin-bottom:1.5rem;padding-bottom:.5rem}.ingredient-form{margin-bottom:0}.ingredient-inputs{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);align-items:start;display:grid}.ingredient-inputs--grain{grid-template-columns:var(--amount-container-width) var(--grain-type-filter-width) 1fr 110px var(--button-width)}.ingredient-inputs--grain .amount-input{min-width:50px;max-width:150px}.ingredient-inputs--grain .unit-select{min-width:50px;max-width:100px}.grain-type-filter{width:140px;min-width:140px}.bt-input-control{border:1px solid var(--color-gray-300);border-radius:var(--border-radius);height:var(--input-height);box-sizing:border-box;background-color:#fff;padding:.625rem .5rem;font-size:.875rem;line-height:1.25;transition:border-color .2s,box-shadow .2s}.bt-input-control:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.bt-input-control:disabled{background-color:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}.grain-type-select{cursor:pointer;width:100%}.ingredient-inputs--hop{grid-template-columns:var(--amount-container-width) minmax(200px, 1fr) 100px 225px var(--button-width)}.ingredient-inputs--yeast{grid-template-columns:var(--amount-container-width) 1fr var(--button-width)}.ingredient-inputs--adjunct{grid-template-columns:var(--amount-container-width) minmax(200px, 1fr) 120px 120px var(--button-width)}.ingredient-inputs--adjunct .ingredient-selector{min-width:200px;max-width:700px}.ingredient-inputs--adjunct .amount-input{min-width:50px;max-width:150px}.ingredient-inputs--adjunct .unit-select{min-width:50px;max-width:100px}.amount-container{width:var(--amount-container-width);min-width:var(--amount-container-width);max-width:var(--amount-container-width);flex-shrink:0;display:flex}.amount-input{padding:.625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius) 0 0 var(--border-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:var(--input-height);box-sizing:border-box;background-color:#fff;border-right:none;flex:2;font-size:.875rem;line-height:1.25}.amount-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.unit-select{background-color:var(--color-gray-50);border:1px solid var(--color-gray-300);border-radius:0 var(--border-radius) var(--border-radius) 0;cursor:pointer;height:var(--input-height);box-sizing:border-box;flex:1;padding:.625rem .375rem;font-size:.875rem;line-height:1.25}.unit-select:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.ingredient-selector{flex:1;min-width:150px}.ingredient-selector .searchable-select{width:100%}.ingredient-selector .searchable-select-input{height:var(--input-height);box-sizing:border-box;padding:.625rem 2.5rem .625rem var(--spacing-md);font-size:.875rem}.color-input-container{flex-shrink:0;width:110px;min-width:110px;position:relative}.color-input{width:100%;padding:.625rem 3rem .625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:var(--input-height);box-sizing:border-box;background-color:#fff;font-size:.875rem;line-height:1.25}.color-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.color-unit{color:var(--color-gray-500);pointer-events:none;font-size:.75rem;font-weight:500;position:absolute;top:50%;right:2rem;transform:translateY(-50%)}.color-preview-swatch{right:var(--spacing-xs);width:20px;height:20px;box-shadow:0 0 0 1px var(--color-gray-200);pointer-events:none;border:2px solid #fff;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%)}.alpha-input-container{width:100px;min-width:100px;position:relative}.alpha-input{width:100%;padding:.625rem 2rem .625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:var(--input-height);box-sizing:border-box;background-color:#fff;font-size:.875rem;line-height:1.25}.alpha-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.alpha-unit{right:var(--spacing-sm);color:var(--color-gray-500);pointer-events:none;font-size:.75rem;font-weight:500;position:absolute;top:50%;transform:translateY(-50%)}.hop-time-container{gap:var(--spacing-sm);flex-wrap:nowrap;align-items:center;width:260px;min-width:260px;display:flex}.time-input{width:60px;padding:.625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:var(--input-height);box-sizing:border-box;background-color:#fff;flex-shrink:0;font-size:.875rem;line-height:1.25}.time-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.time-unit-select{width:65px;padding:.625rem var(--spacing-xs);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);cursor:pointer;height:var(--input-height);box-sizing:border-box;background-color:#fff;flex-shrink:0;font-size:.875rem;line-height:1.25}.use-select{width:85px;padding:.625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);cursor:pointer;height:var(--input-height);box-sizing:border-box;background-color:#fff;flex-shrink:0;font-size:.875rem;line-height:1.25}.time-unit-select:focus,.use-select:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.adjunct-use-container{width:120px;min-width:120px}.adjunct-use-select{width:100%;padding:.625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);cursor:pointer;height:var(--input-height);box-sizing:border-box;background-color:#fff;font-size:.875rem;line-height:1.25}.adjunct-use-select:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.adjunct-time-container{width:120px;min-width:120px}.adjunct-time-input{width:100%;padding:.625rem var(--spacing-sm);border:1px solid var(--color-gray-300);border-radius:var(--border-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:var(--input-height);box-sizing:border-box;background-color:#fff;font-size:.875rem;line-height:1.25}.adjunct-time-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.ingredient-add-button{width:var(--button-width);min-width:var(--button-width);height:var(--input-height);min-height:var(--input-height);background-color:var(--color-amber-600);color:#fff;border-radius:var(--border-radius);cursor:pointer;transition:background-color var(--transition-normal), transform var(--transition-fast);box-sizing:border-box;border:none;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}.ingredient-add-button:hover:not(:disabled){background-color:var(--color-amber-700)}.ingredient-add-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.amount-input.error,.color-input.error,.alpha-input.error,.time-input.error,.adjunct-time-input.error{border-color:var(--color-red-500)}.selected-ingredient-info{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius);padding:var(--spacing-md);margin-top:var(--spacing-md)}.ingredient-info-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.ingredient-name{color:var(--color-amber-800);font-weight:600}.ingredient-badge{padding:.125rem var(--spacing-sm);background-color:var(--color-amber-400);color:#fff;border-radius:9999px;font-size:.75rem;font-weight:500;display:inline-block}.ingredient-help{margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius)}.help-text{color:var(--color-blue-700);margin:0;font-size:.875rem;line-height:1.4}.usage-description{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-gray-100);border-radius:var(--border-radius)}.guidance-text{color:var(--color-gray-700);margin:0;font-size:.75rem;font-style:italic;line-height:1.4}.yeast-specs{color:var(--color-amber-800);margin-top:var(--spacing-xs);font-size:.75rem}.editable-cell{cursor:pointer;border-radius:var(--border-radius-sm);transition:background-color var(--transition-normal);min-width:40px;min-height:1.5rem;padding:.25rem .5rem;display:inline-block}.editable-cell:hover{background-color:var(--color-amber-100);outline:1px dashed var(--color-amber-400)}.editable-cell:focus{background-color:var(--color-amber-50);outline:2px solid var(--color-amber-600)}.edit-cell-container{width:100%;min-width:80px;display:inline-block;position:relative}.edit-cell-input{border:2px solid var(--color-amber-600);border-radius:var(--border-radius-sm);width:100%;transition:border-color var(--transition-normal);background-color:#fff;min-width:60px;padding:.25rem .5rem;font-size:.875rem;box-shadow:0 0 0 3px #d9770633}.edit-cell-input:focus{border-color:var(--color-amber-700);outline:none;box-shadow:0 0 0 3px #d977064d}.edit-cell-input[type=number]{text-align:right}.edit-cell-input[type=select]{cursor:pointer}.edit-error{z-index:1000;background-color:var(--color-red-600);color:#fff;border-radius:var(--border-radius-sm);white-space:nowrap;margin-top:.125rem;padding:.25rem .5rem;font-size:.75rem;position:absolute;top:100%;left:0;box-shadow:0 2px 4px #0003}.edit-error:before{content:"";border-left:.25rem solid #0000;border-right:.25rem solid #0000;border-bottom:.25rem solid var(--color-red-600);width:0;height:0;position:absolute;top:-.25rem;left:.5rem}.ingredient-details-container .detail-item{align-items:center;gap:.25rem;margin-bottom:.125rem;display:flex}.ingredient-details-container .detail-item:last-child{margin-bottom:0}.ingredient-details-container .detail-label{color:var(--color-gray-600);flex-shrink:0;min-width:2rem;font-size:.75rem}.ingredient-details-container .detail-value{color:var(--color-gray-800);font-size:.75rem}.ingredient-details-container .editable-cell{min-width:2rem;padding:.125rem .25rem;font-size:.75rem}.ingredient-details-container .edit-cell-input{min-width:40px;padding:.125rem .25rem;font-size:.75rem}.editing-help{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius)}.editing-help .help-text{color:var(--color-blue-700);margin:0;font-size:.875rem;font-style:italic}.ingredient-row:has(.edit-cell-container){background-color:var(--color-amber-50);outline:1px solid var(--color-amber-300)}.ingredients-table.editing-mode{border:2px solid var(--color-amber-300);border-radius:var(--border-radius)}.ingredients-table.editing-mode th{background-color:var(--color-amber-100)}.ingredients-table td.ingredient-amount,.ingredients-table td.ingredient-use,.ingredients-table td.ingredient-time{padding:.5rem .75rem}.ingredients-table td.ingredient-details{min-width:120px;padding:.5rem .75rem}.edit-cell-input[type=select],.edit-cell-input select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2rem}.edit-cell-input.valid{border-color:var(--color-green-500);box-shadow:0 0 0 3px #22c55e33}.edit-cell-input.invalid{border-color:var(--color-red-500);box-shadow:0 0 0 3px #ef444433}.grain-total-section{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm)}.grain-total-display{justify-content:space-between;align-items:center;font-size:.95rem;display:flex}.grain-total-label{color:var(--color-amber-800);font-weight:600}.grain-total-value{color:var(--color-amber-900);font-family:monospace;font-size:1.1rem;font-weight:700}@media (width<=1400px){.ingredient-inputs--grain,.ingredient-inputs--hop,.ingredient-inputs--yeast,.ingredient-inputs--adjunct{gap:var(--spacing-sm);grid-template-columns:1fr}.amount-container,.grain-type-filter,.ingredient-selector,.color-input-container,.alpha-input-container,.hop-time-container,.adjunct-use-container,.adjunct-time-container,.ingredient-add-button{width:100%;min-width:unset}.hop-time-container{gap:var(--spacing-sm);flex-wrap:wrap}.time-input,.time-unit-select,.use-select{flex:1;min-width:80px}}@media (width<=768px){.ingredient-inputs--grain,.ingredient-inputs--hop,.ingredient-inputs--yeast,.ingredient-inputs--adjunct{gap:var(--spacing-sm)}.hop-time-container{flex-direction:column;align-items:stretch}.time-input,.time-unit-select,.use-select{width:100%;min-width:unset}.edit-cell-input{min-width:50px;padding:.2rem .4rem;font-size:.8rem}.edit-error{margin-top:.25rem;margin-left:0;font-size:.7rem;display:block;position:relative;top:auto;left:auto}.edit-error:before{display:none}.ingredient-details-container{flex-direction:column;gap:.25rem;display:flex}.ingredient-details-container .detail-item{flex-direction:column;align-items:flex-start;gap:.125rem}}.amount-input:focus-visible,.unit-select:focus-visible,.color-input:focus-visible,.alpha-input:focus-visible,.time-input:focus-visible,.time-unit-select:focus-visible,.use-select:focus-visible,.adjunct-use-select:focus-visible,.adjunct-time-input:focus-visible,.ingredient-add-button:focus-visible,.editable-cell:focus-visible{outline:2px solid var(--color-amber-600);outline-offset:2px}.edit-cell-input:focus-visible{outline:2px solid var(--color-amber-700);outline-offset:1px}@media (prefers-contrast:high){.amount-input,.unit-select,.color-input,.alpha-input,.time-input,.time-unit-select,.use-select,.adjunct-use-select,.adjunct-time-input{border-width:2px}.ingredient-add-button{border:2px solid #fff}.editable-cell:hover{outline:2px solid var(--color-amber-600);background-color:var(--color-amber-200)}.edit-cell-input{border-width:3px}.edit-error{border:2px solid #fff}}@media (prefers-reduced-motion:reduce){.amount-input,.unit-select,.color-input,.alpha-input,.time-input,.time-unit-select,.use-select,.adjunct-use-select,.adjunct-time-input,.ingredient-add-button,.editable-cell,.edit-cell-input{transition:none}}.beer-style-selector{width:100%;position:relative}.style-input-container{position:relative}.style-dropdown{border:1px solid var(--color-gray-300);border-radius:0 0 var(--border-radius) var(--border-radius);z-index:1000;background:#fff;border-top:none;max-height:300px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.style-option{cursor:pointer;border-bottom:1px solid var(--color-gray-100);transition:background-color var(--transition-normal);padding:.75rem 1rem}.style-option:last-child{border-bottom:none}.style-option-main{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.style-id{color:var(--color-amber-700);background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);padding:.125rem .375rem;font-size:.75rem;font-weight:600}.style-name{color:var(--color-gray-800);font-weight:500}.style-category{color:var(--color-gray-600);font-size:.875rem;font-style:italic}.clear-button{color:var(--color-gray-400);cursor:pointer;width:1.5rem;height:1.5rem;transition:color var(--transition-normal), background-color var(--transition-normal);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.25rem;font-size:1.25rem;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.selected-style-info{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius);margin-top:1rem;padding:1rem}.style-info-header{margin-bottom:.5rem}.style-info-header h4{color:var(--color-amber-800);margin:0 0 .25rem;font-size:1.125rem}.style-impression{color:var(--color-gray-700);margin:.5rem 0;font-style:italic;line-height:1.4}.style-specs{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.style-specs .spec{border-radius:var(--border-radius-sm);color:var(--color-gray-700);border:1px solid var(--color-gray-200);background-color:#fff;padding:.25rem .5rem;font-size:.875rem;font-weight:500}.style-specs-with-ranges{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-top:1rem;padding:1rem}.style-specs-with-ranges .range-indicators{flex-direction:column;gap:.75rem;display:flex}.match-indicator.success{color:#166534;border-radius:var(--border-radius-sm);background-color:#f0fdf4;border:1px solid #bbf7d0;padding:.25rem .5rem;font-size:.875rem;font-weight:600}.match-indicator.warning{color:#92400e;border-radius:var(--border-radius-sm);background-color:#fffbeb;border:1px solid #fde68a;padding:.25rem .5rem;font-size:.875rem;font-weight:600}.match-indicator.danger{color:#991b1b;border-radius:var(--border-radius-sm);background-color:#fef2f2;border:1px solid #fecaca;padding:.25rem .5rem;font-size:.875rem;font-weight:600}.match-indicator.neutral{background-color:var(--color-gray-100);color:var(--color-gray-700);border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-300);padding:.25rem .5rem;font-size:.875rem;font-weight:600}.beer-style-selector .style-suggestions{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius);margin-top:1.5rem;padding:1rem}.beer-style-selector .style-suggestions h4{color:var(--color-blue-800);margin:0 0 .5rem;font-size:1rem;font-weight:600}.beer-style-selector .suggestions-list{flex-direction:column;gap:.75rem;display:flex}.beer-style-selector .suggestion-item{border:1px solid var(--color-blue-200);border-radius:var(--border-radius);transition:transform var(--transition-normal), box-shadow var(--transition-normal);background-color:#fff;padding:.75rem}.beer-style-selector .suggestion-item:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.beer-style-selector .suggestion-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.beer-style-selector .suggestion-actions{align-items:center;gap:.5rem;display:flex}.beer-style-selector .match-score{color:var(--color-amber-700);background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);padding:.25rem .5rem;font-size:.875rem;font-weight:600}.beer-style-selector .select-style-btn{background-color:var(--color-blue-600);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal);border:none;padding:.25rem .75rem;font-size:.875rem;font-weight:500}.beer-style-selector .select-style-btn:hover{background-color:var(--color-blue-700)}.beer-style-selector .match-breakdown{flex-wrap:wrap;gap:.25rem;display:flex}.beer-style-selector .spec-indicator{border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.025em;padding:.125rem .375rem;font-size:.625rem;font-weight:600}.beer-style-selector .spec-indicator.match{color:#166534;background-color:#dcfce7}.beer-style-selector .spec-indicator.no-match{color:#991b1b;background-color:#fee2e2}.style-analysis{border-radius:var(--border-radius);background-color:#fff;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.analysis-title{color:var(--color-amber-800);border-bottom:1px solid var(--color-amber-200);margin:0 0 1rem;padding-bottom:.5rem;font-size:1.25rem;font-weight:600}.current-style-analysis{margin-bottom:2rem}.current-style-analysis h4{color:var(--color-gray-800);margin:0 0 1rem}.style-not-found{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius);color:var(--color-blue-800);padding:1rem}.no-suggestions{text-align:center;color:var(--color-gray-600);padding:2rem 1rem}.no-suggestions .help-text{margin-top:.5rem;font-size:.875rem;font-style:italic}.style-analysis-container{border:1px solid var(--color-gray-200);border-radius:var(--border-radius);transition:all var(--transition-normal);background-color:#fff;overflow:hidden}.style-analysis-compact{cursor:pointer;transition:background-color var(--transition-normal);border-radius:var(--border-radius);padding:.75rem 1rem}.style-analysis-compact:focus{outline:2px solid var(--color-amber-600);outline-offset:2px}.compact-content{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.compact-style-name{color:var(--color-gray-800);flex-shrink:0;min-width:0;font-size:.875rem;font-weight:600}.compact-match-percentage{border-radius:var(--border-radius-sm);white-space:nowrap;flex-shrink:0;padding:.25rem .5rem;font-size:.875rem;font-weight:600}.compact-match-percentage.success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.compact-match-percentage.warning{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.compact-match-percentage.danger{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.compact-metrics{flex-wrap:wrap;flex:1;gap:.375rem;display:flex}.metric-indicator{border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.025em;transition:all var(--transition-normal);padding:.125rem .375rem;font-size:.75rem;font-weight:600}.metric-indicator.in-spec{color:#166534;background-color:#dcfce7;border:1px solid #bbf7d0}.metric-indicator.out-of-spec{color:#991b1b;background-color:#fee2e2;border:1px solid #fecaca}.expand-indicator{color:var(--color-gray-500);transition:transform var(--transition-normal);flex-shrink:0;margin-left:auto;font-size:.875rem}.style-analysis-expanded{background-color:#fff}.expanded-header{cursor:pointer;background-color:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);transition:background-color var(--transition-normal);justify-content:space-between;align-items:center;padding:1rem;display:flex}.expanded-header:focus{outline:2px solid var(--color-amber-600);outline-offset:2px}.expanded-header h4{color:var(--color-gray-800);margin:0;font-size:1rem;font-weight:600}.collapse-indicator{color:var(--color-gray-500);transition:transform var(--transition-normal);font-size:.875rem}.expanded-header:hover .collapse-indicator{color:var(--color-amber-600);transform:scale(1.1)}.style-match-result{padding:1rem}.detailed-style-analysis{background-color:var(--color-gray-50);border-radius:var(--border-radius);border:1px solid var(--color-gray-200);margin-top:1rem;padding:1rem}.detailed-style-analysis .range-indicators{flex-direction:column;gap:.75rem;display:flex}.style-analysis .style-suggestions{border-top:1px solid var(--color-gray-200);margin-top:1.5rem;padding-top:1.5rem}.style-analysis .style-suggestions h4{color:var(--color-gray-800);margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.style-analysis .suggestions-help{color:var(--color-gray-600);margin:0 0 1rem;font-size:.875rem;line-height:1.4}.style-analysis .suggestions-list{flex-direction:column;gap:.75rem;display:flex}.style-analysis .suggestion-item{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);transition:transform var(--transition-normal), box-shadow var(--transition-normal);padding:1rem}.style-analysis .suggestion-item:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.style-analysis .suggestion-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.style-analysis .suggestion-header .style-info{flex:1;align-items:center;gap:.5rem;display:flex}.style-analysis .select-style-btn{background-color:var(--color-amber-600);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal);border:none;margin-left:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500}.style-analysis .select-style-btn:hover{background-color:var(--color-amber-700)}.style-analysis .match-score{color:var(--color-amber-700);background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);white-space:nowrap;padding:.25rem .5rem;font-size:.875rem;font-weight:600}.style-analysis .suggestion-details{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.style-analysis .match-breakdown{flex-wrap:wrap;gap:.25rem;display:flex}.style-analysis .spec-indicator{border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.025em;padding:.125rem .375rem;font-size:.625rem;font-weight:600}.style-analysis .spec-indicator.match{color:#166534;background-color:#dcfce7}.style-analysis .spec-indicator.no-match{color:#991b1b;background-color:#fee2e2}@media (width<=768px){.style-specs{flex-direction:column;gap:.5rem}.style-specs-with-ranges .specs-header{flex-direction:column;align-items:flex-start;gap:.5rem}.detailed-style-analysis h5{font-size:.9rem}.compact-content{flex-direction:column;align-items:flex-start;gap:.5rem}.compact-style-name{font-size:.9rem}.compact-match-percentage{align-self:flex-start;font-size:.8rem}.compact-metrics{justify-content:flex-start;width:100%}.expand-indicator{align-self:flex-end;margin-top:.25rem;margin-left:0}.expanded-header{padding:.75rem}.expanded-header h4{font-size:.9rem}.style-match-result,.detailed-style-analysis{padding:.75rem}.style-analysis .suggestion-header,.style-analysis .suggestion-details,.beer-style-selector .suggestion-header{flex-direction:column;align-items:flex-start;gap:.5rem}.beer-style-selector .suggestion-actions{justify-content:space-between;width:100%}}@media (width<=480px){.style-analysis-compact{padding:.5rem .75rem}.compact-content{gap:.375rem}.compact-style-name{font-size:.85rem}.compact-match-percentage{padding:.1875rem .375rem;font-size:.75rem}.metric-indicator{padding:.1875rem .25rem;font-size:.65rem}.expand-indicator,.collapse-indicator{font-size:.8rem}.expanded-header,.style-match-result{padding:.5rem .75rem}.detailed-style-analysis{padding:.5rem}}.style-analysis-compact:focus-visible,.expanded-header:focus-visible{outline:2px solid var(--color-amber-600);outline-offset:2px;background-color:var(--color-amber-50)}@media (prefers-contrast:high){.style-analysis-compact{border:1px solid var(--color-gray-400)}.metric-indicator.in-spec{color:#060;background-color:#e6ffe6;border-color:#0c0}.metric-indicator.out-of-spec{color:maroon;background-color:#ffe6e6;border-color:#c00}.compact-match-percentage.success{color:#060;background-color:#e6ffe6;border-color:#0c0}.compact-match-percentage.warning{color:#c60;background-color:#fff2e6;border-color:#f90}.compact-match-percentage.danger{color:maroon;background-color:#ffe6e6;border-color:#c00}}@media (prefers-reduced-motion:reduce){.style-analysis-compact,.expanded-header,.metric-indicator,.expand-indicator,.collapse-indicator,.style-analysis-container,.suggestion-item,.select-style-btn,.clear-button{transition:none}.style-analysis-compact:hover .expand-indicator,.expanded-header:hover .collapse-indicator,.metric-indicator:hover,.suggestion-item:hover{transform:none}}.style-range-indicator{border:1px solid var(--color-gray-200);border-radius:var(--border-radius);transition:border-color var(--transition-normal);background-color:#fff;margin-bottom:1.5rem;padding:1rem}.style-range-indicator:hover{border-color:var(--color-gray-300)}.range-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.range-label{color:var(--color-gray-800);min-width:0;font-size:.875rem;font-weight:600}.range-values{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.current-value{white-space:nowrap;font-size:1rem;font-weight:700}.target-range{color:var(--color-gray-600);white-space:nowrap;font-size:.875rem;font-style:italic}.range-bar-container{margin-bottom:.75rem}.range-bar-track{border:1px solid var(--color-gray-300);border-radius:.75rem;height:1.5rem;margin-bottom:.5rem;position:relative;overflow:hidden}.range-bar-valid-section{background:linear-gradient(90deg,#10b9811a 0%,#10b98133 50%,#10b9811a 100%);position:absolute;inset:0}.range-bar-indicator{z-index:2;width:.75rem;height:.75rem;transition:all var(--transition-normal);background-color:#fff;border:2px solid;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 4px #0000001a}.range-bar-indicator:before{content:"";background-color:currentColor;border-radius:50%;width:.25rem;height:.25rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.out-of-bounds-arrow{color:#ef4444;white-space:nowrap;z-index:3;background-color:#fff;border:1px solid #ef4444;border-radius:.25rem;padding:.125rem .25rem;font-size:.875rem;font-weight:700;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 3px #0000001a}.out-of-bounds-arrow.left{right:1rem}.out-of-bounds-arrow.right{left:1rem}.range-labels{color:var(--color-gray-500);justify-content:space-between;align-items:center;padding:0 .375rem;font-size:.75rem;display:flex}.range-min,.range-max{background-color:var(--color-gray-50);border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);padding:.125rem .375rem;font-weight:500}.range-status{border-radius:var(--border-radius);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;display:flex}.range-status.in-range{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.range-status.out-of-range{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.status-icon{font-size:1rem;font-weight:700}.status-text{flex:1}.srm-color-comparison{border-top:1px solid var(--color-gray-200);margin-top:.75rem;padding-top:.75rem}.color-swatch-container{align-items:center;gap:.5rem;display:flex}.color-swatch{width:2rem;height:2rem;box-shadow:0 0 0 1px var(--color-gray-300), 0 2px 4px #0000001a;border:2px solid #fff;border-radius:50%;flex-shrink:0}.swatch-label{color:var(--color-gray-600);font-size:.75rem;font-weight:500}.range-indicators{flex-direction:column;gap:1rem;display:flex}.style-specs-with-ranges,.detailed-style-analysis{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-top:1rem;padding:1rem}.detailed-style-analysis h5{color:var(--color-gray-800);border-bottom:1px solid var(--color-gray-300);margin:0 0 1rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.style-specs-with-ranges .specs-header{border-bottom:1px solid var(--color-gray-300);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.style-specs-with-ranges .specs-title{color:var(--color-gray-800);font-size:1rem;font-weight:600}.style-range-indicator:hover .range-bar-indicator{transform:translateY(-50%)scale(1.1);box-shadow:0 4px 8px #00000026}.style-range-indicator:hover .range-status{background-color:var(--color-amber-50);border-color:var(--color-amber-200)}.style-range-indicator:hover .range-status.in-range{background-color:#ecfdf5;border-color:#a7f3d0}.style-range-indicator:hover .range-status.out-of-range{background-color:#fef7f7;border-color:#f8b4b4}.range-indicators.compact .style-range-indicator{margin-bottom:1rem;padding:.75rem}.range-indicators.compact .range-header{flex-direction:column;align-items:flex-start;gap:.25rem}.range-indicators.compact .range-values{justify-content:space-between;width:100%}.range-indicators.compact .range-bar-track{height:1.25rem}.range-indicators.compact .range-bar-indicator{width:.625rem;height:.625rem}.range-indicators.compact .range-status{padding:.375rem .5rem;font-size:.8rem}@media (width<=768px){.range-header{flex-direction:column;align-items:flex-start;gap:.25rem}.range-values{justify-content:space-between;width:100%}.target-range{font-size:.8rem}.range-status{text-align:left;flex-direction:column;align-items:flex-start;gap:.25rem}.out-of-bounds-arrow{align-self:center;margin-top:.25rem;position:static;transform:none}.style-specs-with-ranges .specs-header,.range-header{flex-direction:column;align-items:flex-start;gap:.5rem}}@media (width<=480px){.style-range-indicator{padding:.75rem}.range-label{font-size:.8rem}.current-value{font-size:.9rem}.target-range{font-size:.75rem}.range-bar-track{height:1.25rem}.range-bar-indicator{width:.625rem;height:.625rem}.range-status{padding:.375rem .5rem;font-size:.8rem}}@media (prefers-contrast:high){.style-range-indicator,.range-bar-track{border-width:2px}.range-bar-indicator{border-width:3px;box-shadow:0 0 0 2px #fff}.range-status{border-width:2px}.range-status.in-range{background-color:#e6ffe6}.range-status.out-of-range{background-color:#ffe6e6}}@media (prefers-reduced-motion:reduce){.range-bar-indicator,.style-range-indicator,.range-status{transition:none}.style-range-indicator:hover .range-bar-indicator{transform:translateY(-50%)}}@media print{.style-range-indicator{break-inside:avoid;background-color:#fff;border:1px solid #000;margin-bottom:1rem}.range-bar-track{background-color:#f0f0f0;border:1px solid #000}.range-bar-indicator{background-color:#000;border-color:#000}.range-status{background-color:#fff;border:1px solid #000}.color-swatch{border:1px solid #000}}@keyframes rangeIndicatorFadeIn{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.style-range-indicator{animation:.3s ease-out rangeIndicatorFadeIn}.range-bar-indicator:focus-visible{outline:2px solid var(--color-amber-600);outline-offset:2px}.style-range-indicator:hover:after{content:attr(data-tooltip);background-color:var(--color-gray-800);color:#fff;border-radius:var(--border-radius-sm);white-space:nowrap;z-index:1000;pointer-events:none;padding:.5rem;font-size:.75rem;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.range-bar-indicator[data-extreme=true]{background-color:#fbbf24;border-color:#f59e0b;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.ai-suggestions-container{background:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin:20px 0}.ai-suggestions-header{background:#fff;border-bottom:1px solid #ddd;border-radius:8px 8px 0 0;padding:15px}.ai-suggestions-title{color:#2d3748;margin:0;font-size:18px;font-weight:600}.ai-suggestions-toggle{cursor:pointer;color:#2d3748;white-space:nowrap;background:0 0;border:none;margin-top:12px;margin-bottom:12px;margin-left:75px;padding:0 0 0 12px;font-size:16px;font-weight:700}.ai-suggestions-toggle:hover{background-color:#f7fafc}.ai-suggestions-content{background:#f9f9f9;padding:15px}.header-controls{flex-wrap:wrap;align-items:center;gap:25px;margin-top:15px;display:flex}.style-display{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;display:flex}.style-label{color:#666;font-size:14px}.style-value{color:#333;font-size:14px;font-weight:700}.metric-label{text-transform:uppercase;color:#666;margin-bottom:5px;font-size:12px;font-weight:700}.metric-value{color:#666}.metric-value.improved{color:#28a745}.ai-suggestions-loading{text-align:center;color:#4a5568;padding:20px}.ai-suggestions-error{text-align:center;color:#e53e3e;background:#fed7d7;border-radius:6px;margin-bottom:15px;padding:20px}.ai-suggestions-success{text-align:center;color:#28a745;padding:20px}.ai-suggestions-success p{margin:5px 0}.optimization-results{background:#fff;border:2px solid #28a745;border-radius:8px;margin-bottom:20px;padding:20px}.optimization-title{color:#2f855a;margin:0 0 15px;font-size:18px;font-weight:600}.optimization-subtitle{color:#2d3748;margin-bottom:20px;font-size:14px}.optimization-subtitle strong{color:#28a745}.metrics-improvement{background:#f8f9fa;border-radius:6px;margin-bottom:15px;padding:15px}.metrics-improvement h4{color:#2d3748;margin-bottom:15px;font-size:16px}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.metric-item{text-align:center}.metric-label{color:#718096;text-transform:uppercase;margin-bottom:5px;font-size:12px;font-weight:600}.metric-value{color:#2d3748;font-size:16px;font-weight:600}.metric-improvement{color:#38a169}.metric-no-change{color:#718096}.changes-made{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:15px;padding:15px}.changes-made h5{color:#2d3748;margin:0 0 15px;font-size:16px}.change-item{background:#fff;border-left:3px solid #007bff;border-radius:4px;margin-bottom:8px;padding:8px}.change-item:last-child{margin-bottom:0}.change-item.grain{border-left-color:#d97706}.change-item.hop{border-left-color:#10b981}.change-item.yeast{border-left-color:#eab308}.change-item.other,.change-item.adjunct{border-left-color:#6b7280}.consolidated-changes{margin-top:8px}.consolidated-change-item{margin-bottom:4px;margin-left:16px}.consolidated-change-item span{font-size:14px}.change-description{color:#666;margin-top:4px;font-size:12px;font-style:italic}.style-info{background-color:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:15px;padding:12px}.recipe-metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px;margin:15px 0;display:grid}.recipe-metric{text-align:center;background-color:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;padding:12px}.recipe-metric-value{color:#666;font-size:16px;font-weight:600}.recipe-metric-value.improved{color:#28a745}.metric-checkmark{margin-left:5px;font-size:12px}.analysis-results{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:20px;padding:20px}.suggestions-list{background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:20px;padding:20px}.no-suggestions-message{color:#666;text-align:center;background:#f8f9fa;border-radius:6px;margin:15px 0;padding:20px;font-size:14px}.individual-suggestion{background:#fff;border:1px solid #ddd;border-radius:6px;margin-bottom:15px;padding:15px}.individual-suggestion:last-child{margin-bottom:0}.individual-suggestion-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.individual-suggestion h5{color:#2d3748;margin:0;font-size:16px;font-weight:600}.individual-suggestion-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.individual-suggestion p{color:#4a5568;margin:10px 0;line-height:1.5}.individual-suggestion-changes{background:#f8f9fa;border-radius:4px;margin:15px 0;padding:10px}.individual-suggestion-actions{gap:10px;margin-top:15px;display:flex}.optimization-actions{justify-content:center;gap:10px;margin-top:15px;display:flex}.btn-apply{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:600;transition:background-color .2s}.btn-apply:hover:not(:disabled){background:#218838}.btn-apply:disabled{cursor:not-allowed;background:#6c757d}.btn-secondary{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:600;transition:background-color .2s}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-analyze{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:background-color .2s}.btn-analyze:hover:not(:disabled){background:#0056b3}.btn-analyze:disabled{cursor:not-allowed;background:#6c757d}.suggestions-section h4{color:#2d3748;margin-bottom:15px;font-size:16px}.suggestion-item{background:#fff;border:1px solid #ddd;border-radius:6px;margin-bottom:15px;padding:15px}.suggestion-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.suggestion-title{color:#2d3748;margin:0;font-size:16px}.confidence-badge{border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700}.confidence-high{color:#28a745;background:#d4edda}.confidence-medium{color:#856404;background:#fff3cd}.confidence-low{color:#721c24;background:#f8d7da}.suggestion-description{color:#4a5568;margin:10px 0;line-height:1.5}.suggestion-changes{background:#f8f9fa;border-radius:4px;margin:15px 0;padding:10px}.suggestion-change-item{background:#fff;border-left:3px solid #007bff;border-radius:4px;margin-bottom:8px;padding:8px}.suggestion-change-item:last-child{margin-bottom:0}.suggestion-change-item.grain{border-left-color:#d97706}.suggestion-change-item.hop{border-left-color:#10b981}.suggestion-change-item.yeast{border-left-color:#eab308}.suggestion-change-item.other,.suggestion-change-item.adjunct{border-left-color:#6b7280}.suggestion-actions{gap:10px;margin-top:15px;display:flex}@media (width<=768px){.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.optimization-actions,.suggestion-actions{flex-direction:column}.suggestion-header{flex-direction:column;align-items:flex-start;gap:8px}.ai-suggestions-container{padding:15px}}@keyframes highlight{0%{background-color:var(--color-amber-100)}to{background-color:#0000}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes expandDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}@keyframes collapseUp{0%{opacity:1;max-height:1000px}to{opacity:0;max-height:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes ingredientUpdate{0%{background-color:#dbeafe;transform:scale(1.01)}50%{background-color:#bfdbfe}to{background-color:#f0f9ff;transform:scale(1)}}@keyframes ingredientUpdated{0%{background-color:#dcfce7;transform:scale(1.01)}to{background-color:#0000;transform:scale(1)}}.loading-spinner,.status-indicator .spinner,.loading-indicator .spinner,.button-spinner{animation:1s linear infinite spin}.unsaved-indicator{animation:2s infinite pulse}.highlight{animation:1.5s highlight}.style-specs-with-match,.current-vs-target,.style-suggestions{animation:.3s ease-out fadeIn}.style-analysis-expanded .style-match-result{animation:.3s ease-out expandDown}.ingredient-row{transition:background-color var(--transition-normal)}.ingredient-row.updating{background-color:#f0f9ff;animation:1s ingredientUpdate}.ingredient-row.updated{animation:.5s ingredientUpdated}.ingredient-row.error{background-color:var(--color-red-50);border:1px solid var(--color-red-200);animation:.5s shake}.match-item.processing{opacity:.7;pointer-events:none}.match-item.processing:after{content:"";border:2px solid #3b82f6;border-top-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.ingredient-card.updating{opacity:.8;transition:all .3s;transform:scale(.98)}.edit-cell-container.saving .edit-cell-input{opacity:.7;pointer-events:none}.edit-cell-container.saving:after{content:"";border:2px solid var(--color-amber-300);border-top:2px solid var(--color-amber-600);border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin;position:absolute;top:50%;right:.25rem;transform:translateY(-50%)}.recipe-card{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.recipe-card-button{transition:background-color var(--transition-normal), border-color var(--transition-normal), transform var(--transition-fast)}.ingredient-add-button{transition:background-color var(--transition-normal), transform var(--transition-fast)}.ingredient-add-button:active{transform:translateY(1px)}.ingredients-table tr{transition:background-color var(--transition-normal)}.ingredients-table tr:hover{background-color:var(--color-amber-100)}.style-option{transition:background-color var(--transition-normal)}.style-option:hover{background-color:var(--color-amber-50)}.suggestion-item{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.suggestion-item:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.metric-indicator{transition:all var(--transition-normal)}.metric-indicator:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.style-analysis-compact:hover .metric-indicator.in-spec{color:#15803d;background-color:#bbf7d0}.style-analysis-compact:hover .metric-indicator.out-of-spec{color:#dc2626;background-color:#fecaca}.expand-indicator,.collapse-indicator{transition:transform var(--transition-normal)}.style-analysis-compact:hover .expand-indicator,.expanded-header:hover .collapse-indicator{color:var(--color-amber-600);transform:scale(1.1)}.form-control,.input-control,.amount-input,.color-input,.alpha-input,.time-input,.adjunct-time-input{transition:border-color var(--transition-normal), box-shadow var(--transition-normal)}.editable-cell{transition:background-color var(--transition-normal)}.edit-cell-input{transition:border-color var(--transition-normal)}.clear-button{transition:color var(--transition-normal), background-color var(--transition-normal)}.clear-button:hover{color:var(--color-gray-600);background-color:var(--color-gray-100)}.balance-meter-progress{transition:width var(--transition-slow) ease}.style-analysis-container{transition:all var(--transition-normal);transition:height var(--transition-normal) ease-out}.style-analysis-container:hover{border-color:var(--color-gray-300);box-shadow:0 2px 4px #0000000d}.style-analysis-compact{transition:background-color var(--transition-normal)}.style-analysis-compact:hover{background-color:var(--color-gray-50)}.expanded-header{transition:background-color var(--transition-normal)}.expanded-header:hover{background-color:var(--color-gray-100)}.panel-close{transition:all .2s}.panel-close:hover{color:#374151;background:#e5e7eb}.error-dismiss{transition:background-color var(--transition-normal)}.error-dismiss:hover{background-color:var(--color-red-100)}.ingredients-table.updating{pointer-events:none;opacity:.9;position:relative}.ingredients-table.updating:before{content:"";z-index:10;border-radius:var(--border-radius);background-color:#fffc;position:absolute;inset:0}.ingredients-table.updating:after{content:"Updating...";z-index:11;border-radius:var(--border-radius);color:var(--color-amber-700);background-color:#fff;padding:1rem 2rem;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 6px #0000001a}.style-analysis-compact.loading{opacity:.7;pointer-events:none}.style-analysis-compact.loading:after{content:"";border:2px solid var(--color-gray-300);border-top:2px solid var(--color-amber-600);border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.status-indicator .spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin}.confidence-high{color:#10b981}.confidence-medium{color:#f59e0b}.confidence-low{color:#ef4444}.confidence-badge.high .confidence-dot{background-color:#10b981}.confidence-badge.medium .confidence-dot{background-color:#f59e0b}.confidence-badge.low .confidence-dot{background-color:#ef4444}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.loading-spinner,.status-indicator .spinner,.loading-indicator .spinner,.button-spinner{animation:none}.recipe-card:hover,.suggestion-item:hover,.metric-indicator:hover,.style-analysis-compact:hover .expand-indicator,.expanded-header:hover .collapse-indicator,.ingredient-add-button:active{transform:none}.style-specs-with-match,.current-vs-target,.style-suggestions,.style-analysis-expanded .style-match-result,.ingredient-row.updating,.ingredient-row.updated,.ingredient-row.error,.highlight{animation:none}.ingredient-row,.ingredients-table tr,.style-option,.suggestion-item,.metric-indicator,.style-analysis-compact,.expanded-header,.clear-button,.panel-close,.error-dismiss,.balance-meter-progress,.style-analysis-container,.form-control,.input-control,.amount-input,.color-input,.alpha-input,.time-input,.adjunct-time-input,.editable-cell,.edit-cell-input,.expand-indicator,.collapse-indicator{transition:none}}@media print{*,:before,:after{transition:none!important;animation:none!important}.loading-spinner,.status-indicator .spinner,.loading-indicator .spinner,.button-spinner{display:none}.recipe-card:hover,.suggestion-item:hover,.metric-indicator:hover{box-shadow:none;transform:none}.metric-indicator.in-spec{background-color:#f0f0f0;border:1px solid #000}.metric-indicator.out-of-spec{background-color:#e0e0e0;border:1px solid #000}}@media (prefers-contrast:high){.loading-spinner,.status-indicator .spinner,.loading-indicator .spinner{border-width:3px}.recipe-card:focus,.suggestion-item:focus,.style-analysis-compact:focus,.expanded-header:focus{outline:3px solid var(--color-amber-600);outline-offset:3px}}@media (hover:none) and (pointer:coarse){.recipe-card:hover,.suggestion-item:hover,.metric-indicator:hover,.style-analysis-compact:hover .expand-indicator,.expanded-header:hover .collapse-indicator{background-color:inherit;color:inherit;transform:none}.clear-button,.panel-close,.error-dismiss{min-width:44px;min-height:44px}.recipe-card,.suggestion-item,.metric-indicator{transition:none}}.view-recipe-container{max-width:1400px;margin:0 auto;padding:1.5rem}.view-recipe-content{flex-direction:column;gap:1.5rem;margin-top:1rem;display:flex}.view-recipe-top-section{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.view-recipe-details,.view-recipe-brew-sessions{flex-direction:column;gap:1rem;display:flex}.view-recipe-ingredients-section{width:100%}.compact-recipe-notes{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.recipe-section{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.detail-item{flex-direction:column;display:flex}.detail-label{color:#6b7280;margin-bottom:.25rem;font-size:.875rem}.detail-value{color:#1f2937;font-size:1.125rem;font-weight:500}.recipe-description,.recipe-notes{color:#4b5563;font-size:1rem;line-height:1.6}.ingredient-group{margin-bottom:1.5rem}.ingredient-type-title{color:#b45309;text-transform:capitalize;margin-bottom:.75rem;font-size:1.125rem;font-weight:600}.ingredient-name{font-weight:500}.recipe-view-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0;display:flex}.recipe-action-button{cursor:pointer;text-align:center;white-space:nowrap;border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,border-color .2s,transform .1s;display:flex}.recipe-action-button:active{transform:translateY(1px)}.recipe-action-button:disabled{opacity:.6;cursor:not-allowed}.recipe-action-button.edit-button{color:#fff;background-color:#d97706}.recipe-action-button.edit-button:hover:not(:disabled){background-color:#b45309}.recipe-action-button.clone-button{color:#fff;background-color:#fbbf24}.recipe-action-button.clone-button:hover:not(:disabled){background-color:#f59e0b}.recipe-action-button.delete-button{color:#ef4444;background-color:#fff;border-color:#ef4444}.recipe-action-button.delete-button:hover:not(:disabled){color:#dc2626;background-color:#fef2f2}.recipe-action-button.brew-button{color:#fff;background-color:#10b981;margin-left:auto}.recipe-action-button.brew-button:hover:not(:disabled){background-color:#059669}@media (width<=640px){.recipe-view-actions{gap:.5rem}.recipe-action-button{padding:.4rem .8rem;font-size:.75rem}.recipe-action-button.brew-button{margin-left:0}}@media (width<=1024px){.view-recipe-top-section{grid-template-columns:1fr;gap:1rem}.view-recipe-container{padding:1rem}}@media (width<=768px){.view-recipe-container{padding:.75rem}.view-recipe-content{gap:1rem}.view-recipe-top-section{gap:.75rem}}.section-title-container{align-items:center;gap:1rem;display:flex}.brewing-summary{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.summary-stat{color:#374151;background-color:#f3f4f6;border-radius:12px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.summary-stat.active{color:#8b5cf6;background-color:#8b5cf61a}.summary-stat.completed{color:#059669;background-color:#0596691a}.summary-stat.rating{color:#f59e0b;background-color:#fbbf241a}.summary-stat.success{color:#10b981;background-color:#10b9811a}.brewing-stats-overview{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.stats-title{color:#374151;margin:0 0 .75rem;font-size:1rem;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem;display:grid}.stat-item{text-align:center;flex-direction:column;align-items:center;padding:.5rem;display:flex}.stat-label{color:#6b7280;margin-bottom:.25rem;font-size:.675rem;font-weight:500}.stat-value{color:#374151;font-size:.875rem;font-weight:600}.session-status-badge{text-transform:capitalize;border-radius:12px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.brew-sessions-list{flex-direction:column;gap:.75rem;display:flex}.brew-session-item{background-color:#fafafa;border:1px solid #e5e7eb;border-radius:.5rem;justify-content:space-between;align-items:flex-start;padding:1rem;display:flex}.session-info{flex-grow:1;min-width:0}.session-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.session-name{color:#1f2937;margin:0;font-size:1rem;font-weight:600}.session-details{flex-direction:column;gap:.25rem;display:flex}.session-date,.session-duration{color:#6b7280;font-size:.75rem}.session-metrics{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.metric{color:#4b5563;background-color:#f3f4f6;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem}.session-rating{align-items:center;gap:.25rem;margin-top:.5rem;display:flex}.star{color:#d1d5db;font-size:.875rem}.star.filled{color:#fbbf24}.session-actions{flex-shrink:0;margin-left:1rem}.empty-state{text-align:center;color:#6b7280;padding:2rem 1rem}.empty-state p{margin-bottom:1rem}.new-session-action{text-align:center;border-top:1px solid #f3f4f6;margin-top:1rem;padding:1rem 0}.compact-recipe-header-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1rem;padding:1.5rem;position:relative;box-shadow:0 1px 3px #0000001a}.compact-recipe-header-main{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.compact-recipe-header-info{flex-grow:1;min-width:0}.compact-recipe-header-title{color:var(--color-amber-800);word-wrap:break-word;margin:0 0 .25rem;font-size:1.5rem;font-weight:700;line-height:1.3}.compact-recipe-header-style{color:var(--color-amber-700);margin:0 0 .5rem;font-size:1rem;font-style:italic}.compact-recipe-header-version-info{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.recipe-version-parent,.recipe-current-version,.recipe-derived-versions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.version-label{color:#6b7280;font-size:.75rem;font-weight:500}.version-badge{color:#b45309;background-color:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.parent-recipe-link,.derived-recipe-link{color:var(--color-amber-600);font-size:.75rem;font-weight:500;text-decoration:none}.parent-recipe-link:hover,.derived-recipe-link:hover{color:var(--color-amber-700);text-decoration:underline}.derived-recipes{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.more-versions{color:#6b7280;font-size:.675rem;font-style:italic}.compact-recipe-header-swatch{border:2px solid #fff;border-radius:50%;flex-shrink:0;width:3rem;height:3rem;margin-left:1rem;box-shadow:0 0 0 1px #e5e7eb}.compact-recipe-header-metrics{border-top:1px solid #f3f4f6;grid-template-columns:repeat(5,1fr);gap:.75rem;padding:1rem 0 0;display:grid}.compact-recipe-header-metric{text-align:center}.compact-recipe-header-metric-value{color:var(--color-amber-800);margin-bottom:.25rem;font-size:1.125rem;font-weight:700;line-height:1.2}.compact-recipe-header-metric-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.compact-recipe-header-container .recipe-card-actions{border-top:1px solid #f3f4f6;margin-top:1rem;padding-top:1rem}.compact-recipe-header-delete-button{cursor:pointer;text-align:center;color:#ef4444;white-space:nowrap;background-color:#fff;border:1px solid #ef4444;border-radius:.375rem;padding:.4rem .8rem;font-size:.75rem;font-weight:500;transition:background-color .2s,border-color .2s,transform .1s;position:absolute;bottom:1rem;right:1rem}.compact-recipe-header-delete-button:hover:not(:disabled){color:#dc2626;background-color:#fef2f2;transform:translateY(-1px)}.compact-recipe-header-delete-button:active{transform:translateY(0)}.compact-recipe-header-delete-button:disabled{opacity:.6;cursor:not-allowed}.ingredients-compact-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.ingredients-compact-grid{flex-direction:column;gap:1.5rem;display:flex}.ingredient-type-section:last-child{margin-bottom:0}.ingredient-type-title{color:var(--color-amber-700);text-transform:capitalize;border-bottom:1px solid #f3f4f6;margin-bottom:.75rem;padding-bottom:.5rem;font-size:1rem;font-weight:600}.ingredient-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.ingredient-card{background-color:#fafafa;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;transition:box-shadow .2s}.ingredient-card:hover{box-shadow:0 2px 4px #0000000d}.ingredient-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.ingredient-card-name{flex-grow:1;min-width:0}.ingredient-card-name strong{color:#1f2937;margin-bottom:.25rem;font-size:1rem;display:block}.ingredient-subtype,.ingredient-origin,.ingredient-manufacturer{color:#6b7280;margin-top:.25rem;font-size:.75rem;display:block}.ingredient-card-amount{color:var(--color-amber-800);text-align:right;margin-left:1rem;font-size:1rem;font-weight:600}.ingredient-card-details{flex-direction:column;gap:.5rem;display:flex}.ingredient-card-info{flex-wrap:wrap;gap:1rem;display:flex}.ingredient-detail{color:#4b5563;font-size:.875rem}.ingredient-card-spec{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.spec-label{color:#6b7280;font-size:.75rem;font-weight:500}.spec-value{color:#1f2937;font-size:.875rem;font-weight:600}.ingredient-card-yeast{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.yeast-attenuation{align-items:center;gap:.5rem;display:flex}.enhanced-indicator{margin-left:.25rem;font-size:.75rem}.compact-recipe-info-panel{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.compact-recipe-info-title{color:var(--color-amber-800);border-bottom:1px solid #f3f4f6;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.125rem;font-weight:600}.compact-recipe-info-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.compact-recipe-info-item{flex-direction:column;display:flex}.compact-recipe-info-label{color:#6b7280;margin-bottom:.25rem;font-size:.75rem;font-weight:500}.compact-recipe-info-value{color:#1f2937;font-size:1rem;font-weight:600}.compact-recipe-description{color:#4b5563;border-top:1px solid #f3f4f6;margin-top:1rem;padding-top:1rem;font-size:.875rem;line-height:1.6}@media (width<=768px){.compact-recipe-header-metrics{grid-template-columns:repeat(3,1fr);gap:.5rem}.compact-recipe-header-container .recipe-card-actions{flex-wrap:wrap;gap:.25rem}.compact-recipe-header-container .recipe-card-button{padding:.4rem .7rem;font-size:.75rem}.compact-recipe-header-delete-button{padding:.3rem .6rem;font-size:.675rem;bottom:.75rem;right:.75rem}.ingredient-cards{grid-template-columns:1fr}.compact-recipe-info-grid{grid-template-columns:repeat(2,1fr)}.ingredient-card-header{flex-direction:column;align-items:flex-start}.ingredient-card-amount{text-align:left;margin-top:.5rem;margin-left:0}}@media (width<=480px){.compact-recipe-header-metrics{grid-template-columns:1fr;gap:.5rem}.compact-recipe-info-grid{grid-template-columns:1fr}.ingredient-card-info{flex-direction:column;gap:.25rem}.compact-recipe-header-container .recipe-card-button{padding:.3rem .6rem;font-size:.675rem}.compact-recipe-header-delete-button{padding:.25rem .5rem;font-size:.625rem;bottom:.5rem;right:.5rem}}.public-recipes-container{max-width:1600px;margin:0 auto;padding:2rem 1rem}.public-recipes-header{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}@media (width>=768px){.public-recipes-header{flex-direction:row;align-items:center}}.public-recipes-title{color:#1f2937;font-size:1.5rem;font-weight:700}.search-and-sort-container{margin-bottom:1.5rem}.search-container{margin-bottom:1rem}.search-input-container{width:100%;max-width:400px;position:relative}.search-input{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);width:100%;transition:border-color var(--transition-normal), box-shadow var(--transition-normal);height:40px;padding:.5rem 2.5rem;font-size:1rem}.search-input:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.search-icon-container{pointer-events:none;align-items:center;padding-left:.75rem;display:flex;position:absolute;top:0;bottom:0;left:0}.search-icon{color:#9ca3af;flex-shrink:0;width:20px;height:20px}.search-clear-container{align-items:center;padding-right:.75rem;display:flex;position:absolute;top:0;bottom:0;right:0}.search-clear-button{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.search-clear-icon{color:#9ca3af;width:20px;height:20px;transition:color var(--transition-normal);flex-shrink:0}.search-clear-icon:hover{color:#6b7280}.search-results-count{color:#6b7280;margin-top:1rem;font-size:.875rem}.sort-container,.style-filter-container{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.sort-label{color:var(--color-gray-700);white-space:nowrap;font-size:.875rem;font-weight:500}.sort-select{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);color:var(--color-gray-700);cursor:pointer;transition:border-color var(--transition-normal), box-shadow var(--transition-normal);background-color:#fff;min-width:200px;padding:.5rem 1rem;font-size:.875rem}.sort-select:focus{border-color:var(--color-amber-600);outline:none;box-shadow:0 0 0 3px #d977061a}.sort-select:hover{border-color:var(--color-gray-400)}@media (width>=768px){.search-and-sort-container{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.search-container{flex:1;min-width:300px;margin-bottom:0}.sort-container,.style-filter-container{flex-shrink:0;margin-bottom:0}.search-results-count{flex-basis:100%;margin-top:.75rem}}.loading-state{text-align:center;padding:2.5rem 1rem}.error-state{color:#dc2626;border-radius:var(--border-radius-sm);background-color:#fef2f2;border:1px solid #fecaca;margin-top:1rem;padding:1rem 1.5rem}.empty-state,.no-search-results{text-align:center;padding:2.5rem 1rem}.no-search-results p{color:#6b7280;margin-bottom:.5rem}.clear-search-link{color:var(--color-amber-600);cursor:pointer;font-size:inherit;background:0 0;border:none;margin-top:.5rem;padding:0;text-decoration:underline}.clear-search-link:hover{color:var(--color-amber-700)}.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-top:1rem;display:grid}@media (width<=768px){.recipes-grid{grid-template-columns:1fr;gap:1rem}}.public-recipe-card-wrapper{position:relative}.public-recipe-actions{border-top:1px solid #f3f4f6;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;display:flex}.public-recipe-author{color:#6b7280;font-size:.875rem;font-style:italic}.clone-recipe-button{background-color:var(--color-green-500);border:1px solid var(--color-green-500);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal);text-align:center;padding:.5rem 1rem;font-size:.75rem;font-weight:500}.clone-recipe-button:hover{background-color:#059669;border-color:#059669}.pagination-container{justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding-top:1rem;display:flex}.pagination-button{border:1px solid var(--color-gray-300);color:var(--color-gray-700);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal);background-color:#f9fafb;padding:.5rem 1rem;font-size:.875rem}.pagination-button:hover:not(:disabled){border-color:var(--color-gray-400);background-color:#f3f4f6}.pagination-info{color:var(--color-gray-700);padding:.5rem 1rem;font-size:.875rem}.compact-recipe-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;box-shadow:0 1px 3px #0000001a}.compact-recipe-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.compact-recipe-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.compact-recipe-info{flex-grow:1;min-width:0}.compact-recipe-name{color:var(--color-amber-800);word-wrap:break-word;margin:0 0 .25rem;font-size:1.125rem;font-weight:600;line-height:1.3}.compact-recipe-style{color:var(--color-amber-700);margin:0;font-size:.875rem;font-style:italic}.compact-color-swatch{border:2px solid #fff;border-radius:50%;flex-shrink:0;width:3rem;height:3rem;margin-left:1rem;box-shadow:0 0 0 1px #e5e7eb}.compact-recipe-metrics{border-top:1px solid #f3f4f6;border-bottom:1px solid #f3f4f6;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem;padding:1rem 0;display:grid}.compact-metric{text-align:center}.compact-metric-value{color:var(--color-amber-800);margin-bottom:.25rem;font-size:1rem;font-weight:700;line-height:1.2}.compact-metric-label{color:#6b7280;text-transform:uppercase;letter-spacing:.025em;font-size:.65rem;font-weight:500}.compact-card-actions{gap:.5rem;display:flex}.compact-action-button{border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color var(--transition-normal);text-align:center;border:none;flex:1;padding:.5rem .75rem;font-size:.75rem;font-weight:500}.compact-action-button.view{background-color:var(--color-amber-500);color:#fff}.compact-action-button.view:hover{background-color:var(--color-amber-600)}.compact-action-button.edit{background-color:var(--color-blue-600);color:#fff}.compact-action-button.edit:hover{background-color:var(--color-blue-700)}.compact-action-button.brew{background-color:var(--color-green-500);color:#fff}.compact-action-button.brew:hover{background-color:#059669}.unit-toggle-section{background-color:#fffbeb;border:1px solid #fcd34d;border-radius:.5rem;margin-bottom:2rem;padding:1.5rem}.unit-toggle-container{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.unit-toggle-button{cursor:pointer;background-color:#fff;border:2px solid #e5e7eb;border-radius:.5rem;align-items:center;padding:1rem;transition:all .2s;display:flex}.unit-toggle-button:hover:not(:disabled){background-color:#fefce8;border-color:#d97706}.unit-toggle-button.active{background-color:#fffbeb;border-color:#d97706;box-shadow:0 0 0 3px #d977061a}.unit-toggle-button:disabled{opacity:.6;cursor:not-allowed}.unit-toggle-icon{margin-right:1rem;font-size:2rem}.unit-toggle-content{flex-direction:column;display:flex}.unit-toggle-title{color:#1f2937;margin-bottom:.25rem;font-size:1.125rem;font-weight:600}.unit-toggle-description{color:#6b7280;font-size:.875rem}.subsection-title{color:#374151;margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.section-description{color:#6b7280;margin-bottom:1rem;font-size:.875rem;line-height:1.5}.success-banner,.error-banner{border-radius:.5rem;margin-bottom:1rem;padding:1rem}.success-banner{background-color:#d1fae5;border:1px solid #10b981}.error-banner{background-color:#fee2e2;border:1px solid #ef4444}.success-content,.error-content{justify-content:space-between;align-items:center;display:flex}.success-icon,.error-icon{margin-right:.5rem}.success-message{color:#065f46;font-weight:500}.error-message{color:#dc2626;font-weight:500}.success-dismiss,.error-dismiss{cursor:pointer;color:inherit;background:0 0;border:none;margin-left:1rem;padding:0;font-size:1.25rem}.form-help-text{color:#6b7280;margin-top:.25rem;font-size:.75rem;font-style:italic}.form-help{color:#6b7280;margin-top:.5rem;font-size:.75rem;line-height:1.4}.radio-group{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.radio-option{cursor:pointer;border:1px solid #e5e7eb;border-radius:.5rem;align-items:flex-start;gap:.75rem;padding:.75rem;transition:border-color .2s,background-color .2s;display:flex}.radio-option:hover{background-color:#f9fafb;border-color:#d1d5db}.radio-option input[type=radio]{accent-color:#d97706;cursor:pointer;flex-shrink:0;width:1rem;height:1rem;margin:.125rem 0 0}.radio-option input[type=radio]:checked+.radio-label{color:#111827}.radio-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.radio-option.disabled{cursor:not-allowed;opacity:.5;background-color:#f9fafb}.radio-label{color:#374151;cursor:pointer;font-size:.875rem;line-height:1.4}.radio-label strong{margin-bottom:.25rem;font-weight:600;display:block}@media (width<=640px){.unit-toggle-container{grid-template-columns:1fr}.unit-toggle-button{text-align:center;justify-content:center}.unit-toggle-icon{margin-right:.5rem}}.settings-container{max-width:1200px;margin:0 auto;padding:2rem}.settings-header{text-align:center;margin-bottom:2rem}.settings-title{color:#1f2937;margin-bottom:.5rem;font-size:2rem;font-weight:700}.settings-subtitle{color:#6b7280;font-size:1.125rem}.settings-layout{grid-template-columns:250px 1fr;gap:2rem;display:grid}.settings-tabs{flex-direction:column;gap:.5rem;display:flex}.settings-tab{cursor:pointer;text-align:left;background-color:#0000;border:none;border-radius:.5rem;align-items:center;padding:.75rem 1rem;transition:background-color .2s;display:flex}.settings-tab:hover{background-color:#f3f4f6}.settings-tab.active{color:#d97706;background-color:#fffbeb}.tab-icon{margin-right:.75rem;font-size:1.25rem}.tab-label{font-weight:500}.settings-content{background-color:#fff;border-radius:.5rem;padding:2rem;box-shadow:0 1px 3px #0000001a}.settings-section{margin-bottom:2rem}.section-title{color:#1f2937;border-bottom:1px solid #e5e7eb;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:600}.settings-form{flex-direction:column;gap:1rem;display:flex}.form-label{color:#374151;margin-bottom:.5rem;font-weight:500}.form-control{border:1px solid #d1d5db;border-radius:.375rem;padding:.75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.btn{cursor:pointer;border:none;border-radius:.375rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn:disabled{opacity:.6;cursor:not-allowed}.checkbox-group{flex-direction:column;gap:1rem;display:flex}.checkbox-label{cursor:pointer;align-items:flex-start;gap:.75rem;display:flex}.checkbox-content{flex-direction:column;display:flex}.checkbox-title{color:#374151;margin-bottom:.25rem;font-weight:500}.checkbox-description{color:#6b7280;font-size:.875rem;line-height:1.4}.account-info{background-color:#f9fafb;border-radius:.5rem;margin-top:2rem;padding:1.5rem}.info-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.info-item{flex-direction:column;display:flex}.info-label{color:#6b7280;margin-bottom:.25rem;font-size:.875rem}.info-value{color:#1f2937;font-weight:500}.status-badge{color:#fff;background-color:#10b981;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-block}.privacy-section,.security-section{margin-bottom:2rem}.danger-zone{background-color:#fef2f2;border:1px solid #ef4444;border-radius:.5rem;padding:1.5rem}.danger-warning{margin-bottom:1rem}.danger-warning p{color:#dc2626;margin:0}.loading-message{color:#6b7280;justify-content:center;align-items:center;min-height:200px;font-size:1.125rem;display:flex}@media (width<=768px){.settings-container{padding:1rem}.settings-layout{grid-template-columns:1fr;gap:1rem}.settings-tabs{flex-direction:row;padding-bottom:.5rem;overflow-x:auto}.settings-tab{white-space:nowrap;min-width:fit-content}.info-grid{grid-template-columns:1fr}}.modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal-content{text-align:center;background:#fff;border-radius:.5rem;width:90%;max-width:400px;padding:2rem;box-shadow:0 10px 25px #0000004d}.modal-content h3{color:#dc2626;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.modal-content p{color:#374151;margin:0 0 1.5rem;line-height:1.5}.modal-actions{justify-content:center;gap:.75rem;display:flex}.modal-actions .btn{flex:1;max-width:150px}.ingredient-manager-container{background-color:#0000;flex-direction:column;width:100%;min-height:100vh;margin:0;padding:2rem 1rem;display:flex}.ingredient-manager-header{text-align:center;margin-bottom:2rem}.page-title{color:#1f2937;margin:0 0 .5rem;font-size:2.5rem;font-weight:700}.page-subtitle{color:#6b7280;margin:0;font-size:1rem}.ingredient-manager-layout{flex:1;grid-template-columns:1fr 1fr;gap:2rem;display:grid}.card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.ingredient-manager-layout .card{margin-bottom:0}.ingredient-form-card{height:fit-content}.ingredients-list-card{flex-direction:column;height:fit-content;display:flex}.card-title{color:#1f2937;border-bottom:1px solid #e5e7eb;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.5rem;font-weight:600}.ingredient-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;display:flex}.form-label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input,.form-select,.form-textarea{box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;width:100%;padding:.75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.form-textarea{resize:vertical;min-height:80px}.type-specific-fields{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem}.grain-fields{background-color:#fffbeb;border-color:#fcd34d #fcd34d #fcd34d #d97706;border-left-style:solid;border-left-width:4px}.hop-fields{background-color:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #10b981;border-left-style:solid;border-left-width:4px}.yeast-fields{background-color:#fefce8;border-color:#fde047 #fde047 #fde047 #eab308;border-left-style:solid;border-left-width:4px}.section-title{color:#374151;margin:0 0 1rem;font-size:1.125rem;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-grid .full-width{grid-column:span 2}.btn{cursor:pointer;text-align:center;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{color:#fff;background-color:#d97706}.btn-primary:hover:not(:disabled){background-color:#b45309}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:#374151;background-color:#fff;border:1px solid #d1d5db}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.form-actions{justify-content:flex-end;gap:1rem;margin-top:1.5rem;display:flex}.alert{border-radius:.5rem;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;font-weight:500;display:flex}.alert-error{color:#dc2626;background-color:#fee2e2;border:1px solid #fecaca}.alert-error:before{content:"⚠️";flex-shrink:0}.alert-success{color:#059669;background-color:#dcfce7;border:1px solid #bbf7d0}.alert-success:before{content:"✅";flex-shrink:0}.card-header{flex-grow:0;flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.search-container{flex-grow:0;flex-shrink:0;height:auto;max-height:150px;margin-bottom:1rem;position:relative}.search-input-enhanced{width:100%}.search-input-enhanced .searchable-select-input{box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;width:100%;padding:.75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.search-input-enhanced .searchable-select-input:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.search-clear-btn{margin-top:.5rem;padding:.5rem 1rem;font-size:.875rem}.search-input-enhanced .searchable-select-dropdown{background-color:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 .375rem .375rem;max-height:300px;box-shadow:0 4px 6px #0000001a}.search-input-enhanced .searchable-select-option{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:.75rem;transition:background-color .15s}.search-input-enhanced .searchable-select-option:hover,.search-input-enhanced .searchable-select-option.highlighted{background-color:#fef3c7}.search-input-enhanced .searchable-select-option .option-name{color:#1f2937;margin-bottom:.25rem;font-weight:500}.search-input-enhanced .searchable-select-option .option-description{color:#6b7280;font-size:.875rem;line-height:1.3}.search-input-enhanced .searchable-select-option .option-manufacturer{color:#9ca3af;margin-top:.25rem;font-size:.75rem;font-style:italic}.search-input-enhanced .search-highlight{color:#92400e;background-color:#fbbf24;border-radius:.25rem;padding:.125rem .25rem;font-weight:600}.ingredients-list{flex:1;min-height:400px;max-height:80vh;overflow:hidden auto}.empty-state{text-align:center;color:#6b7280;padding:3rem 1rem;font-style:italic}.ingredient-items{flex-direction:column;gap:1rem;display:flex}.ingredient-item{background:#fff;border:1px solid #e5e7eb;border-left:4px solid #d97706;border-radius:.75rem;padding:1.25rem;transition:transform .2s,box-shadow .2s,background-color .3s}.ingredient-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.ingredient-item.highlighted{background-color:#fefce8;border-color:#eab308;animation:2s ease-in-out highlightPulse;box-shadow:0 0 0 3px #eab3084d}@keyframes highlightPulse{0%,to{background-color:#fefce8;transform:scale(1)}50%{background-color:#fef08a;transform:scale(1.02)}}.ingredient-content{flex-direction:column;gap:.75rem;display:flex}.ingredient-header{flex-direction:column;gap:.5rem;display:flex}.ingredient-name{color:#1f2937;margin:0;font-size:1.125rem;font-weight:600}.ingredient-badges{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.type-badge{color:#fff;text-transform:capitalize;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.type-badge.grain{background-color:#d97706}.type-badge.hop{background-color:#10b981}.type-badge.yeast{background-color:#eab308}.type-badge.other{background-color:#6b7280}.grain-type-badge{color:#374151;text-transform:capitalize;background-color:#f3f4f6;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.ingredient-description{color:#6b7280;margin:0;font-size:.875rem;line-height:1.4}.ingredient-details{color:#6b7280;flex-wrap:wrap;gap:1rem;font-size:.8125rem;display:flex}.ingredient-details span{background:#f9fafb;border-radius:.25rem;padding:.25rem .5rem;font-weight:500}@media (width<=768px){.ingredient-manager-container{padding:1rem .5rem}.ingredient-manager-layout{grid-template-columns:1fr;gap:1.5rem}.ingredient-manager-header{margin-bottom:1.5rem}.page-title{font-size:1.75rem}.form-grid{grid-template-columns:1fr}.form-grid .full-width{grid-column:span 1}.form-actions{flex-direction:column}.btn{width:100%}.ingredient-badges{flex-direction:column;align-items:flex-start}.ingredient-header{align-items:flex-start}.search-container{margin-bottom:1rem}.search-clear-btn{width:100%;margin-top:.75rem}}@media (width<=640px){.ingredient-manager-container{padding:1rem .5rem}.card{border-radius:.5rem;padding:1rem}.ingredient-item{padding:1rem}.ingredient-details{flex-direction:column;gap:.5rem}.search-input-enhanced .searchable-select-dropdown{max-height:200px}.search-input-enhanced .searchable-select-option{padding:.5rem}}.form-input.error,.form-select.error,.form-textarea.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-input.success,.form-select.success,.form-textarea.success{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.validation-message{align-items:center;gap:.25rem;margin-top:.25rem;font-size:.875rem;display:flex}.validation-message.error{color:#dc2626}.validation-message.success{color:#059669}.validation-message.error:before{content:"⚠";font-size:.75rem}.validation-message.success:before{content:"✓";font-size:.75rem}.btn:focus-visible,.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible,.search-input-enhanced .searchable-select-input:focus-visible{outline-offset:2px;outline:2px solid #d97706}.search-input-enhanced .searchable-select-option:focus-visible{outline-offset:-2px;outline:2px solid #d97706}@media (prefers-contrast:high){.ingredient-item{border-width:2px}.type-badge{border:1px solid}.search-highlight{background-color:#fbbf24;border:1px solid #92400e}}@media (prefers-reduced-motion:reduce){.ingredient-item,.btn,.form-input,.form-select,.form-textarea,.search-input-enhanced .searchable-select-input,.search-input-enhanced .searchable-select-option,.ingredient-type-header.clickable,.expand-icon{transition:none}.button-spinner{animation:none}.ingredient-item:hover{transform:none}.ingredient-item.highlighted,.ingredient-type-items{animation:none}}.ingredients-list::-webkit-scrollbar{width:6px}.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar{width:6px}.ingredients-list::-webkit-scrollbar-track{background:#f3f4f6}.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-track{background:#f3f4f6}.ingredients-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.ingredients-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.search-input-enhanced .searchable-select-no-results{text-align:center;color:#6b7280;background-color:#f9fafb;padding:1rem;font-style:italic}.search-input-enhanced .searchable-select-loading{text-align:center;color:#d97706;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.search-input-enhanced .searchable-select-loading:before{content:"";border:2px solid #d97706;border-top-color:#0000;border-radius:50%;width:1rem;height:1rem;animation:1s linear infinite spin}.search-help{color:#6b7280;margin-top:.5rem;font-size:.75rem;font-style:italic}.search-input-enhanced .searchable-select-input-container:focus-within{border-radius:.375rem;box-shadow:0 0 0 3px #d977061a}.search-input-enhanced .searchable-select-dropdown{z-index:50;width:100%;margin-top:1px;position:absolute}.search-input-enhanced .searchable-select-option:last-child{border-bottom:none}.search-input-enhanced .searchable-select-option .type-badge{margin-left:.5rem;padding:.125rem .5rem;font-size:.625rem}.search-input-enhanced .search-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone}.search-input-enhanced .searchable-select-option .status-indicator{color:#374151;background-color:#f3f4f6;border-radius:.25rem;margin-left:auto;padding:.125rem .375rem;font-size:.75rem}@media (width<=640px){.search-input-enhanced .searchable-select-dropdown{border-radius:.75rem;width:auto;max-height:50vh;position:fixed;inset:auto 1rem 1rem;box-shadow:0 10px 25px #0003}.search-input-enhanced .searchable-select-option{padding:1rem;font-size:1rem}.search-input-enhanced .searchable-select-option .option-name{font-size:1rem}.search-input-enhanced .searchable-select-option .option-description{margin-top:.25rem;font-size:.875rem}}.search-input-enhanced .searchable-select-option{contain:layout style}.search-input-enhanced .searchable-select-dropdown{will-change:scroll-position}.search-input-enhanced .searchable-select-option[aria-selected=true]{color:#fff;background-color:#f59e0b}.search-input-enhanced .searchable-select-option[aria-selected=true] .option-description,.search-input-enhanced .searchable-select-option[aria-selected=true] .option-manufacturer{color:#ffffffe6}.search-clear-btn:hover{background-color:#e5e7eb;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.search-clear-btn:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.ingredient-count{color:#6b7280;font-size:.875rem}.search-term{color:#d97706;font-weight:500}.search-input-wrapper{position:relative}.search-input{padding-right:40px}.search-clear-button{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:18px;transition:color .2s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.search-clear-button:hover{color:#374151;background-color:#f3f4f6}.ingredient-type-section{margin-bottom:2rem}.ingredient-type-header{border-bottom:2px solid;margin-bottom:1rem;padding-bottom:.5rem}.ingredient-type-header.clickable{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:.375rem;margin:-.5rem -.5rem 1rem;padding:.5rem;transition:background-color .2s}.ingredient-type-header.clickable:hover{background-color:#0000000d}.ingredient-type-header.clickable:focus{box-shadow:none!important;outline:none!important}.ingredient-type-header.clickable:focus-visible{outline-offset:2px;box-shadow:none;outline:2px solid #d97706}.ingredient-type-header.clickable:active{box-shadow:none;background-color:#0000001a;border:none;transform:none}.ingredient-type-header.clickable *{-webkit-user-select:none;user-select:none}.ingredient-type-title{-webkit-user-select:none;user-select:none;align-items:center;gap:.625rem;margin:0;font-size:1.2rem;font-weight:600;display:flex}.expand-icon{-webkit-user-select:none;user-select:none;margin-right:.5rem;font-size:.875rem;transition:transform .2s}.ingredient-type-count{color:#6b7280;font-size:.875rem;font-weight:400}.ingredient-type-items{flex-direction:column;gap:.625rem;animation:.3s ease-in-out fadeIn;display:flex}.search-score-badge{color:#92400e;background-color:#fef3c7;border-radius:.75rem;padding:.125rem .5rem;font-size:.625rem;font-weight:500}.button-spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:1rem;height:1rem;margin-right:.5rem;animation:1s linear infinite spin;display:inline-block}.search-highlight{color:#92400e;background-color:#fbbf24;border-radius:.25rem;padding:.125rem .25rem;font-weight:600}.header{color:#fff;background-color:#92400e;padding:1.5rem 2rem}.header-container{align-items:center;width:100%;display:flex}.nav-group{align-items:center;gap:1rem;display:flex}.nav-group-left{flex:none;justify-content:flex-start}.nav-group-center{flex:1;justify-content:center;margin:0 2rem}.nav-group-right{flex:none;justify-content:flex-end;margin-left:auto}.logo{color:#fff;align-items:center;margin-right:2rem;text-decoration:none;display:flex}.logo-title{color:#fef3c7;margin:0;font-size:1.25rem;font-weight:700}.logo img{height:32px;margin-right:8px}.nav-link{color:#fff;border-radius:.25rem;padding:.25rem .5rem;text-decoration:none;transition:background-color .2s}.nav-link:hover{color:#fde68a;background-color:#ffffff1a}button.nav-link{cursor:pointer;background:0 0;border:none;font-size:1rem}.user-greeting{color:#fde68a;margin-right:1rem;padding:.25rem .5rem;font-size:.9rem}.footer{background-color:var(--color-amber-800);color:#fff;border-top:3px solid var(--color-amber-600);margin-top:auto}.footer-container{max-width:1200px;margin:0 auto;padding:2rem 1rem 1rem}.footer-content{grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:2rem;display:grid}.footer-column{flex-direction:column;display:flex}.footer-column-title{color:var(--color-amber-100);border-bottom:2px solid var(--color-amber-600);margin-bottom:1rem;padding-bottom:.5rem;font-size:1.125rem;font-weight:700}.footer-links{margin:0;padding:0;list-style:none}.footer-links li{margin-bottom:.75rem}.footer-link{color:#fffc;align-items:center;gap:.25rem;font-size:.875rem;text-decoration:none;transition:color .2s;display:inline-flex}.footer-link:hover{color:var(--color-amber-200);text-decoration:underline}.external-link{position:relative}.external-icon{opacity:.6;margin-left:.25rem;font-size:.75rem}.footer-version{color:var(--color-amber-300);background-color:#ffffff1a;border-radius:.375rem;margin-top:.5rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.footer-bottom{border-top:1px solid var(--color-amber-600);text-align:center;padding-top:1rem}.footer-copyright{color:#ffffffb3;margin:0;font-size:.875rem;line-height:1.5}@media (width<=768px){.footer-content{grid-template-columns:1fr;gap:1.5rem;margin-bottom:1.5rem}.footer-container{padding:1.5rem 1rem 1rem}.footer-column-title{margin-bottom:.75rem;font-size:1rem}.footer-links li{margin-bottom:.5rem}}@media (width<=480px){.footer-container{padding:1rem .75rem .75rem}.footer-content{gap:1rem;margin-bottom:1rem}.footer-link,.footer-copyright{font-size:.8rem}}@media (prefers-color-scheme:dark){.footer{border-top-color:var(--color-amber-500);background-color:#1f2937}.footer-column-title{color:var(--color-amber-200);border-bottom-color:var(--color-amber-500)}.footer-bottom{border-top-color:var(--color-amber-500)}}.email-verification-banner{background:linear-gradient(135deg,#fef3c7 0%,#fcd34d 100%);border:1px solid #f59e0b;border-radius:8px;margin:16px 0;padding:0;animation:.3s ease-out slideDown;box-shadow:0 2px 4px #f59e0b1a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.verification-banner-content{align-items:center;gap:16px;padding:16px 20px;display:flex}.verification-icon{flex-shrink:0;font-size:24px}.verification-text{flex:1;min-width:0}.verification-text h4{color:#92400e;margin:0 0 4px;font-size:16px;font-weight:600}.verification-text p{color:#78350f;margin:0;font-size:14px;line-height:1.4}.verification-actions{flex-shrink:0}.resend-button{color:#fff;cursor:pointer;background:#f59e0b;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-width:120px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.resend-button:hover:not(:disabled){background:#d97706;transform:translateY(-1px);box-shadow:0 2px 4px #d977064d}.resend-button:active{transform:translateY(0)}.resend-button:disabled{color:#6b7280;cursor:not-allowed;box-shadow:none;background:#d1d5db;transform:none}.spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:1s linear infinite spin}.verification-message{border-top:1px solid #f59e0b33;margin:0;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s ease-out fadeIn}.verification-message.success{color:#16a34a;background:#22c55e1a;border-top-color:#22c55e33}.verification-message.error{color:#dc2626;background:#ef44441a;border-top-color:#ef444433}@media (width<=640px){.verification-banner-content{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.verification-icon{align-self:center}.verification-text{text-align:center}.verification-actions{align-self:center}.resend-button{min-width:140px}}@media (prefers-color-scheme:dark){.email-verification-banner{background:linear-gradient(135deg,#451a03 0%,#78350f 100%);border-color:#92400e}.verification-text h4{color:#fbbf24}.verification-text p{color:#fcd34d}.resend-button{background:#92400e}.resend-button:hover:not(:disabled){background:#78350f}}.brew-sessions-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.brew-sessions-filter{margin-bottom:1.5rem}.filter-label{text-align:left;color:#4b5563;margin-bottom:.5rem;font-weight:600;display:block}.filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;width:100%;max-width:300px;padding:.5rem .75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.filter-select:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.brew-sessions-empty{text-align:center;color:#6b7280;background-color:#f9fafb;border-radius:.5rem;padding:3rem 1rem}.brew-sessions-empty a{color:#d97706;margin-top:1rem;text-decoration:none;display:inline-block}.brew-sessions-empty a:hover{color:#b45309;text-decoration:underline}.brew-sessions-table{border-collapse:collapse;background-color:#fff;border-radius:.5rem;width:100%;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.brew-sessions-table th{color:#4b5563;text-align:left;text-transform:uppercase;letter-spacing:.05em;background-color:#f9fafb;border-bottom:2px solid #e5e7eb;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.brew-sessions-table td{vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;font-size:.875rem}.brew-sessions-table tr:hover{background-color:#f9fafb}.brew-sessions-table tr:last-child td{border-bottom:none}.session-name-cell a{color:#d97706;font-weight:600;text-decoration:none}.session-name-cell a:hover{color:#b45309;text-decoration:underline}.session-date-cell{color:#6b7280;white-space:nowrap}.session-metrics-cell{white-space:nowrap;font-family:monospace}.session-actions-cell{text-align:right;white-space:nowrap}.session-action-link{color:#d97706;margin-left:1rem;font-weight:500;text-decoration:none}.session-action-link:hover{color:#b45309;text-decoration:underline}.brew-sessions-pagination{background-color:#fff;border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem;font-size:.875rem;display:flex}.pagination-info{color:#6b7280}.pagination-controls{align-items:center;display:flex}.pagination-button{color:#4b5563;cursor:pointer;background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;justify-content:center;align-items:center;width:2rem;height:2rem;margin:0 .125rem;transition:all .2s;display:inline-flex}.pagination-button:hover:not(:disabled){background-color:#f3f4f6}.pagination-button:disabled{opacity:.5;cursor:default}.pagination-button.active{color:#d97706;background-color:#fffbeb;border-color:#f59e0b;font-weight:600}.pagination-button.prev,.pagination-button.next{font-size:1rem}@media (width<=767px){.brew-sessions-table th:nth-child(4),.brew-sessions-table td:nth-child(4){display:none}.session-actions-cell{text-align:right}.session-action-link{margin-left:.5rem}}.brew-session-form{background-color:#fff;border-radius:.5rem;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.recipe-preview{background-color:#fffbeb;border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.recipe-preview h2{color:#92400e;margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.recipe-preview-metrics{grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.75rem;display:grid}.recipe-preview-metric{font-size:.875rem}.brew-session-form-group{margin-bottom:1rem}.brew-session-form-label{color:#4b5563;margin-bottom:.5rem;font-weight:600;display:block}.brew-session-form-control{border:1px solid #d1d5db;border-radius:.25rem;width:100%;padding:.5rem .75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.brew-session-form-control:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.brew-session-form-textarea{resize:vertical;min-height:100px}.brew-session-form-actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.brew-session-form-button{cursor:pointer;text-align:center;border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,border-color .2s}.brew-session-cancel-button{color:#4b5563;background-color:#e5e7eb;border:1px solid #e5e7eb}.brew-session-cancel-button:hover{background-color:#d1d5db}.brew-session-submit-button{color:#fff;background-color:#d97706;border:1px solid #d97706}.brew-session-submit-button:hover{background-color:#b45309;border-color:#b45309}.brew-session-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=768px){.brew-session-grid{grid-template-columns:1fr 1fr}}.brew-session-header{margin-bottom:1.5rem}.brew-session-title{color:#333;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.brew-session-controls{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.brew-session-status-container{align-items:center;display:flex}.brew-session-status-label{color:#4b5563;margin-right:.5rem;font-weight:600}.brew-session-update-status{align-items:center;display:flex}.brew-session-update-label{color:#6b7280;margin-right:.5rem}.brew-session-tab-container{margin-bottom:1.5rem}.brew-session-tabs{border-bottom:1px solid #e5e7eb;display:flex}.brew-session-tab{color:#6b7280;cursor:pointer;border-bottom:2px solid #0000;padding:.75rem 1rem;font-weight:500;transition:color .2s,border-color .2s}.brew-session-tab:hover{color:#4b5563}.brew-session-tab.active{color:#d97706;border-bottom-color:#d97706}.brew-session-content{background-color:#fff;border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.brew-session-section{margin-bottom:2rem}.brew-session-section:last-child{margin-bottom:0}.brew-session-section-title{color:#92400e;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.brew-session-recipe{background-color:#fffbeb;border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.brew-session-recipe-header{justify-content:space-between;align-items:flex-start;display:flex}.brew-session-recipe-name{color:#92400e;font-weight:600}.brew-session-recipe-style{color:#b45309;font-size:.875rem}.brew-session-recipe-link{color:#d97706;font-size:.875rem;text-decoration:none}.brew-session-recipe-link:hover{color:#b45309;text-decoration:underline}.brew-session-timeline{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.brew-session-timeline-item{flex-direction:column;display:flex}.brew-session-timeline-label{color:#6b7280;margin-bottom:.25rem;font-size:.875rem}.brew-session-timeline-date{font-weight:500}.brew-session-metrics{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}@media (width>=768px){.brew-session-metrics{grid-template-columns:repeat(4,1fr)}}.brew-session-metric{text-align:center;background-color:#f9fafb;border-radius:.5rem;padding:.75rem}.brew-session-metric-label{color:#6b7280;margin-bottom:.25rem;font-size:.75rem}.brew-session-metric-value{color:#92400e;font-size:1.25rem;font-weight:600}.brew-session-metric-est{color:#6b7280;margin-top:.25rem;font-size:.75rem}.brew-session-notes{white-space:pre-line;background-color:#f9fafb;border-radius:.5rem;padding:1rem;line-height:1.5}.brew-session-actions{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.brew-session-action-button{cursor:pointer;text-align:center;border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s,border-color .2s}.brew-session-edit-button{color:#fff;background-color:#d97706;border:1px solid #d97706}.brew-session-edit-button:hover{background-color:#b45309;border-color:#b45309}.brew-session-delete-button{color:#ef4444;background-color:#fff;border:1px solid #ef4444}.brew-session-delete-button:hover{color:#dc2626;background-color:#fef2f2}.brewing-data{margin-top:1rem}.brewing-data-item{margin-bottom:.5rem;display:flex}.brewing-data-label{color:#6b7280;width:150px;font-weight:500}.brewing-data-value{font-weight:500}.fermentation-tracker{margin-bottom:2rem}.fermentation-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.fermentation-header-controls{align-items:center;gap:.5rem;display:flex}.section-title-with-info{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.interpolation-indicator{color:#92400e;cursor:help;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:.25rem;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;display:flex}.indicator-icon{font-size:.875rem}.indicator-text{font-weight:500}.interpolation-indicator:hover{background-color:#fde68a}.fermentation-title{color:#92400e;font-size:1.25rem;font-weight:600}.fermentation-form{background-color:#f9fafb;border-radius:.5rem;margin-bottom:1.5rem;padding:1.25rem}.fermentation-form-title{color:#4b5563;margin-bottom:1rem;font-size:1.125rem;font-weight:500}.fermentation-form-grid{grid-template-columns:1fr;gap:1rem;margin-bottom:1rem;display:grid}@media (width>=768px){.fermentation-form-grid{grid-template-columns:1fr 1fr 1fr}}.fermentation-input-group{flex-direction:column;display:flex}.fermentation-input-label{color:#4b5563;margin-bottom:.25rem;font-size:.875rem;font-weight:500}.fermentation-input{border:1px solid #d1d5db;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.fermentation-input:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.fermentation-textarea{resize:vertical;border:1px solid #d1d5db;border-radius:.25rem;min-height:80px;padding:.5rem .75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.fermentation-textarea:focus{border-color:#d97706;outline:none;box-shadow:0 0 0 3px #d977061a}.fermentation-form-actions{justify-content:flex-end;display:flex}.fermentation-submit-button{color:#fff;cursor:pointer;background-color:#d97706;border:1px solid #d97706;border-radius:.25rem;padding:.5rem 1rem;font-weight:500;transition:background-color .2s,border-color .2s}.fermentation-submit-button:hover:not(:disabled){background-color:#b45309;border-color:#b45309}.fermentation-submit-button:disabled{opacity:.65;cursor:not-allowed}.fermentation-stats{grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem;display:grid}@media (width>=768px){.fermentation-stats{grid-template-columns:1fr 1fr 1fr}}.fermentation-stat-card{background-color:#f9fafb;border-radius:.5rem;padding:1rem}.fermentation-stat-title{color:#4b5563;margin-bottom:.75rem;font-size:1rem;font-weight:600}.fermentation-stat-row{justify-content:space-between;margin-bottom:.5rem;display:flex}.fermentation-stat-label{color:#6b7280}.fermentation-stat-value{font-weight:500}.fermentation-chart{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;height:400px;margin-bottom:1.5rem;padding:1rem}.fermentation-comparison{background-color:#f9fafb;border-radius:.5rem;margin-bottom:1.5rem;padding:1.25rem}.fermentation-comparison-title{color:#4b5563;margin-bottom:1rem;font-size:1.125rem;font-weight:500}.fermentation-comparison-row{border-bottom:1px solid #e5e7eb;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem;display:flex}.fermentation-comparison-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.fermentation-comparison-col{text-align:center;flex:1}.fermentation-comparison-label{color:#6b7280;margin-bottom:.25rem;font-size:.75rem}.fermentation-comparison-value{font-weight:500}.fermentation-table{border-collapse:collapse;width:100%;margin-bottom:1.5rem}.fermentation-table th{color:#4b5563;text-align:left;text-transform:uppercase;letter-spacing:.05em;background-color:#f9fafb;border-bottom:2px solid #e5e7eb;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.fermentation-table td{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem}.fermentation-table tr:hover{background-color:#f9fafb}.fermentation-table tr:last-child td{border-bottom:none}.fermentation-delete-button{color:#ef4444;cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem}.fermentation-delete-button:hover{color:#dc2626;text-decoration:underline}.fermentation-table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=767px){.fermentation-table th:nth-child(4),.fermentation-table td:nth-child(4){display:none}}.status-badge{text-transform:capitalize;border-radius:9999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-planned{color:#1e40af;background-color:#dbeafe}.status-in-progress{color:#92400e;background-color:#fef3c7}.status-fermenting{color:#4338ca;background-color:#e0e7ff}.status-conditioning{color:#065f46;background-color:#d1fae5}.status-completed{color:#fff;background-color:#10b981}.status-archived{color:#4b5563;background-color:#f3f4f6}.status-button{cursor:pointer;text-transform:capitalize;border:none;border-radius:9999px;margin-bottom:.5rem;margin-right:.5rem;padding:.375rem .75rem;font-size:.75rem;font-weight:600;transition:opacity .2s}.status-button:hover:not(:disabled){opacity:.9}.rating-stars{display:flex}.rating-star{color:#d1d5db;width:1.5rem;height:1.5rem}.rating-star.filled{color:#fbbf24}.fermentation-timeline{padding-left:2rem;position:relative}.fermentation-timeline:before{content:"";background-color:#e5e7eb;width:2px;position:absolute;top:0;bottom:0;left:.75rem}.timeline-item{align-items:flex-start;padding-bottom:1.5rem;display:flex;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-marker{z-index:1;border:2px solid #fff;border-radius:50%;width:12px;height:12px;margin-top:.25rem;position:absolute;left:-2rem}.timeline-content{flex:1;margin-left:1rem}.timeline-date{color:#6b7280;margin-bottom:.25rem;font-size:.875rem}.timeline-label{color:#1f2937;margin-bottom:.25rem;font-weight:600}.timeline-details{color:#4b5563;font-size:.875rem;font-style:italic}.status-badge{text-transform:uppercase;border-radius:9999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.status-badge.active{color:#166534;background-color:#dcfce7}.status-badge.removed{color:#92400e;background-color:#fef3c7}.fermentation-timeline-horizontal{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;margin-top:1rem;padding:1rem}.timeline-track{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;display:flex;position:relative}.timeline-event{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:140px;display:flex}.timeline-event-marker{z-index:2;border:3px solid #fff;border-radius:50%;width:16px;height:16px;margin-bottom:.5rem;position:relative;box-shadow:0 2px 4px #0000001a}.timeline-event-content{flex-direction:column;align-items:center;gap:.25rem;display:flex}.timeline-event-date{color:#6b7280;white-space:nowrap;background-color:#fff;border:1px solid #e5e7eb;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.timeline-event-label{color:#1f2937;word-wrap:break-word;max-width:120px;font-size:.875rem;font-weight:600;line-height:1.25}.timeline-event-details{color:#4b5563;margin-top:.25rem;font-size:.75rem;font-style:italic}.timeline-track:before{content:"";z-index:1;background:linear-gradient(90deg,#0000 0%,#d1d5db 10% 90%,#0000 100%);height:2px;position:absolute;top:8px;left:8px;right:8px}@media (width<=768px){.timeline-track{flex-direction:column;align-items:center;gap:1rem}.timeline-track:before{display:none}.timeline-event{width:100%;min-width:auto;max-width:200px}}
