:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20352e;background:#f7f7f2;font-size:18px;font-synthesis:none;line-height:1.5;--green:#244f42;--muted:#56665e;--line:#d9dfd5}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,summary,label{touch-action:manipulation}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b46b16;outline-offset:4px}button{color:inherit}button,input,textarea{border-radius:10px}.wrap{max-width:800px;margin:auto;padding:0 24px}.hero{background:var(--green);color:#fff;padding:38px 0 27px}.eyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:700;margin:0 0 14px;color:#d7e5db}h1{font-size:clamp(2.5rem,7vw,3.3rem);line-height:1.1;letter-spacing:-.05em;margin:0 0 16px}h1 span{color:#d8e994}.intro{color:#e1e9e3;font-size:1.05rem;margin:0 0 28px}.overall{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.8rem}.overall span:first-child{font-weight:750}.overall span:last-child{color:#d3dfd6;font-size:.7rem}progress{display:block;width:100%;height:8px;border:0;border-radius:10px;overflow:hidden;margin-top:10px;background:#537467}progress::-webkit-progress-bar{background:#537467}progress::-webkit-progress-value{background:#d8e994}progress::-moz-progress-bar{background:#d8e994}.save-status{font-size:.75rem;color:var(--muted);padding:14px 0;margin:0}.save-status.error{color:#8b310c;font-weight:700}.toolbar{background:#f7f7f2;padding:4px 0 12px}.tabs{display:grid;grid-template-columns:1fr 1.35fr;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#ecefe6}.tabs button{border:0;background:transparent;font-size:.86rem;font-weight:700;padding:12px 6px;min-height:50px}.tabs button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #213e2917}.tabs span{font-size:.72rem;display:inline-block;background:#e8eee4;border-radius:5px;padding:1px 5px;margin-left:3px}.search{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #b9c5bc;padding:0 14px;border-radius:12px;margin:16px 0 8px}.search svg{width:21px;min-width:21px;fill:none;stroke:#67776e;stroke-width:1.7}.search input{width:100%;min-width:0;border:0;background:transparent;padding:13px 0;font-size:.9rem;color:#20352e;outline-offset:1px}.filters{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem}.filters label{display:flex;align-items:center;gap:8px;min-height:48px;cursor:pointer}.filters input{width:22px;height:22px;accent-color:var(--green);margin:0}.filters button{background:transparent;border:0;min-height:48px;font-weight:700;padding:8px}.filters button span{font-weight:400;font-size:.75rem}.filters button[aria-pressed=true]{background:#e1eadb}.list-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:16px}h2{font-size:1.2rem;letter-spacing:-.02em;margin:0}.list-heading p{font-size:.8rem;font-weight:650;white-space:nowrap}.description{font-size:.8rem;color:var(--muted);margin:0 0 26px}.group{margin:26px 0}.group-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}.group-heading h3{font-size:.8rem;letter-spacing:.025em;margin:0}.group-heading span{font-size:.72rem;color:var(--muted);white-space:nowrap}.cards{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.item{padding:16px;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item-label{display:flex;align-items:flex-start;gap:13px;cursor:pointer;min-height:48px}.item-check{appearance:none;-webkit-appearance:none;flex-shrink:0;width:30px;height:30px;border:2px solid #829a8b;border-radius:8px;margin:2px 0 0;background:#fff;display:grid;place-content:center}.item-check:checked{background:var(--green);border-color:var(--green)}.item-check:checked:after{content:'✓';color:#fff;font-size:24px;line-height:1}.item-copy{flex:1;min-width:0}.item-name{display:block;font-weight:650;font-size:1rem;line-height:1.45;overflow-wrap:anywhere}.meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:7px;font-size:.68rem;font-weight:650;color:var(--muted)}.quantity{background:#edf2e7;color:#304936;border-radius:5px;padding:2px 7px;font-size:.74rem}.detail{display:block;font-size:.79rem;color:var(--muted);margin-top:7px;line-height:1.5}.item.done{background:#f0f5ed}.item.done .item-name{color:#546659;text-decoration:line-through;text-decoration-thickness:1px}.item.done .quantity{background:#e0e9d8}.warning{font-size:.76rem;background:#fff6dc;border:1px solid #e2c778;color:#725011;padding:10px 12px;border-radius:8px;margin:12px 0 0 43px}.note{margin-left:43px;margin-top:7px}.note summary{font-size:.74rem;color:#526959;cursor:pointer;min-height:44px;padding:6px 0;width:fit-content}.note label{display:block;font-size:.74rem;margin:6px 0}.note textarea{display:block;width:100%;min-height:85px;resize:vertical;border:1px solid #9bac9f;padding:10px;font-size:.88rem;background:#fff;color:#20352e}.empty{padding:35px 15px;text-align:center;border:1px dashed #b9c5bc;border-radius:12px}.help{border-top:1px solid var(--line);padding:20px 0;font-size:.8rem;color:var(--muted)}.help summary{font-weight:650;color:#20352e;cursor:pointer;min-height:44px}footer{padding:10px 0 36px;color:var(--muted);font-size:.75rem;text-align:center}footer button{border:1px solid #b9c5bc;background:#fff;padding:12px 16px;min-height:48px}body.large{font-size:21px}body.large .item-name{font-size:1.17rem}body.large .detail{font-size:.93rem}body.large .meta{font-size:.82rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px;left:10px;background:#fff;color:#20352e;padding:12px;z-index:10}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:420px){.wrap{padding:0 16px}.hero{padding-top:30px}.item{padding:15px 12px}.tabs button{font-size:.8rem}.list-heading{gap:5px}.list-heading h2{font-size:1.08rem}.overall span:last-child{font-size:.65rem}.filters button span{font-size:.7rem}}@media(prefers-reduced-motion:no-preference){progress{transition:all .2s}.item-check{transition:background .12s}}@media print{.toolbar,footer,.note,.help,.save-status{display:none}.hero{background:#fff;color:#20352e}.hero p{color:#20352e}.item{break-inside:avoid}}
