:root{--paper:#f7f5ef;--card:#fffefb;--ink:#28392f;--muted:#737a70;--green:#2f5544;--line:#dfe2d7;--orange:#bd572f;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b56840;outline-offset:4px}[hidden]{display:none!important}button{transition:background .15s}input[type=checkbox]{accent-color:var(--green);width:19px;height:19px;flex-shrink:0;cursor:pointer}input[type=search],input[type=text],input:not([type]){border:1px solid var(--line);background:var(--card);border-radius:9px;padding:13px 14px;min-width:0;width:100%;color:var(--ink)}
.topbar{display:flex;align-items:center;gap:46px;padding:23px 5vw;border-bottom:1px solid var(--line);background:var(--card)}.brand{font:700 36px/1 Georgia,serif;letter-spacing:-1.5px;text-decoration:none}.brand span,h1>span{color:var(--orange)}.topbar nav{display:flex;gap:8px}.nav-button{border:0;background:transparent;color:var(--muted);padding:11px 17px;border-radius:9px;font-weight:550;font-size:14px;display:flex;gap:9px;align-items:center}.nav-button.active{color:var(--green);background:#e9eee6}.count{border-radius:6px;font-size:11px;min-width:21px;padding:3px 5px;text-align:center;background:#dce5d8;color:var(--green)}.logout-form{margin-left:auto}.quiet{border:0;background:none;color:var(--muted);padding:9px 0;font-size:13px;text-decoration:underline;text-decoration-color:#b6bbaf;text-underline-offset:4px}.quiet:hover{color:var(--green)}.workspace{max-width:1420px;display:grid;grid-template-columns:235px minmax(0,1fr);gap:54px;margin:auto;padding:52px 5vw 75px;min-height:75vh}.library{padding-right:23px;border-right:1px solid var(--line)}.library-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.library-heading h2{font-size:14px;font-weight:650;margin:0}.library-heading>span{color:var(--muted);font-size:12px}.library input{font-size:12px;padding:12px 10px}.library nav{display:grid;gap:9px;margin:20px 0}.recipe-link{text-align:left;display:grid;gap:10px;border:1px solid transparent;background:transparent;border-radius:10px;padding:17px 15px;color:var(--ink);line-height:1.5}.recipe-link.selected{background:#e9eee5;border-color:#dbe3d4}.recipe-link>span{font-size:14px;font-weight:600}.recipe-link small{color:var(--muted);font-size:11px;font-weight:400}.library-note{font-size:11px;color:var(--muted);line-height:1.7;margin:25px 2px}.empty-search{font-size:13px;line-height:1.6;color:var(--muted)}.recipe-header{padding:0 0 32px;border-bottom:1px solid var(--line);margin-bottom:32px}.recipe-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--green)}.recipe-meta span{background:#e9eee5;padding:6px 9px;border-radius:5px}.recipe-meta span:first-child{background:none;padding-left:0;font-weight:600;padding-right:8px}.recipe-header h1{font:400 clamp(32px,3.4vw,49px)/1.1 Georgia,serif;letter-spacing:-1.3px;margin:23px 0 18px;max-width:630px}.source-line{font-size:12px;color:var(--muted);line-height:1.8;margin:0}.recipe-columns{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(260px,1.1fr);gap:40px}.recipe-columns h2{font:500 23px/1.2 Georgia,serif;margin:0}.section-top{display:flex;gap:10px;justify-content:space-between;align-items:center}.servings{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}.servings button{width:28px;height:35px;border:0;background:none;color:var(--green);font-size:19px}.servings label{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--muted)}.servings input{width:29px;border:0;background:none;padding:0;text-align:center;appearance:textfield;color:var(--ink);font-size:13px;font-weight:600}.servings input::-webkit-inner-spin-button{appearance:none}.small-note{font-size:11px;line-height:1.6;color:var(--muted);margin:16px 0 9px}.ingredients{list-style:none;padding:0;margin:0 0 23px}.ingredients li{border-bottom:1px solid #e8e9e1}.ingredients label{display:flex;gap:11px;align-items:center;padding:13px 0;cursor:pointer;font-size:13px;line-height:1.5}.ingredients input{margin:0}.ingredient-name{flex:1}.ingredient-name small{display:block;color:var(--muted);font-size:10px}.amount{text-align:right;font-size:12px;color:var(--muted);max-width:100px}.primary{display:flex;justify-content:center;align-items:center;gap:25px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;padding:14px 19px;font-size:13px;font-weight:600;line-height:1.4}.primary:hover:not(:disabled){background:#204334}.add-recipe{width:100%;justify-content:space-between}.selected-count{font-size:10px;color:var(--muted);text-align:center;margin:10px 0 0}.method-panel{padding-top:7px}.steps{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:27px;counter-reset:step}.steps label{display:grid;grid-template-columns:29px 1fr;gap:13px;font-size:14px;line-height:1.85;cursor:pointer;position:relative}.steps input{position:absolute;opacity:0;width:30px;height:30px;margin:0}.step-number{font-size:10px;font-weight:650;color:var(--orange);border:1px solid #e4d9c8;background:#f5efe3;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;margin-top:2px}.steps input:focus-visible+.step-number{outline:3px solid var(--orange);outline-offset:3px}.step-done>span:last-child{text-decoration:line-through;color:var(--muted)}.step-done .step-number{background:var(--green);color:#fff;border-color:var(--green)}.method-note{font-size:11px;color:var(--muted);line-height:1.8;margin:30px 0 0;padding-top:20px;border-top:1px solid var(--line)}footer{max-width:1280px;margin:auto;padding:22px 5vw;display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}footer a{text-decoration:none;font-weight:600}
.status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:20;max-width:calc(100% - 32px);width:max-content;background:var(--green);color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 7px 30px #152b1f20;font-size:13px;line-height:1.6}.status.error{background:#8f342c}.shopping-page{max-width:740px;padding:50px 32px 75px;margin:auto;min-height:78vh}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:var(--muted)}.shopping-header h1{font:400 46px/1.15 Georgia,serif;letter-spacing:-1.3px;margin:15px 0 12px}.shopping-header p{font-size:13px;color:var(--muted);margin:0 0 30px}.add-item-form{display:flex;gap:9px}.add-item-form input{font-size:13px}.add-item-form button{white-space:nowrap}.list-toolbar{display:flex;justify-content:flex-end;gap:20px;margin:13px 0 25px}.list-toolbar .quiet{font-size:11px}.shopping-group{margin-bottom:30px}.shopping-group h2{font-size:11px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);font-weight:600;margin:0 0 10px}.shopping-group ul{padding:0;margin:0;list-style:none;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}.shopping-row{display:flex;align-items:center;border-bottom:1px solid #e9eae1;padding-right:12px;gap:15px}.shopping-row:last-child{border:0}.shopping-row label{display:flex;align-items:center;gap:14px;padding:17px 18px;cursor:pointer;flex:1;min-width:0}.shopping-row input{margin:0}.item-name{font-size:14px;overflow-wrap:anywhere;display:block}.shopping-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.remove-item{border:0;background:none;color:#8a9187;width:35px;height:35px;font-size:22px;border-radius:6px}.remove-item:hover{background:#f1e8de;color:#9c4e2d}.shopping-row.is-done{opacity:.6}.shopping-row.is-done .item-name{text-decoration:line-through}.sync-note{font-size:11px;color:var(--muted);text-align:center;margin-top:30px}.empty-list{text-align:center;padding:45px 15px 30px;color:var(--muted)}.empty-list>span{display:grid;place-items:center;background:#e6ecdf;color:var(--green);width:48px;height:48px;border-radius:50%;margin:auto;font-size:22px}.empty-list h2{font:400 28px Georgia,serif;color:var(--ink);margin:20px 0 12px}.empty-list p{font-size:13px;line-height:1.8}.text-button{border:0;background:none;color:var(--green);font-size:13px;padding:12px;text-decoration:underline;text-underline-offset:4px}
.login-wrap{max-width:470px;margin:0 auto;padding:42px 24px 70px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.back-link{text-decoration:none;color:var(--muted);font-size:12px;margin-bottom:45px}.login-card h1{font:400 58px/1.05 Georgia,serif;letter-spacing:-2.3px;margin:24px 0 23px}.login-card>p{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:38px}.login-form{display:grid;gap:12px}.login-form label{font-size:12px;font-weight:600}.login-form input[type=password]{padding:15px 16px;background:var(--card);border:1px solid #cfd5c7;border-radius:8px;width:100%;color:var(--ink)}.login-form .primary{margin-top:7px;justify-content:space-between;padding:16px}.login-card>small{font-size:10px;color:var(--muted);display:block;margin-top:30px}.form-error{font-size:13px;color:#9b3528;margin:0;line-height:1.6}.noscript{padding:30px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.workspace{grid-template-columns:195px minmax(0,1fr);gap:30px;padding-inline:30px}.library{padding-right:18px}.recipe-columns{grid-template-columns:1fr;gap:38px}.ingredients label{padding:12px 0}.method-panel{max-width:650px}}
@media(max-width:680px){.topbar{padding:18px 22px;gap:18px;flex-wrap:wrap}.brand{font-size:31px}.topbar nav{order:3;flex-basis:100%}.nav-button{flex:1;justify-content:center;padding:12px 14px}.logout-form{font-size:12px}.workspace{display:block;padding:25px 22px 45px}.library{border:0;padding:0;margin-bottom:32px}.library-heading{margin-bottom:12px}.library nav{margin:12px 0 0;display:flex;overflow-x:auto;padding-bottom:3px}.recipe-link{min-width:220px;max-width:270px;gap:5px;padding:12px 15px}.recipe-link>span{font-size:12px}.recipe-link small{font-size:10px}.library-note{display:none}.recipe-header{padding-bottom:24px;margin-bottom:25px}.recipe-header h1{font-size:37px;margin-top:19px}.recipe-meta{gap:7px;font-size:10px}.source-line{font-size:11px}.recipe-columns{gap:36px}.recipe-columns h2{font-size:25px}.ingredients label{font-size:14px;padding:14px 0}.amount{font-size:13px}.small-note{font-size:12px}.selected-count{font-size:11px}.primary{padding:15px 18px;font-size:14px}.method-panel{padding:0}.steps{gap:25px}.steps label{font-size:15px}.method-note{font-size:12px}footer{padding:23px 22px}footer>span{display:none}.shopping-page{padding:34px 22px 50px}.shopping-header h1{font-size:40px}.shopping-header p{margin-bottom:23px}.add-item-form{gap:8px}.add-item-form button{font-size:12px;padding:13px}.list-toolbar{gap:17px}.shopping-row label{padding:17px 14px}.status{bottom:16px;font-size:12px}.login-card h1{font-size:52px}.login-wrap{padding-top:30px;padding-bottom:45px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
