*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Meiryo,sans-serif;background:#f5f5f7;color:#1c1c1e;min-height:100vh;padding-bottom:40px}header{background:#fff;border-bottom:1px solid #e5e5ea;padding:20px 16px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}header h1{font-size:22px;font-weight:700;letter-spacing:-.3px}.tabs{display:flex;gap:6px;margin-top:14px}.tab-btn{flex:1 1;padding:9px 4px;border:none;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;background:#e5e5ea;color:#636366;line-height:1.3;white-space:pre-line}.tab-btn.active{background:#34c759;color:#fff}.progress-area{padding:14px 16px 0}.progress-label{font-size:13px;color:#636366;margin-bottom:6px;display:flex;justify-content:space-between}.progress-bar-wrap{background:#e5e5ea;border-radius:6px;height:8px;overflow:hidden}.progress-bar{height:100%;background:#34c759;border-radius:6px;transition:width .3s ease}.reset-area{padding:12px 16px 0;display:flex;justify-content:flex-end}.reset-btn{background:none;border:1px solid #ff3b30;color:#ff3b30;border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer}.reset-btn:active{background:#ff3b30;color:#fff}.tab-content{padding:16px 16px 0}.category{margin-bottom:20px}.category-title{font-size:13px;font-weight:600;color:#636366;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-left:4px}.category-items{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06)}.item{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid #f2f2f7;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .1s;gap:12px}.item:last-child{border-bottom:none}.item:active{background:#f2f2f7}.checkbox{width:24px;height:24px;border-radius:50%;border:2px solid #c7c7cc;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.item.checked .checkbox{background:#34c759;border-color:#34c759}.checkmark{display:none;color:#fff;font-size:13px;font-weight:700;line-height:1}.item.checked .checkmark{display:block}.item-label{font-size:16px;flex:1 1;transition:color .15s,-webkit-text-decoration .15s;transition:color .15s,text-decoration .15s;transition:color .15s,text-decoration .15s,-webkit-text-decoration .15s}.item.checked .item-label{color:#aeaeb2;text-decoration:line-through}