:root{color-scheme:light;--ink:#20362c;--muted:#52645a;--green:#236344;--paper:#f4f6ef;--line:#d9e1d4;--warning:#884324;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{min-height:44px;padding:.6rem .95rem;border:1px solid #b4c5b5;border-radius:.6rem;background:#fff;color:var(--ink);font-weight:650;cursor:pointer}button:hover:not(:disabled){background:#ecf3e9}button:disabled{cursor:default;color:#70796f;background:#f2f4ef;border-color:#d9dfd5}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover:not(:disabled){background:#174c32}.quiet{background:transparent;border-color:transparent;padding:.55rem .65rem}.danger{color:#944426}input,textarea,select{width:100%;min-width:0;min-height:46px;border:1px solid #a9b9aa;border-radius:.55rem;background:white;color:var(--ink);padding:.65rem .75rem}textarea{display:block;resize:vertical;max-height:24rem}label{display:block;font-size:.87rem;font-weight:680;margin-bottom:.3rem}input[type=checkbox]{accent-color:var(--green);width:23px;height:23px;min-height:23px;flex:0 0 23px;padding:0;margin:0;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #aa5827;outline-offset:3px}.shell{max-width:740px;margin:0 auto;padding:2.4rem 1.1rem 1rem}.page-head{display:flex;gap:.8rem;align-items:center;margin:0 .2rem 1.6rem}.brand-mark{background:#dfead6;color:#255b3d;width:47px;height:47px;border-radius:14px;display:grid;place-items:center;font-size:1.55rem;flex-shrink:0}h1{font-size:clamp(1.45rem,5vw,1.85rem);line-height:1.15;letter-spacing:-.045em;margin:0}h2{font-size:1.05rem;margin:0}.page-head p{color:var(--muted);margin:.4rem 0 0;font-size:.9rem}.card{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.3rem;margin-bottom:1rem;box-shadow:0 3px 15px #21361c05}.add-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:.65rem;align-items:end}.optional{font-weight:400;color:var(--muted);font-size:.79rem}.hint{font-size:.8rem;color:var(--muted);margin:.45rem 0}.add-form .hint{grid-column:1/-1;margin:0}.status{font-size:.88rem;color:#365a3d;margin:.75rem 0;min-height:1.3rem;overflow-wrap:anywhere}.status.error,.error{color:#8c361d}.list-heading{border-top:1px solid var(--line);padding-top:1.15rem;display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}.count{font-size:.83rem;color:var(--muted);margin:0}.filter-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.6fr);gap:.7rem;margin-top:1rem}.items{list-style:none;margin:.4rem 0 0;padding:0}.item{display:flex;gap:.3rem;align-items:center;padding:.65rem 0;border-bottom:1px solid #e7ece3;min-width:0}.item-check{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;margin:0;min-height:44px;font-weight:500;cursor:pointer}.item-content{min-width:0;overflow-wrap:anywhere}.item-name{display:block;font-size:1rem}.item-quantity{display:block;font-size:.83rem;color:var(--muted);font-weight:400}.item.checked .item-name{text-decoration:line-through;color:#637266}.item.checked{background:#fafbf8}.row-action{min-width:44px;padding:.55rem .5rem;flex-shrink:0;font-size:.81rem;background:transparent;border-color:transparent}.remove{font-size:1.15rem;font-weight:400;color:#795d50}.empty{text-align:center;padding:1.6rem .5rem;color:var(--muted);font-size:.95rem}.empty span{display:block;font-size:.82rem;margin-top:.3rem}.list-actions{display:flex;justify-content:space-between;gap:.5rem;margin-top:1rem}.compact{padding:0}summary{min-height:50px;padding:.85rem 1.3rem;cursor:pointer;font-size:.95rem;font-weight:650}details form{padding:0 1.3rem 1.3rem}details textarea{margin-top:.4rem}details form button{margin-top:.5rem}.storage-box{padding:.1rem .3rem .6rem;font-size:.8rem;color:var(--muted)}.storage-box p{margin:0}.storage-actions{display:flex;flex-wrap:wrap;gap:.3rem}.storage-actions button{font-size:.78rem;padding:.5rem .4rem}footer{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;font-size:.78rem;color:var(--muted);padding:.6rem .3rem}a{color:var(--green)}footer a{display:inline-flex;min-height:44px;align-items:center}footer span:last-child{margin-left:auto}dialog{width:calc(100% - 2rem);max-width:420px;border:1px solid var(--line);border-radius:1rem;padding:1.4rem;color:var(--ink);box-shadow:0 20px 90px #10271533}dialog::backdrop{background:#17301d66}dialog p{font-size:.94rem;overflow-wrap:anywhere}dialog h2{font-size:1.2rem;margin-bottom:1rem}dialog label:not(:first-child){margin-top:.8rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.2rem;flex-wrap:wrap}.copy-fallback{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}.copy-fallback textarea{margin-top:.5rem}.notice{padding:1rem;border:1px solid var(--warning)}.skip{position:absolute;top:-100px;background:white;padding:.7rem;z-index:5}.skip:focus{top:.5rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}.prose{font-size:.95rem}.prose h2{margin:1.4rem 0 .4rem}.prose h1{margin-bottom:1.2rem}.prose li{margin:.5rem 0}.prose p{overflow-wrap:anywhere}.prose ul{padding-left:1.2rem}.prose a{overflow-wrap:anywhere}@media(max-width:560px){.shell{padding:1.25rem .75rem .75rem}.card{padding:1rem}.add-form{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.add-button{grid-column:1/-1;width:100%}.add-form .hint{font-size:.75rem}.filter-bar{grid-template-columns:minmax(0,1fr) minmax(130px,.85fr)}.filter-bar input,.filter-bar select{padding:.6rem .5rem;font-size:.89rem}.item-check{gap:.5rem}.item-name{font-size:.94rem}.row-action{padding:.4rem .3rem}.compact{padding:0}summary{padding:.85rem 1rem}details form{padding:0 1rem 1rem}.count{font-size:.76rem}.list-actions button{font-size:.88rem}.page-head{margin-bottom:1.15rem}.storage-actions{gap:0}footer{gap:1rem}}@media(forced-colors:active){.item.checked .item-name{color:GrayText}.primary{border:2px solid ButtonText}.brand-mark{border:1px solid CanvasText}}
