:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#243e33;background:#f7f5ef;font-size:16px;--green:#356854;--line:#e1e5dc}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:white;color:#243e33;padding:10px 14px;min-height:44px}button:hover{border-color:var(--green)}button:disabled{opacity:.55;cursor:wait}button.primary,.nav button.active{background:var(--green);color:white;border-color:var(--green)}button.danger{color:#a13e30}input,select,textarea{border:1px solid #cbd6cb;border-radius:9px;padding:10px;width:100%;background:white;color:inherit}input[type=checkbox]{width:20px;height:20px}textarea{min-height:110px;resize:vertical}label{display:grid;gap:6px;font-size:.9rem}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;letter-spacing:-.05em}h2{font-size:1.35rem}h3{font-size:1.05rem}p{line-height:1.6}.muted,small{color:#637369}.eyebrow{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#6d7f71}.shell{max-width:1440px;margin:auto;padding:28px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.brand{font-size:1.3rem;font-weight:750}.nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px}.nav button{background:transparent;border-color:transparent}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.toolbar h1,.toolbar h2{margin:0 auto 0 0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px}.card img{width:100%;height:160px;object-fit:cover;border-radius:10px;margin-bottom:14px}.badge{display:inline-block;background:#edf2ea;border-radius:20px;padding:4px 9px;font-size:.76rem;margin:0 4px 8px 0}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;min-width:0}.day.today{border:2px solid var(--green)}.slot{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.meal{background:#f2f5ef;border-radius:10px;padding:10px;margin-bottom:8px;overflow-wrap:anywhere}.meal button{font-size:.75rem;padding:5px;min-height:32px}.meal .actions{gap:4px}.actions{display:flex;gap:8px;flex-wrap:wrap}.full{width:100%}.auth{max-width:480px;margin:8vh auto;padding:24px}.auth .card{padding:30px}.form{display:grid;gap:16px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ingredient{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr auto;gap:7px;margin-bottom:8px}.check{display:flex;align-items:center;gap:10px}.shopping-row{display:grid;grid-template-columns:28px 1fr 125px 60px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.shopping-row.checked .item-name{text-decoration:line-through;color:#79837c}.shopping-row small{display:block}.empty{text-align:center;padding:45px 15px;color:#687a6c}.notice{background:#fff0d5;padding:14px;border-radius:10px;line-height:1.5;margin-bottom:18px}dialog{border:0;border-radius:18px;padding:26px;max-width:760px;width:calc(100% - 24px);max-height:90vh;color:#243e33}dialog::backdrop{background:#172d236b}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}#status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#243e33;color:white;padding:12px 20px;border-radius:12px;max-width:90vw;z-index:10;display:none}.hero{background:#e9eee3;border-radius:20px;padding:28px;margin-bottom:22px}.hero h1{font-size:2.4rem}.danger-text{color:#a13e30}.install{font-size:.85rem}.inline-input{width:auto;max-width:190px}a{color:var(--green)}:focus-visible{outline:3px solid #cf9758;outline-offset:3px}@media(max-width:1050px){.week{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.shell{padding:18px 14px 94px}.top{align-items:flex-start}.top small{max-width:180px;overflow-wrap:anywhere}.nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:8px 4px;z-index:3;display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:0}.nav button{padding:10px 2px;font-size:.68rem;border-radius:8px}.week{grid-template-columns:1fr}.slot{display:block}.two{grid-template-columns:1fr}.ingredient{grid-template-columns:1fr 80px 70px}.ingredient select[data-dept]{grid-column:1/3}.ingredient button{grid-column:3}.hero{padding:20px}.hero h1{font-size:1.8rem}.shopping-row{grid-template-columns:24px 1fr 80px 45px}.toolbar input{max-width:160px}.toolbar h1{font-size:1.6rem}#status{bottom:85px}}@media print{.nav,.top,button,.toolbar,.notice,#status{display:none!important}.shell{padding:0}.card{border:0}.shopping-row input[type=number]{border:0}.shopping-row.checked{display:none}.shopping-row{break-inside:avoid}}
.share-address{overflow-wrap:anywhere}
.shopping-row{grid-template-columns:145px 1fr 100px 45px}.shopping-flags{display:grid;gap:8px}.shopping-flags .check{font-size:.8rem;gap:6px}.excluded-from-shopping .item-name{opacity:.6}.export-page{margin-top:24px}.export-page img{width:100%;height:auto;border:1px solid var(--line);margin-top:12px}.file-download{display:inline-block;padding:12px 14px;background:#edf2ea;border-radius:10px}.shopping-row input[data-item-qty]{min-width:0}@media(max-width:620px){.shopping-row{grid-template-columns:1fr 80px 40px}.shopping-flags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px}.shopping-flags .check{font-size:.85rem}.shopping-row .item-name{grid-column:1}}@media print{#generate,.shopping-help,.shopping-flags,.excluded-from-shopping,dialog{display:none!important}.shopping-row.checked{display:none!important}.shopping-row{grid-template-columns:1fr 100px 45px}.shopping-row .item-name{grid-column:1}.shopping-row input[data-item-qty]{display:none}.shopping-row>span{display:none}.shopping-row .item-name:after{content:attr(data-print-quantity);display:block;font-size:1rem}.shopping-row small{display:none}}
.meal button.meal-recipe-link{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:1px solid transparent;padding:4px 0;font-size:.9rem;min-height:44px}.meal-recipe-link:hover{border-color:var(--green);background:#fff}.meal-recipe-link strong{min-width:0;overflow-wrap:anywhere}.meal-photo{flex:0 0 44px;width:44px;height:44px;border-radius:8px;overflow:hidden;background:#e1e8db}.meal-photo img,.card .meal-photo img{display:block;width:44px;height:44px;object-fit:cover;margin:0;border-radius:8px}.recipe-detail-photo img{display:block;width:100%;max-height:200px;object-fit:cover;border-radius:12px;margin-bottom:16px}@media print{.meal button.meal-recipe-link{display:flex!important;border:0}.meal-photo{display:none}}
.recipe-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px}.card.recipe-compact{padding:8px 10px;display:flex;align-items:center;gap:6px;border-radius:12px;min-width:0}.recipe-preview{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:4px;min-height:76px}.recipe-preview:hover{background:#f2f5ef}.recipe-thumb{flex:0 0 64px;width:64px;height:64px;border-radius:9px;overflow:hidden;background:#edf2ea;display:flex;align-items:center;justify-content:center;color:#829881;font-size:1.5rem}.card.recipe-compact .recipe-thumb img{width:64px;height:64px;object-fit:cover;border-radius:9px;margin:0}.recipe-preview-text{display:block;min-width:0}.recipe-preview-title{display:block;font-size:.95rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.recipe-preview-meta{display:block;color:#637369;font-size:.76rem;line-height:1.4;margin-top:4px}.recipe-preview-tags{display:block;line-height:1.2;margin-top:4px}.recipe-preview-tags .badge{font-size:.65rem;padding:2px 6px;margin:0 3px 2px 0}.recipe-favorite{flex:0 0 44px;width:44px;padding:4px;font-size:1.15rem;border-color:transparent;background:transparent}@media(max-width:620px){.recipe-list{grid-template-columns:1fr;gap:8px}.card.recipe-compact{padding:6px}.recipe-preview{gap:9px;min-height:66px}.recipe-thumb{flex-basis:52px;width:52px;height:52px}.card.recipe-compact .recipe-thumb img{width:52px;height:52px}.recipe-preview-title{font-size:.88rem}.recipe-preview-meta{font-size:.7rem}.recipe-preview-tags .badge{font-size:.62rem}.recipe-favorite{flex-basis:44px}}
