:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#24332a;background:#fbfaf5;--paper:#fbfaf5;--green:#2f6047;--muted:#60695f;--line:#dfdfd4;--soft:#eeeee5;accent-color:var(--green);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:var(--paper);color:var(--green);font-weight:600}button:hover{background:var(--soft)}button:disabled{cursor:default;opacity:.5}button:active{transform:translateY(1px)}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--green)}:focus-visible{outline:3px solid #b55a29;outline-offset:4px}::selection{background:#d5e4d5;color:#24332a}input{caret-color:var(--green)}[hidden]{display:none!important}
.shell{width:min(1080px,100% - 64px);margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.home-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font-weight:600;color:#24332a}.home-link svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.intro{padding:46px 0 38px}.intro h1{margin:0;font-size:36px;font-weight:650;letter-spacing:-.03em;line-height:1.25}.intro p{margin:16px 0 0;color:var(--muted);font-size:16px;line-height:1.8}.mobile-break{display:none}.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:64px;align-items:start}.sidebar{position:sticky;top:24px}.progress-block{padding:22px 20px;background:var(--soft);border-radius:12px}.progress-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:14px;font-variant-numeric:tabular-nums}.progress-heading strong{font-size:16px}.progress-heading span{color:var(--green)}progress{appearance:none;display:block;width:100%;height:6px;margin:16px 0;background:#d8dece;border:0;border-radius:10px;overflow:hidden}progress::-webkit-progress-bar{background:#d8dece}progress::-webkit-progress-value{background:var(--green);border-radius:10px}progress::-moz-progress-bar{background:var(--green)}.progress-block p{margin:0;font-size:13px;line-height:1.7;color:var(--muted)}#categories{display:grid;gap:4px;margin-top:22px}#categories button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:0;background:transparent;padding:12px 14px;font-weight:400;color:var(--muted)}#categories button:hover{background:var(--soft)}#categories button[aria-pressed="true"]{background:#e6ede2;color:#244c37;font-weight:650}#categories small{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.storage-note{margin:24px 14px 0;font-size:12px;line-height:1.8;color:var(--muted)}.storage-note p{margin:0}.storage-note .text-button{font-size:12px;padding:6px 0;border:0;margin-top:8px;background:none;text-decoration:underline;text-underline-offset:4px}.storage-note .error{color:#963d23}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}.remaining-toggle{display:flex;align-items:center;gap:9px;min-height:44px;font-size:14px;cursor:pointer}.remaining-toggle input{width:18px;height:18px;margin:0}.toolbar button{font-size:14px;display:flex;align-items:center;gap:12px}.toolbar button span{font-size:20px;font-weight:400;line-height:1}.group{margin-top:32px}.group-heading{display:flex;gap:16px;align-items:baseline;justify-content:space-between}.group-heading h2{font-size:20px;font-weight:650;margin:0}.group-heading span{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.group-note{margin:7px 0 17px;color:var(--muted);font-size:13px;line-height:1.7}.item{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:8px}.item label{flex:1;min-width:0;display:flex;align-items:flex-start;gap:14px;padding:17px 0;cursor:pointer;min-height:60px}.item input{flex:0 0 auto;width:22px;height:22px;margin:1px 0 0}.item-copy{min-width:0;line-height:1.5}.item-name{display:block;font-size:16px;overflow-wrap:anywhere}.item-note{display:block;margin-top:5px;max-width:65ch;font-size:13px;color:var(--muted);line-height:1.65}.item:has(input:checked) .item-name{text-decoration:line-through;text-decoration-color:#93a08d;color:var(--muted)}.item:has(input:checked){background:#f0f3e930}.remove{padding:9px;font-size:12px;font-weight:400;background:none;border:0;color:var(--muted);flex:0 0 auto}.list-footer{margin:32px 0;color:var(--muted);font-size:13px;line-height:1.9}.site-footer{margin:50px 0 0;padding:24px 0 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.site-footer a{display:inline-flex;align-items:center;min-height:44px}.site-footer span{align-self:center}.add-form{margin-top:20px;padding:20px;background:var(--soft);border-radius:12px;display:grid;grid-template-columns:1fr 170px;gap:14px}.add-form label{display:block;margin-bottom:8px;font-size:13px}.add-form input,.add-form select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #959d91;border-radius:7px;color:#24332a;background:var(--paper)}.add-form input::placeholder{color:var(--muted)}.add-form .primary{justify-self:start}.add-form p{grid-column:1/-1;margin:0;font-size:13px;color:var(--green)}.add-form p:empty{display:none}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#244c37}.feedback{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;font-size:13px;color:var(--green)}.feedback button{font-size:13px}.empty{padding:48px 12px;text-align:center}.empty h2{font-size:21px}.empty p{color:var(--muted);font-size:14px;line-height:1.8}dialog{width:min(420px,calc(100% - 40px));padding:28px;border:0;border-radius:14px;background:var(--paper);color:#24332a;box-shadow:0 18px 64px #16291c33}dialog::backdrop{background:#18211ac0}dialog h2{font-size:21px;margin:0 0 14px}dialog p{color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:24px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.dialog-actions button{font-size:14px}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.topbar{padding:12px 0;font-size:12px}.intro{padding:30px 0 25px}.intro h1{font-size:30px}.intro p{font-size:14px;margin-top:12px}.workspace{display:block}.sidebar{position:static}.progress-block{padding:18px 20px}.progress-block progress{margin:12px 0}.progress-block p{font-size:12px}#categories{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}#categories button{border:1px solid var(--line);padding:10px 11px;gap:8px;font-size:13px}#categories small{font-size:11px}#categories button[aria-pressed="true"]{border-color:#b5c9b2}.storage-note{margin:0 0 20px;display:flex;gap:10px;align-items:start;justify-content:space-between}.storage-note p{max-width:210px;font-size:11px}.storage-note .text-button{flex:0 0 auto;margin:0;min-height:44px;font-size:11px;padding:0}.toolbar{padding:15px 0;border-top:1px solid var(--line)}.group{margin-top:26px}.group-heading h2{font-size:19px}.item label{padding:16px 0}.item-name{font-size:15px}.item-note{font-size:12px}.add-form{padding:16px;grid-template-columns:1fr}.add-form .primary{width:100%}.site-footer{margin-top:32px;padding-bottom:24px;flex-direction:column;gap:0}.site-footer span{align-self:start}.mobile-break{display:block}}
.mobile-category{display:none}#items{scroll-margin-top:90px}.toolbar{position:sticky;top:0;background:var(--paper);z-index:2}
@media(max-width:760px){#categories{display:none}.mobile-category{display:flex;align-items:center;gap:16px;margin:18px 0;font-size:13px;color:var(--muted)}.mobile-category select{flex:1;min-width:0;min-height:46px;padding:10px;border:1px solid #959d91;border-radius:8px;background:var(--paper);color:#24332a}.intro{padding-top:24px;padding-bottom:22px}.storage-note{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){button:active{transform:none}}
