@font-face{font-family:KochSystem;src:local('Arial')}*{box-sizing:border-box}body{margin:0;background:#f7f5ef;color:#223c32;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:12px;background:#244d3d;color:#fff;padding:12px 19px;font-weight:600;min-height:46px}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#e9eee7;color:#244d3d}button.ghost{background:transparent;color:#3e5e4b;border:1px solid #d4dcd0}button.danger{background:#f6e5de;color:#963d27}button.small{padding:7px 12px;min-height:38px;font-size:14px}a{color:#244d3d}input,textarea,select{display:block;width:100%;border:1px solid #d5dbd1;background:#fff;color:#213b30;border-radius:11px;padding:12px;min-height:46px}textarea{min-height:100px;resize:vertical}input[type=checkbox]{width:23px;height:23px;min-height:23px;accent-color:#244d3d}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #d49b54;outline-offset:2px}label{display:block;font-size:14px;font-weight:600;margin:14px 0 5px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.15}h1{font-size:46px;letter-spacing:-1.5px;margin-bottom:14px}h2{font-size:31px}h3{font-size:18px}p{color:#647064}small,.muted{color:#6c776b}.eyebrow{font-size:11px;text-transform:uppercase;font-weight:750;letter-spacing:2px;color:#647461;margin-bottom:14px}.layout{max-width:1500px;margin:auto;display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{padding:32px 23px;border-right:1px solid #e1e4d9;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:30px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:Georgia,serif;font-size:25px;font-weight:bold}.brand img{width:39px;height:39px;border-radius:12px}.nav{display:grid;gap:8px}.nav button{text-align:left;background:transparent;color:#647064;font-weight:500}.nav button.active{background:#e4ebde;color:#244d3d}.nav button span{display:inline-block;width:27px}.sidebar footer{margin-top:auto;font-size:13px;color:#758171}.main{padding:32px 48px 80px;min-width:0}.topline{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:34px;font-size:13px;color:#71806c}.status{display:flex;align-items:center;gap:7px}.dot{height:7px;width:7px;background:#6a8a5a;border-radius:50%}.hero{background:#e7ecdf;border-radius:23px;padding:35px 38px;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px;overflow:hidden}.hero p{max-width:480px;margin:0}.hero svg{flex-shrink:0;width:155px;height:145px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.searchbar{display:flex;gap:10px;margin:24px 0 16px}.searchbar input{flex:1;min-width:0;background:#fff}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 24px}.chip{border:1px solid #dbe0d3;border-radius:24px;padding:8px 15px;background:transparent;color:#63725e;font-size:13px;min-height:38px}.chip.active{background:#244d3d;color:white;border-color:#244d3d}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{background:white;border:1px solid #e4e7df;border-radius:18px;overflow:hidden}.card-content{padding:21px}.card h3{font-family:Georgia,serif;font-size:24px;line-height:1.2;margin-bottom:10px}.card p{font-size:14px;margin-bottom:18px}.card-art{height:145px;background:#efe6d6;display:grid;place-items:center;position:relative}.card-art svg{height:118px;width:135px}.card-art img{width:100%;height:100%;object-fit:cover}.card:nth-child(3n+2) .card-art{background:#e8eddf}.card:nth-child(3n) .card-art{background:#f0dfd4}.badge{display:inline-flex;font-size:12px;align-items:center;background:#eff2e9;color:#526849;border-radius:6px;padding:4px 8px;gap:4px}.empty{padding:52px 25px;background:#fff;border:1px dashed #cbd6c2;border-radius:18px;text-align:center;max-width:800px;margin:28px auto}.empty p{max-width:450px;margin:10px auto 23px}.panel{padding:25px;border:1px solid #e1e5da;background:white;border-radius:18px;margin-bottom:22px}.panel h3{margin-bottom:10px}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.detail-head{padding:8px 0 25px}.recipe-body{display:grid;grid-template-columns:340px 1fr;gap:32px}.ingredients{padding:0;list-style:none}.ingredients li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #e7ebe2}.ingredients li strong{white-space:nowrap;font-size:14px}.steps{list-style:none;padding:0;counter-reset:step}.steps li{counter-increment:step;position:relative;padding:0 0 25px 47px;white-space:pre-wrap}.steps li:before{content:counter(step);position:absolute;left:0;background:#e5ecdf;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;color:#3e603e}.portion{display:flex;align-items:center;gap:8px}.portion input{width:78px;text-align:center}.portion button{padding:8px 16px}.notice{padding:13px 17px;border-radius:12px;background:#f7edda;color:#80613a;font-size:14px;margin:15px 0}.error{background:#f7e1db;color:#8a3525}.success{background:#e8efdf;color:#446334}.item{display:flex;gap:13px;align-items:flex-start;padding:16px 0;border-bottom:1px solid #edf0e8}.item:last-child{border-bottom:0}.item .item-body{flex:1;min-width:0}.item strong{font-size:16px}.item small{display:block;font-size:12px;margin-top:3px}.item.done .item-body{text-decoration:line-through;opacity:.55}.item input{margin-top:5px}.category-head{padding:12px 0;border-bottom:2px solid #e9eddf;font-size:12px;text-transform:uppercase;letter-spacing:1.3px;color:#68805a;margin-top:18px}.toggle{display:inline-flex;border:1px solid #d9e0d2;border-radius:13px;padding:4px;background:#ecefe6}.toggle button{background:transparent;color:#64745b;font-size:13px;padding:9px 16px;min-height:39px}.toggle button.active{background:#fff;box-shadow:0 1px 4px #243c3210;color:#244d3d}.list-head{padding:0 0 20px;border-bottom:1px solid #e0e5d9}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.auth{max-width:460px;margin:8vh auto;padding:30px}.auth .brand{margin-bottom:35px}.auth h1{font-size:38px}.auth button[type=submit]{width:100%;margin-top:22px}.auth footer{margin-top:25px;font-size:12px}.mobile-nav{display:none}dialog{border:0;border-radius:22px;padding:28px;width:min(760px,94vw);max-height:90dvh;background:#f9f8f2;color:#223c32;box-shadow:0 22px 100px #14332340}dialog::backdrop{background:#203b3266;backdrop-filter:blur(3px)}dialog h2{margin-bottom:10px}dialog .close{float:right;background:transparent;color:#3f5945;padding:0;min-width:40px}dialog .actions{margin-top:25px;position:sticky;bottom:-28px;padding:15px 0;background:#f9f8f2;display:flex;gap:10px;flex-wrap:wrap}.ingredient-edit{display:grid;grid-template-columns:90px 90px 1fr 44px;gap:8px;margin-top:10px}.ingredient-edit .extra{grid-column:1/-1;display:flex;gap:8px}.ingredient-edit .extra>*{width:50%;font-size:12px}.step-edit{display:flex;gap:8px;margin-top:10px}.step-edit textarea{flex:1}.thumbs{display:flex;gap:10px;flex-wrap:wrap}.thumbs img{width:90px;height:80px;object-fit:cover;border-radius:8px}.filedrop{border:1px dashed #acbba0;padding:20px;border-radius:13px;background:#f0f3e9}.filedrop input{border:0;padding:0;background:transparent}.order-row{display:flex;align-items:center;gap:8px;padding:8px 0}.order-row span{flex:1}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#244d3d;color:white;padding:13px 22px;border-radius:13px;z-index:30;max-width:90vw;display:none;box-shadow:0 5px 25px #0002}#toast.visible{display:block}.loading{padding:80px;text-align:center}.cook-step{font-family:Georgia,serif;font-size:29px;line-height:1.55;padding:30px 0;white-space:pre-wrap}.full{width:100%}.favorite{position:absolute;top:10px;right:10px;border-radius:50%;background:#fffc;color:#466341;padding:5px;min-height:35px;width:35px}.footer-note{font-size:12px;margin-top:20px;color:#7a8476}.screenreader{position:absolute;left:-10000px}pre{white-space:pre-wrap}.photo-link{font-size:13px}.recipe-title-button{background:none;color:inherit;padding:0;text-align:left;min-height:0}.recipe-title-button:hover{color:#7f6034}.pantry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.print-only{display:none}@media(max-width:1100px){.main{padding:28px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:190px 1fr}.sidebar{padding:28px 15px}.recipe-body{grid-template-columns:1fr}.hero svg{width:115px}}@media(max-width:700px){body{font-size:15px}.layout{display:block}.sidebar{display:none}.main{padding:20px 18px 110px}.topline{margin-bottom:22px;font-size:12px}.hero{padding:25px 23px;border-radius:18px;gap:5px}.hero svg{width:80px;height:100px}h1{font-size:35px}.hero h1{font-size:33px}.hero p{font-size:13px}.eyebrow{font-size:10px;letter-spacing:1.5px}.grid{gap:13px}.card-art{height:110px}.card-art svg{height:90px;width:100px}.card-content{padding:15px}.card h3{font-size:20px}.card p{font-size:12px}.card .row{gap:6px}.card .badge{font-size:10px}.split,.pantry-grid{grid-template-columns:1fr;gap:0}.panel{padding:20px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffef9ee;backdrop-filter:blur(12px);border-top:1px solid #e1e6d8;z-index:10;padding:8px 9px max(10px,env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{font-size:10px;display:grid;gap:3px;background:transparent;color:#85907e;padding:4px 10px;min-width:65px;min-height:47px}.mobile-nav button span{font-size:21px;line-height:1}.mobile-nav button.active{color:#244d3d;background:#edf2e7}.searchbar button{padding:10px}.searchbar{gap:7px}.toolbar button{font-size:13px;padding:10px 13px}dialog{padding:22px;width:95vw}.ingredient-edit{grid-template-columns:70px 70px 1fr 36px;gap:5px}.ingredient-edit input{padding:8px;font-size:13px}.ingredient-edit button{padding:5px}.ingredient-edit .extra{gap:5px}.auth{margin:3vh auto;padding:25px}.toggle{width:100%}.toggle button{flex:1;padding:9px;font-size:12px}#toast{bottom:90px}.item .small{padding:5px 8px}.cook-step{font-size:25px}.detail-head h1{font-size:37px}.loading{padding:60px 20px}}@media print{.sidebar,.mobile-nav,.topline,button,.searchbar,.chips,.toolbar{display:none!important}.layout,.recipe-body{display:block}.main{padding:0}body{background:white}.panel{border:0;padding:0}.print-only{display:block}}
.ingredient-edit .extra{flex-wrap:wrap}.ingredient-edit .extra>*{flex:1 1 140px;width:auto}.status{font-size:12px}#sync-status{max-width:240px}.notice pre{overflow-wrap:anywhere}
