:root{--paper:#f4f1e9;--ink:#2a2622;--muted:#8c8579;--line:#e4decf;--card:#fff;--tpl:#cc512c;--tpl-soft:#faeae2;--tpl-line:#f0d6c9;--set:#1c7a6a;--set-soft:#e2f0ec;--set-line:#cde6df;--gold:#c29a26;--gold-soft:#f6efd6;--done:#3d8b5f}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);margin:0;padding-bottom:64px;font-family:Inter,PingFang SC,Microsoft YaHei,Hiragino Sans GB,sans-serif;line-height:1.5}.wrap{max-width:760px;margin:0 auto;padding:0 18px}header{z-index:20;-webkit-backdrop-filter:saturate(1.2)blur(8px);backdrop-filter:saturate(1.2)blur(8px);border-bottom:1px solid var(--line);background:#f4f1e9eb;position:sticky;top:0}.head-in{max-width:760px;margin:0 auto;padding:14px 18px 12px}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-family:Space Mono,monospace;font-size:11px}h1{letter-spacing:-.01em;margin:2px 0 0;font-family:Space Grotesk,sans-serif;font-size:26px;font-weight:700}.h1-en{color:var(--muted);margin-left:8px;font-size:15px;font-weight:500}.meterrow{align-items:center;gap:12px;margin-top:12px;display:flex}.meter{background:#e7e1d4;border-radius:99px;flex:1;height:8px;overflow:hidden}.meter>i{background:linear-gradient(90deg,var(--set),var(--tpl));border-radius:99px;width:0;height:100%;transition:width .45s cubic-bezier(.3,.8,.3,1);display:block}.meter-num{color:var(--ink);white-space:nowrap;font-family:Space Mono,monospace;font-size:13px}.meter-num b{color:var(--tpl)}.checkin{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:14px;margin:14px 0 4px;padding:14px 16px;display:flex}.ci-streak{align-items:baseline;gap:6px;display:flex}.ci-streak .n{color:var(--gold);font-family:Space Grotesk,sans-serif;font-size:30px;font-weight:700;line-height:1}.ci-streak .l{color:var(--muted);font-size:13px}.dots{flex:1;gap:5px;min-width:150px;display:flex}.dots span{background:#e7e1d4;border-radius:5px;width:14px;height:14px}.dots span.on{background:var(--gold)}.dots span.today{outline:2px solid var(--gold);outline-offset:2px}.ci-btn{cursor:pointer;color:#fff;background:var(--gold);border:0;border-radius:11px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:transform .12s,filter .2s}.ci-btn:hover{filter:brightness(1.05)}.ci-btn:active{transform:scale(.96)}.ci-btn.done{background:var(--done)}.ci-btn:disabled{cursor:default}.tabs{gap:8px;margin:18px 0 6px;display:flex}.tab{cursor:pointer;border:1px solid var(--line);background:var(--card);text-align:left;border-radius:13px;flex:1;padding:11px 12px;font-family:inherit;transition:border-color .2s,background .2s}.tab .t-zh{font-size:15px;font-weight:600}.tab .t-en{color:var(--muted);margin-top:2px;font-family:Space Mono,monospace;font-size:11px;display:block}.tab .t-n{float:right;color:var(--muted);font-family:Space Mono,monospace;font-size:12px}.tab[data-k=tpl].active{border-color:var(--tpl);background:var(--tpl-soft)}.tab[data-k=set].active{border-color:var(--set);background:var(--set-soft)}.tab[data-k=tpl].active .t-zh{color:var(--tpl)}.tab[data-k=set].active .t-zh{color:var(--set)}.hint{color:var(--muted);margin:10px 2px 16px;font-size:13px;line-height:1.6}.hint b{color:var(--ink)}.group-title{letter-spacing:.04em;color:var(--muted);align-items:center;gap:8px;margin:22px 4px 8px;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;display:flex}.group-title:before{content:"";opacity:.5;background:currentColor;border-radius:2px;width:14px;height:2px}.item{background:var(--card);border:1px solid var(--line);border-radius:13px;align-items:flex-start;gap:13px;margin-bottom:8px;padding:13px 14px;transition:border-color .2s,background .2s;display:flex}.item.checked{background:#f6f8f4;border-color:#d6e4d6}.box{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;flex:none;width:24px;height:24px;margin-top:1px;transition:all .18s;position:relative}.box:hover{border-color:var(--muted)}.box.on{background:var(--done);border-color:var(--done)}.box.on:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:6px;height:11px;position:absolute;top:3px;left:7px;transform:rotate(42deg)}.body{flex:1;min-width:0}.en{letter-spacing:-.01em;font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:600}.item.checked .en{opacity:.55}.blank{border-bottom:2px dashed var(--tpl);vertical-align:-2px;min-width:42px;height:14px;margin:0 3px;display:inline-block}.set .blank{border-bottom-color:var(--set)}.zh{color:var(--muted);margin-top:2px;font-size:14px}.say{color:var(--set);background:var(--set-soft);border-radius:6px;margin-top:6px;padding:1px 7px;font-family:Space Mono,monospace;font-size:12px;display:inline-block}.ex{margin:9px 0 1px;padding-left:0;list-style:none}.ex li{color:#5c564c;padding:3px 0 3px 16px;font-size:13.5px;position:relative}.ex li:before{content:"›";color:var(--tpl);font-weight:700;position:absolute;left:2px}.toggle-ex{color:var(--tpl);background:var(--tpl-soft);cursor:pointer;letter-spacing:.03em;border:0;border-radius:6px;margin-top:7px;padding:3px 9px;font-family:Space Mono,monospace;font-size:11px}.pane{display:none}.pane.show{display:block}footer{text-align:center;color:var(--muted);margin-top:30px;font-size:12px;line-height:1.7}.reset{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-family:inherit;font-size:12px}.reset:hover{color:var(--tpl);border-color:var(--tpl-line)}:focus-visible{outline:2.5px solid var(--gold);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (width<=520px){h1{font-size:22px}.h1-en{display:none}.en{font-size:16px}.ci-streak .n{font-size:26px}}
