:root{font-family:Georgia,Times New Roman,serif;color:#213027;background:#f4f0e7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{border:0;border-radius:6px;background:#365e49;color:#fff;cursor:pointer;padding:.68rem 1rem;font-weight:700}button:hover{background:#294a38}button:disabled{cursor:not-allowed;opacity:.55}input,textarea{border:1px solid #cfc8ba;border-radius:5px;background:#fffdf8;color:#213027;padding:.65rem;width:100%}textarea{resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:0}h2{font-size:1.55rem;margin-bottom:.35rem}h3{font-size:1.05rem}.eyebrow{color:#83652f;font-family:system-ui,sans-serif;font-size:.7rem;font-weight:800;letter-spacing:.12em;margin-bottom:.35rem;text-transform:uppercase}.auth-shell{align-items:center;background:radial-gradient(circle at top left,#e4d6bc,transparent 40%),#f4f0e7;display:flex;justify-content:center;min-height:100vh;padding:1.5rem}.auth-card{background:#fffdf8;box-shadow:0 1.5rem 4rem #443d3030;max-width:29rem;padding:3rem;text-align:center;width:100%}.intro{color:#627066;font-size:1.25rem;margin:.6rem 0 2rem}.google-button{background:#fff;border:1px solid #cfc8ba;color:#213027;width:100%}.google-button span{color:#4285f4;font-family:Arial,sans-serif;font-size:1.15rem;margin-right:.5rem}.fine-print{color:#6c736d;font-family:system-ui,sans-serif;font-size:.8rem;margin:1.5rem 0 0}.message{border-radius:6px;font-family:system-ui,sans-serif;padding:.8rem 1rem}.error{background:#f8dfd7;color:#852e1c}.loading{color:#365e49;font-size:1.2rem}.app-shell{margin:0 auto;max-width:1440px;padding:2rem clamp(1rem,4vw,4rem)}.app-header{align-items:center;border-bottom:1px solid #d6cebf;display:flex;justify-content:space-between;padding-bottom:1.5rem}.user-menu{align-items:center;display:flex;font-family:system-ui,sans-serif;font-size:.85rem;gap:1rem}.secondary{background:transparent;border:1px solid #78857a;color:#294a38}.secondary:hover{background:#e6eee7}.danger{background:#9b3d2e}.danger:hover{background:#7d3024}.workspace{display:grid;gap:2rem;grid-template-columns:minmax(14rem,20rem) 1fr;padding-top:2rem}.recipe-list{border-right:1px solid #d6cebf;padding-right:1.5rem}.list-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:1rem}.list-heading h2{margin:0}.list-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:end}.list-actions button{font-size:.75rem;padding:.55rem .65rem}.recipe-items{display:grid;gap:.45rem}.recipe-item{background:transparent;color:#213027;display:grid;padding:.85rem;text-align:left}.recipe-item:hover,.recipe-item.active{background:#dfe9de}.recipe-item span{color:#6c736d;font-family:system-ui,sans-serif;font-size:.75rem;margin-top:.2rem}.empty-list{color:#6c736d;font-size:.95rem;line-height:1.5}.content-panel{min-width:0}.empty-state{border:1px dashed #b8b0a1;color:#647066;min-height:25rem;padding:4rem 2rem}.empty-state h2{color:#213027;max-width:26rem}.recipe-detail,.recipe-form{background:#fffdf8;box-shadow:0 .6rem 2rem #443d3014;padding:clamp(1.25rem,4vw,3rem)}.detail-header{border-bottom:1px solid #e0d9cb;display:flex;gap:1rem;justify-content:space-between;padding-bottom:1.5rem}.detail-header h2{font-size:clamp(2rem,5vw,3.4rem);line-height:1}.description{color:#5f6d62;font-size:1.15rem;margin:1rem 0 0;max-width:43rem}.detail-actions{display:flex;gap:.5rem;height:fit-content}.facts{display:flex;gap:2rem;margin:1.5rem 0}.facts div{min-width:4rem}.facts dt{color:#6c736d;font-family:system-ui,sans-serif;font-size:.72rem;text-transform:uppercase}.facts dd{font-weight:700;margin:.2rem 0 0}.detail-grid{display:grid;gap:3rem;grid-template-columns:minmax(13rem,.8fr) minmax(18rem,1.2fr)}.ingredients,.steps{line-height:1.6;margin:0;padding-left:1.25rem}.ingredients li{padding:.35rem 0}.ingredients span{color:#83652f;display:inline-block;font-family:system-ui,sans-serif;font-size:.85rem;min-width:5.2rem}.steps li{padding:0 0 .9rem .25rem}.notes{background:#f5f1e7;margin-top:2rem;padding:1.25rem}.notes h3{margin-bottom:.5rem}.notes p{margin-bottom:0;white-space:pre-wrap}.source-link{color:#6c736d;font-family:system-ui,sans-serif;font-size:.8rem;margin:2rem 0 0}.source-link a,.result-meta a{color:#365e49;font-weight:700}.recipe-form{display:grid;gap:1.25rem}.form-heading{border-bottom:1px solid #e0d9cb;padding-bottom:1rem}.form-heading h2{margin:0}.recipe-form label{display:grid;font-family:system-ui,sans-serif;font-size:.85rem;font-weight:700;gap:.4rem}.form-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.recipe-form fieldset{border:0;border-top:1px solid #e0d9cb;margin:0;padding:1.25rem 0 0}.recipe-form legend{font-size:1.05rem;font-weight:700;padding:0 .4rem 0 0}.ingredient-row,.step-row{display:grid;gap:.5rem;margin-bottom:.55rem}.ingredient-row{grid-template-columns:5.5rem 5.5rem 1fr auto}.step-row{align-items:start;grid-template-columns:1.5rem 1fr auto}.step-row span{color:#83652f;font-weight:700;padding-top:.6rem}.icon-button{font-family:system-ui,sans-serif;font-size:.75rem;padding:.55rem .65rem}.text-button{background:transparent;color:#365e49;padding:.5rem 0}.text-button:hover{background:transparent;color:#213027}.form-actions{display:flex;gap:.75rem;justify-content:end;padding-top:.5rem}.recipe-search{background:#fffdf8;box-shadow:0 .6rem 2rem #443d3014;min-height:38rem;padding:clamp(1.25rem,4vw,3rem)}.search-heading{align-items:start;border-bottom:1px solid #e0d9cb;display:flex;gap:1rem;justify-content:space-between;padding-bottom:1.5rem}.search-heading h2{font-size:clamp(2rem,5vw,3.2rem);line-height:1}.search-heading p:not(.eyebrow){color:#5f6d62;max-width:38rem}.search-form{margin:1.75rem 0}.search-form label{display:block;font-family:system-ui,sans-serif;font-size:.85rem;font-weight:700;margin-bottom:.4rem}.search-input-row{display:flex;gap:.6rem}.search-input-row input{font-size:1.05rem}.search-input-row button{white-space:nowrap}.search-loading,.search-empty{background:#f5f1e7;color:#647066;margin-top:1.5rem;padding:2rem}.search-loading p:last-child,.search-empty p:last-child{margin-bottom:0}.search-toolbar{align-items:end;border-bottom:1px solid #e0d9cb;display:flex;gap:1rem;justify-content:space-between;margin-top:2rem;padding-bottom:.75rem}.search-filters{display:flex;flex-wrap:wrap;gap:.75rem}.search-filters label{color:#6c736d;display:grid;font-family:system-ui,sans-serif;font-size:.7rem;font-weight:700;gap:.25rem;text-transform:uppercase}.search-filters select{border:1px solid #cfc8ba;border-radius:5px;color:#213027;padding:.45rem;text-transform:none}.search-results{display:grid;gap:.75rem;margin-top:1rem}.search-result{border:1px solid #e0d9cb;display:grid;grid-template-columns:3rem 1fr;padding:1.1rem}.result-rank{color:#83652f;font-family:system-ui,sans-serif;font-size:.8rem;font-weight:800;padding-top:.25rem}.result-body>p{color:#5f6d62;line-height:1.5;margin-bottom:.9rem}.result-title{align-items:start;display:flex;gap:1rem;justify-content:space-between}.result-title h3{font-size:1.35rem;margin-bottom:.5rem}.result-title .eyebrow{margin-bottom:.2rem}.popularity-score{color:#83652f;font-family:system-ui,sans-serif;font-size:1.2rem;font-weight:800;white-space:nowrap}.popularity-score small{color:#9c947f;font-size:.7rem;font-weight:400}.result-meta{align-items:center;display:flex;flex-wrap:wrap;font-family:system-ui,sans-serif;font-size:.78rem;gap:.8rem;margin-bottom:.9rem}.result-meta>span:not(.difficulty){color:#6c736d}.difficulty{border-radius:20px;font-weight:700;padding:.25rem .55rem}.difficulty.easy{background:#dfe9de;color:#365e49}.difficulty.medium{background:#f2e7ca;color:#83652f}.difficulty.hard{background:#f8dfd7;color:#852e1c}.search-result button{font-size:.8rem;padding:.55rem .75rem;width:fit-content}.empty-search{margin-top:1rem}@media(max-width:760px){.app-shell{padding-top:1.25rem}.app-header{align-items:flex-start;gap:1rem}.user-menu{align-items:end;flex-direction:column;gap:.5rem;text-align:right}.workspace{grid-template-columns:1fr}.recipe-list{border-bottom:1px solid #d6cebf;border-right:0;padding:0 0 1.5rem}.recipe-items{display:flex;overflow-x:auto}.recipe-item{flex:0 0 10rem}.detail-header,.detail-grid{display:grid;grid-template-columns:1fr}.detail-actions{order:2}.facts{flex-wrap:wrap;gap:1rem}.form-grid{grid-template-columns:1fr}.ingredient-row{grid-template-columns:1fr 1fr}.ingredient-row input:last-of-type{grid-column:span 2}.ingredient-row .icon-button{grid-column:span 2}.recipe-detail,.recipe-form,.recipe-search{padding:1.25rem}.list-actions{align-items:end;flex-direction:column}.search-heading,.search-toolbar{align-items:stretch;display:grid}.search-input-row{display:grid}.search-input-row button{width:100%}.search-filters{display:grid;grid-template-columns:1fr 1fr}.search-filters label:last-child{grid-column:span 2}.search-result{grid-template-columns:2rem 1fr;padding:.8rem}}.ingredients li{align-items:start;display:grid;gap:.75rem;grid-template-columns:max-content minmax(0,1fr)}.ingredients li>span:first-child{color:#83652f;font-family:system-ui,sans-serif;font-size:.85rem}.ingredient-name{min-width:0}.ingredients .ingredient-name{color:#213027;display:block;font-family:inherit;font-size:inherit}.recipe-item{align-items:center;gap:.7rem;grid-template-columns:3.5rem minmax(0,1fr)}.recipe-thumb,.image-placeholder{background:#e9e1d2;border-radius:5px;display:block;height:3.5rem;object-fit:cover;width:3.5rem}.image-placeholder{align-items:center;color:#83652f;display:flex;font-family:system-ui,sans-serif;font-size:.6rem;font-weight:800;justify-content:center;letter-spacing:.08em;text-transform:uppercase}.recipe-hero{background:#e9e1d2;display:block;margin:1.5rem 0 2rem;max-height:28rem;object-fit:cover;width:100%}.search-result{grid-template-columns:7rem 3rem minmax(0,1fr)}.result-image{background:#e9e1d2;border-radius:4px;height:7rem;object-fit:cover;width:7rem}.scale-control{align-items:center;background:#f5f1e7;display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 2rem;padding:.75rem 1rem}.scale-control>span{font-family:system-ui,sans-serif;font-size:.75rem;font-weight:800;text-transform:uppercase}.scale-options{display:flex;flex-wrap:wrap;gap:.35rem}.scale-option{background:transparent;border:1px solid #b8b0a1;color:#365e49;font-family:system-ui,sans-serif;font-size:.8rem;padding:.45rem .7rem}.scale-option:hover,.scale-option.active{background:#365e49;border-color:#365e49;color:#fff}@media(max-width:760px){.scale-control{align-items:start;flex-direction:column}}@media(max-width:760px){.recipe-item{grid-template-columns:3rem minmax(0,1fr)}.recipe-thumb,.recipe-item .image-placeholder{height:3rem;width:3rem}.recipe-hero{max-height:16rem}.search-result{grid-template-columns:4rem 2rem minmax(0,1fr)}.result-image{height:4rem;width:4rem}}.recipe-item>div{min-width:0}.recipe-item strong{display:block;line-height:1.1}.recipe-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}.app-shell{min-height:100vh;min-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));width:100%}.app-header{align-items:center;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) auto;padding-bottom:1rem}.app-header h1{font-size:clamp(1.8rem,8vw,2.5rem)}.app-header>div:first-child,.user-menu{min-width:0}.user-menu{align-items:flex-end;flex-direction:column;font-size:.75rem;gap:.4rem;max-width:46vw}.user-menu span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu button,.list-actions button{min-height:44px}.workspace{gap:1rem;padding-top:1rem}.recipe-list{border-bottom:1px solid #d6cebf;margin:0 -1rem;padding:0 1rem 1rem}.list-heading{align-items:center;gap:.75rem}.list-actions{align-items:center;flex-direction:row;flex-wrap:nowrap}.list-actions button{font-size:.72rem;padding:.55rem .65rem;white-space:nowrap}.recipe-items{display:flex;gap:.55rem;margin-right:-1rem;overflow-x:auto;overscroll-behavior-inline:contain;padding:.1rem 1rem .4rem 0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.recipe-item{background:#fffdf8;border:1px solid #e0d9cb;border-radius:8px;flex:0 0 min(78vw,16rem);min-height:4.5rem;scroll-snap-align:start}.recipe-item.active{border-color:#365e49}.recipe-list .empty-list{margin:.35rem 0}.content-panel{min-width:0;width:100%}.empty-state{min-height:12rem;padding:1.5rem 1rem}.recipe-detail,.recipe-form,.recipe-search{min-width:0;padding:1rem}.detail-header{gap:1rem;padding-bottom:1rem}.detail-header h2{font-size:clamp(1.8rem,8vw,2.5rem);overflow-wrap:anywhere}.detail-actions{flex-wrap:wrap}.detail-actions button{flex:1;min-height:44px}.description{font-size:1rem}.facts{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{gap:1.5rem}.ingredient-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ingredient-row input:last-of-type,.ingredient-row .icon-button{grid-column:1 / -1}.step-row{grid-template-columns:1.25rem minmax(0,1fr)}.step-row .icon-button{grid-column:2;justify-self:start}.form-actions{flex-wrap:wrap}.form-actions button{flex:1;min-height:44px}.recipe-search{min-height:0}.search-heading{gap:1rem}.search-heading h2{font-size:clamp(1.8rem,8vw,2.5rem)}.search-heading>button{min-height:44px}.search-filters{gap:.6rem}.search-filters label{min-width:0}.search-filters select{max-width:100%;min-width:0}.search-result{grid-template-columns:3.5rem minmax(0,1fr)}.result-image{grid-column:1;grid-row:1;height:3.5rem;width:3.5rem}.result-rank{grid-column:2;grid-row:1;justify-self:end}.result-body{grid-column:1 / -1;min-width:0}.result-title{gap:.5rem}.result-title h3{overflow-wrap:anywhere}.result-meta{flex-wrap:wrap}.result-body>button{min-height:44px;width:100%}}@media(max-width:380px){.app-shell{padding-left:.75rem;padding-right:.75rem}.recipe-list{margin-left:-.75rem;margin-right:-.75rem;padding-left:.75rem;padding-right:.75rem}.list-heading{align-items:flex-start;flex-direction:column}.list-actions{width:100%}.list-actions button{flex:1}.recipe-items{margin-right:-.75rem}}.mobile-back{display:none}@media(max-width:760px){.app-shell.mobile-content-open .recipe-list{display:none}.app-shell.mobile-content-open .workspace{grid-template-columns:minmax(0,1fr)}.recipe-items{display:grid;grid-template-columns:minmax(0,1fr);margin:0;overflow:visible;padding:0;scroll-snap-type:none}.recipe-item{flex:initial;max-width:100%;min-width:0;width:100%}.mobile-back{display:inline-flex;align-items:center;margin:0 0 .75rem;min-height:44px}.workspace,.content-panel,.recipe-detail,.recipe-form,.recipe-search,.detail-grid,.form-grid,.search-results,.search-result,.result-body{max-width:100%;min-width:0;width:100%}.recipe-detail,.recipe-form,.recipe-search{overflow-wrap:anywhere}.ingredients li{grid-template-columns:minmax(0,5.5rem) minmax(0,1fr)}.ingredients li>span:first-child{min-width:0;overflow-wrap:anywhere}.ingredients .ingredient-name,.steps li,.description,.notes p,.source-link{overflow-wrap:anywhere}.detail-grid{grid-template-columns:minmax(0,1fr)}.search-result{grid-template-columns:3.5rem minmax(0,1fr)}.result-meta>*{max-width:100%;overflow-wrap:anywhere}}
