body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.auth-wrapper{align-items:center;background-color:initial;display:flex;height:calc(100vh - 140px);justify-content:center;margin:0 auto;max-width:1200px;padding:.5rem 0}.auth-split-layout{border-radius:1rem;box-shadow:0 8px 25px #00000026;display:flex;height:100%;margin:0 1rem;max-height:700px;min-height:500px;overflow:hidden;width:100%}.auth-welcome-section{background:linear-gradient(135deg,#92400e,#d97706);color:#fff;display:flex;flex:1 1;flex-direction:column;justify-content:center;overflow:hidden;padding:1.75rem;position:relative}.auth-welcome-section:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' patternUnits='userSpaceOnUse' width='4' height='4'%3E%3Ccircle cx='2' cy='2' r='1' fill='rgba(255,255,255,0.1)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E") repeat;bottom:0;content:"";left:0;opacity:.3;position:absolute;right:0;top:0}.auth-welcome-content{position:relative;z-index:1}.auth-welcome-title{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:.75rem}.auth-welcome-subtitle{font-size:1.05rem;margin-bottom:1.25rem;opacity:.9}.auth-features-list{list-style:none;margin:0;padding:0}.auth-feature-item{align-items:center;display:flex;font-size:1rem;margin-bottom:.6rem;opacity:.9}.auth-feature-icon{font-size:1.25rem;margin-right:.75rem;text-align:center;width:24px}.auth-form-section{background-color:#fff;display:flex;flex:1 1;flex-direction:column;justify-content:center;max-width:480px;padding:1.5rem 1.75rem}.auth-container{background-color:initial;border:none;border-radius:0;box-shadow:none;margin:0;min-height:fit-content;padding:0;width:100%}.auth-title{color:#92400e;font-size:1.5rem;font-weight:700;margin-bottom:.5rem;text-align:center}.auth-subtitle{color:#6b7280;font-size:.9rem;margin-bottom:1.25rem;margin-top:0;text-align:center}.auth-form{gap:1rem}.auth-form,.auth-form-group{display:flex;flex-direction:column}.auth-form-group:last-of-type,.auth-label{margin-bottom:.5rem}.auth-label{color:#374151;display:block;font-size:.875rem;font-weight:500}.auth-input{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;color:#758191;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.auth-input:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.auth-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.auth-input::placeholder{color:#9ca3af}.auth-submit-button{background-color:#d97706;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:.5rem;padding:.75rem 1rem;transition:background-color .2s,transform .1s;width:100%}.auth-submit-button:hover:not(:disabled){background-color:#b45309}.auth-submit-button:active{transform:translateY(1px)}.auth-submit-button:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6}.auth-submit-button.loading{color:#0000;position:relative}.auth-submit-button.loading:after{animation:auth-spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#fff;content:"";height:1.25rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:1.25rem}@keyframes auth-spin{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.auth-error{align-items:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.auth-error:before{content:"⚠️";flex-shrink:0}.auth-success{align-items:center;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;color:#059669;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.auth-success:before{content:"✅";flex-shrink:0}.auth-nav{border-top:1px solid #e5e7eb;margin-top:1rem;padding-top:1rem;text-align:center}.auth-nav-text{color:#6b7280;font-size:.8rem;margin-bottom:.25rem}.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;font-size:.75rem;font-weight:600;margin-bottom:.5rem}.auth-requirements-list{color:#b45309;font-size:.75rem;list-style:none;margin:0;padding:0}.auth-requirements-list li{align-items:center;display:flex;gap:.25rem;margin-bottom:.25rem}.auth-requirements-list li:last-child{margin-bottom:0}.auth-requirements-list li:before{color:#fbbf24;content:"•";font-weight:700}.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{align-items:center;color:#dc2626;display:flex;font-size:.75rem;gap:.25rem;margin-top:.25rem}.auth-field-error:before{content:"⚠";font-size:.75rem}.auth-field-success{align-items:center;color:#059669;display:flex;font-size:.75rem;gap:.25rem;margin-top:.25rem}.auth-field-success:before{content:"✓";font-size:.75rem}@media (max-width:768px){.auth-wrapper{height:calc(100vh - 140px);padding:.5rem 0}.auth-split-layout{flex-direction:column;margin:0 .5rem;max-height:none}.auth-welcome-section{min-height:180px;padding:1.5rem 1.25rem}.auth-welcome-title{font-size:1.5rem}.auth-welcome-subtitle{font-size:.95rem;margin-bottom:1rem}.auth-feature-item{font-size:.85rem;margin-bottom:.5rem}.auth-form-section{padding:1.5rem 1.25rem}.auth-title{font-size:1.5rem}.auth-form{gap:1rem}}@media (max-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:initial;margin:0;min-height:100vh;padding:2rem 1rem;width:100%}.dashboard-header{margin-bottom:2rem}.dashboard-title{color:#1f2937;font-size:2rem;font-weight:700;margin:0 0 .5rem}.dashboard-subtitle{color:#6b7280;font-size:1rem;margin:0}.dashboard-loading{align-items:center;color:#6b7280;display:flex;font-size:18px;height:400px;justify-content:center}.dashboard-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;margin:1rem 0;padding:1rem}.dashboard-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.stat-value{color:#d97706;font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-value.ferments{color:#8b5cf6}.stat-value.completed{color:#059669}.stat-value.rating{color:#dc2626}.dashboard-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}@media (max-width:768px){.dashboard-content{grid-template-columns:1fr}}.dashboard-section{display:flex;flex-direction:column}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-title{margin:0}.primary-button{background-color:#d97706;border:none;border-radius:.5rem;padding:.5rem 1rem;transition:background-color .2s}.primary-button:hover{background-color:#b45309}.cards-container{display:flex;flex-direction:column;flex-grow:1;gap:1rem}.recipe-card{border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.recipe-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.recipe-info{flex-grow:1}.recipe-name{color:#92400e;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.recipe-style{color:#b45309;font-size:.875rem;margin:0}.color-swatch{box-shadow:0 0 0 1px #e5e7eb;height:3rem;width:3rem}.recipe-metrics{grid-gap:.5rem;gap:.5rem;grid-template-columns:1fr 1fr 1fr 1fr 1fr;margin-bottom:1rem;width:100%}.metric{min-width:0;overflow:hidden;text-align:center}.metric-value{color:#92400e;font-size:.875rem;margin-bottom:.25rem}.metric-label{color:#6b7280;font-size:.6rem}.session-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.session-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.session-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.session-name{font-size:1.125rem;margin:0 0 .25rem}.session-date{color:#6b7280;font-size:.875rem;margin:0}.status-badge{white-space:nowrap}.session-metrics{grid-gap:.75rem;display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:1rem}.session-metrics .metric-value{color:#1f2937;font-size:.875rem}.session-rating{gap:.5rem;justify-content:center;margin-bottom:1rem}.rating-label{color:#6b7280;font-size:.875rem}.stars{display:flex}.star{color:#e5e7eb;font-size:1rem}.card-actions{display:flex;gap:.5rem}.action-button{border:none;border-radius:.375rem;cursor:pointer;flex:1 1;font-size:.75rem;font-weight:500;padding:.5rem;transition:background-color .2s}.action-button.view{background-color:#f59e0b;color:#fff}.action-button.view:hover{background-color:#d97706}.action-button.edit{background-color:#6b7280;color:#fff}.action-button.edit:hover{background-color:#4b5563}.action-button.brew{background-color:#10b981;color:#fff}.action-button.brew:hover{background-color:#059669}.empty-state{padding:2rem}.section-footer{margin-top:1rem;text-align:center}.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{display:flex;gap:.5rem}.dashboard-container .recipe-card-actions .recipe-card-button:not(.brew-button){flex:1 1}.dashboard-container .recipe-card-actions .recipe-card-button.brew-button{flex:3 1}@media (max-width:640px){.dashboard-container{padding:1rem .5rem}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.section-header{align-items:flex-start;flex-direction:column;gap:.5rem}.recipe-metrics{gap:.4rem;grid-template-columns:1fr 1fr 1fr 1fr 1fr}.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{margin:0 auto;max-width:1600px;padding:2rem 1rem}.all-recipes-header{align-items:flex-start;display:flex;flex-direction:column;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}@media (min-width:768px){.all-recipes-header{align-items:center;flex-direction:row}}.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);border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:inline-block;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);text-align:center;text-decoration:none;transition:background-color var(--transition-normal),border-color var(--transition-normal)}.primary-button:hover{background-color:var(--color-amber-700);border-color:var(--color-amber-700)}.sort-container{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}@media (min-width:768px){.search-and-sort-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2rem}.search-container{flex:1 1;margin-bottom:0;min-width:300px}.sort-container{flex-shrink:0;margin-bottom:0}.search-results-count{flex-basis:100%;margin-top:.75rem}}.compact-recipe-card{display:flex;flex-direction:column;min-height:150px}.compact-recipe-metrics.dashboard-variant{grid-template-columns:repeat(5,1fr)}.compact-metric-SRM{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-top:7px}.compact-action-button.view{background-color:var(--color-amber-600)}.compact-action-button.view:hover{background-color:var(--color-amber-700)}.compact-action-button.edit{background-color:var(--color-slate-600)}.compact-action-button.edit:hover{background-color:var(--color-slate-700)}.compact-action-button.brew{background-color:var(--color-green-600)}.compact-action-button.brew:hover{background-color:var(--color-green-700)}.compact-recipes-empty{color:#6b7280;padding:3rem 1rem;text-align:center}.compact-recipes-empty h3{color:#374151;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.compact-recipes-empty p{font-size:1rem;margin-bottom:1.5rem}.compact-session-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;min-height:175px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.compact-session-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.compact-session-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.compact-session-info{flex-grow:1;min-width:0}.compact-session-name{word-wrap:break-word;color:var(--color-amber-800);font-size:1.125rem;font-weight:600;line-height:1.3;margin:0 0 .25rem}.compact-session-meta{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.compact-session-status-badge{border:1px solid;border-radius:9999px;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize;white-space:nowrap}.compact-session-status-badge.planned{background-color:rgba(59,130,246,.125);color:#3b82f6}.compact-session-status-badge.in-progress{background-color:rgba(245,158,11,.125);color:#f59e0b}.compact-session-status-badge.fermenting{background-color:rgba(139,92,246,.125);color:#8b5cf6}.compact-session-status-badge.conditioning{background-color:rgba(16,185,129,.125);color:#10b981}.compact-session-status-badge.completed{background-color:rgba(5,150,105,.125);color:#059669}.compact-session-status-badge.archived,.compact-session-status-badge.unknown{background-color:hsla(220,9%,46%,.125);color:#6b7280}.compact-session-metrics{grid-gap:.75rem;border-top:1px solid #f3f4f6;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr);margin-bottom:1rem;padding:1rem 0}.compact-session-metric{text-align:center}.compact-session-metric-value{color:var(--color-amber-800);font-size:1rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.compact-session-metric-label{color:#6b7280;font-size:.65rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.compact-session-rating{align-items:center;background-color:#fafbfc;border-radius:.5rem;display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:.75rem}.compact-session-rating-label{color:#6b7280;font-size:.875rem;font-weight:500}.compact-session-stars{display:flex;gap:.125rem}.compact-session-star{color:#e5e7eb;font-size:1rem}.compact-session-star.filled{color:#fbbf24}.compact-session-actions{border-top:1px solid #f3f4f6;display:flex;gap:.5rem;margin-top:auto;padding-top:1rem}.compact-session-action-button{border:none;border-radius:.375rem;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.5rem;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 (max-width:768px){.compact-session-metrics{gap:.5rem}.compact-session-action-button{font-size:.75rem;padding:.4rem}}.ingredient-matching-review{margin:0 auto;max-width:900px;padding:1.5rem}.review-header{margin-bottom:2rem}.review-title h2{color:#374151;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.review-title p{color:#6b7280;line-height:1.5;margin:0}.progress-info{margin-top:1rem}.progress-text{margin-bottom:.5rem}.matching-summary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:2rem;margin-bottom:2rem;padding:1rem}.summary-stat{text-align:center}.stat-value{display:block;font-size:1.5rem}.stat-label{font-size:.875rem}.review-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.imported-ingredient h3,.matching-options h3{color:#374151;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.ingredient-card{background:#fff;border-radius:8px}.ingredient-card.imported{background:#f8faff;border-color:#3b82f6}.ingredient-header{align-items:center;gap:.75rem;margin-bottom:1rem}.type-badge{border-radius:4px}.type-badge.grain{background:#fef3c7;color:#92400e}.type-badge.hop{background:#d1fae5;color:#065f46}.type-badge.yeast{background:#e0e7ff;color:#3730a3}.type-badge.other{background:#f3f4f6;color:#374151}.ingredient-header h4{color:#374151;font-size:1.125rem;font-weight:600;margin:0}.ingredient-details{flex-direction:column;gap:.5rem}.detail-item{justify-content:space-between}.detail-item .label{color:#6b7280;font-weight:500}.detail-item .value{color:#374151}.option-section{margin-bottom:1.5rem}.option-header{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.option-header input[type=radio]{margin:0}.option-header label{color:#374151;cursor:pointer;font-weight:500}.matches-list{display:flex;flex-direction:column;gap:.75rem}.match-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;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{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.match-name{color:#374151;font-weight:500}.confidence-badge{align-items:center;color:#6b7280;display:flex;font-size:.75rem;gap:.25rem}.confidence-dot{border-radius:50%;height:8px;width:8px}.match-details{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.match-details .detail{background:#f9fafb;border-radius:.25rem;color:#6b7280;font-size:.75rem;padding:.125rem .375rem}.match-reasons{display:flex;flex-wrap:wrap;gap:.5rem}.reason-tag{background:#e0e7ff;border-radius:3px;color:#3730a3;font-size:.625rem;font-weight:500;padding:.125rem .375rem}.new-ingredient-preview{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:1rem}.preview-header{color:#059669;font-size:.875rem;font-weight:500;margin-bottom:.75rem}.preview-details{display:flex;flex-direction:column;gap:.25rem}.preview-details .detail-item{display:flex;font-size:.875rem;justify-content:space-between}.preview-details .detail-item .label{color:#065f46;font-weight:500}.preview-details .detail-item .value{color:#047857}.review-navigation{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem 0}.nav-buttons{align-items:center;display:flex;gap:1rem}.ingredient-navigator{display:flex;gap:.5rem}.nav-dot{border:none;border-radius:50%;cursor:pointer;height:12px;transition:all .2s;width:12px}.nav-dot.matched{background:#10b981}.nav-dot.new{background:#f59e0b}.nav-dot.active{box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;transform:scale(1.5)}.action-buttons{display:flex;gap:1rem}.btn-outline{border-color:#d1d5db;color:#6b7280}@media (max-width:768px){.ingredient-matching-review{padding:1rem}.review-content{gap:1.5rem;grid-template-columns:1fr}.matching-summary{flex-wrap:wrap;gap:1rem;justify-content:center}.summary-stat{min-width:80px}.review-navigation{align-items:stretch;flex-direction:column;gap:1rem}.action-buttons,.nav-buttons{flex-wrap:wrap;justify-content:center}.btn{flex:1 1;min-width:120px}.match-header{align-items:flex-start;flex-direction:column;gap:.25rem}.match-details{flex-direction:column;gap:.5rem}.ingredient-navigator{flex-wrap:wrap;justify-content:center}}@media (max-width:480px){.ingredient-matching-review{padding:.75rem}.review-header{margin-bottom:1.5rem}.review-title h2{font-size:1.25rem}.matching-summary{flex-direction:column;text-align:center}.ingredient-card,.match-item,.summary-stat{padding:.75rem}.option-header{align-items:flex-start;flex-direction:column;gap:.25rem}.nav-buttons{gap:.75rem}.action-buttons,.nav-buttons{flex-direction:column}.btn{min-width:0;min-width:auto;width:100%}}.match-item:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.nav-dot:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.option-header input[type=radio]:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-contrast:high){.ingredient-card,.match-item{border-width:2px}.confidence-dot,.type-badge{border:1px solid}}@media (prefers-reduced-motion:reduce){.btn,.button-spinner,.match-item,.nav-dot,.progress-fill{animation:none;transition:none}}.ingredient-matching-review.loading{opacity:.8;pointer-events:none}.matches-list.loading{opacity:.6}.matches-list.loading:after{color:#6b7280;content:"Loading matches...";display:block;font-style:italic;padding:2rem;text-align:center}.beerxml-import-export{margin:0 auto;max-width:600px}.section-title{font-size:1.25rem}.beerxml-import-section{margin-bottom:2rem}.beerxml-export-section,.beerxml-import-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{background:#fff;border:2px dashed #d1d5db;border-radius:8px;cursor:pointer;padding:2rem;text-align:center;transition:all .2s}.upload-dropzone:hover{background:#f8faff;border-color:#3b82f6}.upload-dropzone.has-file{background:#f0fdf4;border-color:#10b981}.upload-prompt{align-items:center;display:flex;flex-direction:column;gap:.5rem}.upload-icon{font-size:2rem}.upload-text{color:#374151;font-weight:500}.upload-hint{color:#6b7280;font-size:.875rem}.file-info{align-items:center;display:flex;gap:1rem}.file-icon{font-size:2rem}.file-details{text-align:left}.file-name{color:#374151;font-weight:500}.file-size{color:#6b7280;font-size:.875rem}.export-actions,.import-actions{display:flex;gap:1rem;margin-top:1rem}.btn{border:1px solid #0000;border-radius:6px;line-height:1.25;padding:.5rem 1rem}.btn:disabled{opacity:.5}.btn-primary{background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280}.btn-secondary:hover:not(:disabled){background:#4b5563}.recipe-selection{background:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-top:1.5rem;padding:1rem}.recipe-selection h4{color:#374151;font-size:1.125rem;margin:0 0 1rem}.recipe-selector{margin-bottom:1rem}.recipe-selector label{color:#374151;display:block;font-weight:500;margin-bottom:.5rem}.form-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.875rem;padding:.5rem;width:100%}.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.recipe-preview{background:#fafafa;border:1px solid #e5e7eb;border-radius:6px;margin-top:1rem}.recipe-preview h5{color:#374151;font-size:1rem;font-weight:600;margin:0 0 1rem}.recipe-details{margin:1rem 0}.detail-row{padding:.25rem 0}.detail-row .label{color:#6b7280;font-weight:500}.detail-row .value{color:#374151}.ingredient-summary{margin-top:1rem}.ingredient-summary h6{color:#374151;font-size:.875rem;font-weight:600;margin:0 0 .5rem}.ingredient-types{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.ingredient-type-badge{border-radius:4px;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.ingredient-type-badge.grain{background:#fef3c7;color:#92400e}.ingredient-type-badge.hop{background:#d1fae5;color:#065f46}.ingredient-type-badge.yeast{background:#e0e7ff;color:#3730a3}.ingredient-type-badge.other{background:#f3f4f6;color:#374151}.import-recipe-actions{margin-top:1rem}.export-info{margin-bottom:1.5rem}.export-info p{color:#6b7280;line-height:1.5;margin:0 0 1rem}.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{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;display:flex;gap:.5rem;margin-top:1rem;padding:1rem}.error-text{flex:1 1;line-height:1.4}@media (max-width:768px){.beerxml-import-export{margin:0;max-width:100%}.beerxml-export-section,.beerxml-import-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}.export-actions,.import-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{align-items:flex-start;flex-direction:column}.ingredient-type-badge{align-self:flex-start}}@media (max-width:480px){.section-title{font-size:1.125rem}.current-recipe-info,.recipe-preview{padding:.75rem}.upload-dropzone{padding:1rem}.file-info{flex-direction:column;gap:.75rem}.file-details,.file-info{text-align:center}}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.form-select:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.upload-dropzone:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-contrast:high){.upload-dropzone{border-width:3px}.btn{border-width:2px}.ingredient-type-badge{border:1px solid}}@media (prefers-reduced-motion:reduce){.btn,.button-spinner,.upload-dropzone{animation:none;transition:none}}.beerxml-export-section.loading,.beerxml-import-section.loading{opacity:.7;pointer-events:none}.recipe-selection.loading{opacity:.8}.recipe-selection.loading:after{align-items:center;background:#fffc;bottom:0;content:"";display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.success-message{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#166534;display:flex;gap:.5rem;margin-top:1rem;padding:1rem}.success-icon{flex-shrink:0;font-size:1.25rem}.success-text{flex:1 1;line-height:1.4}.progress-container{margin:1rem 0}.progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:#3b82f6;height:100%;transition:width .3s ease}.progress-text{color:#6b7280;font-size:.875rem;margin-top:.5rem;text-align:center}.attenuation-badge{background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin:8px 0;padding:8px 12px}.attenuation-badge.loading{align-items:center;background:#f9f9f9;border-color:#ddd;display:flex;gap:8px}.loading-spinner{border:2px solid #f3f3f3;border-top-color:#007bff;height:12px;width:12px}.loading-text{color:#666;font-size:.8rem}.badge-main{align-items:center;display:flex;font-size:.9rem;gap:8px}.badge-icon{font-size:1rem}.badge-text{color:#333;font-weight:600}.confidence-indicator{background:#f0f0f0;border-radius:12px;font-size:.75rem;font-weight:500;padding:2px 6px}.attenuation-badge.none{border-color:#ddd}.attenuation-badge.low{background:linear-gradient(135deg,#fff8e1,#fff);border-color:#ffa726}.attenuation-badge.medium{background:linear-gradient(135deg,#fffde7,#fff);border-color:#ffcc02}.attenuation-badge.high{background:linear-gradient(135deg,#e8f5e8,#fff);border-color:#66bb6a}.confidence-indicator.text-gray-500{background:#f9fafb;color:#6b7280}.confidence-indicator.text-orange-500{background:#fef3c7;color:#f97316}.confidence-indicator.text-yellow-500{background:#fefce8;color:#eab308}.confidence-indicator.text-green-500{background:#dcfce7;color:#22c55e}.badge-details{border-top:1px solid #e9ecef;font-size:.8rem;margin-top:8px;padding-top:8px}.detail-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.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 (max-width:768px){.attenuation-badge{margin:6px 0;padding:6px 10px}.badge-main{font-size:.85rem;gap:6px}.badge-details{font-size:.75rem}}.selected-ingredient-info .attenuation-badge{margin-bottom:0;margin-top:8px}.yeast-attenuation{flex-direction:column;gap:4px}.traditional-attenuation{align-items:center;display:flex;font-size:.8rem;justify-content:space-between}.yeast-attenuation .attenuation-badge{margin:0}.attenuation-badge.compact{font-size:.8rem;margin:4px 0;padding:4px 8px}.attenuation-badge.compact .badge-main{gap:4px}.attenuation-badge.compact .badge-icon{font-size:.9rem}.attenuation-badge.compact .confidence-indicator{font-size:.7rem;padding:1px 4px}.analytics-page{margin:0 auto;max-width:1200px;padding:20px}.analytics-header{margin-bottom:30px;text-align:center}.analytics-header h1{color:#333;font-size:2.5rem;margin-bottom:8px}.header-description{color:#666;font-size:1.1rem;margin:0}.stats-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:40px}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:20px;text-align:center;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-card.highlight{background:linear-gradient(135deg,#e3f2fd,#fff);border-color:#007bff}.stat-card.success{background:linear-gradient(135deg,#e8f5e8,#fff);border-color:#28a745}.stat-number{color:#333;font-size:2.5rem;font-weight:700;margin-bottom:8px}.stat-label{color:#666;font-size:.9rem}.analytics-section{margin-bottom:40px}.analytics-section h2{color:#333;font-size:1.8rem;margin-bottom:8px}.section-description{color:#666;margin-bottom:20px}.yeast-list{grid-gap:16px;display:grid;gap:16px}.yeast-card{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;gap:16px;padding:16px}.yeast-rank{color:#007bff;font-size:1.5rem;font-weight:700;min-width:40px}.yeast-info{flex:1 1}.yeast-name{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 4px}.yeast-code,.yeast-manufacturer{background:#f0f0f0;border-radius:12px;color:#666;display:inline-block;font-size:.8rem;margin-right:8px;padding:2px 8px}.yeast-stats{display:flex;flex-direction:column;gap:4px;min-width:200px}.stat-item{font-size:.9rem;justify-content:space-between}.stat-item .stat-label{color:#666}.stat-item .stat-value{color:#333;font-weight:600}.improvement-list{grid-gap:16px;display:grid;gap:16px}.improvement-card{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;padding:16px}.improvement-info{flex:1 1}.improvement-stats{display:flex;flex-direction:column;gap:4px;min-width:250px}.stat-row{display:flex;font-size:.9rem;justify-content:space-between}.stat-row .stat-value.positive{color:#22c55e}.stat-row .stat-value.negative{color:#ef4444}.no-data-state{color:#666;padding:60px 20px;text-align:center}.no-data-icon{font-size:4rem;margin-bottom:20px}.no-data-state h2{color:#333;font-size:1.5rem;margin-bottom:16px}.no-data-state p{font-size:1rem;line-height:1.6;margin:0 auto;max-width:500px}.loading-container{padding:60px 20px}.loading-spinner.large{border:4px solid #f3f3f3;border-top-color:#007bff;height:40px;width:40px}.error-container{padding:40px 20px;text-align:center}.retry-button{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:16px;padding:10px 20px}.retry-button:hover{background:#0056b3}@media (max-width:768px){.analytics-page{padding:16px}.analytics-header h1{font-size:2rem}.stats-grid{gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.improvement-card,.yeast-card{align-items:flex-start;flex-direction:column;gap:12px}.improvement-stats,.yeast-stats{min-width:auto;width:100%}}.searchable-select{position:relative;width:100%}.searchable-select-input-container{align-items:center;display:flex;position:relative}.searchable-select-input{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;font-size:1rem;padding:.5rem 2.5rem .5rem .75rem;transition:border-color .2s,box-shadow .2s;width:100%}.searchable-select-input:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.searchable-select-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.searchable-select-clear{align-items:center;background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:1.25rem;height:1.5rem;justify-content:center;padding:0;position:absolute;right:2rem;top:50%;transform:translateY(-50%);transition:background-color .2s,color .2s;width:1.5rem}.searchable-select-clear:hover{background-color:#f3f4f6;color:#374151}.searchable-select-arrow{color:#6b7280;pointer-events:none;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);transition:transform .2s}.searchable-select.open .searchable-select-arrow{transform:translateY(-50%) rotate(180deg)}.searchable-select-dropdown{animation:dropdown-appear .15s ease-out;background-color:#fff;border:1px solid #d1d5db;border-radius:0 0 .25rem .25rem;border-top:none;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.searchable-select-option{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:.75rem;transition:background-color .15s}.searchable-select-option:last-child{border-bottom:none}.searchable-select-option.highlighted,.searchable-select-option:hover{background-color:#fffbeb}.option-name{font-weight:500;line-height:1.3}.option-description{line-height:1.3;margin-bottom:.125rem}.option-metadata{border:1px solid #e5e7eb;border-radius:.125rem;color:#6b7280;display:block;font-size:.75rem;font-weight:500;line-height:1.3;overflow-wrap:break-word;word-break:break-word}.option-metadata,.option-score{background-color:#f9fafb;margin-top:.25rem;padding:.125rem .25rem}.option-score{border-radius:.125rem;color:#9ca3af;display:inline-block;font-family:monospace;font-size:.6875rem}.searchable-select-no-results{border-bottom:1px solid #f3f4f6;padding:.75rem}.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-loading{gap:.5rem;padding:.75rem}.searchable-select-loading:before{animation:spin 1s linear infinite;border:2px solid #f3f4f6;border-radius:50%;border-top-color:#d97706;content:"";height:1rem;width:1rem}.search-highlight::selection{background-color:#d97706;color:#fff}.searchable-select-option{position:relative}.searchable-select-option .option-name{font-weight:600;word-break:break-word}.searchable-select-option .option-description{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;max-height:2.6em;overflow:hidden;word-break:break-word}@media (max-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:highlight-pulse .3s ease-in-out}@media (prefers-contrast:high){.search-highlight{font-weight:700}.search-highlight,.searchable-select-option.highlighted{background-color:#000;color:#fff}}@media (prefers-reduced-motion:reduce){.dropdown-appear,.highlight-pulse,.spin{animation:none}.searchable-select-arrow{transition:none}}.option-manufacturer{color:#9ca3af;display:block;font-size:.75rem;font-style:italic;line-height:1.3;margin-top:.25rem;overflow-wrap:break-word;word-break:break-word}.option-manufacturer .search-highlight,.option-manufacturer mark.search-highlight{background-color:#fde68a;border-radius:.0625rem;color:#78716c;font-weight:500;padding:.0625rem .125rem}.searchable-select-dropdown{min-width:200px;width:100%}.searchable-select-option{line-height:1.4;padding:.75rem .875rem}.option-name{color:#111827;font-weight:600;margin-bottom:.125rem}.option-description,.option-name{line-height:1.4;word-break:break-word}.option-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:.875rem;margin-bottom:.25rem;overflow:hidden}.search-highlight,mark.search-highlight{background-color:#fef3c7;border:none;border-radius:.125rem;color:#92400e;font-weight:600;margin:0 .0625rem;padding:.125rem .25rem}.option-description .search-highlight,.option-name .search-highlight{display:inline;word-break:normal}.searchable-select-option[data-ingredient-type=yeast] .option-name{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.yeast-code{background-color:#f3f4f6;border-radius:.25rem;color:#374151;display:inline-block;font-family:monospace;font-size:.6875rem;font-weight:500;padding:.125rem .375rem;text-transform:uppercase}.searchable-select-dropdown{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.searchable-select-option:focus{background-color:#fef3c7;outline:2px solid #d97706;outline-offset:-2px}.searchable-select-option.highlighted{background-color:#fef3c7;outline:1px solid #fbbf24;outline-offset:-1px}@media (max-width:640px){.searchable-select-dropdown{max-height:60vh;min-width:200px;width:100%}.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}.option-manufacturer,.option-metadata{font-size:.6875rem}.search-highlight{margin:0 .03125rem;padding:.0625rem .125rem}}.searchable-select-loading{align-items:center;color:#6b7280;display:flex;font-size:.875rem;gap:.75rem;justify-content:center;padding:1rem .75rem;text-align:center}.searchable-select-no-results{border-bottom:none;color:#6b7280;font-style:italic;padding:1rem .75rem;text-align:center}.searchable-select-no-results:before{content:"🔍 ";font-style:normal;margin-right:.5rem}: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;--button-width:100px;--border-radius:0.375rem;--border-radius-sm:0.25rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:0.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--transition-fast:0.1s;--transition-normal:0.2s;--transition-slow:0.3s}.container{margin:0 auto;max-width:1600px;padding:2rem 1rem}.page-title{color:#333;font-size:1.5rem;margin-bottom:var(--spacing-xl)}.section-title{color:#333;font-weight:700;margin:2rem 0 var(--spacing-lg)}.about-photo-section{margin:2rem 0;padding:1rem;text-align:center}.about-photo{border-radius:12px;box-shadow:0 8px 25px #00000026;display:block;height:auto;margin:0 auto 1rem;max-width:500px;transition:transform .3s ease,box-shadow .3s ease;width:100%}.about-photo:hover{box-shadow:0 12px 35px #0003;transform:translateY(-2px)}.homebrew-photo,.photo-caption{max-width:600px}.photo-caption{color:#6b7280;font-size:.95rem;font-style:italic;line-height:1.5;margin-left:auto;margin-right:auto;margin-top:1rem}@media (max-width:768px){.about-photo-section{margin:1.5rem 0;padding:.5rem}.about-photo{border-radius:8px;box-shadow:0 4px 15px #0000001a;max-width:100%}.photo-caption{font-size:.9rem;padding:0 1rem}}.loading-container{padding:2.5rem 1rem;text-align:center}.loading-container p{color:#6b7280;font-size:1rem;margin-top:1rem}.loading-spinner{border:3px solid #e5e7eb;border-top-color:#d97706;height:2rem;width:2rem}.loading-indicator{align-items:center;color:var(--color-gray-600);display:flex;gap:.5rem;justify-content:center;padding:1rem}.loading-indicator .spinner{animation:spin 1s linear infinite;border-top:2px solid var(--color-gray-300);border:2px solid var(--color-gray-300);border-radius:50%;border-top-color:var(--color-amber-600);height:1rem;width:1rem}.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;display:flex;gap:.75rem}.error-icon{flex-shrink:0;font-size:1.25rem}.error-message{color:var(--color-red-700);flex:1 1}.error-dismiss{align-items:center;background:none;border:none;border-radius:50%;color:var(--color-red-500);cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:2rem;justify-content:center;padding:.25rem;width:2rem}.search-highlight{background-color:var(--color-amber-200);border-radius:.125rem;color:var(--color-amber-800)}.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{display:flex;gap:2rem;min-height:100vh;position:relative}.recipe-builder-main{display:flex;flex:2 1;flex-direction:column;min-width:0}.recipe-builder-sidebar{flex:1 1;max-width:400px;min-width:300px}.sticky-metrics-wrapper{height:fit-content;position:sticky;top:1rem;z-index:10}.recipe-builder-header{flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.header-main,.recipe-builder-header{align-items:flex-start;display:flex;justify-content:space-between}.header-main{margin-bottom:1rem}.beerxml-actions{align-items:center;display:flex;gap:.5rem}.status-indicators{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.status-indicator{align-items:center;border-radius:var(--border-radius);box-shadow:0 2px 4px #0000001a;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;white-space:nowrap}.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{background-color:#f0f9ff;border:1px solid #bae6fd;color:#0369a1}.status-indicator.saving{background-color:#dcfce7;border:1px solid #bbf7d0;color:#166534}.status-indicator.importing{background-color:#f0f9ff;border:1px solid #bae6fd;color:#0369a1}.status-indicator.success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.beerxml-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px 0 #0000001a;margin-bottom:2rem}.panel-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.panel-header h3{color:#374151;font-size:1.125rem;font-weight:600;margin:0}.panel-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;height:2rem;justify-content:center;padding:0;width:2rem}.panel-content{padding:0}.recipe-card-container{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(1,1fr)}@media (min-width:640px){.recipe-card-container{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.recipe-card-container{grid-template-columns:repeat(3,1fr)}}.form-row{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:1fr;margin-bottom:var(--spacing-xl)}@media (min-width:768px){.form-row{gap:1.5rem;grid-template-columns:1fr 1fr}}.form-row .form-group{margin-left:0;margin-right:0;min-width:0;overflow:hidden}.form-row .form-group input.form-control{box-sizing:border-box;max-width:100%;width:100%}.form-row .form-group .input-group{max-width:100%;width:100%}@media (max-width:768px){.recipe-builder-layout{flex-direction:column}.recipe-builder-sidebar{max-width:none;min-width:0;min-width:auto;order:-1}.sticky-metrics-wrapper{position:static}.header-main{align-items:stretch;flex-direction:column;gap:1rem}.beerxml-actions{justify-content:flex-end;width:100%}.status-indicators{align-items:stretch;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.status-indicator{flex:1 1;justify-content:center;min-width:0}.panel-header{padding:.75rem 1rem}.panel-header h3{font-size:1rem}.beerxml-actions{flex-wrap:wrap}}@media (max-width:480px){.recipe-builder-header{margin-bottom:1rem}.beerxml-actions{justify-content:stretch}.status-indicator{font-size:.8rem;padding:.375rem .75rem}}.card{border-radius:var(--spacing-sm);box-shadow:0 2px 5px #0000001a;margin-bottom:var(--spacing-xl);padding:var(--spacing-xl)}.card-title{border-bottom:1px solid var(--color-amber-200);color:var(--color-amber-800);font-size:1.25rem;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm)}.recipe-card{background-color:#fff;border-radius:var(--spacing-sm);box-shadow:0 2px 5px #0000001a;display:flex;flex-direction:column;height:100%;padding:1.25rem}.recipe-card-header{margin-bottom:var(--spacing-md)}.recipe-card-title{color:var(--color-amber-800);font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-xs)}.recipe-card-style{color:var(--color-amber-700);font-size:.875rem;margin-bottom:var(--spacing-sm)}.recipe-card-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--color-gray-700);display:-webkit-box;font-size:.875rem;line-height:1.4;margin-bottom:var(--spacing-lg);overflow:hidden}.recipe-card-footer{align-items:center;border-top:1px solid var(--color-gray-100);color:var(--color-gray-500);display:flex;font-size:.75rem;justify-content:space-between;margin-top:auto;padding-top:var(--spacing-md)}.recipe-card-version{background-color:var(--color-amber-50);border:1px solid var(--color-amber-300);border-radius:9999px;color:var(--color-amber-700);display:inline-block;font-size:.75rem;margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm)}.recipe-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:auto;padding-top:var(--spacing-md)}.recipe-card-button{border:1px solid #0000;border-radius:var(--border-radius-sm);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-align:center;white-space:nowrap}.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{background-color:#fff;border-color:var(--color-red-500);color:var(--color-red-500)}.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 (max-width:480px){.recipe-card-actions{gap:.25rem}.recipe-card-button{font-size:.675rem;padding:.3rem .6rem}}.form-group{margin-bottom:var(--spacing-lg)}.form-label{color:var(--color-gray-700);margin-bottom:var(--spacing-xs)}.form-control,.input-control{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:1rem;padding:var(--spacing-sm) var(--spacing-md);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:100%}.form-control:focus,.input-control:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.form-check{align-items:center;display:flex;margin-top:var(--spacing-xl)}.form-check-input{margin-right:var(--spacing-sm)}.form-actions{margin-top:var(--spacing-xl)}.input-group{display:flex;width:100%}.input-group .input-control{border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;flex:3 1}.input-group .input-addon{background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);border-bottom-right-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);flex:1 1;padding:var(--spacing-sm) var(--spacing-md)}.prefilled-input{background-color:var(--color-amber-50)!important;border-color:var(--color-amber-600)!important}.prefilled-input:focus{background-color:#fff!important;box-shadow:0 0 0 3px #d977061a!important}.btn{border-radius:var(--border-radius-sm);font-size:.875rem;padding:var(--spacing-sm) var(--spacing-lg);transition:background-color var(--transition-normal),border-color var(--transition-normal)}.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)}.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)}.btn-secondary:hover:not(:disabled){background-color:var(--color-amber-600);border-color:var(--color-amber-600)}.btn-outline{background:#0000;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;line-height:1.25;padding:.5rem 1rem;transition:all .2s}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-outline:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.btn-full{display:block;width:100%}.btn+.btn{margin-left:var(--spacing-sm)}.calculate-button{align-items:center;background-color:var(--color-amber-500);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;justify-content:center;padding:.625rem;transition:background-color var(--transition-normal);width:100%}.calculate-button:hover{background-color:var(--color-amber-600)}.version-history{background-color:var(--color-amber-50);border:1px solid var(--color-amber-300);border-radius:var(--spacing-sm);margin-top:2rem;padding:var(--spacing-lg)}.version-history-title{border-bottom:1px solid var(--color-amber-200);color:var(--color-amber-800);font-size:1.25rem;font-weight:600;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm)}.child-versions,.current-version,.parent-version{margin-bottom:var(--spacing-lg)}.child-versions h4,.current-version h4,.parent-version h4{color:var(--color-amber-700);font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-xs)}.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);border-radius:9999px;color:var(--color-amber-800);padding:var(--spacing-xs) var(--spacing-sm)}.derived-recipes-list{list-style-type:disc;margin-left:var(--spacing-xl)}.derived-recipes-list a{color:var(--color-amber-600);text-decoration:none}.derived-recipes-list a:hover{text-decoration:underline}.version-history-loading{color:var(--color-gray-500);padding:var(--spacing-lg);text-align:center}.version-history-error{color:var(--color-red-500);padding:var(--spacing-lg);text-align:center}.type-badge{background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);color:var(--color-amber-800);display:inline-block;font-weight:500;padding:.25rem .5rem}.type-badge.adjunct,.type-badge.grain,.type-badge.hop,.type-badge.other,.type-badge.yeast{color:#fff}.unsaved-indicator{color:var(--color-amber-600);font-weight:700}.ai-suggestions-card{background-color:#fef7e0;border:1px solid #fed7aa;border-radius:var(--spacing-sm);box-shadow:0 2px 4px #0000000d;margin-bottom:var(--spacing-lg);padding:var(--spacing-lg)}.ai-suggestions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.ai-suggestions-title{align-items:center;color:var(--color-amber-800);display:flex;font-size:1.1rem;gap:var(--spacing-sm)}.ai-suggestions-toggle{align-items:center;border-radius:var(--border-radius-sm);color:var(--color-amber-600);display:flex;font-size:1.2rem;height:28px;justify-content:center;padding:var(--spacing-xs);width:28px}.ai-suggestions-toggle:hover{background-color:var(--color-amber-100)}.ai-suggestions-content{space-y:var(--spacing-md)}.ai-suggestion-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.ai-suggestion-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.ai-suggestion-title{color:var(--color-gray-800);font-size:1rem;font-weight:600;margin:0}.ai-suggestion-confidence{border-radius:var(--border-radius-sm);font-size:.75rem;font-weight:500;letter-spacing:.05em;padding:.25rem .5rem;text-transform:uppercase}.ai-suggestion-confidence.high{background-color:#dcfce7;color:#166534}.ai-suggestion-confidence.medium{background-color:#fef3c7;color:#92400e}.ai-suggestion-confidence.low{background-color:#fecaca;color:#991b1b}.ai-suggestion-description{color:var(--color-gray-600);line-height:1.4}.ai-suggestion-changes,.ai-suggestion-description{margin-bottom:var(--spacing-md)}.ai-suggestion-change{background-color:#f9fafb;border-radius:var(--border-radius-sm);display:flex;flex-direction:column;font-size:.875rem;margin-bottom:var(--spacing-xs);padding:var(--spacing-sm)}.ai-suggestion-change:last-child{margin-bottom:0}.change-ingredient{color:var(--color-amber-700);font-weight:600;margin-bottom:.25rem}.change-detail{color:var(--color-gray-700);font-family:monospace;margin-bottom:.25rem}.change-reason{color:var(--color-gray-500);font-size:.8rem;font-style:italic}.ai-suggestion-actions{display:flex;gap:var(--spacing-sm)}.ai-suggestion-actions .btn{font-size:.875rem;padding:.5rem 1rem}.ai-suggestion-cascading-effects{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-md);margin-top:var(--spacing-md);padding:var(--spacing-md)}.cascading-effects-title{color:var(--color-amber-800);font-size:.875rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.cascading-effects-grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.cascading-effect-item{align-items:center;background-color:var(--color-white);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm);display:flex;flex-direction:column;padding:var(--spacing-sm)}.metric-name{color:var(--color-gray-600);font-size:.75rem;font-weight:600;margin-bottom:.25rem}.metric-change{color:var(--color-gray-800);font-size:.875rem;font-weight:500;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #fed7aa;border-radius:50%;border-top:2px solid var(--color-amber-600);display:inline-block;height:1rem;margin-left:var(--spacing-sm);width:1rem}.analyze-recipe-section{background-color:var(--color-white);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-md);padding:var(--spacing-lg);text-align:center}.analyze-description{color:var(--color-gray-600);font-size:.875rem;line-height:1.5;margin-bottom:var(--spacing-lg)}.analyze-button{align-items:center;background-color:var(--color-amber-600);border:none;border-radius:var(--border-radius-md);box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);transition:background-color var(--transition-normal)}.analyze-button:hover:not(:disabled){background-color:var(--color-amber-700);box-shadow:0 4px 8px #00000026}.analyze-button:disabled{background-color:var(--color-gray-400);cursor:not-allowed;opacity:.6}.help-text{color:var(--color-gray-500);font-style:italic;margin-top:var(--spacing-md)}.priority-indicator{font-size:.875rem;margin-left:var(--spacing-xs)}.priority-indicator.critical{color:#dc2626}.priority-indicator.important{color:#d97706}.ai-suggestion-meta{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.ai-suggestion-priority{background-color:var(--color-gray-100);border-radius:var(--border-radius-sm);color:var(--color-gray-700);font-size:.75rem;font-weight:500;padding:.25rem .5rem}.ai-suggestion-style-impact{align-items:center;background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius-sm);display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm)}.ai-suggestion-item.comprehensive{background:linear-gradient(135deg,#fefbf3,#fef7e0);border:2px solid var(--color-amber-300);border-radius:var(--border-radius-md);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);font-size:.875rem;line-height:1.6;margin:var(--spacing-md) 0;padding:var(--spacing-md)}.ai-suggestion-breakdown h4{color:var(--color-amber-800);font-size:.9rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.ai-suggestion-breakdown ul{list-style:none;margin:0;padding-left:var(--spacing-lg)}.ai-suggestion-breakdown li{margin-bottom:var(--spacing-xs);position:relative}.ai-suggestion-breakdown li:before{color:var(--color-amber-600);content:"✓";font-weight:700;left:-1.2rem;position:absolute}.style-impact-label{color:var(--color-blue-800);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.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{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #86efac;border-radius:var(--border-radius-md);box-shadow:0 4px 12px #22c55e26}.bottom-save-section{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm);margin-top:var(--spacing-xl);padding:var(--spacing-lg)}.bottom-save-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-bottom:var(--spacing-md)}.bottom-save-section .validation-info{margin-bottom:0;margin-top:var(--spacing-sm);text-align:center}.bottom-save-section .validation-message{color:var(--color-amber-700);font-style:italic}@media (max-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);box-shadow:0 2px 5px #0000001a;margin-bottom:var(--spacing-xl);padding:var(--spacing-xl)}.metrics-grid{grid-gap:var(--spacing-lg);gap:var(--spacing-lg);grid-template-columns:1fr 1fr;margin-bottom:var(--spacing-lg)}.metric-box{background-color:#fff;border-radius:var(--border-radius-sm);box-shadow:0 1px 2px #0000000d;padding:var(--spacing-md) var(--spacing-sm);text-align:center}.metric-label{color:var(--color-gray-500);font-size:.75rem;margin-bottom:var(--spacing-xs)}.metric-value{color:var(--color-amber-800);font-size:1.5rem;font-weight:700;line-height:1.2}.color-display{align-items:center;background-color:#fff;border-radius:var(--border-radius);box-shadow:0 1px 2px #0000000d;display:flex;margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.color-info{flex-grow:1;margin-right:var(--spacing-lg)}.color-swatch{border:3px solid #fff;box-shadow:0 0 0 1px var(--color-gray-200);height:4rem;width:4rem}.balance-meter-container{background-color:#fff;border-radius:var(--border-radius);box-shadow:0 1px 2px #0000000d;margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.balance-labels{color:var(--color-gray-500);display:flex;font-size:.75rem;justify-content:space-between;margin-bottom:var(--spacing-xs)}.balance-meter{background-color:var(--color-gray-200);border-radius:9999px;height:var(--spacing-sm);overflow:hidden}.balance-meter-progress{background-color:var(--color-amber-600);height:100%}.balance-description{color:var(--color-gray-700);font-size:.75rem;margin-top:var(--spacing-xs);text-align:center}.card-metrics-container{background-color:initial;border-radius:var(--spacing-sm);margin-top:var(--spacing-sm);padding:var(--spacing-lg) 0}.card-metrics-grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr 1fr;margin-bottom:var(--spacing-sm)}.card-metrics-grid .metric-box{background-color:var(--color-amber-50);padding:var(--spacing-sm) var(--spacing-xs)}.card-metrics-grid .metric-label{font-size:.65rem}.card-metrics-grid .metric-value{font-size:1rem}.card-color-display{align-items:center;background-color:var(--color-amber-50);border-radius:var(--border-radius);box-shadow:0 1px 2px #0000000d;display:flex;margin-bottom:var(--spacing-sm);padding:var(--spacing-sm)}.card-color-display .color-info{margin-right:var(--spacing-sm)}.card-color-display .color-swatch{border:2px solid #fff;height:2rem;width:2rem}.card-balance-meter-container{background-color:var(--color-amber-50);border-radius:var(--border-radius);box-shadow:0 1px 2px #0000000d;padding:var(--spacing-sm)}.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{border-top:1px solid var(--color-gray-200);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.scaling-title{font-size:1rem;font-weight:500;margin-bottom:var(--spacing-sm)}.scaling-input-group{display:flex}.scaling-input{border:1px solid var(--color-gray-300);border-bottom-left-radius:var(--border-radius-sm);border-right:none;border-top-left-radius:var(--border-radius-sm);flex-grow:1;padding:var(--spacing-sm) var(--spacing-md)}.scaling-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.scaling-button{background-color:var(--color-amber-600);border:1px solid var(--color-amber-600);border-bottom-right-radius:var(--border-radius-sm);border-top-right-radius:var(--border-radius-sm);color:#fff;cursor:pointer;padding:var(--spacing-sm) var(--spacing-lg)}.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:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-top:1rem;padding:1rem}.current-vs-target h5{border-bottom:1px solid var(--color-gray-200);color:var(--color-gray-800);font-size:1rem;font-weight:600;margin:0 0 .75rem;padding-bottom:.5rem}.metrics-comparison{display:flex;flex-direction:column;gap:.5rem}.metric-comparison{align-items:center;background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);display:flex;gap:.75rem;padding:.5rem}.metric-comparison .metric-label{color:var(--color-gray-800);font-weight:600;min-width:3rem}.metric-comparison .current-value{color:var(--color-amber-700);font-weight:600;min-width:4rem}.metric-comparison .target-range{color:var(--color-gray-600);font-size:.875rem;font-style:italic}.match-status{align-items:center;border-radius:var(--border-radius);display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.match-status.success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.match-status.warning{background-color:#fffbeb;border:1px solid #fde68a;color:#92400e}.match-status.danger{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.match-percentage{font-size:1.125rem}.match-details{font-size:.875rem;opacity:.8}.spec-breakdown{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.spec-match{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.25rem .75rem}.spec-match.match{background-color:#f0fdf4;color:#166534}.spec-match.no-match{background-color:#fef2f2;color:#991b1b}.spec-name{font-size:.75rem;letter-spacing:.025em;text-transform:uppercase}.match-indicator{font-weight:700}.spec-range{color:var(--color-gray-600);font-size:.75rem;font-weight:400;margin-left:auto}.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{display:flex;flex-direction:column;gap:.75rem}.style-match-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.style-name{font-size:1rem;font-weight:600}.match-percentage{border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:600;padding:.25rem .5rem}.match-percentage.success{background-color:#f0fdf4;color:#166534}.match-percentage.warning{background-color:#fffbeb;color:#92400e}.match-percentage.danger{background-color:#fef2f2;color:#991b1b}.style-targets{background-color:var(--color-gray-50);border-radius:var(--border-radius);padding:1rem}.style-targets h5{color:var(--color-gray-800);font-size:1rem;margin:0 0 .75rem}.targets-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.target{display:flex;flex-direction:column;text-align:center}.target .label{color:var(--color-gray-600);font-size:.75rem;font-weight:500;text-transform:uppercase}.target .value{color:var(--color-gray-800);font-size:1rem;font-weight:600}@media (max-width:768px){.metrics-grid{gap:var(--spacing-sm);grid-template-columns:1fr}.color-display{flex-direction:column;gap:var(--spacing-sm);text-align:center}.color-info{margin-right:0}.targets-grid{grid-template-columns:repeat(2,1fr)}.metric-comparison{align-items:flex-start;gap:.25rem}.metric-comparison,.scaling-input-group{flex-direction:column}.scaling-input{border-right:1px solid var(--color-gray-300);margin-bottom:var(--spacing-xs)}.scaling-button,.scaling-input{border-radius:var(--border-radius-sm)}}.temperature-adjustment-indicator{animation:temperatureGlow 2s ease-in-out infinite alternate;cursor:help;display:inline-block;font-size:.875rem;margin-left:var(--spacing-xs);vertical-align:middle}.temperature-adjustment-indicator:hover{transform:scale(1.1);transition:transform .2s ease}@keyframes temperatureGlow{0%{opacity:.8}to{opacity:1}}.metric-value{position:relative}.temperature-adjustment-indicator[title]:hover:after{background-color:var(--color-gray-900);border-radius:var(--border-radius-sm);bottom:100%;box-shadow:0 2px 8px #0003;color:#fff;content:attr(title);font-size:.75rem;left:50%;margin-bottom:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.temperature-adjustment-indicator[title]:hover:before{border:5px solid #0000;border-top:5px solid var(--color-gray-900);bottom:calc(100% - 5px);content:"";left:50%;position:absolute;transform:translateX(-50%);z-index:1001}.ingredients-table-container{overflow-x:auto}.ingredients-table{border-collapse:collapse;width:100%}.ingredients-table th{background-color:var(--color-amber-50);border-bottom:2px solid var(--color-amber-200);color:var(--color-amber-800);font-weight:600;padding:var(--spacing-md) var(--spacing-lg);text-align:left}.ingredients-table td{border-bottom:1px solid var(--color-gray-200);padding:var(--spacing-md) var(--spacing-lg)}.ingredient-type{color:#000;text-transform:capitalize}.ingredient-action{align-items:center;background:none;border:none;color:var(--color-red-500);cursor:pointer;display:flex;padding:var(--spacing-xs) var(--spacing-sm)}.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{grid-gap:var(--spacing-md);align-items:start;display:grid;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.ingredient-inputs--grain{grid-template-columns:var(--amount-container-width) 1fr 110px var(--button-width)}.ingredient-inputs--grain .amount-input{max-width:150px;min-width:50px}.ingredient-inputs--grain .unit-select{max-width:100px;min-width:50px}.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{max-width:700px;min-width:200px}.ingredient-inputs--adjunct .amount-input{max-width:150px;min-width:50px}.ingredient-inputs--adjunct .unit-select{max-width:100px;min-width:50px}.amount-container{display:flex;flex-shrink:0;max-width:var(--amount-container-width);min-width:var(--amount-container-width);width:var(--amount-container-width)}.amount-input{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius) 0 0 var(--border-radius);border-right:none;box-sizing:border-box;flex:2 1;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.amount-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.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;box-sizing:border-box;cursor:pointer;flex:1 1;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem .375rem}.unit-select:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.ingredient-selector{flex:1 1;min-width:150px}.ingredient-selector .searchable-select{width:100%}.ingredient-selector .searchable-select-input{box-sizing:border-box;font-size:.875rem;height:var(--input-height);padding:.625rem 2.5rem .625rem var(--spacing-md)}.color-input-container{flex-shrink:0;min-width:110px;position:relative;width:110px}.color-input{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem 3rem .625rem var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:100%}.color-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.color-unit{color:var(--color-gray-500);font-size:.75rem;font-weight:500;right:2rem}.color-preview-swatch,.color-unit{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.color-preview-swatch{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--color-gray-200);height:20px;right:var(--spacing-xs);width:20px}.alpha-input-container{min-width:100px;position:relative;width:100px}.alpha-input{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem 2rem .625rem var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:100%}.alpha-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.alpha-unit{color:var(--color-gray-500);font-size:.75rem;font-weight:500;pointer-events:none;position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%)}.hop-time-container{align-items:center;display:flex;flex-wrap:nowrap;gap:var(--spacing-sm);min-width:260px;width:260px}.time-input{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;flex-shrink:0;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:60px}.time-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.time-unit-select{padding:.625rem var(--spacing-xs);width:65px}.time-unit-select,.use-select{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;cursor:pointer;flex-shrink:0;font-size:.875rem;height:var(--input-height);line-height:1.25}.use-select{padding:.625rem var(--spacing-sm);width:85px}.time-unit-select:focus,.use-select:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.adjunct-use-container{min-width:120px;width:120px}.adjunct-use-select{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;cursor:pointer;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem var(--spacing-sm);width:100%}.adjunct-use-select:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.adjunct-time-container{min-width:120px;width:120px}.adjunct-time-input{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius);box-sizing:border-box;font-size:.875rem;height:var(--input-height);line-height:1.25;padding:.625rem var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:100%}.adjunct-time-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.ingredient-add-button{align-items:center;background-color:var(--color-amber-600);border:none;border-radius:var(--border-radius);box-sizing:border-box;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;height:var(--input-height);justify-content:center;min-height:var(--input-height);min-width:var(--button-width);width:var(--button-width)}.ingredient-add-button:hover:not(:disabled){background-color:var(--color-amber-700)}.ingredient-add-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.adjunct-time-input.error,.alpha-input.error,.amount-input.error,.color-input.error,.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);margin-top:var(--spacing-md);padding:var(--spacing-md)}.ingredient-info-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.ingredient-name{color:var(--color-amber-800)}.ingredient-badge{background-color:var(--color-amber-400);border-radius:9999px;color:#fff;display:inline-block;font-size:.75rem;font-weight:500;padding:.125rem var(--spacing-sm)}.ingredient-description{color:var(--color-gray-500);margin:var(--spacing-sm) 0 0 0}.ingredient-help{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius);margin-top:var(--spacing-md);padding:var(--spacing-md)}.help-text{color:var(--color-blue-700);font-size:.875rem;line-height:1.4;margin:0}.usage-description{background-color:var(--color-gray-100);border-radius:var(--border-radius);margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.guidance-text{color:var(--color-gray-700);font-size:.75rem;font-style:italic;line-height:1.4;margin:0}.yeast-specs{color:var(--color-amber-800);font-size:.75rem;margin-top:var(--spacing-xs)}.editable-cell{border-radius:var(--border-radius-sm);cursor:pointer;display:inline-block;min-height:1.5rem;min-width:40px;padding:.25rem .5rem}.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{display:inline-block;min-width:80px;position:relative;width:100%}.edit-cell-input{background-color:#fff;border:2px solid var(--color-amber-600);border-radius:var(--border-radius-sm);box-shadow:0 0 0 3px #d9770633;font-size:.875rem;min-width:60px;padding:.25rem .5rem;width:100%}.edit-cell-input:focus{border-color:var(--color-amber-700);box-shadow:0 0 0 3px #d977064d;outline:none}.edit-cell-input[type=number]{text-align:right}.edit-cell-input[type=select]{cursor:pointer}.edit-error{background-color:var(--color-red-600);border-radius:var(--border-radius-sm);box-shadow:0 2px 4px #0003;color:#fff;font-size:.75rem;left:0;margin-top:.125rem;padding:.25rem .5rem;position:absolute;top:100%;white-space:nowrap;z-index:1000}.edit-error:before{border-bottom:.25rem solid var(--color-red-600);border-left:.25rem solid #0000;border-right:.25rem solid #0000;content:"";height:0;left:.5rem;position:absolute;top:-.25rem;width:0}.ingredient-details-container .detail-item{align-items:center;display:flex;gap:.25rem;margin-bottom:.125rem}.ingredient-details-container .detail-item:last-child{margin-bottom:0}.ingredient-details-container .detail-label{color:var(--color-gray-600);flex-shrink:0;font-size:.75rem;min-width:2rem}.ingredient-details-container .detail-value{color:var(--color-gray-800);font-size:.75rem}.ingredient-details-container .editable-cell{font-size:.75rem;min-width:2rem;padding:.125rem .25rem}.ingredient-details-container .edit-cell-input{font-size:.75rem;min-width:40px;padding:.125rem .25rem}.editing-help{background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--border-radius);margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.editing-help .help-text{color:var(--color-blue-700);font-size:.875rem;font-style:italic;margin:0}.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-time,.ingredients-table td.ingredient-use{padding:.5rem .75rem}.ingredients-table td.ingredient-details{min-width:120px;padding:.5rem .75rem}.edit-cell-input select,.edit-cell-input[type=select]{-webkit-appearance:none;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%3Cpath d='m6 9 6 6 6-6'/%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{background-color:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--border-radius-sm);margin-top:var(--spacing-lg);padding:var(--spacing-md)}.grain-total-display{align-items:center;display:flex;font-size:.95rem;justify-content:space-between}.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 (max-width:1400px){.ingredient-inputs--adjunct,.ingredient-inputs--grain,.ingredient-inputs--hop,.ingredient-inputs--yeast{gap:var(--spacing-sm);grid-template-columns:1fr}.adjunct-time-container,.adjunct-use-container,.alpha-input-container,.amount-container,.color-input-container,.hop-time-container,.ingredient-add-button,.ingredient-selector{min-width:0;min-width:auto;width:100%}.hop-time-container{flex-wrap:wrap;gap:var(--spacing-sm)}.time-input,.time-unit-select,.use-select{flex:1 1;min-width:80px}}@media (max-width:768px){.ingredient-inputs--adjunct,.ingredient-inputs--grain,.ingredient-inputs--hop,.ingredient-inputs--yeast{gap:var(--spacing-sm)}.hop-time-container{align-items:stretch;flex-direction:column}.time-input,.time-unit-select,.use-select{min-width:0;min-width:auto;width:100%}.edit-cell-input{font-size:.8rem;min-width:50px;padding:.2rem .4rem}.edit-error{display:block;font-size:.7rem;left:auto;margin-left:0;margin-top:.25rem;position:relative;top:auto}.edit-error:before{display:none}.ingredient-details-container{display:flex;flex-direction:column;gap:.25rem}.ingredient-details-container .detail-item{align-items:flex-start;flex-direction:column;gap:.125rem}}.adjunct-time-input:focus-visible,.adjunct-use-select:focus-visible,.alpha-input:focus-visible,.amount-input:focus-visible,.color-input:focus-visible,.ingredient-add-button:focus-visible,.time-input:focus-visible,.time-unit-select:focus-visible,.unit-select:focus-visible,.use-select:focus-visible{outline:2px solid var(--color-amber-600);outline-offset:2px}.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){.adjunct-time-input,.adjunct-use-select,.alpha-input,.amount-input,.color-input,.time-input,.time-unit-select,.unit-select,.use-select{border-width:2px}.ingredient-add-button{border:2px solid #fff}.editable-cell:hover{background-color:var(--color-amber-200);outline:2px solid var(--color-amber-600)}.edit-cell-input{border-width:3px}.edit-error{border:2px solid #fff}}@media (prefers-reduced-motion:reduce){.adjunct-time-input,.adjunct-use-select,.alpha-input,.amount-input,.color-input,.edit-cell-input,.editable-cell,.ingredient-add-button,.time-input,.time-unit-select,.unit-select,.use-select{transition:none}}.beer-style-selector{position:relative;width:100%}.style-input-container{position:relative}.style-dropdown{background:#fff;border:1px solid var(--color-gray-300);border-radius:0 0 var(--border-radius) var(--border-radius);border-top:none;box-shadow:0 4px 6px #0000001a;left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.style-option{border-bottom:1px solid var(--color-gray-100);cursor:pointer;padding:.75rem 1rem}.style-option:last-child{border-bottom:none}.style-option-main{align-items:center;display:flex;gap:.5rem;margin-bottom:.25rem}.style-id{background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);color:var(--color-amber-700);font-size:.75rem;font-weight:600;padding:.125rem .375rem}.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{align-items:center;background:none;border:none;border-radius:50%;color:var(--color-gray-400);cursor:pointer;display:flex;font-size:1.25rem;height:1.5rem;justify-content:center;padding:.25rem;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:1.5rem}.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);font-size:1.125rem;margin:0 0 .25rem}.style-impression{color:var(--color-gray-700);font-style:italic;line-height:1.4;margin:.5rem 0}.style-specs{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.style-specs .spec{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);color:var(--color-gray-700);font-size:.875rem;font-weight:500;padding:.25rem .5rem}.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{display:flex;flex-direction:column;gap:.75rem}.match-indicator.success{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--border-radius-sm);color:#166534}.match-indicator.success,.match-indicator.warning{font-size:.875rem;font-weight:600;padding:.25rem .5rem}.match-indicator.warning{background-color:#fffbeb;border:1px solid #fde68a;border-radius:var(--border-radius-sm);color:#92400e}.match-indicator.danger{background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--border-radius-sm);color:#991b1b}.match-indicator.danger,.match-indicator.neutral{font-size:.875rem;font-weight:600;padding:.25rem .5rem}.match-indicator.neutral{background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);color:var(--color-gray-700)}.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);font-size:1rem;font-weight:600;margin:0 0 .5rem}.beer-style-selector .suggestions-list{display:flex;flex-direction:column;gap:.75rem}.beer-style-selector .suggestion-item{background-color:#fff;border:1px solid var(--color-blue-200);border-radius:var(--border-radius);padding:.75rem;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.beer-style-selector .suggestion-item:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.beer-style-selector .suggestion-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.beer-style-selector .suggestion-actions{align-items:center;display:flex;gap:.5rem}.beer-style-selector .match-score{background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);color:var(--color-amber-700);font-size:.875rem;font-weight:600;padding:.25rem .5rem}.beer-style-selector .select-style-btn{background-color:var(--color-blue-600);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.25rem .75rem;transition:background-color var(--transition-normal)}.beer-style-selector .select-style-btn:hover{background-color:var(--color-blue-700)}.beer-style-selector .match-breakdown{display:flex;flex-wrap:wrap;gap:.25rem}.beer-style-selector .spec-indicator{border-radius:var(--border-radius-sm);font-size:.625rem;font-weight:600;letter-spacing:.025em;padding:.125rem .375rem;text-transform:uppercase}.beer-style-selector .spec-indicator.match{background-color:#dcfce7;color:#166534}.beer-style-selector .spec-indicator.no-match{background-color:#fee2e2;color:#991b1b}.style-analysis{background-color:#fff;border-radius:var(--border-radius);box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.analysis-title{border-bottom:1px solid var(--color-amber-200);color:var(--color-amber-800);font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.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{color:var(--color-gray-600);padding:2rem 1rem;text-align:center}.no-suggestions .help-text{font-size:.875rem;font-style:italic;margin-top:.5rem}.style-analysis-container{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius);overflow:hidden}.style-analysis-compact{border-radius:var(--border-radius);cursor:pointer;padding:.75rem 1rem}.style-analysis-compact:focus{outline:2px solid var(--color-amber-600);outline-offset:2px}.compact-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.compact-style-name{color:var(--color-gray-800);min-width:0}.compact-match-percentage,.compact-style-name{flex-shrink:0;font-size:.875rem;font-weight:600}.compact-match-percentage{border-radius:var(--border-radius-sm);padding:.25rem .5rem;white-space:nowrap}.compact-match-percentage.success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.compact-match-percentage.warning{background-color:#fffbeb;border:1px solid #fde68a;color:#92400e}.compact-match-percentage.danger{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.compact-metrics{display:flex;flex:1 1;flex-wrap:wrap;gap:.375rem}.metric-indicator{border-radius:var(--border-radius-sm);font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:.125rem .375rem;text-transform:uppercase}.metric-indicator.in-spec{background-color:#dcfce7;border:1px solid #bbf7d0;color:#166534}.metric-indicator.out-of-spec{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.expand-indicator{color:var(--color-gray-500);flex-shrink:0;font-size:.875rem;margin-left:auto;transition:transform var(--transition-normal)}.style-analysis-expanded{background-color:#fff}.expanded-header{align-items:center;background-color:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);cursor:pointer;display:flex;justify-content:space-between;padding:1rem}.expanded-header:focus{outline:2px solid var(--color-amber-600);outline-offset:2px}.expanded-header h4{color:var(--color-gray-800);font-size:1rem;font-weight:600;margin:0}.collapse-indicator{color:var(--color-gray-500);font-size:.875rem;transition:transform var(--transition-normal)}.style-match-result{padding:1rem}.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 .range-indicators{display:flex;flex-direction:column;gap:.75rem}.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);font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.style-analysis .suggestions-help{color:var(--color-gray-600);font-size:.875rem;line-height:1.4;margin:0 0 1rem}.style-analysis .suggestions-list{display:flex;flex-direction:column;gap:.75rem}.style-analysis .suggestion-item{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);padding:1rem;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.style-analysis .suggestion-item:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.style-analysis .suggestion-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.style-analysis .suggestion-header .style-info{align-items:center;display:flex;flex:1 1;gap:.5rem}.style-analysis .select-style-btn{background-color:var(--color-amber-600);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin-left:.5rem;padding:.375rem .75rem;transition:background-color var(--transition-normal)}.style-analysis .select-style-btn:hover{background-color:var(--color-amber-700)}.style-analysis .match-score{background-color:var(--color-amber-100);border-radius:var(--border-radius-sm);color:var(--color-amber-700);font-size:.875rem;font-weight:600;padding:.25rem .5rem;white-space:nowrap}.style-analysis .suggestion-details{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.style-analysis .match-breakdown{display:flex;flex-wrap:wrap;gap:.25rem}.style-analysis .spec-indicator{border-radius:var(--border-radius-sm);font-size:.625rem;font-weight:600;letter-spacing:.025em;padding:.125rem .375rem;text-transform:uppercase}.style-analysis .spec-indicator.match{background-color:#dcfce7;color:#166534}.style-analysis .spec-indicator.no-match{background-color:#fee2e2;color:#991b1b}@media (max-width:768px){.style-specs{flex-direction:column;gap:.5rem}.style-specs-with-ranges .specs-header{align-items:flex-start;flex-direction:column;gap:.5rem}.detailed-style-analysis h5{font-size:.9rem}.compact-content{align-items:flex-start;flex-direction:column;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-left:0;margin-top:.25rem}.expanded-header{padding:.75rem}.expanded-header h4{font-size:.9rem}.detailed-style-analysis,.style-match-result{padding:.75rem}.beer-style-selector .suggestion-header,.style-analysis .suggestion-details,.style-analysis .suggestion-header{align-items:flex-start;flex-direction:column;gap:.5rem}.beer-style-selector .suggestion-actions{justify-content:space-between;width:100%}}@media (max-width:480px){.style-analysis-compact{padding:.5rem .75rem}.compact-content{gap:.375rem}.compact-style-name{font-size:.85rem}.compact-match-percentage{font-size:.75rem;padding:.1875rem .375rem}.metric-indicator{font-size:.65rem;padding:.1875rem .25rem}.collapse-indicator,.expand-indicator{font-size:.8rem}.expanded-header,.style-match-result{padding:.5rem .75rem}.detailed-style-analysis{padding:.5rem}}.expanded-header:focus-visible,.style-analysis-compact:focus-visible{background-color:var(--color-amber-50);outline:2px solid var(--color-amber-600);outline-offset:2px}@media (prefers-contrast:high){.style-analysis-compact{border:1px solid var(--color-gray-400)}.metric-indicator.in-spec{background-color:#e6ffe6;border-color:#0c0;color:#060}.metric-indicator.out-of-spec{background-color:#ffe6e6;border-color:#c00;color:maroon}.compact-match-percentage.success{background-color:#e6ffe6;border-color:#0c0;color:#060}.compact-match-percentage.warning{background-color:#fff2e6;border-color:#f90;color:#c60}.compact-match-percentage.danger{background-color:#ffe6e6;border-color:#c00;color:maroon}}@media (prefers-reduced-motion:reduce){.clear-button,.collapse-indicator,.expand-indicator,.expanded-header,.metric-indicator,.select-style-btn,.style-analysis-compact,.style-analysis-container,.suggestion-item{transition:none}.expanded-header:hover .collapse-indicator,.metric-indicator:hover,.style-analysis-compact:hover .expand-indicator,.suggestion-item:hover{transform:none}}.style-range-indicator{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-bottom:1.5rem;padding:1rem;transition:border-color var(--transition-normal)}.style-range-indicator:hover{border-color:var(--color-gray-300)}.range-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.range-label{color:var(--color-gray-800);font-size:.875rem;font-weight:600;min-width:0}.range-values{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.current-value{font-size:1rem;font-weight:700;white-space:nowrap}.target-range{color:var(--color-gray-600);font-size:.875rem;font-style:italic;white-space:nowrap}.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;overflow:hidden;position:relative}.range-bar-valid-section{background:linear-gradient(90deg,#10b9811a,#10b98133 50%,#10b9811a);bottom:0;left:0;position:absolute;right:0;top:0}.range-bar-indicator{background-color:#fff;border:2px solid;border-radius:50%;box-shadow:0 2px 4px #0000001a;height:.75rem;position:absolute;top:50%;transform:translateY(-50%);transition:all var(--transition-normal);width:.75rem;z-index:2}.range-bar-indicator:before{background-color:currentColor;border-radius:50%;content:"";height:.25rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:.25rem}.out-of-bounds-arrow{background-color:#fff;border:1px solid #ef4444;border-radius:.25rem;box-shadow:0 1px 3px #0000001a;color:#ef4444;font-size:.875rem;font-weight:700;padding:.125rem .25rem;position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;z-index:3}.out-of-bounds-arrow.left{right:1rem}.out-of-bounds-arrow.right{left:1rem}.range-labels{align-items:center;color:var(--color-gray-500);display:flex;font-size:.75rem;justify-content:space-between;padding:0 .375rem}.range-max,.range-min{background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);font-weight:500;padding:.125rem .375rem}.range-status{align-items:center;border-radius:var(--border-radius);display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem .75rem}.range-status.in-range{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.range-status.out-of-range{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.status-icon{font-size:1rem;font-weight:700}.status-text{flex:1 1}.srm-color-comparison{border-top:1px solid var(--color-gray-200);margin-top:.75rem;padding-top:.75rem}.color-swatch-container{align-items:center;display:flex;gap:.5rem}.color-swatch{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--color-gray-300),0 2px 4px #0000001a;flex-shrink:0;height:2rem;width:2rem}.swatch-label{color:var(--color-gray-600);font-size:.75rem;font-weight:500}.range-indicators{display:flex;flex-direction:column;gap:1rem}.detailed-style-analysis,.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}.detailed-style-analysis h5{border-bottom:1px solid var(--color-gray-300);color:var(--color-gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.style-specs-with-ranges .specs-header{align-items:center;border-bottom:1px solid var(--color-gray-300);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.style-specs-with-ranges .specs-title{color:var(--color-gray-800);font-size:1rem;font-weight:600}.style-range-indicator:hover .range-bar-indicator{box-shadow:0 4px 8px #00000026;transform:translateY(-50%) scale(1.1)}.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{align-items:flex-start;flex-direction:column;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{height:.625rem;width:.625rem}.range-indicators.compact .range-status{font-size:.8rem;padding:.375rem .5rem}@media (max-width:768px){.range-header{align-items:flex-start;flex-direction:column;gap:.25rem}.range-values{justify-content:space-between;width:100%}.target-range{font-size:.8rem}.range-status{align-items:flex-start;flex-direction:column;gap:.25rem;text-align:left}.out-of-bounds-arrow{align-self:center;margin-top:.25rem;position:static;transform:none}.range-header,.style-specs-with-ranges .specs-header{align-items:flex-start;flex-direction:column;gap:.5rem}}@media (max-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{height:.625rem;width:.625rem}.range-status{font-size:.8rem;padding:.375rem .5rem}}@media (prefers-contrast:high){.range-bar-track,.style-range-indicator{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,.range-status,.style-range-indicator{transition:none}.style-range-indicator:hover .range-bar-indicator{transform:translateY(-50%)}}@media print{.style-range-indicator{background-color:#fff;border:1px solid #000;break-inside:avoid;margin-bottom:1rem;page-break-inside:avoid}.range-bar-track{background-color:#f0f0f0;border:1px solid #000}.range-bar-indicator{background-color:#000;border-color:#000}.range-status{background-color:#fff}.color-swatch,.range-status{border:1px solid #000}}@keyframes rangeIndicatorFadeIn{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.style-range-indicator{animation:rangeIndicatorFadeIn .3s ease-out}.range-bar-indicator:focus-visible{outline:2px solid var(--color-amber-600);outline-offset:2px}.style-range-indicator:hover:after{background-color:var(--color-gray-800);border-radius:var(--border-radius-sm);bottom:100%;color:#fff;content:attr(data-tooltip);font-size:.75rem;left:50%;padding:.5rem;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.range-bar-indicator[data-extreme=true]{animation:pulse 2s infinite;background-color:#fbbf24;border-color:#f59e0b}.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;font-size:18px;font-weight:600;margin:0}.ai-suggestions-toggle{background:none;border:none;color:#2d3748;cursor:pointer;font-size:16px;font-weight:700;margin-bottom:12px;margin-left:75px;margin-top:12px;padding:0 0 0 12px;white-space:nowrap}.ai-suggestions-toggle:hover{background-color:#f7fafc}.ai-suggestions-content{background:#f9f9f9;padding:15px}.header-controls{align-items:center;display:flex;flex-wrap:wrap;gap:25px;margin-top:15px}.style-display{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;display:flex;gap:8px;padding:8px 12px}.style-label{color:#666;font-size:14px}.style-value{color:#333;font-size:14px;font-weight:700}.metric-label{color:#666;font-weight:700}.metric-value{color:#666}.metric-value.improved{color:#28a745}.ai-suggestions-loading{color:#4a5568;padding:20px;text-align:center}.ai-suggestions-error{background:#fed7d7;border-radius:6px;color:#e53e3e;margin-bottom:15px;padding:20px;text-align:center}.ai-suggestions-success{color:#28a745;padding:20px;text-align:center}.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;font-size:18px;font-weight:600;margin:0 0 15px}.optimization-subtitle{color:#2d3748;font-size:14px;margin-bottom:20px}.optimization-subtitle strong{color:#28a745}.metrics-improvement{background:#f8f9fa;border-radius:6px;margin-bottom:15px;padding:15px}.metrics-improvement h4{color:#2d3748;font-size:16px;margin-bottom:15px}.metrics-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.metric-item{text-align:center}.metric-label{color:#718096;font-size:12px;font-weight:600;margin-bottom:5px;text-transform:uppercase}.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;font-size:16px;margin:0 0 15px}.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.adjunct,.change-item.other{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;font-size:12px;font-style:italic;margin-top:4px}.style-info{background-color:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:15px;padding:12px}.recipe-metrics{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:15px 0}.recipe-metric{background-color:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;padding:12px;text-align:center}.recipe-metric-value{color:#666;font-size:16px;font-weight:600}.recipe-metric-value.improved{color:#28a745}.metric-checkmark{font-size:12px;margin-left:5px}.analysis-results{background:#f8f9fa}.analysis-results,.suggestions-list{border:1px solid #e2e8f0;border-radius:6px;margin-bottom:20px;padding:20px}.suggestions-list{background:#fff}.no-suggestions-message{background:#f8f9fa;border-radius:6px;color:#666;font-size:14px;margin:15px 0;padding:20px;text-align:center}.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{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.individual-suggestion h5{color:#2d3748;font-size:16px;font-weight:600;margin:0}.individual-suggestion-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.individual-suggestion p{color:#4a5568;line-height:1.5;margin:10px 0}.individual-suggestion-changes{background:#f8f9fa;border-radius:4px;margin:15px 0;padding:10px}.individual-suggestion-actions,.optimization-actions{display:flex;gap:10px;margin-top:15px}.optimization-actions{justify-content:center}.btn-apply{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background-color .2s}.btn-apply:hover:not(:disabled){background:#218838}.btn-apply:disabled{background:#6c757d;cursor:not-allowed}.btn-secondary{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background-color .2s}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-analyze{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background-color .2s}.btn-analyze:hover:not(:disabled){background:#0056b3}.btn-analyze:disabled{background:#6c757d;cursor:not-allowed}.suggestions-section h4{color:#2d3748;font-size:16px;margin-bottom:15px}.suggestion-item{background:#fff;border:1px solid #ddd;border-radius:6px;margin-bottom:15px;padding:15px}.suggestion-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.suggestion-title{color:#2d3748;font-size:16px;margin:0}.confidence-badge{border-radius:3px;font-size:12px;font-weight:700;padding:2px 6px}.confidence-high{background:#d4edda;color:#28a745}.confidence-medium{background:#fff3cd;color:#856404}.confidence-low{background:#f8d7da;color:#721c24}.suggestion-description{color:#4a5568;line-height:1.5;margin:10px 0}.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.adjunct,.suggestion-change-item.other{border-left-color:#6b7280}.suggestion-actions{display:flex;gap:10px;margin-top:15px}@media (max-width:768px){.metrics-grid{gap:10px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.optimization-actions,.suggestion-actions,.suggestion-header{flex-direction:column}.suggestion-header{align-items:flex-start;gap:8px}.ai-suggestions-container{padding:15px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes highlight{0%{background-color:var(--color-amber-100)}to{background-color:initial}}@keyframes expandDown{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}@keyframes collapseUp{0%{max-height:1000px;opacity:1}to{max-height:0;opacity:0}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(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:initial;transform:scale(1)}}.loading-indicator .spinner,.loading-spinner,.status-indicator .spinner{animation:spin 1s linear infinite}.unsaved-indicator{animation:pulse 2s infinite}.highlight{animation:highlight 1.5s ease}.current-vs-target,.style-specs-with-match,.style-suggestions{animation:fadeIn .3s ease-out}.style-analysis-expanded .style-match-result{animation:expandDown .3s ease-out}.ingredient-row{transition:background-color var(--transition-normal)}.ingredient-row.updating{animation:ingredientUpdate 1s ease;background-color:#f0f9ff}.ingredient-row.updated{animation:ingredientUpdated .5s ease}.ingredient-row.error{animation:shake .5s ease;background-color:var(--color-red-50);border:1px solid var(--color-red-200)}.match-item.processing{opacity:.7;pointer-events:none}.match-item.processing:after{animation:spin 1s linear infinite;border:2px solid #3b82f6;border-radius:50%;border-top-color:#0000;content:"";height:1rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:1rem}.ingredient-card.updating{opacity:.8;transform:scale(.98);transition:all .3s ease}.edit-cell-container.saving .edit-cell-input{opacity:.7;pointer-events:none}.edit-cell-container.saving:after{animation:spin 1s linear infinite;border-top:2px solid var(--color-amber-300);border:2px solid var(--color-amber-300);border-radius:50%;border-top-color:var(--color-amber-600);content:"";height:1rem;position:absolute;right:.25rem;top:50%;transform:translateY(-50%);width:1rem}.recipe-card{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.recipe-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.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{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.metric-indicator{transition:all var(--transition-normal)}.metric-indicator:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.style-analysis-compact:hover .metric-indicator.in-spec{background-color:#bbf7d0;color:#15803d}.style-analysis-compact:hover .metric-indicator.out-of-spec{background-color:#fecaca;color:#dc2626}.collapse-indicator,.expand-indicator{transition:transform var(--transition-normal)}.expanded-header:hover .collapse-indicator,.style-analysis-compact:hover .expand-indicator{color:var(--color-amber-600);transform:scale(1.1)}.adjunct-time-input,.alpha-input,.amount-input,.color-input,.form-control,.input-control,.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{background-color:var(--color-gray-100);color:var(--color-gray-600)}.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{background:#e5e7eb;color:#374151}.error-dismiss{transition:background-color var(--transition-normal)}.error-dismiss:hover{background-color:var(--color-red-100)}.ingredients-table.updating{opacity:.9;pointer-events:none;position:relative}.ingredients-table.updating:before{background-color:#fffc;border-radius:var(--border-radius);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:10}.ingredients-table.updating:after{background-color:#fff;border-radius:var(--border-radius);box-shadow:0 4px 6px #0000001a;color:var(--color-amber-700);content:"Updating...";font-weight:600;left:50%;padding:1rem 2rem;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:11}.style-analysis-compact.loading{opacity:.7;pointer-events:none}.style-analysis-compact.loading:after{animation:spin 1s linear infinite;border-top:2px solid var(--color-gray-300);border:2px solid var(--color-gray-300);border-radius:50%;border-top-color:var(--color-amber-600);content:"";height:1rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:1rem}.status-indicator .spinner{animation:spin 1s linear infinite;border:2px solid;border-radius:50%;border-top:2px solid #0000;height:1rem;width:1rem}.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){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.button-spinner,.loading-indicator .spinner,.loading-spinner,.status-indicator .spinner{animation:none}.expanded-header:hover .collapse-indicator,.ingredient-add-button:active,.metric-indicator:hover,.recipe-card:hover,.style-analysis-compact:hover .expand-indicator,.suggestion-item:hover{transform:none}.current-vs-target,.highlight,.ingredient-row.error,.ingredient-row.updated,.ingredient-row.updating,.style-analysis-expanded .style-match-result,.style-specs-with-match,.style-suggestions{animation:none}.adjunct-time-input,.alpha-input,.amount-input,.balance-meter-progress,.clear-button,.collapse-indicator,.color-input,.edit-cell-input,.editable-cell,.error-dismiss,.expand-indicator,.expanded-header,.form-control,.ingredient-row,.ingredients-table tr,.input-control,.metric-indicator,.panel-close,.style-analysis-compact,.style-analysis-container,.style-option,.suggestion-item,.time-input{transition:none}}@media print{*,:after,:before{animation:none!important;transition:none!important}.button-spinner,.loading-indicator .spinner,.loading-spinner,.status-indicator .spinner{display:none}.metric-indicator:hover,.recipe-card:hover,.suggestion-item: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-indicator .spinner,.loading-spinner,.status-indicator .spinner{border-width:3px}.expanded-header:focus,.recipe-card:focus,.style-analysis-compact:focus,.suggestion-item:focus{outline:3px solid var(--color-amber-600);outline-offset:3px}}@media (hover:none) and (pointer:coarse){.expanded-header:hover .collapse-indicator,.metric-indicator:hover,.recipe-card:hover,.style-analysis-compact:hover .expand-indicator,.suggestion-item:hover{background-color:inherit;color:inherit;transform:none}.clear-button,.error-dismiss,.panel-close{min-height:44px;min-width:44px}.metric-indicator,.recipe-card,.suggestion-item{transition:none}}.view-recipe-container{margin:0 auto;max-width:1400px;padding:1.5rem}.view-recipe-content{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.view-recipe-top-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.view-recipe-brew-sessions,.view-recipe-details{display:flex;flex-direction:column;gap:1rem}.view-recipe-ingredients-section{width:100%}.compact-recipe-notes,.recipe-section{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.recipe-section{margin-bottom:1rem}.section-title{border-bottom:1px solid #f3f4f6;color:var(--color-amber-800)}.detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.detail-item{display:flex;flex-direction:column}.detail-label{color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.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;font-size:1.125rem}.ingredient-name{font-weight:500}.recipe-view-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.recipe-action-button{align-items:center;border:1px solid #0000;border-radius:.375rem;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.5rem 1rem;text-align:center;transition:background-color .2s,border-color .2s,transform .1s;white-space:nowrap}.recipe-action-button:active{transform:translateY(1px)}.recipe-action-button:disabled{cursor:not-allowed;opacity:.6}.recipe-action-button.edit-button{background-color:#d97706;color:#fff}.recipe-action-button.edit-button:hover:not(:disabled){background-color:#b45309}.recipe-action-button.clone-button{background-color:#fbbf24;color:#fff}.recipe-action-button.clone-button:hover:not(:disabled){background-color:#f59e0b}.recipe-action-button.delete-button{background-color:#fff;border-color:#ef4444;color:#ef4444}.recipe-action-button.delete-button:hover:not(:disabled){background-color:#fef2f2;color:#dc2626}.recipe-action-button.brew-button{background-color:#10b981;color:#fff;margin-left:auto}.recipe-action-button.brew-button:hover:not(:disabled){background-color:#059669}@media (max-width:640px){.recipe-view-actions{gap:.5rem}.recipe-action-button{font-size:.75rem;padding:.4rem .8rem}.recipe-action-button.brew-button{margin-left:0}}@media (max-width:1024px){.view-recipe-top-section{gap:1rem;grid-template-columns:1fr}.view-recipe-container{padding:1rem}}@media (max-width:768px){.view-recipe-container{padding:.75rem}.view-recipe-content{gap:1rem}.view-recipe-top-section{gap:.75rem}}.section-title-container{align-items:center;display:flex;gap:1rem}.brewing-summary{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.summary-stat{background-color:#f3f4f6;border-radius:12px;color:#374151;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.summary-stat.active{background-color:#8b5cf61a;color:#8b5cf6}.summary-stat.completed{background-color:#0596691a;color:#059669}.summary-stat.rating{background-color:#fbbf241a;color:#f59e0b}.summary-stat.success{background-color:#10b9811a;color:#10b981}.brewing-stats-overview{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.stats-title{color:#374151;font-size:1rem;font-weight:600;margin:0 0 .75rem}.stats-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.stat-item{align-items:center;display:flex;flex-direction:column;padding:.5rem;text-align:center}.stat-label{color:#6b7280;font-size:.675rem;font-weight:500;margin-bottom:.25rem}.stat-value{color:#374151;font-size:.875rem;font-weight:600}.session-status-badge{border-radius:12px;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize}.brew-sessions-list{display:flex;flex-direction:column;gap:.75rem}.brew-session-item{align-items:flex-start;background-color:#fafafa;border:1px solid #e5e7eb;border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem}.session-info{flex-grow:1;min-width:0}.session-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.session-name{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.session-details{display:flex;flex-direction:column;gap:.25rem}.session-date,.session-duration{color:#6b7280;font-size:.75rem}.session-metrics{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.metric{background-color:#f3f4f6;border-radius:.25rem;color:#4b5563;font-size:.75rem;padding:.25rem .5rem}.session-rating{align-items:center;display:flex;gap:.25rem;margin-top:.5rem}.star{color:#d1d5db;font-size:.875rem}.star.filled{color:#fbbf24}.session-actions{flex-shrink:0;margin-left:1rem}.empty-state{padding:2rem 1rem}.empty-state p{margin-bottom:1rem}.new-session-action{border-top:1px solid #f3f4f6;margin-top:1rem;padding:1rem 0;text-align:center}.compact-recipe-header-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;padding:1.5rem;position:relative}.compact-recipe-header-main{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.compact-recipe-header-info{flex-grow:1;min-width:0}.compact-recipe-header-title{word-wrap:break-word;color:var(--color-amber-800);font-size:1.5rem;font-weight:700;line-height:1.3;margin:0 0 .25rem}.compact-recipe-header-style{color:var(--color-amber-700);font-size:1rem;font-style:italic;margin:0 0 .5rem}.compact-recipe-header-version-info{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.recipe-current-version,.recipe-derived-versions,.recipe-version-parent{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.version-label{color:#6b7280;font-size:.75rem;font-weight:500}.version-badge{background-color:#fffbeb;border:1px solid #fcd34d;border-radius:12px;color:#b45309;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.derived-recipe-link,.parent-recipe-link{color:var(--color-amber-600);font-size:.75rem;font-weight:500;text-decoration:none}.derived-recipe-link:hover,.parent-recipe-link:hover{color:var(--color-amber-700);text-decoration:underline}.derived-recipes{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.more-versions{color:#6b7280;font-size:.675rem;font-style:italic}.compact-recipe-header-swatch{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #e5e7eb;flex-shrink:0;height:3rem;margin-left:1rem;width:3rem}.compact-recipe-header-metrics{grid-gap:.75rem;border-top:1px solid #f3f4f6;display:grid;gap:.75rem;grid-template-columns:repeat(5,1fr);padding:1rem 0 0}.compact-recipe-header-metric{text-align:center}.compact-recipe-header-metric-value{color:var(--color-amber-800);font-size:1.125rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.compact-recipe-header-metric-label{color:#6b7280;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.compact-recipe-header-container .recipe-card-actions{border-top:1px solid #f3f4f6;margin-top:1rem;padding-top:1rem}.compact-recipe-header-delete-button{background-color:#fff;border:1px solid #ef4444;border-radius:.375rem;bottom:1rem;color:#ef4444;cursor:pointer;font-size:.75rem;font-weight:500;padding:.4rem .8rem;position:absolute;right:1rem;text-align:center;transition:background-color .2s,border-color .2s,transform .1s;white-space:nowrap}.compact-recipe-header-delete-button:hover:not(:disabled){background-color:#fef2f2;color:#dc2626;transform:translateY(-1px)}.compact-recipe-header-delete-button:active{transform:translateY(0)}.compact-recipe-header-delete-button:disabled{cursor:not-allowed;opacity:.6}.ingredients-compact-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;padding:1.5rem}.ingredients-compact-grid{display:flex;flex-direction:column;gap:1.5rem}.ingredient-type-section{margin-bottom:1rem}.ingredient-type-section:last-child{margin-bottom:0}.ingredient-type-title{border-bottom:1px solid #f3f4f6;color:var(--color-amber-700);font-size:1rem;margin-bottom:.75rem;padding-bottom:.5rem;text-transform:capitalize}.ingredient-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.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{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.ingredient-card-name{flex-grow:1;min-width:0}.ingredient-card-name strong{color:#1f2937;display:block;font-size:1rem;margin-bottom:.25rem}.ingredient-manufacturer,.ingredient-origin,.ingredient-subtype{color:#6b7280;display:block;font-size:.75rem;margin-top:.25rem}.ingredient-card-amount{color:var(--color-amber-800);font-size:1rem;font-weight:600;margin-left:1rem;text-align:right}.ingredient-card-details{display:flex;flex-direction:column;gap:.5rem}.ingredient-card-info{display:flex;flex-wrap:wrap;gap:1rem}.ingredient-detail{color:#4b5563;font-size:.875rem}.ingredient-card-spec{align-items:center;display:flex;gap:.5rem;margin-top:.5rem}.spec-label{color:#6b7280;font-size:.75rem;font-weight:500}.spec-value{color:#1f2937;font-size:.875rem;font-weight:600}.ingredient-card-yeast{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.yeast-attenuation{align-items:center;display:flex;gap:.5rem}.enhanced-indicator{font-size:.75rem;margin-left:.25rem}.compact-recipe-info-panel{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;padding:1.5rem}.compact-recipe-info-title{border-bottom:1px solid #f3f4f6;color:var(--color-amber-800);font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem}.compact-recipe-info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:1rem}.compact-recipe-info-item{display:flex;flex-direction:column}.compact-recipe-info-label{color:#6b7280;font-size:.75rem;font-weight:500;margin-bottom:.25rem}.compact-recipe-info-value{color:#1f2937;font-size:1rem;font-weight:600}.compact-recipe-description{border-top:1px solid #f3f4f6;color:#4b5563;font-size:.875rem;line-height:1.6;margin-top:1rem;padding-top:1rem}@media (max-width:768px){.compact-recipe-header-metrics{gap:.5rem;grid-template-columns:repeat(3,1fr)}.compact-recipe-header-container .recipe-card-actions{flex-wrap:wrap;gap:.25rem}.compact-recipe-header-container .recipe-card-button{font-size:.75rem;padding:.4rem .7rem}.compact-recipe-header-delete-button{bottom:.75rem;font-size:.675rem;padding:.3rem .6rem;right:.75rem}.ingredient-cards{grid-template-columns:1fr}.compact-recipe-info-grid{grid-template-columns:repeat(2,1fr)}.ingredient-card-header{align-items:flex-start;flex-direction:column}.ingredient-card-amount{margin-left:0;margin-top:.5rem;text-align:left}}@media (max-width:480px){.compact-recipe-header-metrics{gap:.5rem;grid-template-columns:1fr}.compact-recipe-info-grid{grid-template-columns:1fr}.ingredient-card-info{flex-direction:column;gap:.25rem}.compact-recipe-header-container .recipe-card-button{font-size:.675rem;padding:.3rem .6rem}.compact-recipe-header-delete-button{bottom:.5rem;font-size:.625rem;padding:.25rem .5rem;right:.5rem}}.public-recipes-container{margin:0 auto;max-width:1600px;padding:2rem 1rem}.public-recipes-header{align-items:flex-start;display:flex;flex-direction:column;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}@media (min-width:768px){.public-recipes-header{align-items:center;flex-direction:row}}.public-recipes-title{color:#1f2937;font-size:1.5rem;font-weight:700}.search-and-sort-container{margin-bottom:1.5rem}.search-input-container{max-width:400px;position:relative;width:100%}.search-input{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:1rem;height:40px;padding:.5rem 2.5rem;transition:border-color var(--transition-normal),box-shadow var(--transition-normal);width:100%}.search-input:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.search-icon-container{align-items:center;bottom:0;display:flex;left:0;padding-left:.75rem;pointer-events:none;position:absolute;top:0}.search-icon{color:#9ca3af;flex-shrink:0;height:20px;width:20px}.search-clear-container{align-items:center;bottom:0;display:flex;padding-right:.75rem;position:absolute;right:0;top:0}.search-clear-button{align-items:center;display:flex;justify-content:center;padding:0}.search-clear-icon{color:#9ca3af;flex-shrink:0;height:20px;transition:color var(--transition-normal);width:20px}.search-clear-icon:hover{color:#6b7280}.search-results-count{color:#6b7280;font-size:.875rem;margin-top:1rem}.sort-container,.style-filter-container{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.sort-label{font-weight:500;white-space:nowrap}.sort-label,.sort-select{color:var(--color-gray-700);font-size:.875rem}.sort-select{background-color:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);cursor:pointer;min-width:200px;padding:.5rem 1rem;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.sort-select:focus{border-color:var(--color-amber-600);box-shadow:0 0 0 3px #d977061a;outline:none}.sort-select:hover{border-color:var(--color-gray-400)}@media (min-width:768px){.search-and-sort-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2rem}.search-container{flex:1 1;margin-bottom:0;min-width:300px}.sort-container,.style-filter-container{flex-shrink:0;margin-bottom:0}.search-results-count{flex-basis:100%;margin-top:.75rem}}.loading-state{padding:2.5rem 1rem;text-align:center}.error-state{background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--border-radius-sm);color:#dc2626;margin-top:1rem;padding:1rem 1.5rem}.empty-state,.no-search-results{padding:2.5rem 1rem}.no-search-results{text-align:center}.no-search-results p{color:#6b7280;margin-bottom:.5rem}.clear-search-link{background:none;border:none;color:var(--color-amber-600);cursor:pointer;font-size:inherit;margin-top:.5rem;padding:0;text-decoration:underline}.clear-search-link:hover{color:var(--color-amber-700)}.recipes-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:1rem}@media (max-width:768px){.recipes-grid{gap:1rem;grid-template-columns:1fr}}.public-recipe-card-wrapper{position:relative}.public-recipe-actions{align-items:center;border-top:1px solid #f3f4f6;display:flex;justify-content:space-between;margin-top:1rem;padding-top:1rem}.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);border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;padding:.5rem 1rem;text-align:center;transition:background-color var(--transition-normal),border-color var(--transition-normal)}.clone-recipe-button:hover{background-color:#059669;border-color:#059669}.pagination-container{align-items:center;display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:1rem}.pagination-button{background-color:#f9fafb;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);color:var(--color-gray-700);font-size:.875rem;padding:.5rem 1rem;transition:background-color var(--transition-normal),border-color var(--transition-normal)}.pagination-button:hover:not(:disabled){border-color:var(--color-gray-400)}.pagination-button:disabled{cursor:not-allowed}.pagination-info{color:var(--color-gray-700);font-size:.875rem;padding:.5rem 1rem}.compact-recipe-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:transform .2s,box-shadow .2s}.compact-recipe-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.compact-recipe-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.compact-recipe-info{flex-grow:1;min-width:0}.compact-recipe-name{word-wrap:break-word;color:var(--color-amber-800);font-size:1.125rem;font-weight:600;line-height:1.3;margin:0 0 .25rem}.compact-recipe-style{color:var(--color-amber-700);font-size:.875rem;font-style:italic;margin:0}.compact-color-swatch{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #e5e7eb;flex-shrink:0;height:3rem;margin-left:1rem;width:3rem}.compact-recipe-metrics{grid-gap:.75rem;border-bottom:1px solid #f3f4f6;border-top:1px solid #f3f4f6;display:grid;gap:.75rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem;padding:1rem 0}.compact-metric{text-align:center}.compact-metric-value{color:var(--color-amber-800);font-size:1rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.compact-metric-label{color:#6b7280;font-size:.65rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.compact-card-actions{display:flex;gap:.5rem}.compact-action-button{border:none;border-radius:var(--border-radius-sm);cursor:pointer;flex:1 1;font-size:.75rem;font-weight:500;padding:.5rem .75rem;text-align:center;transition:background-color var(--transition-normal)}.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-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.unit-toggle-button{align-items:center;background-color:#fff;border:2px solid #e5e7eb;border-radius:.5rem;cursor:pointer;display:flex;padding:1rem;transition:all .2s ease}.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{cursor:not-allowed;opacity:.6}.unit-toggle-icon{font-size:2rem;margin-right:1rem}.unit-toggle-content{display:flex;flex-direction:column}.unit-toggle-title{color:#1f2937;font-size:1.125rem;font-weight:600;margin-bottom:.25rem}.unit-toggle-description{color:#6b7280;font-size:.875rem}.subsection-title{color:#374151;font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.section-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin-bottom:1rem}.error-banner,.success-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}.error-content,.success-content{align-items:center;display:flex;justify-content:space-between}.error-icon,.success-icon{margin-right:.5rem}.success-message{color:#065f46;font-weight:500}.error-message{color:#dc2626;font-weight:500}.error-dismiss,.success-dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:1.25rem;margin-left:1rem;padding:0}.form-help-text{color:#6b7280;font-size:.75rem;font-style:italic;margin-top:.25rem}@media (max-width:640px){.unit-toggle-container{grid-template-columns:1fr}.unit-toggle-button{justify-content:center;text-align:center}.unit-toggle-icon{margin-right:.5rem}}.settings-container{margin:0 auto;max-width:1200px;padding:2rem}.settings-header{margin-bottom:2rem;text-align:center}.settings-title{color:#1f2937;font-size:2rem;font-weight:700;margin-bottom:.5rem}.settings-subtitle{color:#6b7280;font-size:1.125rem}.settings-layout{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:250px 1fr}.settings-tabs{display:flex;flex-direction:column;gap:.5rem}.settings-tab{align-items:center;background-color:initial;border:none;border-radius:.5rem;cursor:pointer;display:flex;padding:.75rem 1rem;text-align:left;transition:background-color .2s}.settings-tab:hover{background-color:#f3f4f6}.settings-tab.active{background-color:#fffbeb;color:#d97706}.tab-icon{font-size:1.25rem;margin-right:.75rem}.tab-label{font-weight:500}.settings-content{background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem}.settings-section{margin-bottom:2rem}.section-title{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem}.settings-form{display:flex;flex-direction:column;gap:1rem}.form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.75rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.form-actions{margin-top:1rem}.btn{transition:all .2s}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn:disabled{cursor:not-allowed;opacity:.6}.checkbox-group{display:flex;flex-direction:column;gap:1rem}.checkbox-label{align-items:flex-start;cursor:pointer;display:flex;gap:.75rem}.checkbox-content{display:flex;flex-direction:column}.checkbox-title{color:#374151;font-weight:500;margin-bottom:.25rem}.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-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.info-item{display:flex;flex-direction:column}.info-label{color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.info-value{color:#1f2937;font-weight:500}.status-badge{background-color:#10b981;color:#fff;display:inline-block;font-weight:500}.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{align-items:center;color:#6b7280;display:flex;font-size:1.125rem;justify-content:center;min-height:200px}@media (max-width:768px){.settings-container{padding:1rem}.settings-layout{gap:1rem;grid-template-columns:1fr}.settings-tabs{flex-direction:row;overflow-x:auto;padding-bottom:.5rem}.settings-tab{min-width:fit-content;white-space:nowrap}.info-grid{grid-template-columns:1fr}}.modal-overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background:#fff;border-radius:.5rem;box-shadow:0 10px 25px #0000004d;max-width:400px;padding:2rem;text-align:center;width:90%}.modal-content h3{color:#dc2626;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.modal-content p{color:#374151;line-height:1.5;margin:0 0 1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:center}.modal-actions .btn{flex:1 1;max-width:150px}.ingredient-manager-container{background-color:initial;display:flex;flex-direction:column;height:100vh;margin:0;max-height:100vh;overflow:hidden;padding:2rem 1rem;width:100%}.ingredient-manager-header{margin-bottom:2rem;text-align:center}.page-title{color:#1f2937;font-size:2.5rem;font-weight:700;margin:0 0 .5rem}.page-subtitle{color:#6b7280;font-size:1rem;margin:0}.ingredient-manager-layout{grid-gap:2rem;display:grid;flex:1 1;gap:2rem;grid-template-columns:1fr 1fr;min-height:0;overflow:hidden}.card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.ingredient-manager-layout .card{margin-bottom:0}.ingredient-form-card{height:fit-content}.ingredients-list-card{display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden}.card-title{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.75rem}.ingredient-form{gap:1.5rem}.form-group,.ingredient-form{display:flex;flex-direction:column}.form-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-input,.form-select,.form-textarea{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.form-textarea{min-height:80px;resize:vertical}.type-specific-fields{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem}.grain-fields{background-color:#fffbeb;border-color:#fcd34d;border-left:4px solid #d97706}.hop-fields{background-color:#f0fdf4;border-color:#bbf7d0;border-left:4px solid #10b981}.yeast-fields{background-color:#fefce8;border-color:#fde047;border-left:4px solid #eab308}.section-title{color:#374151;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-grid .full-width{grid-column:span 2}.btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;justify-content:center;padding:.75rem 1.5rem;text-align:center;transition:all .2s ease}.btn-primary{background-color:#d97706;color:#fff}.btn-primary:hover:not(:disabled){background-color:#b45309}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background-color:#fff;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.alert{align-items:center;border-radius:.5rem;display:flex;font-weight:500;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.alert-error{background-color:#fee2e2;border:1px solid #fecaca;color:#dc2626}.alert-error:before{content:"⚠️";flex-shrink:0}.alert-success{background-color:#dcfce7;border:1px solid #bbf7d0;color:#059669}.alert-success:before{content:"✅";flex-shrink:0}.card-header{align-items:center;display:flex;justify-content:space-between}.card-header,.search-container{flex-grow:0;flex-shrink:0;margin-bottom:1rem}.search-container{height:auto;max-height:150px;position:relative}.search-input-enhanced{width:100%}.search-input-enhanced .searchable-select-input{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.search-input-enhanced .searchable-select-input:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.search-clear-btn{font-size:.875rem;margin-top:.5rem;padding:.5rem 1rem}.search-input-enhanced .searchable-select-dropdown{background-color:#fff;border:1px solid #d1d5db;border-radius:0 0 .375rem .375rem;border-top:none;box-shadow:0 4px 6px #0000001a;max-height:300px}.search-input-enhanced .searchable-select-option{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:.75rem;transition:background-color .15s ease}.search-input-enhanced .searchable-select-option.highlighted,.search-input-enhanced .searchable-select-option:hover{background-color:#fef3c7}.search-input-enhanced .searchable-select-option .option-name{color:#1f2937;font-weight:500;margin-bottom:.25rem}.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;font-size:.75rem;font-style:italic;margin-top:.25rem}.search-input-enhanced .search-highlight{background-color:#fbbf24;border-radius:.25rem;color:#92400e;font-weight:600;padding:.125rem .25rem}.ingredients-list{flex:1 1;max-height:calc(100vh - 300px);min-height:0;overflow-x:hidden;overflow-y:auto}.empty-state{color:#6b7280;font-style:italic;padding:3rem 1rem;text-align:center}.ingredient-items{display:flex;flex-direction:column;gap:1rem}.ingredient-item{background:#fff;border:1px solid #e5e7eb;border-left:4px solid #d97706;border-radius:.75rem;padding:1.25rem;transition:transform .2s ease,box-shadow .2s ease,background-color .3s ease}.ingredient-item:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.ingredient-item.highlighted{animation:highlightPulse 2s ease-in-out;background-color:#fefce8;border-color:#eab308;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{display:flex;flex-direction:column;gap:.75rem}.ingredient-header{display:flex;flex-direction:column;gap:.5rem}.ingredient-name{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0}.ingredient-badges{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.type-badge{border-radius:9999px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize}.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{background-color:#f3f4f6;border-radius:.375rem;color:#374151;font-size:.75rem;font-weight:500;padding:.25rem .5rem;text-transform:capitalize}.ingredient-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.ingredient-details{color:#6b7280;display:flex;flex-wrap:wrap;font-size:.8125rem;gap:1rem}.ingredient-details span{background:#f9fafb;border-radius:.25rem;font-weight:500;padding:.25rem .5rem}@media (max-width:768px){.ingredient-manager-container{padding:1rem .5rem}.ingredient-manager-layout{gap:1.5rem;grid-template-columns:1fr}.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}.ingredient-badges,.ingredient-header{align-items:flex-start}.search-container{margin-bottom:1rem}.search-clear-btn{margin-top:.75rem;width:100%}}@media (max-width:640px){.ingredient-manager-container{padding:1rem .5rem}.card{border-radius:.5rem}.card,.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;display:flex;font-size:.875rem;gap:.25rem;margin-top:.25rem}.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{outline:2px solid #d97706;outline-offset:2px}.search-input-enhanced .searchable-select-input:focus-visible{outline:2px solid #d97706;outline-offset:2px}.search-input-enhanced .searchable-select-option:focus-visible{outline:2px solid #d97706;outline-offset:-2px}@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){.btn,.expand-icon,.form-input,.form-select,.form-textarea,.ingredient-item,.ingredient-type-header.clickable,.search-input-enhanced .searchable-select-input,.search-input-enhanced .searchable-select-option{transition:none}.button-spinner{animation:none}.ingredient-item:hover{transform:none}.ingredient-item.highlighted,.ingredient-type-items{animation:none}}.ingredients-list::-webkit-scrollbar,.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar{width:6px}.ingredients-list::-webkit-scrollbar-track,.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-track{background:#f3f4f6}.ingredients-list::-webkit-scrollbar-thumb,.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.ingredients-list::-webkit-scrollbar-thumb:hover,.search-input-enhanced .searchable-select-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.search-input-enhanced .searchable-select-no-results{background-color:#f9fafb;color:#6b7280;font-style:italic;padding:1rem;text-align:center}.search-input-enhanced .searchable-select-loading{align-items:center;color:#d97706;display:flex;gap:.5rem;justify-content:center;padding:1rem;text-align:center}.search-input-enhanced .searchable-select-loading:before{animation:spin 1s linear infinite;border:2px solid #d97706;border-radius:50%;border-top-color:#0000;content:"";height:1rem;width:1rem}.search-help{color:#6b7280;font-size:.75rem;font-style:italic;margin-top:.5rem}.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{margin-top:1px;position:absolute;width:100%;z-index:50}.search-input-enhanced .searchable-select-option:last-child{border-bottom:none}.search-input-enhanced .searchable-select-option .type-badge{font-size:.625rem;margin-left:.5rem;padding:.125rem .5rem}.search-input-enhanced .search-highlight{box-decoration-break:clone;-webkit-box-decoration-break:clone}.search-input-enhanced .searchable-select-option .status-indicator{background-color:#f3f4f6;border-radius:.25rem;color:#374151;font-size:.75rem;margin-left:auto;padding:.125rem .375rem}@media (max-width:640px){.search-input-enhanced .searchable-select-dropdown{border-radius:.75rem;bottom:1rem;box-shadow:0 10px 25px #0003;left:1rem;max-height:50vh;position:fixed;right:1rem;top:auto;width:auto}.search-input-enhanced .searchable-select-option{font-size:1rem;padding:1rem}.search-input-enhanced .searchable-select-option .option-name{font-size:1rem}.search-input-enhanced .searchable-select-option .option-description{font-size:.875rem;margin-top:.25rem}}.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]{background-color:#f59e0b;color:#fff}.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;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.search-clear-btn:active{box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.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{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:18px;padding:4px;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:color .2s ease}.search-clear-button:hover{background-color:#f3f4f6;color:#374151}.ingredient-type-section{margin-bottom:2rem}.ingredient-type-header{border-bottom:2px solid;margin-bottom:1rem;padding-bottom:.5rem}.ingredient-type-header.clickable{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;border-radius:.375rem;cursor:pointer;margin:-.5rem -.5rem 1rem;padding:.5rem;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.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{box-shadow:none;outline:2px solid #d97706;outline-offset:2px}.ingredient-type-header.clickable:active{background-color:#0000001a;border:none;box-shadow:none;transform:none}.ingredient-type-header.clickable *,.ingredient-type-title{-webkit-user-select:none;user-select:none}.ingredient-type-title{align-items:center;display:flex;font-size:1.2rem;font-weight:600;gap:.625rem;margin:0}.expand-icon{font-size:.875rem;margin-right:.5rem;transition:transform .2s ease;-webkit-user-select:none;user-select:none}.ingredient-type-count{color:#6b7280;font-size:.875rem;font-weight:400}.ingredient-type-items{animation:fadeIn .3s ease-in-out;display:flex;flex-direction:column;gap:.625rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.search-score-badge{background-color:#fef3c7;border-radius:.75rem;color:#92400e;font-size:.625rem;font-weight:500;padding:.125rem .5rem}.button-spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;display:inline-block;height:1rem;margin-right:.5rem;width:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.search-highlight{background-color:#fbbf24;border-radius:.25rem;color:#92400e;font-weight:600;padding:.125rem .25rem}.header{background-color:#92400e;color:#fff;padding:1.5rem 2rem}.header-container{width:100%}.header-container,.nav-group{align-items:center;display:flex}.nav-group{gap:1rem}.nav-group-left{flex:0 0 auto;justify-content:flex-start}.nav-group-center{flex:1 1;justify-content:center;margin:0 2rem}.nav-group-right{flex:0 0 auto;justify-content:flex-end;margin-left:auto}.logo{align-items:center;color:#fff;display:flex;margin-right:2rem;text-decoration:none}.logo-title{color:#fef3c7;font-size:1.25rem;font-weight:700;margin:0}.logo img{height:32px;margin-right:8px}.nav-link{border-radius:.25rem;color:#fff;padding:.25rem .5rem;text-decoration:none;transition:background-color .2s}.nav-link:hover{background-color:#ffffff1a;color:#fde68a}button.nav-link{background:none;border:none;cursor:pointer;font-size:1rem}.user-greeting{color:#fde68a;font-size:.9rem;margin-right:1rem;padding:.25rem .5rem}.footer{background-color:var(--color-amber-800);border-top:3px solid var(--color-amber-600);color:#fff;margin-top:auto}.footer-container{margin:0 auto;max-width:1200px;padding:2rem 1rem 1rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);margin-bottom:2rem}.footer-column{display:flex;flex-direction:column}.footer-column-title{border-bottom:2px solid var(--color-amber-600);color:var(--color-amber-100);font-size:1.125rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem}.footer-links{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:.75rem}.footer-link{align-items:center;color:#fffc;display:inline-flex;font-size:.875rem;gap:.25rem;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--color-amber-200);text-decoration:underline}.external-link{position:relative}.external-icon{font-size:.75rem;margin-left:.25rem;opacity:.6}.footer-version{background-color:#ffffff1a;border-radius:.375rem;color:var(--color-amber-300);display:inline-block;font-size:.75rem;font-weight:500;margin-top:.5rem;padding:.25rem .5rem}.footer-bottom{border-top:1px solid var(--color-amber-600);padding-top:1rem;text-align:center}.footer-copyright{color:#ffffffb3;font-size:.875rem;line-height:1.5;margin:0}@media (max-width:768px){.footer-content{gap:1.5rem;grid-template-columns:1fr;margin-bottom:1.5rem}.footer-container{padding:1.5rem 1rem 1rem}.footer-column-title{font-size:1rem;margin-bottom:.75rem}.footer-links li{margin-bottom:.5rem}}@media (max-width:480px){.footer-container{padding:1rem .75rem .75rem}.footer-content{gap:1rem;margin-bottom:1rem}.footer-copyright,.footer-link{font-size:.8rem}}@media (prefers-color-scheme:dark){.footer{background-color:#1f2937;border-top-color:var(--color-amber-500)}.footer-column-title{border-bottom-color:var(--color-amber-500);color:var(--color-amber-200)}.footer-bottom{border-top-color:var(--color-amber-500)}}.brew-sessions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.brew-sessions-filter{margin-bottom:1.5rem}.filter-label{color:#4b5563;display:block;font-weight:600;margin-bottom:.5rem;text-align:left}.filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;font-size:1rem;max-width:300px;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s;width:100%}.filter-select:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.brew-sessions-empty{background-color:#f9fafb;border-radius:.5rem;color:#6b7280;padding:3rem 1rem;text-align:center}.brew-sessions-empty a{color:#d97706;display:inline-block;margin-top:1rem;text-decoration:none}.brew-sessions-empty a:hover{color:#b45309;text-decoration:underline}.brew-sessions-table{background-color:#fff;border-collapse:collapse;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;overflow:hidden;width:100%}.brew-sessions-table th{background-color:#f9fafb;border-bottom:2px solid #e5e7eb;color:#4b5563;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.brew-sessions-table td{border-bottom:1px solid #e5e7eb;font-size:.875rem;padding:.75rem 1rem;vertical-align:middle}.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{font-family:monospace;white-space:nowrap}.session-actions-cell{text-align:right;white-space:nowrap}.session-action-link{color:#d97706;font-weight:500;margin-left:1rem;text-decoration:none}.session-action-link:hover{color:#b45309;text-decoration:underline}.brew-sessions-pagination{align-items:center;background-color:#fff;border-top:1px solid #e5e7eb;display:flex;font-size:.875rem;justify-content:space-between;padding:1rem}.pagination-info{color:#6b7280}.pagination-controls{align-items:center;display:flex}.pagination-button{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;color:#4b5563;cursor:pointer;display:inline-flex;height:2rem;justify-content:center;margin:0 .125rem;transition:all .2s;width:2rem}.pagination-button:hover:not(:disabled){background-color:#f3f4f6}.pagination-button:disabled{cursor:default;opacity:.5}.pagination-button.active{background-color:#fffbeb;border-color:#f59e0b;color:#d97706;font-weight:600}.pagination-button.next,.pagination-button.prev{font-size:1rem}@media (max-width:767px){.brew-sessions-table td:nth-child(4),.brew-sessions-table th:nth-child(4){display:none}.session-actions-cell{text-align:right}.session-action-link{margin-left:.5rem}}.brew-session-form{background-color:#fff;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.brew-session-form,.recipe-preview{border-radius:.5rem;margin-bottom:1.5rem}.recipe-preview{background-color:#fffbeb;padding:1rem}.recipe-preview h2{color:#92400e;font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.recipe-preview-metrics{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr 1fr;margin-top:.75rem}.recipe-preview-metric{font-size:.875rem}.brew-session-form-group{margin-bottom:1rem}.brew-session-form-label{color:#4b5563;display:block;font-weight:600;margin-bottom:.5rem}.brew-session-form-control{border:1px solid #d1d5db;border-radius:.25rem;font-size:1rem;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s;width:100%}.brew-session-form-control:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.brew-session-form-textarea{min-height:100px;resize:vertical}.brew-session-form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.brew-session-form-button{border-radius:.25rem;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-align:center;transition:background-color .2s,border-color .2s}.brew-session-cancel-button{background-color:#e5e7eb;border:1px solid #e5e7eb;color:#4b5563}.brew-session-cancel-button:hover{background-color:#d1d5db}.brew-session-submit-button{background-color:#d97706;border:1px solid #d97706;color:#fff}.brew-session-submit-button:hover{background-color:#b45309;border-color:#b45309}.brew-session-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width:768px){.brew-session-grid{grid-template-columns:1fr 1fr}}.brew-session-header{margin-bottom:1.5rem}.brew-session-title{color:#333;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.brew-session-controls{justify-content:space-between;margin-bottom:1.5rem}.brew-session-controls,.brew-session-status-container{align-items:center;display:flex}.brew-session-status-label{color:#4b5563;font-weight:600;margin-right:.5rem}.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{border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:color .2s,border-color .2s}.brew-session-tab:hover{color:#4b5563}.brew-session-tab.active{border-bottom-color:#d97706;color:#d97706}.brew-session-content{background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.brew-session-section{margin-bottom:2rem}.brew-session-section:last-child{margin-bottom:0}.brew-session-section-title{color:#92400e;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.brew-session-recipe{background-color:#fffbeb;border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.brew-session-recipe-header{align-items:flex-start;display:flex;justify-content:space-between}.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-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.brew-session-timeline-item{display:flex;flex-direction:column}.brew-session-timeline-label{color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.brew-session-timeline-date{font-weight:500}.brew-session-metrics{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-bottom:1.5rem}@media (min-width:768px){.brew-session-metrics{grid-template-columns:repeat(4,1fr)}}.brew-session-metric{background-color:#f9fafb;border-radius:.5rem;padding:.75rem;text-align:center}.brew-session-metric-label{color:#6b7280;font-size:.75rem;margin-bottom:.25rem}.brew-session-metric-value{color:#92400e;font-size:1.25rem;font-weight:600}.brew-session-metric-est{color:#6b7280;font-size:.75rem;margin-top:.25rem}.brew-session-notes{background-color:#f9fafb;border-radius:.5rem;line-height:1.5;padding:1rem;white-space:pre-line}.brew-session-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.brew-session-action-button{border-radius:.25rem;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-align:center;transition:background-color .2s,border-color .2s}.brew-session-edit-button{background-color:#d97706;border:1px solid #d97706;color:#fff}.brew-session-edit-button:hover{background-color:#b45309;border-color:#b45309}.brew-session-delete-button{background-color:#fff;border:1px solid #ef4444;color:#ef4444}.brew-session-delete-button:hover{background-color:#fef2f2;color:#dc2626}.brewing-data{margin-top:1rem}.brewing-data-item{display:flex;margin-bottom:.5rem}.brewing-data-label{color:#6b7280;font-weight:500;width:150px}.brewing-data-value{font-weight:500}.fermentation-tracker{margin-bottom:2rem}.fermentation-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.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;font-size:1.125rem;font-weight:500;margin-bottom:1rem}.fermentation-form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1rem}@media (min-width:768px){.fermentation-form-grid{grid-template-columns:1fr 1fr 1fr}}.fermentation-input-group{display:flex;flex-direction:column}.fermentation-input-label{color:#4b5563;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.fermentation-input{border:1px solid #d1d5db;border-radius:.25rem;font-size:1rem;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s}.fermentation-input:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.fermentation-textarea{border:1px solid #d1d5db;border-radius:.25rem;font-size:1rem;min-height:80px;padding:.5rem .75rem;resize:vertical;transition:border-color .2s,box-shadow .2s}.fermentation-textarea:focus{border-color:#d97706;box-shadow:0 0 0 3px #d977061a;outline:none}.fermentation-form-actions{display:flex;justify-content:flex-end}.fermentation-submit-button{background-color:#d97706;border:1px solid #d97706;border-radius:.25rem;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s,border-color .2s}.fermentation-submit-button:hover:not(:disabled){background-color:#b45309;border-color:#b45309}.fermentation-submit-button:disabled{cursor:not-allowed;opacity:.65}.fermentation-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1.5rem}@media (min-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;font-size:1rem;font-weight:600;margin-bottom:.75rem}.fermentation-stat-row{display:flex;justify-content:space-between;margin-bottom:.5rem}.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;font-size:1.125rem;font-weight:500;margin-bottom:1rem}.fermentation-comparison-row{border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.fermentation-comparison-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.fermentation-comparison-col{flex:1 1;text-align:center}.fermentation-comparison-label{color:#6b7280;font-size:.75rem;margin-bottom:.25rem}.fermentation-comparison-value{font-weight:500}.fermentation-table{border-collapse:collapse;margin-bottom:1.5rem;width:100%}.fermentation-table th{background-color:#f9fafb;border-bottom:2px solid #e5e7eb;color:#4b5563;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.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{background:none;border:none;color:#ef4444;cursor:pointer;font-size:.875rem;padding:0}.fermentation-delete-button:hover{color:#dc2626;text-decoration:underline}.fermentation-table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:767px){.fermentation-table td:nth-child(4),.fermentation-table th:nth-child(4){display:none}}.status-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:capitalize}.status-planned{background-color:#dbeafe;color:#1e40af}.status-in-progress{background-color:#fef3c7;color:#92400e}.status-fermenting{background-color:#e0e7ff;color:#4338ca}.status-conditioning{background-color:#d1fae5;color:#065f46}.status-completed{background-color:#10b981;color:#fff}.status-archived{background-color:#f3f4f6;color:#4b5563}.status-button{border:none;border-radius:9999px;cursor:pointer;font-size:.75rem;font-weight:600;margin-bottom:.5rem;margin-right:.5rem;padding:.375rem .75rem;text-transform:capitalize;transition:opacity .2s}.status-button:hover:not(:disabled){opacity:.9}.rating-stars{display:flex}.rating-star{color:#d1d5db;height:1.5rem;width:1.5rem}.rating-star.filled{color:#fbbf24}
/*# sourceMappingURL=main.5780813e.css.map*/