*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f6f8f3;color:#20382d}main{max-width:640px;margin:auto;padding:20px}button,input,select,textarea{font:inherit;min-height:44px}button{cursor:pointer}:root{--green: #406808;--light: #e8f0e5;--muted: #60736a}h1,h2,h3,p{margin-top:0}h1,h2,h3,h4{color:var(--green)}button,.button-link{border:1px solid #cbd8cc;border-radius:12px;background:#fff;color:var(--green);padding:8px 12px}.button-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}button:disabled{opacity:.5;cursor:default}button.active,.primary,.badge{background:var(--green);color:#fff;border-color:var(--green)}input,select,textarea{width:100%;border:1px solid #bbcdbc;border-radius:10px;padding:10px;background:#fff;color:inherit}label{display:block;font-weight:600;font-size:1rem;margin-bottom:12px}label input,label select,label textarea{margin-top:6px}.brand{text-align:center;padding:16px 0 28px}.brand h1{font-size:42px;margin:0;letter-spacing:-2px}.brand p{letter-spacing:3px;margin:4px 0;color:var(--muted)}.card{background:#fff;border:1px solid #dae4d6;border-radius:20px;padding:18px;margin-bottom:24px;box-shadow:0 4px 20px #25453406}.family-name{text-align:center;color:var(--green);font-size:1rem;font-weight:700;margin:14px 0 30px}.signed-user{display:flex;justify-content:center;align-items:center;gap:10px}.badge{padding:12px;border-radius:12px}.store-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:26px}.store-nav button{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;min-width:0;padding:0 6px;white-space:nowrap}.cutlery{width:20px;height:20px;flex-shrink:0}.wishes-heading{display:flex;align-items:center;gap:8px}.page-title{font-size:26px}.primary{width:100%;font-weight:700}.add-form>input{margin-bottom:12px}details{margin:10px 0 14px}summary{cursor:pointer;padding:10px 0;min-height:44px}ul{list-style:none;margin:0;padding:0}.section-heading{display:flex;justify-content:space-between;gap:8px;align-items:center}.section-heading h2{font-size:20px}.section-heading span{font-size:14px;color:var(--muted);white-space:nowrap}.category-heading{font-size:14px;color:var(--green);text-transform:uppercase;letter-spacing:1px;margin:24px 0 10px}.item{background:#fff;border:1px solid #dce5d7;border-radius:16px;padding:4px 8px;margin:4px 0}.item-line{display:grid;grid-template-columns:44px minmax(0,1fr) 44px max-content 44px;column-gap:2px;align-items:center;min-height:44px}.item-readonly .item-line{grid-template-columns:44px minmax(0,1fr) 28px max-content;column-gap:4px}.completion-target{display:grid;place-items:center;grid-column:1;grid-row:1;width:44px;height:44px;margin:0;cursor:pointer}.completion-target input{width:20px;height:20px;min-width:20px;min-height:20px;margin:0;accent-color:var(--green)}.item-name{grid-column:2;grid-row:1;overflow-wrap:anywhere;font-weight:600;min-width:0;font-size:14px}.item-controls{display:contents}.quantity{grid-column:3;grid-row:1;display:flex;align-items:center;position:relative;width:44px}.quantity button{width:44px;height:44px;padding:0;border:0;background:transparent;font-size:16px;position:relative}.quantity-editor button:before{content:"";position:absolute;inset:10px;border:1px solid #dce5d7;border-radius:7px}.quantity span{min-width:12px;text-align:center;font-size:12px;font-weight:600}.quantity .quantity-readonly{width:28px;min-width:28px}.item-readonly .quantity{width:28px}.quantity-toggle{display:flex;align-items:center;justify-content:center;gap:3px}.quantity-toggle svg{width:10px;height:10px}.quantity-editor{position:absolute;top:calc(100% + 4px);right:0;z-index:2;display:flex;align-items:center;gap:4px;padding:6px;border:1px solid #cbd8cc;border-radius:12px;background:#fff;box-shadow:0 4px 14px #20382d26}.quantity-editor output{min-width:24px;text-align:center;font-size:12px}.creator{grid-column:4;grid-row:1;min-width:0;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}.item-remove{grid-column:5;grid-row:1;width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;padding:0;border:0;background:transparent}.item-remove svg{width:18px;height:18px}.item-comment{display:flex;align-items:center;gap:6px;max-width:calc(100% - 48px);padding:4px 0;border:0;background:transparent;font-size:12px;color:var(--muted);text-align:left;margin:0 0 0 48px}.item-comment span{min-width:0;overflow-wrap:anywhere}.item-comment svg{width:16px;height:16px;flex-shrink:0}.readonly-comment{max-width:calc(100% - 48px);min-height:auto}.is-complete .item-name{text-decoration:line-through;color:var(--muted)}.completed{margin-top:32px;padding-top:20px;border-top:1px dashed #b6c9b7}.empty{padding:24px;background:var(--light);border-radius:16px;color:var(--muted)}.error{color:#922d2d;background:#fff2ef;padding:12px;border-radius:10px;overflow-wrap:anywhere}main{padding-bottom:40px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #6ba66c;outline-offset:3px}.suggestions{border:1px solid #cbd8cc;border-radius:12px;overflow:hidden;margin-bottom:12px}.suggestions button{width:100%;text-align:left;border:0;border-radius:0;display:flex;justify-content:space-between;gap:8px}.suggestions .highlight{background:var(--light)}small{display:block;color:var(--muted);font-size:12px}.known-category{font-size:13px;color:var(--muted)}.frequent{margin-top:48px;padding-top:24px;border-top:1px solid #d5dfd0}.frequent h2{font-size:20px;margin-bottom:8px}.muted{color:var(--muted);font-size:14px}.frequent-buttons{display:flex;flex-wrap:wrap;gap:8px}.frequent-buttons button{flex:1 1 140px;text-align:left;overflow-wrap:anywhere}.bottom-nav{display:flex;gap:12px;justify-content:center;margin-top:40px;padding:24px 0 12px;border-top:1px solid #d5dfd0}.history-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:8px;overflow-wrap:anywhere}.history-row small,.history-row p{grid-column:1/-1}.history-row p{margin:0;font-size:14px}.meal-list{overflow-x:clip}.meal-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dae4d6;border-radius:16px;padding:12px;margin-bottom:10px}.meal-row>div:first-of-type{flex:1;min-width:0;overflow-wrap:anywhere}.drag-handle{touch-action:none;font-size:24px;width:44px;padding:0;flex-shrink:0}.meal-arrows{display:flex;gap:4px}.meal-arrows button{width:44px;padding:0}.dragging{opacity:.7;z-index:2;position:relative}.admin-list{margin-top:20px}.admin-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e2e9df}.admin-list li>span{flex:1;min-width:100px;overflow-wrap:anywhere}.admin-list li>div{display:flex;gap:6px}.delete-category{margin-top:20px;padding-top:20px;border-top:2px solid #cbd8cc}form button+button{margin-left:6px}.brand img{display:block;width:min(60vw,240px,100%);height:auto;margin:auto}.connection{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:13px;padding:12px;border-radius:12px;background:#e8f0e5;margin:0 0 22px}.connection.offline{background:#f1ecd9}.connection small{font-size:12px}.bottom-nav{flex-wrap:wrap}.update-prompt{border:2px solid #6ba66c}textarea{resize:vertical;min-height:90px}.card form button{margin-bottom:6px}@media(max-width:359px){main{padding:12px}.card{padding:14px}.meal-arrows{flex-direction:column}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}main{padding-bottom:96px}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translate(-50%);width:min(640px,100%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #cbd8cc;background:#f6f8f3f5;box-shadow:0 -8px 24px #20382d1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{min-width:0;min-height:58px;padding:5px 2px;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;line-height:1.1}.bottom-nav .nav-icon{font-size:22px;line-height:1}.bottom-nav .nav-icon svg{display:block;width:22px;height:22px}.restricted-admin{text-align:center}
