*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,sans-serif}:root{--cream: #F5F1E8;--charcoal: #2D2D2D;--terracotta: #C85A3E;--olive: #6B7A5A}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--charcoal);font-family:Courier New,Courier,monospace;line-height:1.4;-webkit-font-smoothing:antialiased}#root{min-height:100vh;max-width:100vw;overflow-x:hidden}.app-header{background:var(--charcoal);color:var(--cream);padding:1.5rem 1rem;border-bottom:6px solid var(--terracotta);position:sticky;top:0;z-index:100}.app-title{font-size:1.75rem;font-weight:900;text-transform:uppercase;letter-spacing:-.5px;margin:0}.back-button{background:var(--terracotta);color:var(--cream);border:3px solid var(--charcoal);padding:.75rem 1.25rem;font-size:1rem;font-weight:900;font-family:inherit;text-transform:uppercase;cursor:pointer;margin-bottom:.75rem;display:inline-block;box-shadow:4px 4px 0 var(--charcoal);transition:all .1s}.back-button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--charcoal)}.recipe-list{padding:1rem}.recipe-item{background:var(--cream);border:4px solid var(--charcoal);padding:1.5rem 1.25rem;margin-bottom:1rem;cursor:pointer;transition:all .1s;box-shadow:6px 6px 0 var(--charcoal)}.recipe-item:active{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--charcoal)}.recipe-item-title{font-size:1.5rem;font-weight:900;text-transform:uppercase;color:var(--charcoal);letter-spacing:-.5px}.recipe-detail{padding:1rem 1rem 3rem}.recipe-title{font-size:2rem;font-weight:900;text-transform:uppercase;color:var(--charcoal);margin-bottom:2rem;line-height:1.1;letter-spacing:-1px;border-bottom:6px solid var(--terracotta);padding-bottom:1rem}.recipe-section{margin-bottom:2.5rem}.section-title{font-size:1.25rem;font-weight:900;text-transform:uppercase;color:var(--cream);background:var(--olive);padding:.75rem 1rem;margin-bottom:1rem;border:3px solid var(--charcoal);letter-spacing:-.5px}.recipe-section ul{list-style:none;padding:0}.recipe-section li{background:var(--cream);border:3px solid var(--charcoal);padding:1rem 1rem 1rem 2.5rem;margin-bottom:.75rem;position:relative;font-size:1.05rem;line-height:1.5}.recipe-section li:before{content:"▪";position:absolute;left:1rem;font-size:1.5rem;color:var(--terracotta);font-weight:900}.instruction-steps{display:flex;flex-direction:column;gap:2rem}.instruction-step{border:4px solid var(--charcoal);background:var(--cream);padding:1.5rem;box-shadow:4px 4px 0 var(--charcoal)}.step-ingredients{background:var(--olive);border:3px solid var(--charcoal);padding:1rem;margin-bottom:1.5rem}.step-ingredients-title{font-size:1rem;font-weight:900;text-transform:uppercase;color:var(--cream);margin:0 0 .75rem;letter-spacing:-.5px}.step-ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.step-ingredients-list li{background:var(--cream);border:2px solid var(--charcoal);padding:.4rem .75rem;font-size:.9rem;font-weight:700;color:var(--charcoal);line-height:1.3}.step-ingredients-list li:before{content:none}.step-text{font-size:1.1rem;line-height:1.6;color:var(--charcoal)}.step-text-only{font-size:1.1rem;line-height:1.6;color:var(--charcoal);background:var(--cream);border:3px solid var(--charcoal);padding:1rem 1rem 1rem 2.5rem;position:relative}.step-text-only:before{content:"▪";position:absolute;left:1rem;font-size:1.5rem;color:var(--terracotta);font-weight:900}.step-number{font-weight:900;color:var(--terracotta);font-size:1.2rem}.shopping-list-header-button{background:var(--olive);color:var(--cream);border:3px solid var(--cream);padding:.5rem 1rem;font-size:.875rem;font-weight:900;font-family:inherit;text-transform:uppercase;cursor:pointer;box-shadow:3px 3px #0000004d;transition:all .1s;position:absolute;right:1rem;top:50%;transform:translateY(-50%)}.shopping-list-header-button:active{transform:translateY(-50%) translate(2px,2px);box-shadow:1px 1px #0000004d}.modal-overlay{position:fixed;inset:0;background:#2d2d2de6;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-content{background:var(--cream);border:6px solid var(--charcoal);box-shadow:8px 8px 0 var(--charcoal);max-width:500px;width:100%;max-height:80vh;display:flex;flex-direction:column}.modal-header{background:var(--charcoal);color:var(--cream);padding:1rem 1.5rem;border-bottom:4px solid var(--terracotta);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:1.5rem;font-weight:900;text-transform:uppercase;letter-spacing:-.5px;margin:0}.modal-close-button{background:var(--terracotta);color:var(--cream);border:3px solid var(--cream);width:40px;height:40px;font-size:1.5rem;font-weight:900;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:3px 3px #0000004d;transition:all .1s}.modal-close-button:active{transform:translate(2px,2px);box-shadow:1px 1px #0000004d}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.recipe-selection-list{display:flex;flex-direction:column;gap:1rem}.recipe-checkbox-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:3px solid var(--charcoal);background:var(--cream);cursor:pointer;transition:all .1s;box-shadow:4px 4px 0 var(--charcoal);min-height:60px}.recipe-checkbox-item:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--charcoal)}.recipe-checkbox{appearance:none;width:28px;height:28px;border:4px solid var(--charcoal);background:var(--cream);cursor:pointer;position:relative;flex-shrink:0}.recipe-checkbox:checked{background:var(--terracotta)}.recipe-checkbox:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--cream);font-size:20px;font-weight:900;line-height:1}.recipe-checkbox-label{font-size:1.125rem;font-weight:700;text-transform:uppercase;color:var(--charcoal);letter-spacing:-.5px}.modal-footer{padding:1.5rem;border-top:4px solid var(--charcoal);background:var(--cream);display:flex;flex-direction:column;gap:1rem}.selected-count{font-size:1rem;font-weight:700;text-transform:uppercase;color:var(--charcoal);text-align:center}.view-shopping-list-button{background:var(--olive);color:var(--cream);border:4px solid var(--charcoal);padding:1rem 1.5rem;font-size:1.125rem;font-weight:900;font-family:inherit;text-transform:uppercase;cursor:pointer;box-shadow:5px 5px 0 var(--charcoal);transition:all .1s;width:100%}.view-shopping-list-button:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--charcoal)}.view-shopping-list-button:disabled{background:#999;cursor:not-allowed;opacity:.5}.view-shopping-list-button:disabled:active{transform:none;box-shadow:5px 5px 0 var(--charcoal)}.shopping-list-overlay{position:fixed;inset:0;background:var(--cream);z-index:200;overflow-y:auto}.combined-shopping-list{padding:.5rem .5rem 2rem}.shopping-list-title{font-size:1.25rem;font-weight:900;text-transform:uppercase;color:var(--charcoal);margin-bottom:.25rem;line-height:1.1;letter-spacing:-1px;border-bottom:3px solid var(--terracotta);padding-bottom:.25rem}.recipe-count{font-size:.75rem;font-weight:700;color:var(--olive);margin-bottom:.75rem;text-transform:uppercase}.grouped-ingredients{list-style:none;padding:0}.grouped-ingredients .grouped-ingredient-item{background:transparent!important;padding:.15rem 0!important;margin-bottom:0!important;border:none!important;position:static!important}.grouped-ingredients .grouped-ingredient-item:before{content:none!important}.ingredient-name{font-size:.95rem;font-weight:900;text-transform:uppercase;color:var(--charcoal);margin-bottom:.15rem;letter-spacing:-.5px}.ingredient-details{padding-left:.5rem;border-left:2px solid var(--terracotta)}.ingredient-source{margin-bottom:.1rem;font-size:.75rem;line-height:1.3}.source-recipe{font-weight:700;color:var(--olive)}.source-detail{color:var(--charcoal)}@media(max-width:768px){.recipe-item{min-height:80px;display:flex;align-items:center}.shopping-list-header-button{font-size:.75rem;padding:.4rem .75rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
