:root{font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN',sans-serif;color:#263d33;background:#f8f7f2;font-synthesis:none;--green:#285c46;--muted:#849087}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid #b69c5d;outline-offset:2px}button{border:0}button:disabled{cursor:default} .app{max-width:480px;margin:auto;min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) 24px calc(150px + env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:44px}.brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650;letter-spacing:.02em}.brand small{display:block;font-size:8px;letter-spacing:.17em;margin-top:5px;color:#7b897c}.brand-icon{background:#e8ede2;border-radius:12px;width:37px;height:37px;display:grid;place-items:center;font-size:25px;color:var(--green)}.share{background:transparent;border:1px solid #d4dad0;border-radius:24px;font-size:12px;color:var(--green);height:44px;padding:0 17px}.eyebrow{font-size:11px;letter-spacing:.1em;color:#899184;margin-bottom:9px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}h1{font-size:29px;font-weight:650;letter-spacing:.02em;margin:0}#count{font-size:13px;background:#e8ecdf;border-radius:50%;vertical-align:middle;display:inline-grid;place-items:center;width:27px;height:27px;margin-left:11px}.status{font-size:10px;color:#7d8b7f}.status:before{content:'●';color:#88a47b;margin-right:5px;font-size:7px}.list{background:#fffefa;border:1px solid #e8e9df;border-radius:19px;overflow:hidden}.item{display:flex;align-items:center;gap:14px;text-align:left;background:none;width:100%;min-height:61px;padding:13px 18px;color:#2f3c34;font-size:16px;border-bottom:1px solid #efefe7;overflow-wrap:anywhere}.item:last-child{border-bottom:0}.check{height:23px;width:23px;flex-shrink:0;border:1.5px solid #c8d1c2;border-radius:50%}.item:active{background:#edf0e7}.memo{font-size:10px;color:#8c9589;text-align:center;margin:17px 0 35px}.memo span{font-size:15px;margin-right:4px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:8px}.section-title h2,.section-title h3{font-size:13px;margin:0;font-weight:600}.section-title>span{font-size:10px;color:#8c9589}.recent-chip{background:#efefe7;color:#697467;border-radius:9px;padding:0 12px;min-height:44px;margin:0 7px 7px 0;font-size:12px;max-width:100%;overflow-wrap:anywhere}.recent-chip:disabled{opacity:.5}.empty{text-align:center;padding:32px 0 16px}.empty h2{font-size:19px;font-weight:600}.empty p{font-size:13px;line-height:1.9;color:#859080}.basket{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 25px;border-radius:24px;background:#e9edde;color:#6f865d;font-size:30px;transform:rotate(-7deg)}footer{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);padding:24px 24px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#f8f7f2 20%)}.footer-note{text-align:center;font-size:10px;color:#92998b;margin-bottom:14px}.footer-note span{color:#ad995f;margin-right:5px}.primary{width:100%;background:var(--green);color:white;min-height:56px;border-radius:15px;font-weight:600;font-size:15px}.primary>span{font-size:21px;vertical-align:-1px;margin-right:7px}.primary:active{background:#173c2c}dialog{border:none;border-radius:26px 26px 0 0;background:#f8f7f2;color:#263d33;position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:480px;max-height:85dvh;padding:10px 24px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain}dialog::backdrop{background:#20362966;backdrop-filter:blur(3px)}.handle{width:35px;height:4px;border-radius:4px;background:#d6d9cd;margin:0 auto 11px}.sheet-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.sheet-heading h2{font-size:20px;margin:0}.close{width:44px;height:44px;font-size:28px;background:none;color:#71806f}.input-wrap{display:flex;border:1px solid #dbe0d4;background:#fffefa;border-radius:13px;margin-bottom:27px;overflow:hidden}input{font-size:16px;min-width:0;background:transparent;color:#263d33}#name{width:100%;border:0;padding:16px 13px;outline-offset:-3px}.input-wrap button{width:54px;flex-shrink:0;background:transparent;font-size:26px;color:var(--green)}.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.chip{display:flex;align-items:center;border:1px solid #dde2d4;border-radius:11px;overflow:hidden;background:#fffefa}.chip .add-chip{flex:1;text-align:left;min-height:46px;background:none;padding:9px 0 9px 12px;color:#344b39;font-size:13px;overflow-wrap:anywhere}.chip .pin{min-width:44px;min-height:46px;background:none;color:#a99c6c;font-size:19px}.chip.selected{background:#e8eddf;border-color:#e8eddf}.chip.selected .add-chip{color:#7c8975}.more{display:block;min-height:44px;margin:9px auto;background:none;font-size:12px;color:var(--green)}.sheet-note{font-size:11px;text-align:center;line-height:1.8;color:#919888;margin:15px 0 0}#sheet-status{min-height:22px;text-align:center;font-size:12px;color:var(--green);margin-top:8px}#toast{position:fixed;bottom:calc(118px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 40px);max-width:432px;border-radius:13px;background:#283f33;color:white;padding:12px 16px;font-size:12px;z-index:5;box-shadow:0 5px 20px #14271620}#toast:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:8px}#toast span{overflow-wrap:anywhere}#undo{background:none;color:#dce9b9;min-height:44px;flex-shrink:0}#share-dialog p{font-size:13px;line-height:1.9}.notice{background:#eceee3;padding:14px;border-radius:12px;font-size:12px;line-height:1.8;margin:20px 0}#share-url{width:100%;padding:13px;border:1px solid #d5dccc;border-radius:10px;margin:8px 0 16px}label{font-size:12px}[hidden]{display:none!important}@media(max-width:360px){.app{padding-left:18px;padding-right:18px}.heading{gap:5px}.status{font-size:9px}h1{font-size:26px}}@media(prefers-reduced-motion:no-preference){dialog[open]{animation:rise .2s ease-out}@keyframes rise{from{transform:translateY(30px);opacity:.5}to{transform:translateY(0);opacity:1}}}

/* Compact three-column labels; the whole label remains a touch target. */
.chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.chip{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:56px;padding:6px 8px;text-align:center;color:#344b39;font-size:13px;line-height:1.45}
.chip-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;max-width:100%}
.chip.selected{color:#7c8975;padding-right:17px}
.chip.editing{padding-right:20px}
.chip.editing[aria-pressed="true"]{background:#e8eddf;border-color:#a5b895}
.chip-mark{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:12px;color:#8d824f}
.edit-pins{background:none;color:var(--green);font-size:11px;min-height:44px;padding:0 0 0 8px;flex-shrink:0}
#add-dialog .section-title{margin-bottom:8px}
#add-dialog .input-wrap{margin-bottom:12px}
#add-dialog .sheet-note{margin-top:8px}
#suggestions>.sheet-note{grid-column:1/-1}
dialog{max-height:min(85dvh,var(--sheet-height,85dvh));bottom:var(--keyboard-inset,0px);overflow-y:auto}
.recent{border-top:1px solid #e2e5d9;padding-top:5px}
.recent summary{min-height:48px;cursor:pointer;font-size:13px;padding:14px 0;touch-action:manipulation}
#history-count{color:#829077;font-size:12px;margin-left:5px}
.history-hint{float:right;color:#829077;font-size:11px}
.history-note{font-size:11px;color:#849080;line-height:1.7;margin:0 0 10px}
.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e6e8dd;min-height:54px}
.history-name{font-size:14px;overflow-wrap:anywhere;min-width:0}
.restore{flex-shrink:0;background:#e9eddf;border-radius:10px;color:var(--green);font-size:12px;min-height:44px;padding:0 12px;margin:5px 0}
@media(max-width:360px){dialog{padding-left:16px;padding-right:16px}.chip{font-size:12px}}

.category-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0 8px;margin:0 0 12px;-webkit-overflow-scrolling:touch}
.category-tabs::-webkit-scrollbar{display:none}
.category-tab{flex-shrink:0;min-height:44px;padding:0 13px;border:1px solid #dfe4d7;border-radius:22px;background:transparent;color:#697964;font-size:12px;white-space:nowrap}
.category-tab[aria-pressed="true"]{background:#285c46;color:white;border-color:#285c46}
.add-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0;padding-bottom:4px}
.add-categories .category-tab{padding:0 5px;font-size:12px}
.heading{margin-bottom:16px}
.list-context{font-size:11px;color:#77846e;margin:0 0 14px}
.filter-empty{font-size:13px;line-height:1.8;text-align:center;padding:35px 10px;color:#7b8973}

select{font:inherit;font-size:16px;color:#285c46;background:#fffefa;border:1px solid #d5ddce;border-radius:10px;padding:10px;min-height:44px;max-width:100%}.input-category-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}.input-category-row select{min-width:175px}.edit-categories{display:block;background:none;color:#285c46;font-size:12px;min-height:44px;margin:6px auto 0;text-decoration:underline;text-underline-offset:4px}.category-edit-chip{flex-direction:column;height:68px;gap:2px}.category-label{font-size:10px;color:#819173}#category-product{font-size:18px;overflow-wrap:anywhere}#category-choice{display:block;width:100%;margin:10px 0}#category-save{margin-top:16px}
