:root{font-family:"Segoe UI",system-ui,sans-serif;color:#293c32;background:#f7f7ef;font-synthesis:none;--green:#365e47;--muted:#7c8476;--line:#e4e7da;--paper:#fffef9}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #bc8554;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #a6b49a;outline-offset:2px}button{color:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.site-header{height:98px;max-width:1160px;margin:auto;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);padding:0 30px}.brand{font-family:Georgia,serif;font-size:32px;font-weight:bold;letter-spacing:-1.5px;display:flex;align-items:center;gap:9px}.brand-dot{color:#c88858;margin-left:-9px}.brand-icon{display:grid;place-items:center;width:36px;height:40px;background:var(--green);color:#f8f7eb;border-radius:13px 13px 15px 5px;font-size:29px;font-style:italic}.tagline{color:var(--muted);font-size:13px}.local{margin-left:auto;font-size:12px;color:#65785c;background:#eaf0df;padding:8px 12px;border-radius:20px}.local i{display:inline-block;width:6px;height:6px;background:#74895d;border-radius:50%;margin-right:6px}main{max-width:900px;margin:auto;padding:0 28px}nav{display:flex;gap:8px;margin:30px 0 43px;border-bottom:1px solid var(--line);padding-bottom:18px}nav button{border:0;background:transparent;border-radius:10px;padding:11px 18px;font-weight:600;color:#7a8173;font-size:14px}nav button>span{margin-right:7px;font-size:18px}nav button.active{background:#e4eadc;color:var(--green)}nav small{margin-left:7px;background:#365e47;color:#fff;padding:1px 6px;border-radius:10px;font-size:10px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.eyebrow{font-size:10px!important;letter-spacing:2.2px;font-weight:700;color:#8b946e!important;margin:0 0 12px!important}h1{font-family:Georgia,"Times New Roman",serif;font-size:46px;letter-spacing:-1.8px;font-weight:400;margin:0 0 12px;line-height:1.1}.page-heading p{font-size:14px;color:var(--muted);margin:0;line-height:1.6}.heading-art{font-size:90px;color:#b3bd87;line-height:1;transform:rotate(15deg);margin-right:24px}.primary{border:0;background:var(--green);color:#fffdf3;padding:12px 18px;border-radius:9px;font-size:13px;font-weight:600;min-height:44px}.primary:hover{background:#294a36}.quick-add{background:var(--paper);border:1px solid #d6ddca;box-shadow:0 5px 16px #30442d06;border-radius:13px;display:flex;align-items:center;padding:8px;gap:10px;position:relative}.quick-add>span{font-size:25px;color:#929c81;margin-left:9px}.quick-add input{border:0;outline:none;min-width:0;flex:1;background:transparent;padding:10px 0;font-size:16px}.quick-add input::placeholder{color:#949889}.quick-add .primary span{margin-left:15px;color:#b4c7af}#suggestions{position:absolute;z-index:5;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #263e3020;overflow:hidden}#suggestions button{width:100%;display:flex;gap:10px;justify-content:space-between;align-items:center;text-align:left;padding:15px 18px;border:0;border-bottom:1px solid #efefe6;background:transparent;min-height:48px}#suggestions button:hover,#suggestions button[aria-selected=true]{background:#eaf0df}#suggestions small{font-size:11px;color:var(--muted)}.list-toolbar{display:flex;justify-content:space-between;align-items:center;margin:25px 0 22px;font-size:12px;gap:10px}.list-toolbar strong{font-size:14px}.switch-label{display:flex;align-items:center;gap:6px;color:#67765c;white-space:nowrap}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px}.category-title{display:flex;align-items:center;gap:9px;margin:27px 0 10px}.category-title>span{color:#8b966d;font-size:20px;width:22px;text-align:center}.category-title h2{font-size:12px;margin:0;font-weight:600}.category-title small{color:#999e8d;font-size:11px;font-weight:400}.item-group{border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.item-group:empty{display:none}.item{display:flex;align-items:center;gap:14px;min-height:65px;padding:9px 16px;border-bottom:1px solid #ebeee2}.item:last-child{border-bottom:0}.check{border:1.5px solid #cbd3bc;border-radius:50%;width:44px;height:44px;flex-shrink:0;background:transparent;position:relative;border:0;font-size:16px;color:#5d7250}.check:before{content:'';position:absolute;width:22px;height:22px;border:1.5px solid #cbd3bc;border-radius:50%;inset:0;margin:auto}.check:hover{background:#f0f3e8}.completed .check:before{background:#e6ecdd;border-color:#d4dfc7;z-index:0}.completed .check{isolation:isolate}.completed .check:before{z-index:-1}.item-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px;font-weight:500}.quantity{display:flex;align-items:center;gap:2px;background:#f6f7f0;border-radius:8px;font-size:12px}.quantity button{border:0;background:transparent;width:36px;height:44px;font-size:17px;color:#7a856c}.quantity span{min-width:18px;text-align:center}.completed .item-name{text-decoration:line-through;color:#989d8d}.completed .quantity{opacity:.6}.purchased{justify-content:space-between;border-top:1px dashed #dfe3d3;padding-top:22px;margin-top:30px}.quiet{background:transparent;border:0;font-size:12px;color:#778266;min-height:44px;padding:8px}.quiet:hover{color:var(--green);text-decoration:underline}.small-note{text-align:center;color:#9ba18e;font-size:11px;margin:32px 0}footer{display:flex;gap:10px;align-items:center;justify-content:center;margin:50px 0 24px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:#a0a78f}footer span{font-size:18px;color:#b2bb92}.empty{text-align:center;padding:44px 20px}.empty>span{display:inline-grid;place-items:center;background:#e9eedf;color:#8a9b70;width:65px;height:65px;border-radius:24px;font-size:32px;margin-bottom:15px}.empty h2{font-family:Georgia,serif;font-size:24px;font-weight:400;margin:8px 0}.empty p{font-size:13px;color:var(--muted);line-height:1.6}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.recipe-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:23px;display:flex;flex-direction:column}.recipe-top{display:flex;justify-content:space-between;align-items:center}.recipe-icon{font-size:32px;color:#9aab7d;background:#eef1e5;padding:5px 14px;border-radius:14px}.recipe-card:nth-child(2n) .recipe-icon{color:#b3825b;background:#f4eadd}.recipe-card h2{font-family:Georgia,serif;font-size:25px;font-weight:400;margin:20px 0 0}.muted{color:var(--muted);font-size:12px}.ingredients{margin:8px 0 20px;flex:1}.ingredients label{display:flex;align-items:center;gap:8px;font-size:14px;min-height:42px}.recipe-add{width:100%}.catalog-tools{display:flex;align-items:center;gap:12px;margin-bottom:20px}.catalog-tools input{flex:1;min-width:0}.catalog-tools span{font-size:11px;color:var(--muted);white-space:nowrap}input:not([type=checkbox]),select,textarea{color:inherit}.catalog-tools input,.catalog-tools select,dialog input,dialog select,textarea{background:var(--paper);border:1px solid #dce1d2;border-radius:8px;padding:12px;font-size:14px}.badge{background:#f1f3ea;color:#7b856e;border-radius:6px;font-size:11px;padding:6px 9px}.unclassified{background:#f7ebd9;color:#a07b44}.catalog-row{gap:12px}dialog{border:1px solid var(--line);border-radius:18px;padding:28px;width:min(480px,calc(100% - 30px));max-height:90dvh;color:inherit;background:var(--paper);box-shadow:0 25px 80px #23382426}dialog::backdrop{background:#263f3455;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.dialog-heading h2{font-family:Georgia,serif;font-weight:400;font-size:27px;margin:0}.icon-button{border:0;background:transparent;font-size:27px;width:44px;height:44px}dialog label{display:flex;flex-direction:column;gap:8px;font-size:13px;margin:18px 0}dialog textarea{resize:vertical}.field-help{color:var(--muted);font-size:12px;line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:25px}.danger{border:0;background:transparent;color:#a36955;padding:10px 0;font-size:12px}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:#304d3e;color:#fffdf3;border-radius:12px;padding:14px 22px;font-size:13px;max-width:calc(100% - 30px);width:max-content;box-shadow:0 8px 30px #223b3026;transition:.2s;z-index:10}#toast.show{opacity:1;transform:translate(-50%,0)}#connection{background:#f3e6ce;color:#896437;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}
@media(min-width:1000px){main{max-width:880px}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-card{padding:19px}.recipe-card h2{font-size:24px}.recipe-card .muted{line-height:1.6}}
@media(max-width:600px){.site-header{height:76px;padding:0 20px}.brand{font-size:28px}.tagline{display:none}.local{font-size:10px}main{padding:0 18px}nav{margin:20px 0 30px;gap:2px;justify-content:space-between;padding-bottom:14px}nav button{padding:10px 9px;font-size:12px}nav button>span{display:none}nav small{margin-left:3px;padding:1px 5px}h1{font-size:35px;letter-spacing:-1.3px}.page-heading{margin-bottom:22px;flex-wrap:wrap}.page-heading p{font-size:13px}.heading-art{font-size:62px;margin-right:5px}.eyebrow{font-size:9px!important;letter-spacing:1.7px}.quick-add{gap:6px;padding:6px}.quick-add>span{margin-left:3px}.quick-add .primary{padding:12px}.quick-add .primary span{display:none}.list-toolbar{font-size:11px}.list-toolbar .muted{font-size:10px}.item{padding:7px 10px;gap:8px}.quantity button{width:32px}.item-name{font-size:14px}.recipe-grid{grid-template-columns:1fr}.catalog-tools{flex-wrap:wrap}.catalog-tools input{flex-basis:100%}.catalog-tools select{flex:1;min-width:0}.catalog-row{flex-wrap:wrap;gap:4px 9px}.catalog-row .item-name{flex-basis:55%}.catalog-row .badge{order:3;margin-bottom:5px}.catalog-row .quiet{margin-left:auto}.catalog-tools input,dialog input,dialog select,textarea{font-size:16px}footer{margin-top:35px}.small-note{font-size:10px}#suggestions small{max-width:35%;text-align:right}#toast{bottom:18px}}
.shopping-toolbar{flex-wrap:wrap}.shopping-toolbar .switch-label{margin-left:auto}.shopping-toolbar #clear-list{color:#a36955}
.catalog-shortcuts{margin-bottom:16px}.catalog-shortcuts button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 14px;border:1px solid #e3d3b7;border-radius:10px;background:#fffaf0;color:#8b683c;font-size:13px}.catalog-shortcuts button[aria-pressed=true]{background:#f3e5cb;border-color:#b79560}.catalog-shortcuts span{border-radius:12px;background:#ead7b4;padding:2px 7px;font-size:11px}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.login-page{max-width:480px;padding-top:50px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form label{font-size:14px;margin-top:8px}.login-form input{width:100%;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font:inherit;font-size:16px}.login-form .primary{margin-top:12px}.login-form .muted{font-size:12px;line-height:1.6}#login-error{color:#a36955;font-size:14px}#logout{margin-top:12px;min-height:44px}
